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