]>
Commit | Line | Data |
---|---|---|
5e2cf960 | 1 | #ifndef ALIDIELECTRONHF_H |
2 | #define ALIDIELECTRONHF_H | |
3 | ||
4 | /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //############################################################# | |
8 | //# # | |
9 | //# Class AliDielectronHF # | |
10 | //# # | |
11 | //# Authors: # | |
12 | //# Julian Book, Uni-Frankfurt / Julian.Book@cern.ch # | |
13 | //# # | |
14 | //############################################################# | |
15 | ||
16 | #include <TNamed.h> | |
17 | #include <TObjArray.h> | |
18 | ||
19 | #include "AliDielectronVarManager.h" | |
d4619886 | 20 | #include "AliDielectronHistos.h" |
5e2cf960 | 21 | |
5e2cf960 | 22 | class AliDielectronHF : public TNamed { |
23 | public: | |
187de573 | 24 | enum { kMaxCuts=20 }; |
5e2cf960 | 25 | enum EBinType { |
26 | kStdBin=0, | |
27 | kBinToMax, | |
28 | kBinFromMin, | |
29 | kSymBin | |
30 | }; | |
31 | enum EPairType { | |
7957061b | 32 | // kOSonly=0, kOSandLS, kOSandROT, kOSandMIX, kAll, kMConly |
33 | kAll=0, kMConly, | |
34 | kSeAll, kSeOnlyOS, | |
35 | kMeAll, kMeOnlyOS, | |
36 | kSeMeAll, kSeMeOnlyOS, | |
37 | kSeReAll, kSeReOnlyOS, | |
5e2cf960 | 38 | }; |
39 | ||
40 | AliDielectronHF(); | |
41 | AliDielectronHF(const char*name, const char* title); | |
42 | ||
43 | virtual ~AliDielectronHF(); | |
443a091c | 44 | |
45 | void Init(); | |
46 | void SetSignalsMC(TObjArray* array) {fSignalsMC = array;} | |
4d7704c5 | 47 | void SetStepForMCGenerated(Bool_t switcher=kTRUE) {fStepGenerated = switcher;} |
7957061b | 48 | void SetPairTypes(EPairType ptype) { fPairType=ptype; } |
5e2cf960 | 49 | |
8d42b5b9 | 50 | // functions to add 1-dimensional objects |
51 | void UserProfile(const char* histClass, UInt_t valTypeP, | |
d4619886 | 52 | const TVectorD * const binsX, UInt_t valTypeX, TString option="", |
53 | UInt_t valTypeW=AliDielectronHistos::kNoWeights); | |
8d42b5b9 | 54 | void UserHistogram(const char* histClass, |
d4619886 | 55 | const TVectorD * const binsX, UInt_t valTypeX, UInt_t valTypeW=AliDielectronHistos::kNoWeights) |
56 | { UserProfile(histClass,AliDielectronHistos::kNoProfile,binsX,valTypeX,"",valTypeW); } | |
8d42b5b9 | 57 | |
58 | // functions to add 2-dimensional objects | |
59 | void UserProfile(const char* histClass, UInt_t valTypeP, | |
60 | const TVectorD * const binsX, const TVectorD * const binsY, | |
d4619886 | 61 | UInt_t valTypeX, UInt_t valTypeY, TString option="", UInt_t valTypeW=AliDielectronHistos::kNoWeights); |
8d42b5b9 | 62 | void UserHistogram(const char* histClass, |
63 | const TVectorD * const binsX, const TVectorD * const binsY, | |
d4619886 | 64 | UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeW=AliDielectronHistos::kNoWeights) |
65 | { UserProfile(histClass,AliDielectronHistos::kNoProfile,binsX,binsY,valTypeX,valTypeY,"",valTypeW); } | |
8d42b5b9 | 66 | |
67 | // functions to add 3-dimensional objects | |
68 | void UserProfile(const char* histClass, UInt_t valTypeP, | |
69 | const TVectorD * const binsX, const TVectorD * const binsY, const TVectorD * const binsZ, | |
d4619886 | 70 | UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ, TString option="", |
71 | UInt_t valTypeW=AliDielectronHistos::kNoWeights); | |
8d42b5b9 | 72 | void UserHistogram(const char* histClass, |
73 | const TVectorD * const binsX, const TVectorD * const binsY, const TVectorD * const binsZ, | |
d4619886 | 74 | UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ, UInt_t valTypeW=AliDielectronHistos::kNoWeights) |
75 | { UserProfile(histClass,AliDielectronHistos::kNoProfile,binsX,binsY,binsZ,valTypeX,valTypeY,valTypeZ,"",valTypeW); } | |
8d42b5b9 | 76 | |
77 | ||
78 | // functions to define the grid | |
5e2cf960 | 79 | void AddCutVariable(AliDielectronVarManager::ValueTypes type, Int_t nbins, |
80 | Double_t min, Double_t max, Bool_t log=kFALSE, Bool_t leg=kFALSE, EBinType btype=kStdBin); | |
81 | void AddCutVariable(AliDielectronVarManager::ValueTypes type, | |
82 | const char* binLimitStr, Bool_t leg=kFALSE, EBinType btype=kStdBin); | |
83 | void AddCutVariable(AliDielectronVarManager::ValueTypes type, | |
84 | TVectorD * binLimits, Bool_t leg=kFALSE, EBinType btype=kStdBin); | |
85 | ||
443a091c | 86 | void Fill(Int_t pairIndex, const AliDielectronPair *particle); |
87 | void Fill(Int_t label1, Int_t label2, Int_t nSignal); | |
88 | void Fill(Int_t Index, Double_t * const valuesPair, Double_t * const valuesLeg1, Double_t * const valuesLeg2); | |
89 | ||
5e2cf960 | 90 | Bool_t IsPairTypeSelected(Int_t itype); |
443a091c | 91 | |
5e2cf960 | 92 | Int_t GetNumberOfBins() const; |
5e2cf960 | 93 | const TObjArray * GetHistArray() const { return &fArrPairType; } |
4d7704c5 | 94 | Bool_t GetStepForMCGenerated() const { return fStepGenerated; } |
443a091c | 95 | |
5e2cf960 | 96 | private: |
97 | TObjArray fArrPairType; //-> array of pair types | |
98 | EPairType fPairType; // which pair combinations to include | |
443a091c | 99 | TObjArray* fSignalsMC; //! array of MC signals to be studied |
5e2cf960 | 100 | |
101 | UShort_t fVarCuts[kMaxCuts]; // cut variables | |
102 | Bool_t fVarCutType[kMaxCuts]; // array to store leg booleans | |
103 | TObjArray fAxes; // Axis descriptions of the cut binning | |
104 | UShort_t fBinType[kMaxCuts]; // binning type of the axes | |
105 | ||
d4619886 | 106 | Bool_t fHasMC; // is mc array |
4d7704c5 | 107 | Bool_t fStepGenerated; // switcher for generated particles |
5e2cf960 | 108 | |
8d42b5b9 | 109 | TObjArray fRefObj; // reference object |
35363fb9 | 110 | |
5e2cf960 | 111 | AliDielectronHF(const AliDielectronHF &c); |
112 | AliDielectronHF &operator=(const AliDielectronHF &c); | |
113 | ||
114 | ||
8d42b5b9 | 115 | ClassDef(AliDielectronHF,3) // Dielectron HF |
5e2cf960 | 116 | }; |
117 | ||
118 | ||
119 | ||
120 | #endif |