1 #ifndef ALIDIELECTRONHF_H
2 #define ALIDIELECTRONHF_H
4 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //#############################################################
9 //# Class AliDielectronHF #
12 //# Julian Book, Uni-Frankfurt / Julian.Book@cern.ch #
14 //#############################################################
17 #include <TObjArray.h>
19 #include "AliDielectronVarManager.h"
21 class AliDielectronHF : public TNamed {
31 kOSonly=0, kOSandLS, kOSandROT, kOSandMIX, kAll
35 AliDielectronHF(const char*name, const char* title);
37 virtual ~AliDielectronHF();
40 void SetSignalsMC(TObjArray* array) {fSignalsMC = array;}
41 void SetStepForMCGenerated(Bool_t switcher=kTRUE) {fStepGenerated = switcher;}
42 void SetPairTypes(EPairType ptype=kOSonly) { fPairType=ptype; }
44 // functions to add 1-dimensional objects
45 void UserProfile(const char* histClass, UInt_t valTypeP,
46 const TVectorD * const binsX, UInt_t valTypeX, TString option="");
47 void UserHistogram(const char* histClass,
48 const TVectorD * const binsX, UInt_t valTypeX)
49 { UserProfile(histClass,999,binsX,valTypeX); }
51 // functions to add 2-dimensional objects
52 void UserProfile(const char* histClass, UInt_t valTypeP,
53 const TVectorD * const binsX, const TVectorD * const binsY,
54 UInt_t valTypeX, UInt_t valTypeY, TString option="");
55 void UserHistogram(const char* histClass,
56 const TVectorD * const binsX, const TVectorD * const binsY,
57 UInt_t valTypeX, UInt_t valTypeY)
58 { UserProfile(histClass,999,binsX,binsY,valTypeX,valTypeY); }
60 // functions to add 3-dimensional objects
61 void UserProfile(const char* histClass, UInt_t valTypeP,
62 const TVectorD * const binsX, const TVectorD * const binsY, const TVectorD * const binsZ,
63 UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ, TString option="");
64 void UserHistogram(const char* histClass,
65 const TVectorD * const binsX, const TVectorD * const binsY, const TVectorD * const binsZ,
66 UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ)
67 { UserProfile(histClass,999,binsX,binsY,binsZ,valTypeX,valTypeY,valTypeZ); }
70 // functions to define the grid
71 void AddCutVariable(AliDielectronVarManager::ValueTypes type, Int_t nbins,
72 Double_t min, Double_t max, Bool_t log=kFALSE, Bool_t leg=kFALSE, EBinType btype=kStdBin);
73 void AddCutVariable(AliDielectronVarManager::ValueTypes type,
74 const char* binLimitStr, Bool_t leg=kFALSE, EBinType btype=kStdBin);
75 void AddCutVariable(AliDielectronVarManager::ValueTypes type,
76 TVectorD * binLimits, Bool_t leg=kFALSE, EBinType btype=kStdBin);
78 void Fill(Int_t pairIndex, const AliDielectronPair *particle);
79 void Fill(Int_t label1, Int_t label2, Int_t nSignal);
80 void Fill(Int_t Index, Double_t * const valuesPair, Double_t * const valuesLeg1, Double_t * const valuesLeg2);
82 Bool_t IsPairTypeSelected(Int_t itype);
84 Int_t GetNumberOfBins() const;
85 const TObjArray * GetHistArray() const { return &fArrPairType; }
86 Bool_t GetStepForMCGenerated() const { return fStepGenerated; }
89 TObjArray fArrPairType; //-> array of pair types
90 EPairType fPairType; // which pair combinations to include
91 TObjArray* fSignalsMC; //! array of MC signals to be studied
93 UShort_t fVarCuts[kMaxCuts]; // cut variables
94 Bool_t fVarCutType[kMaxCuts]; // array to store leg booleans
95 TObjArray fAxes; // Axis descriptions of the cut binning
96 UShort_t fBinType[kMaxCuts]; // binning type of the axes
99 Bool_t fStepGenerated; // switcher for generated particles
101 TObjArray fRefObj; // reference object
103 AliDielectronHF(const AliDielectronHF &c);
104 AliDielectronHF &operator=(const AliDielectronHF &c);
107 ClassDef(AliDielectronHF,3) // Dielectron HF