ROOT logo
#ifndef ALIDIELECTRONHFHELPER_H
#define ALIDIELECTRONHFHELPER_H
/* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//#############################################################
//#                                                           #
//#             Class AliDielectronHFhelper                   #
//#       Dielectron Histogram Framework helper               #
//#                                                           #
//#  Authors:                                                 #
//#   Julian    Book,     Uni Ffm / Julian.Book@cern.ch       #
//#                                                           #
//#############################################################



#include <TNamed.h>
#include <TVectorD.h>

#include "AliDielectronVarManager.h"

class AliDielectronHFhelper : public TNamed {
public:
  enum { kMaxCuts=20 };

  //AliDielectronHFhelper();
  AliDielectronHFhelper(const char* filename, const char* container);

  virtual ~AliDielectronHFhelper();
  void SetHFArray(const char* filename, const char* container);

  void SetRangeUser(const char *varname, Double_t min, Double_t max, Bool_t leg=kFALSE);
  void SetRangeUser(AliDielectronVarManager::ValueTypes type, Double_t min, Double_t max, Bool_t leg=kFALSE);
  void UnsetRangeUser(const char* varname, Bool_t leg=kFALSE);
  void UnsetRangeUser(AliDielectronVarManager::ValueTypes type, Bool_t leg=kFALSE);

  // getter functions
  Int_t GetNSteps() const {return fMainArr->GetEntries(); }

  TObjArray* CollectHistos(AliDielectronVarManager::ValueTypes varx,
			   AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
			   AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues,
			   AliDielectronVarManager::ValueTypes varw=AliDielectronVarManager::kNMaxValues)
  { return CollectProfiles("hist",varx,vary,varz,varw); }
  TObjArray* CollectHistos(TString option,
			   AliDielectronVarManager::ValueTypes varx,
			   AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
			   AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues,
			   AliDielectronVarManager::ValueTypes varw=AliDielectronVarManager::kNMaxValues)
  { return CollectProfiles(Form("%s:hist",option.Data()),varx,vary,varz,varw); }
  TObjArray* CollectProfiles(TString option,
			     AliDielectronVarManager::ValueTypes varx,
			     AliDielectronVarManager::ValueTypes vary=AliDielectronVarManager::kNMaxValues,
			     AliDielectronVarManager::ValueTypes varz=AliDielectronVarManager::kNMaxValues,
			     AliDielectronVarManager::ValueTypes vart=AliDielectronVarManager::kNMaxValues);

  TObjArray* FindObjects(TObjArray *histos);
  TObjArray* Merge(TObjArray *arr);

  void CheckCuts(TObjArray *arr);
  virtual void Print(const Option_t* option ="") const ;
  void PrintCuts();

private:
  TObjArray *fMainArr;         // main array of pair types or sources
  TObjArray *fCutVars;         // array for cut variables
  TVectorD fCutLowLimits;      // vector to store the lower cut limits
  TVectorD fCutUpLimits;       // vector to store the upper cut limits

  AliDielectronHFhelper(const AliDielectronHFhelper &c);
  AliDielectronHFhelper &operator=(const AliDielectronHFhelper &c);

  ClassDef(AliDielectronHFhelper,1)                   // HF  helper class
};

//
// Inline functions
//
#endif

 AliDielectronHFhelper.h:1
 AliDielectronHFhelper.h:2
 AliDielectronHFhelper.h:3
 AliDielectronHFhelper.h:4
 AliDielectronHFhelper.h:5
 AliDielectronHFhelper.h:6
 AliDielectronHFhelper.h:7
 AliDielectronHFhelper.h:8
 AliDielectronHFhelper.h:9
 AliDielectronHFhelper.h:10
 AliDielectronHFhelper.h:11
 AliDielectronHFhelper.h:12
 AliDielectronHFhelper.h:13
 AliDielectronHFhelper.h:14
 AliDielectronHFhelper.h:15
 AliDielectronHFhelper.h:16
 AliDielectronHFhelper.h:17
 AliDielectronHFhelper.h:18
 AliDielectronHFhelper.h:19
 AliDielectronHFhelper.h:20
 AliDielectronHFhelper.h:21
 AliDielectronHFhelper.h:22
 AliDielectronHFhelper.h:23
 AliDielectronHFhelper.h:24
 AliDielectronHFhelper.h:25
 AliDielectronHFhelper.h:26
 AliDielectronHFhelper.h:27
 AliDielectronHFhelper.h:28
 AliDielectronHFhelper.h:29
 AliDielectronHFhelper.h:30
 AliDielectronHFhelper.h:31
 AliDielectronHFhelper.h:32
 AliDielectronHFhelper.h:33
 AliDielectronHFhelper.h:34
 AliDielectronHFhelper.h:35
 AliDielectronHFhelper.h:36
 AliDielectronHFhelper.h:37
 AliDielectronHFhelper.h:38
 AliDielectronHFhelper.h:39
 AliDielectronHFhelper.h:40
 AliDielectronHFhelper.h:41
 AliDielectronHFhelper.h:42
 AliDielectronHFhelper.h:43
 AliDielectronHFhelper.h:44
 AliDielectronHFhelper.h:45
 AliDielectronHFhelper.h:46
 AliDielectronHFhelper.h:47
 AliDielectronHFhelper.h:48
 AliDielectronHFhelper.h:49
 AliDielectronHFhelper.h:50
 AliDielectronHFhelper.h:51
 AliDielectronHFhelper.h:52
 AliDielectronHFhelper.h:53
 AliDielectronHFhelper.h:54
 AliDielectronHFhelper.h:55
 AliDielectronHFhelper.h:56
 AliDielectronHFhelper.h:57
 AliDielectronHFhelper.h:58
 AliDielectronHFhelper.h:59
 AliDielectronHFhelper.h:60
 AliDielectronHFhelper.h:61
 AliDielectronHFhelper.h:62
 AliDielectronHFhelper.h:63
 AliDielectronHFhelper.h:64
 AliDielectronHFhelper.h:65
 AliDielectronHFhelper.h:66
 AliDielectronHFhelper.h:67
 AliDielectronHFhelper.h:68
 AliDielectronHFhelper.h:69
 AliDielectronHFhelper.h:70
 AliDielectronHFhelper.h:71
 AliDielectronHFhelper.h:72
 AliDielectronHFhelper.h:73
 AliDielectronHFhelper.h:74
 AliDielectronHFhelper.h:75
 AliDielectronHFhelper.h:76
 AliDielectronHFhelper.h:77
 AliDielectronHFhelper.h:78
 AliDielectronHFhelper.h:79
 AliDielectronHFhelper.h:80
 AliDielectronHFhelper.h:81