]>
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" | |
20 | ||
5e2cf960 | 21 | class AliDielectronHF : public TNamed { |
22 | public: | |
187de573 | 23 | enum { kMaxCuts=20 }; |
5e2cf960 | 24 | enum EBinType { |
25 | kStdBin=0, | |
26 | kBinToMax, | |
27 | kBinFromMin, | |
28 | kSymBin | |
29 | }; | |
30 | enum EPairType { | |
31 | kOSonly=0, kOSandLS, kOSandROT, kOSandMIX, kAll | |
32 | }; | |
33 | ||
34 | AliDielectronHF(); | |
35 | AliDielectronHF(const char*name, const char* title); | |
36 | ||
37 | virtual ~AliDielectronHF(); | |
443a091c | 38 | |
39 | void Init(); | |
40 | void SetSignalsMC(TObjArray* array) {fSignalsMC = array;} | |
4d7704c5 | 41 | void SetStepForMCGenerated(Bool_t switcher=kTRUE) {fStepGenerated = switcher;} |
5e2cf960 | 42 | void SetPairTypes(EPairType ptype=kOSonly) { fPairType=ptype; } |
43 | void SetVariable(AliDielectronVarManager::ValueTypes type, Int_t nbins, | |
44 | Double_t min, Double_t max, Bool_t log=kFALSE); | |
45 | ||
46 | void AddCutVariable(AliDielectronVarManager::ValueTypes type, Int_t nbins, | |
47 | Double_t min, Double_t max, Bool_t log=kFALSE, Bool_t leg=kFALSE, EBinType btype=kStdBin); | |
48 | void AddCutVariable(AliDielectronVarManager::ValueTypes type, | |
49 | const char* binLimitStr, Bool_t leg=kFALSE, EBinType btype=kStdBin); | |
50 | void AddCutVariable(AliDielectronVarManager::ValueTypes type, | |
51 | TVectorD * binLimits, Bool_t leg=kFALSE, EBinType btype=kStdBin); | |
52 | ||
443a091c | 53 | void Fill(Int_t pairIndex, const AliDielectronPair *particle); |
54 | void Fill(Int_t label1, Int_t label2, Int_t nSignal); | |
55 | void Fill(Int_t Index, Double_t * const valuesPair, Double_t * const valuesLeg1, Double_t * const valuesLeg2); | |
56 | ||
5e2cf960 | 57 | Bool_t IsPairTypeSelected(Int_t itype); |
443a091c | 58 | |
5e2cf960 | 59 | Int_t GetNumberOfBins() const; |
5e2cf960 | 60 | const TObjArray * GetHistArray() const { return &fArrPairType; } |
4d7704c5 | 61 | Bool_t GetStepForMCGenerated() const { return fStepGenerated; } |
443a091c | 62 | |
63 | ||
5e2cf960 | 64 | |
65 | private: | |
66 | TObjArray fArrPairType; //-> array of pair types | |
67 | EPairType fPairType; // which pair combinations to include | |
443a091c | 68 | TObjArray* fSignalsMC; //! array of MC signals to be studied |
5e2cf960 | 69 | |
70 | UShort_t fVarCuts[kMaxCuts]; // cut variables | |
71 | Bool_t fVarCutType[kMaxCuts]; // array to store leg booleans | |
72 | TObjArray fAxes; // Axis descriptions of the cut binning | |
73 | UShort_t fBinType[kMaxCuts]; // binning type of the axes | |
74 | ||
75 | TVectorD *fVarBinLimits; // binning of the main pair variable | |
76 | UShort_t fVar; // main pair variable for xaxis | |
443a091c | 77 | Bool_t fHasMC; |
4d7704c5 | 78 | Bool_t fStepGenerated; // switcher for generated particles |
5e2cf960 | 79 | |
80 | AliDielectronHF(const AliDielectronHF &c); | |
81 | AliDielectronHF &operator=(const AliDielectronHF &c); | |
82 | ||
83 | ||
84 | ClassDef(AliDielectronHF,1) // Dielectron HF | |
85 | }; | |
86 | ||
87 | ||
88 | ||
89 | #endif |