1 #ifndef ALICONVERSIONMESONCUTS_H
2 #define ALICONVERSIONMESONCUTS_H
4 // Class handling all kinds of selection cuts for Gamma Conversion analysis
5 // Authors: Svein Lindal, Daniel Lohner *
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"
15 #include "AliAnalysisCuts.h"
20 class AliConversionPhotonBase;
25 class AliAnalysisCuts;
28 class AliAnalysisManager;
33 class AliConversionMesonCuts : public AliAnalysisCuts {
42 kDegreesForRotationMethod,
53 Bool_t SetCutIds(TString cutString);
55 Bool_t SetCut(cutIds cutID, Int_t cut);
56 Bool_t UpdateCutString(cutIds cutID, Int_t value);
58 static const char * fgkCutNames[kNCuts];
60 Bool_t InitializeCutsFromCutString(const TString analysisCutSelection);
61 void FillElectonLabelArray(AliAODConversionPhoton* photon, Int_t nV0);
63 AliConversionMesonCuts(const char *name="MesonCuts", const char * title="Meson Cuts");
64 virtual ~AliConversionMesonCuts(); //virtual destructor
66 virtual Bool_t IsSelected(TObject* /*obj*/){return kTRUE;}
67 virtual Bool_t IsSelected(TList* /*list*/) {return kTRUE;}
69 TString GetCutNumber();
72 Bool_t MesonIsSelected(AliAODConversionMother *pi0,Bool_t IsSignal=kTRUE);
73 Bool_t MesonIsSelectedMC(TParticle *fMCMother,AliStack *fMCStack, Bool_t bMCDaughtersInAcceptance=kFALSE);
74 Bool_t MesonIsSelectedMCDalitz(TParticle *fMCMother,AliStack *fMCStack);
77 void InitCutHistograms(TString name="",Bool_t preCut = kTRUE);
78 void SetFillCutHistograms(TString name="",Bool_t preCut = kTRUE){if(!fHistograms){InitCutHistograms(name,preCut);};}
79 TList *GetCutHistograms(){return fHistograms;}
80 void SmearParticle(AliAODConversionPhoton * photon);
83 Bool_t RejectSharedElectronV0s(AliAODConversionPhoton* photon, Int_t nV0, Int_t nV0s);
84 Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0);
85 // Set Individual Cuts
86 Bool_t SetRCut(Int_t RCut);
87 Bool_t SetMesonKind(Int_t mesonKind);
88 Bool_t SetChi2MesonCut(Int_t chi2MesonCut);
89 Bool_t SetAlphaMesonCut(Int_t alphaMesonCut);
90 Bool_t SetRapidityMesonCut(Int_t RapidityMesonCut);
91 Bool_t SetBackgroundScheme(Int_t BackgroundScheme);
92 Bool_t SetNDegreesForRotationMethod(Int_t DegreesForRotationMethod);
93 Bool_t SetNumberOfBGEvents(Int_t NumberOfBGEvents);
94 Bool_t SetMCPSmearing(Int_t useMCPSmearing);
95 Bool_t SetSharedElectronCut(Int_t sharedElec);
96 Bool_t SetToCloseV0sCut(Int_t toClose);
100 Bool_t UseRotationMethod(){return fUseRotationMethodInBG;}
101 Bool_t UseTrackMultiplicity(){return fUseTrackMultiplicityForBG;}
102 Int_t NumberOfBGEvents(){return fNumberOfBGEvents;}
103 Int_t NDegreesRotation(){return fnDegreeRotationPMForBG;}
104 Bool_t DoBGProbability(){return fdoBGProbability;}
105 Bool_t UseElecSharingCut(){return fDoSharedElecCut;}
106 Bool_t UseToCloseV0sCut(){return fDoToCloseV0sCut;}
107 Bool_t UseMCPSmearing(){return fUseMCPSmearing;}
113 Double_t fMaxR; //r cut
114 Double_t fChi2CutMeson; //chicut meson
115 Double_t fAlphaMinCutMeson; // min value for meson alpha cut
116 Double_t fAlphaCutMeson; // max value for meson alpha cut
117 Double_t fRapidityCutMeson; // max value for meson rapidity
118 Bool_t fUseRotationMethodInBG; // flag to apply rotation method for meson bg estimation
119 Bool_t fdoBGProbability; // flag to use probability method for meson bg estimation
120 Bool_t fUseTrackMultiplicityForBG; // flag to use track multiplicity for meson bg estimation (else V0 mult)
121 Int_t fnDegreeRotationPMForBG; //
122 Int_t fNumberOfBGEvents; //
123 Float_t fOpeningAngle; // min opening angle for meson
124 Bool_t fDoToCloseV0sCut; //
125 Double_t fminV0Dist; //
126 Bool_t fDoSharedElecCut; //
127 Bool_t fUseMCPSmearing; // flag
128 Double_t fPBremSmearing;//
129 Double_t fPSigSmearing; //
130 Double_t fPSigSmearingCte; //
133 Int_t *fElectronLabelArray; // Array with elec/pos v0 label
136 TObjString *fCutString; // cut number used for analysis
137 TH1F *hMesonCuts; // bookkeeping for meson cuts
138 TH1F *hMesonBGCuts; // bookkeeping for meson bg cuts
143 AliConversionMesonCuts(const AliConversionMesonCuts&); // not implemented
144 AliConversionMesonCuts& operator=(const AliConversionMesonCuts&); // not implemented
147 ClassDef(AliConversionMesonCuts,2)