]>
Commit | Line | Data |
---|---|---|
2bb2434e | 1 | #ifndef ALICONVERSIONMESONCUTS_H |
2 | #define ALICONVERSIONMESONCUTS_H | |
3 | ||
4 | // Class handling all kinds of selection cuts for Gamma Conversion analysis | |
5 | // Authors: Svein Lindal, Daniel Lohner * | |
6 | ||
7 | #include "AliAODpidUtil.h" | |
8 | #include "AliConversionPhotonBase.h" | |
9 | #include "AliAODConversionMother.h" | |
10 | #include "AliAODTrack.h" | |
11 | #include "AliESDtrack.h" | |
12 | #include "AliVTrack.h" | |
13 | #include "AliAODTrack.h" | |
14 | #include "AliStack.h" | |
15 | #include "AliAnalysisCuts.h" | |
16 | #include "TH1F.h" | |
17 | ||
18 | class AliESDEvent; | |
19 | class AliAODEvent; | |
20 | class AliConversionPhotonBase; | |
21 | class AliKFVertex; | |
22 | class TH1F; | |
23 | class TH2F; | |
24 | class AliPIDResponse; | |
25 | class AliAnalysisCuts; | |
26 | class iostream; | |
27 | class TList; | |
28 | class AliAnalysisManager; | |
29 | ||
30 | ||
31 | using namespace std; | |
32 | ||
33 | class AliConversionMesonCuts : public AliAnalysisCuts { | |
34 | ||
35 | public: | |
36 | ||
37 | ||
38 | enum cutIds { | |
39 | kMesonKind, | |
2bb2434e | 40 | kBackgroundScheme, |
ca91a3e1 | 41 | kNumberOfBGEvents, |
2bb2434e | 42 | kDegreesForRotationMethod, |
ca91a3e1 | 43 | kRapidityMesonCut, |
44 | kRCut, | |
45 | kalphaMesonCut, | |
46 | kchi2MesonCut, | |
2bb2434e | 47 | kElecShare, |
48 | kToCloseV0s, | |
e5b6e8a6 | 49 | kuseMCPSmearing, |
2bb2434e | 50 | kNCuts |
51 | }; | |
52 | ||
53 | Bool_t SetCutIds(TString cutString); | |
54 | Int_t fCuts[kNCuts]; | |
55 | Bool_t SetCut(cutIds cutID, Int_t cut); | |
e5b6e8a6 | 56 | Bool_t UpdateCutString(); |
2bb2434e | 57 | |
58 | static const char * fgkCutNames[kNCuts]; | |
59 | ||
60 | Bool_t InitializeCutsFromCutString(const TString analysisCutSelection); | |
61 | void FillElectonLabelArray(AliAODConversionPhoton* photon, Int_t nV0); | |
62 | ||
63 | AliConversionMesonCuts(const char *name="MesonCuts", const char * title="Meson Cuts"); | |
1d9e6011 | 64 | AliConversionMesonCuts(const AliConversionMesonCuts&); |
a280ac15 | 65 | AliConversionMesonCuts& operator=(const AliConversionMesonCuts&); |
1d9e6011 | 66 | |
2bb2434e | 67 | virtual ~AliConversionMesonCuts(); //virtual destructor |
68 | ||
69 | virtual Bool_t IsSelected(TObject* /*obj*/){return kTRUE;} | |
70 | virtual Bool_t IsSelected(TList* /*list*/) {return kTRUE;} | |
71 | ||
72 | TString GetCutNumber(); | |
73 | ||
74 | // Cut Selection | |
11c1e680 | 75 | Bool_t MesonIsSelected(AliAODConversionMother *pi0,Bool_t IsSignal=kTRUE, Double_t fRapidityShift=0.); |
76 | Bool_t MesonIsSelectedMC(TParticle *fMCMother,AliStack *fMCStack, Double_t fRapidityShift=0.); | |
77 | Bool_t MesonIsSelectedMCDalitz(TParticle *fMCMother,AliStack *fMCStack, Double_t fRapidityShift=0.); | |
0f8c33c1 | 78 | Bool_t MesonIsSelectedMCChiC(TParticle *fMCMother,AliStack *fMCStack, Int_t &, Int_t &, Int_t &, Double_t fRapidityShift=0. ); |
2bb2434e | 79 | void PrintCuts(); |
80 | ||
e5b6e8a6 | 81 | void InitCutHistograms(TString name=""); |
82 | void SetFillCutHistograms(TString name=""){if(!fHistograms){InitCutHistograms(name);};} | |
2bb2434e | 83 | TList *GetCutHistograms(){return fHistograms;} |
ca91a3e1 | 84 | void SmearParticle(AliAODConversionPhoton * photon); |
85 | ||
2bb2434e | 86 | ///Cut functions |
87 | Bool_t RejectSharedElectronV0s(AliAODConversionPhoton* photon, Int_t nV0, Int_t nV0s); | |
88 | Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0); | |
89 | // Set Individual Cuts | |
90 | Bool_t SetRCut(Int_t RCut); | |
91 | Bool_t SetMesonKind(Int_t mesonKind); | |
92 | Bool_t SetChi2MesonCut(Int_t chi2MesonCut); | |
93 | Bool_t SetAlphaMesonCut(Int_t alphaMesonCut); | |
94 | Bool_t SetRapidityMesonCut(Int_t RapidityMesonCut); | |
95 | Bool_t SetBackgroundScheme(Int_t BackgroundScheme); | |
96 | Bool_t SetNDegreesForRotationMethod(Int_t DegreesForRotationMethod); | |
ca91a3e1 | 97 | Bool_t SetNumberOfBGEvents(Int_t NumberOfBGEvents); |
98 | Bool_t SetMCPSmearing(Int_t useMCPSmearing); | |
2bb2434e | 99 | Bool_t SetSharedElectronCut(Int_t sharedElec); |
100 | Bool_t SetToCloseV0sCut(Int_t toClose); | |
101 | ||
102 | ||
103 | // Request Flags | |
104 | Bool_t UseRotationMethod(){return fUseRotationMethodInBG;} | |
ca91a3e1 | 105 | Bool_t UseTrackMultiplicity(){return fUseTrackMultiplicityForBG;} |
e5b6e8a6 | 106 | Int_t GetNumberOfBGEvents(){return fNumberOfBGEvents;} |
2bb2434e | 107 | Int_t NDegreesRotation(){return fnDegreeRotationPMForBG;} |
e5b6e8a6 | 108 | Bool_t DoBGCalculation(){return fDoBG;} |
2bb2434e | 109 | Bool_t DoBGProbability(){return fdoBGProbability;} |
110 | Bool_t UseElecSharingCut(){return fDoSharedElecCut;} | |
111 | Bool_t UseToCloseV0sCut(){return fDoToCloseV0sCut;} | |
ca91a3e1 | 112 | Bool_t UseMCPSmearing(){return fUseMCPSmearing;} |
e5b6e8a6 | 113 | Int_t BackgroundHandlerType(){return fBackgroundHandler;} |
ca91a3e1 | 114 | |
2bb2434e | 115 | protected: |
116 | TList *fHistograms; | |
117 | //cuts | |
118 | Int_t fMesonKind; | |
119 | Double_t fMaxR; //r cut | |
120 | Double_t fChi2CutMeson; //chicut meson | |
121 | Double_t fAlphaMinCutMeson; // min value for meson alpha cut | |
122 | Double_t fAlphaCutMeson; // max value for meson alpha cut | |
123 | Double_t fRapidityCutMeson; // max value for meson rapidity | |
124 | Bool_t fUseRotationMethodInBG; // flag to apply rotation method for meson bg estimation | |
e5b6e8a6 | 125 | Bool_t fDoBG; // flag to intialize BG |
2bb2434e | 126 | Bool_t fdoBGProbability; // flag to use probability method for meson bg estimation |
127 | Bool_t fUseTrackMultiplicityForBG; // flag to use track multiplicity for meson bg estimation (else V0 mult) | |
128 | Int_t fnDegreeRotationPMForBG; // | |
ca91a3e1 | 129 | Int_t fNumberOfBGEvents; // |
2bb2434e | 130 | Float_t fOpeningAngle; // min opening angle for meson |
131 | Bool_t fDoToCloseV0sCut; // | |
132 | Double_t fminV0Dist; // | |
133 | Bool_t fDoSharedElecCut; // | |
ca91a3e1 | 134 | Bool_t fUseMCPSmearing; // flag |
135 | Double_t fPBremSmearing;// | |
136 | Double_t fPSigSmearing; // | |
137 | Double_t fPSigSmearingCte; // | |
138 | TF1 *fBrem; // | |
2bb2434e | 139 | TRandom3 fRandom; // |
a280ac15 | 140 | Int_t fElectronLabelArraySize; |
141 | Int_t *fElectronLabelArray; //[fElectronLabelArraySize] Array with elec/pos v0 label | |
e5b6e8a6 | 142 | Int_t fBackgroundHandler; // |
2bb2434e | 143 | |
144 | // Histograms | |
145 | TObjString *fCutString; // cut number used for analysis | |
146 | TH1F *hMesonCuts; // bookkeeping for meson cuts | |
147 | TH1F *hMesonBGCuts; // bookkeeping for meson bg cuts | |
148 | ||
a280ac15 | 149 | |
150 | private: | |
151 | ||
152 | ||
e5b6e8a6 | 153 | ClassDef(AliConversionMesonCuts,3) |
2bb2434e | 154 | }; |
155 | ||
156 | ||
157 | #endif |