]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/AliConversionMesonCuts.h
Fixed TOF cut implementation
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliConversionMesonCuts.h
CommitLineData
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
18class AliESDEvent;
19class AliAODEvent;
20class AliConversionPhotonBase;
21class AliKFVertex;
22class TH1F;
23class TH2F;
24class AliPIDResponse;
25class AliAnalysisCuts;
26class iostream;
27class TList;
28class AliAnalysisManager;
29
30
31using namespace std;
32
33class 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
150private:
151
152
e5b6e8a6 153 ClassDef(AliConversionMesonCuts,3)
2bb2434e 154};
155
156
157#endif