AliPhysics  9b6b435 (9b6b435)
AliConversionMesonCuts.h
Go to the documentation of this file.
1 #ifndef ALICONVERSIONMESONCUTS_H
2 #define ALICONVERSIONMESONCUTS_H
3 
4 #include "AliAODpidUtil.h"
7 #include "AliAODTrack.h"
8 #include "AliESDtrack.h"
9 #include "AliVTrack.h"
10 #include "AliAODTrack.h"
11 #include "AliMCEvent.h"
12 #include "AliAnalysisCuts.h"
13 #include "TH1F.h"
14 #include "AliAODMCParticle.h"
15 #include "AliCaloPhotonCuts.h"
16 
17 class AliESDEvent;
18 class AliAODEvent;
20 class AliKFVertex;
21 class TH1F;
22 class TH2F;
23 class AliPIDResponse;
24 class AliAnalysisCuts;
25 class iostream;
26 class TList;
27 class AliAnalysisManager;
28 
29 
62 class AliConversionMesonCuts : public AliAnalysisCuts {
63 
64  public:
65 
66 
67  enum cutIds {
85  };
86 
87  Bool_t SetCutIds(TString cutString);
89  Bool_t SetCut(cutIds cutID, Int_t cut);
91 
92  static const char * fgkCutNames[kNCuts];
93 
94  Bool_t InitializeCutsFromCutString(const TString analysisCutSelection);
96 
97  AliConversionMesonCuts(const char *name="MesonCuts", const char * title="Meson Cuts");
100 
101  virtual ~AliConversionMesonCuts(); //virtual destructor
102 
103  virtual Bool_t IsSelected(TObject* /*obj*/){return kTRUE;}
104  virtual Bool_t IsSelected(TList* /*list*/) {return kTRUE;}
106 
108 
109  // Cut Selection
110  Bool_t MesonIsSelected(AliAODConversionMother *pi0,Bool_t IsSignal=kTRUE, Double_t fRapidityShift=0., Int_t leadingCellID1 = 0, Int_t leadingCellID2 = 0);
111  Bool_t MesonIsSelectedMC(TParticle *fMCMother,AliMCEvent *mcEvent, Double_t fRapidityShift=0.);
112  Bool_t MesonIsSelectedAODMC(AliAODMCParticle *MCMother,TClonesArray *AODMCArray, Double_t fRapidityShift=0.);
113  Bool_t MesonIsSelectedMCDalitz(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &labelelectron, Int_t &labelpositron, Int_t &labelgamma,Double_t fRapidityShift=0.);
114  Bool_t MesonIsSelectedAODMCDalitz(AliAODMCParticle *MCMother,TClonesArray *AODMCArray, Int_t &labelelectron, Int_t &labelpositron, Int_t &labelgamma,Double_t fRapidityShift=0.);
115  Bool_t MesonIsSelectedMCEtaPiPlPiMiGamma(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelGamma, Double_t fRapidityShift=0);
116  Bool_t MesonIsSelectedAODMCEtaPiPlPiMiGamma(AliAODMCParticle *fMCMother,TClonesArray *AODMCArray, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelGamma, Double_t fRapidityShift=0);
117  Bool_t MesonIsSelectedMCPiPlPiMiEta(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0);
118  Bool_t MesonIsSelectedAODMCPiPlPiMiEta(AliAODMCParticle *fMCMother,TClonesArray *AODMCArray, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0);
119  Bool_t MesonIsSelectedMCPiPlPiMiPiZero(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0);
120  Bool_t MesonIsSelectedAODMCPiPlPiMiPiZero(AliAODMCParticle *fMCMother,TClonesArray *AODMCArray, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0);
121  Bool_t MesonIsSelectedMCPiZeroGamma(TParticle *fMCMother, AliMCEvent *mcEvent, Int_t &labelNeutPion, Int_t &labelGamma, Double_t fRapidityShift=0);
122  Bool_t MesonIsSelectedAODMCPiZeroGamma(AliAODMCParticle *fMCMother, TClonesArray *AODMCArray, Int_t &labelNeutPion, Int_t &labelGamma, Double_t fRapidityShift=0);
123  Bool_t MesonIsSelectedMCChiC(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &, Int_t &, Int_t &, Double_t fRapidityShift=0. );
124  Bool_t MesonIsSelectedAODMCChiC(AliAODMCParticle *fMCMother,TClonesArray *AODMCArray, Int_t &, Int_t &, Int_t &, Double_t fRapidityShift=0. );
126  Bool_t DoPiZeroAngleCut, TF1 *maxfit, Double_t lowerFactor, Double_t upperFactor);
127  void PrintCuts();
128  void PrintCutsWithValues();
129 
130  void SetLightOutput( Bool_t flag ){fDoLightOutput = flag; return;}
131  void SetRunningMode(Int_t mode){fMode = mode; return;}
132  void InitCutHistograms(TString name="",Bool_t additionalHists=kFALSE);
135  void SmearParticle(AliAODConversionPhoton * photon);
137  TLorentzVector SmearElectron(TLorentzVector particle);
138 
140 
141  //Cut functions
143  Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0);
144 
146 
147  // Set Individual Cuts
148  Bool_t SetMinPtCut(Int_t PtCut);
149  Bool_t SetMesonKind(Int_t mesonKind);
150  Bool_t SetSelectionWindowCut(Int_t selectionCut);
152  Bool_t SetAlphaMesonCut(Int_t alphaMesonCut);
153  Bool_t SetAlphaMesonMergedCut(Int_t alphaMesonCut);
154  Bool_t SetRapidityMesonCut(Int_t RapidityMesonCut);
155  Bool_t SetBackgroundScheme(Int_t BackgroundScheme);
156  Bool_t SetNDegreesForRotationMethod(Int_t DegreesForRotationMethod);
157  Bool_t SetNumberOfBGEvents(Int_t NumberOfBGEvents);
158  Bool_t SetMCPSmearing(Int_t useMCPSmearing);
159  Bool_t SetSharedElectronCut(Int_t sharedElec);
160  Bool_t SetToCloseV0sCut(Int_t toClose);
161  Bool_t SetDCAGammaGammaCut(Int_t DCAGammaGamma);
162  Bool_t SetDCAZMesonPrimVtxCut(Int_t DCAZMesonPrimVtx);
163  Bool_t SetDCARMesonPrimVtxCut(Int_t DCARMesonPrimVtx);
164  void SetOpeningAngleCut(Float_t OpeningAngle){fOpeningAngle = OpeningAngle;}
165  Bool_t SetMinOpanMesonCut(Int_t minOpanMesonCut);
166  Bool_t SetMaxOpanMesonCut(Int_t maxOpanMesonCut);
168  void SetIsMergedClusterCut(Int_t merged) { fIsMergedClusterCut = merged; return;}
171 
174 
175  // Request Flags
199  Double_t GetMinPt() const {return fMinPt;}
209 
210  protected:
211  TRandom3 fRandom;
214  TObjString* fCutString;
216  // Histograms
227 
228  TF1* fBrem;
229  TF1* fFAlphaCut;
232 
255 
257 
265  Int_t* fElectronLabelArray; //[fElectronLabelArraySize] Array with elec/pos v0 label
267 
300 
301  private:
302 
304  ClassDef(AliConversionMesonCuts,32)
306 };
307 
308 
309 #endif
Bool_t MesonIsSelectedAODMCPiPlPiMiPiZero(AliAODMCParticle *fMCMother, TClonesArray *AODMCArray, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0)
Bool_t fAcceptMesonMass
flag to distinguish rejecting and accepting meson mass window for further analysis ...
AliCaloPhotonCuts * fCaloPhotonCuts
CaloPhotonCutObject belonging to same main task.
void SetLightOutput(Bool_t flag)
Bool_t SetSelectionWindowMergedCut(Int_t selectionCut)
double Double_t
Definition: External.C:58
Int_t fSelectionWindowCut
selection window for merged ana in mass
Definition: External.C:236
const char * title
Definition: MakeQAPdf.C:27
AliConversionMesonCuts & operator=(const AliConversionMesonCuts &)
void FillElectonLabelArray(AliAODConversionPhoton *photon, Int_t nV0)
void SetDefaultSmearing(Double_t p0, Double_t p1, Double_t p2)
Bool_t SetBackgroundScheme(Int_t BackgroundScheme)
Bool_t MesonIsSelectedMCPiZeroGamma(TParticle *fMCMother, AliMCEvent *mcEvent, Int_t &labelNeutPion, Int_t &labelGamma, Double_t fRapidityShift=0)
Double_t GetSidebandMixingLow() const
Double_t GetSidebandMixingRightLow() const
virtual Bool_t IsSelected(TList *)
void SetEnableOpeningAngleCut(Bool_t isOn)
Double_t GetSidebandMixingHigh() const
Float_t FunctionMaxMassCut(Float_t e)
Double_t fDCARMesonPrimVtxCut
cut value for the maximum distance in R between the production point of the Meson & the primary verte...
Double_t fRapidityCutMeson
max value for meson rapidity
Bool_t SetNumberOfBGEvents(Int_t NumberOfBGEvents)
Int_t fMode
running mode of ConversionMesonCuts to select different sets of cut parameters for different running ...
Bool_t MesonIsSelectedMCChiC(TParticle *fMCMother, AliMCEvent *mcEvent, Int_t &, Int_t &, Int_t &, Double_t fRapidityShift=0.)
Bool_t MesonIsSelectedAODMC(AliAODMCParticle *MCMother, TClonesArray *AODMCArray, Double_t fRapidityShift=0.)
Double_t GetSidebandMixingLeftLow() const
Bool_t RejectSharedElectronV0s(AliAODConversionPhoton *photon, Int_t nV0, Int_t nV0s)
Double_t GetAcceptMassFlag() const
void InitCutHistograms(TString name="", Bool_t additionalHists=kFALSE)
Bool_t SetAlphaMesonMergedCut(Int_t alphaMesonCut)
Double_t fSelectionHigh
higher meson inv mass window for further selection
Bool_t MesonIsSelectedMCEtaPiPlPiMiGamma(TParticle *fMCMother, AliMCEvent *mcEvent, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelGamma, Double_t fRapidityShift=0)
Bool_t SetToCloseV0sCut(Int_t toClose)
Bool_t MesonIsSelectedAODMCPiZeroGamma(AliAODMCParticle *fMCMother, TClonesArray *AODMCArray, Int_t &labelNeutPion, Int_t &labelGamma, Double_t fRapidityShift=0)
Bool_t MesonIsSelectedMCDalitz(TParticle *fMCMother, AliMCEvent *mcEvent, Int_t &labelelectron, Int_t &labelpositron, Int_t &labelgamma, Double_t fRapidityShift=0.)
Float_t fOpeningAngle
min opening angle for meson
Bool_t fDoBG
flag to intialize BG
Bool_t MesonIsSelectedMCPiPlPiMiPiZero(TParticle *fMCMother, AliMCEvent *mcEvent, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0)
Bool_t SetSelectionWindowCut(Int_t selectionCut)
Double_t GetSidebandMixingRightHigh() const
Bool_t MesonIsSelectedAODMCDalitz(AliAODMCParticle *MCMother, TClonesArray *AODMCArray, Int_t &labelelectron, Int_t &labelpositron, Int_t &labelgamma, Double_t fRapidityShift=0.)
void SetCaloMesonCutsObject(AliCaloPhotonCuts *cuts)
Bool_t fDoJetAnalysis
switch to run a jet analysis
Bool_t SetDCAGammaGammaCut(Int_t DCAGammaGamma)
Float_t FunctionMinMassCut(Float_t e)
Bool_t fUseTrackMultiplicityForBG
flag to use track multiplicity for meson bg estimation (else V0 mult)
Bool_t SetCutIds(TString cutString)
int Int_t
Definition: External.C:63
Class handling all kinds of selection cuts for Gamma Calo analysis.
Bool_t SetRapidityMesonCut(Int_t RapidityMesonCut)
Bool_t fDoSectorMixing
flag to enable Sectormixing for meson bg estimation
Bool_t SetAlphaMesonCut(Int_t alphaMesonCut)
Double_t fAlphaCutMeson
max value for meson alpha cut
float Float_t
Definition: External.C:68
Bool_t MesonIsSelectedAODMCPiPlPiMiEta(AliAODMCParticle *fMCMother, TClonesArray *AODMCArray, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0)
Bool_t MesonIsSelectedMCPiPlPiMiEta(TParticle *fMCMother, AliMCEvent *mcEvent, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0)
void SetFillCutHistograms(TString name="")
void SmearParticle(AliAODConversionPhoton *photon)
Bool_t RejectToCloseV0s(AliAODConversionPhoton *photon, TList *photons, Int_t nV0)
Double_t GetSelectionLow() const
void SetIsMergedClusterCut(Int_t merged)
TH2F * fHistoMesonCuts
bookkeeping for meson cuts
Bool_t fUsePtmaxMethodForBG
flag to apply Ptmax method
void SetOpeningAngleCut(Float_t OpeningAngle)
TObjString * fCutString
cut number used for analysis
Double_t GetSidebandMixingLeftHigh() const
Bool_t fDoJetMixing
flag to enable mixing by cluster distance to jet axis
Int_t mode
Definition: anaM.C:41
void SmearVirtualPhoton(AliAODConversionPhoton *photon)
Bool_t fEnableMinOpeningAngleCut
flag to enable min opening angle cut
Int_t fIsMergedClusterCut
flag for merged cluster and di cluster analysis
Bool_t fDoMinPtCut
do min pT cut
Double_t GetSelectionHigh() const
Bool_t MesonIsSelectedPiZeroGammaAngle(AliAODConversionMother *omega, AliAODConversionMother *pi0, AliAODConversionPhoton *gamma, Bool_t DoPiZeroAngleCut, TF1 *maxfit, Double_t lowerFactor, Double_t upperFactor)
Bool_t fEnableMassCut
flag to enable mass cut
Bool_t MesonIsSelectedMC(TParticle *fMCMother, AliMCEvent *mcEvent, Double_t fRapidityShift=0.)
Bool_t fDoLightOutput
switch for running light output, kFALSE -> normal mode, kTRUE -> light mode
static const char * fgkCutNames[kNCuts]
Bool_t fEnableOneCellDistCut
flag to enable 1 cell dist cut
Bool_t SetDCAZMesonPrimVtxCut(Int_t DCAZMesonPrimVtx)
AliConversionMesonCuts(const char *name="MesonCuts", const char *title="Meson Cuts")
Class handling all kinds of selection cuts for Gamma Conversion analysis.
Bool_t MesonIsSelected(AliAODConversionMother *pi0, Bool_t IsSignal=kTRUE, Double_t fRapidityShift=0., Int_t leadingCellID1=0, Int_t leadingCellID2=0)
TH2F * fHistoMesonBGCuts
bookkeeping for meson bg cuts
Bool_t MesonIsSelectedAODMCChiC(AliAODMCParticle *fMCMother, TClonesArray *AODMCArray, Int_t &, Int_t &, Int_t &, Double_t fRapidityShift=0.)
Bool_t SetMaxOpanMesonCut(Int_t maxOpanMesonCut)
Bool_t fDoJetPtMixing
flag to enbale mixing by jet pt bins
Double_t fSelectionLow
lower meson inv mass window for further selection
Bool_t fDoJetQA
switch to run a jet QA analysis
Bool_t fDCARMesonPrimVtxCutOn
cut flag for the maximum distance in R between the production point of the Meson & the primary vertex...
Bool_t fDoSectorJetMixing
flag to enable Sectormixing with jets for meson bg estimation
Bool_t SetSharedElectronCut(Int_t sharedElec)
bool Bool_t
Definition: External.C:53
Bool_t fDCAZMesonPrimVtxCutOn
cut flag for the maximum distance in Z between the production point of the Meson & the primary vertex...
Bool_t SetNDegreesForRotationMethod(Int_t DegreesForRotationMethod)
Bool_t fDoBGProbability
flag to use probability method for meson bg estimation
Bool_t SetMinOpanMesonCut(Int_t minOpanMesonCut)
Bool_t MesonIsSelectedAODMCEtaPiPlPiMiGamma(AliAODMCParticle *fMCMother, TClonesArray *AODMCArray, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelGamma, Double_t fRapidityShift=0)
Bool_t fDoJetRotateMixing
flag to enable mixing by rotating calorimeter
Bool_t MesonIsSelectedByMassCut(AliAODConversionMother *meson, Int_t nominalRange)
Bool_t fUseRotationMethodInBG
flag to apply rotation method for meson bg estimation
Double_t fAlphaMinCutMeson
min value for meson alpha cut
TLorentzVector SmearElectron(TLorentzVector particle)
TList * fHistograms
List of QA histograms.
TString meson
Bool_t SetMesonKind(Int_t mesonKind)
Double_t fDCAGammaGammaCut
cut value for the maximum distance between the two photons [cm]
Bool_t fDCAGammaGammaCutOn
cut flag for the maximum distance between the two photons
Bool_t fDoConvCaloMixing
flag to use enable convcalo mixing in addition to caloconv mixing
Bool_t InitializeCutsFromCutString(const TString analysisCutSelection)
Bool_t SetDCARMesonPrimVtxCut(Int_t DCARMesonPrimVtx)
Bool_t SetMCPSmearing(Int_t useMCPSmearing)
Bool_t SetCut(cutIds cutID, Int_t cut)
Bool_t fDoSphericityMixing
flag to enable Sphericitymixing for meson bg estimation
Double_t fDCAZMesonPrimVtxCut
cut value for the maximum distance in Z between the production point of the Meson & the primary verte...
virtual Bool_t IsSelected(TObject *)