AliPhysics  e6d2b2b (e6d2b2b)
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 MesonIsSelectedMCPiPlPiMiEta(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0);
117  Bool_t MesonIsSelectedMCPiPlPiMiPiZero(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0);
118  Bool_t MesonIsSelectedMCPiZeroGamma(TParticle *fMCMother, AliMCEvent *mcEvent, Int_t &labelNeutPion, Int_t &labelGamma, Double_t fRapidityShift=0);
119  Bool_t MesonIsSelectedMCChiC(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &, Int_t &, Int_t &, Double_t fRapidityShift=0. );
121  Bool_t DoPiZeroAngleCut, TF1 *maxfit, Double_t lowerFactor, Double_t upperFactor);
122  void PrintCuts();
123  void PrintCutsWithValues();
124 
125  void SetLightOutput( Bool_t flag ){fDoLightOutput = flag; return;}
126  void SetRunningMode(Int_t mode){fMode = mode; return;}
127  void InitCutHistograms(TString name="",Bool_t additionalHists=kFALSE);
130  void SmearParticle(AliAODConversionPhoton * photon);
132  TLorentzVector SmearElectron(TLorentzVector particle);
133 
135 
136  //Cut functions
138  Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0);
139 
141 
142  // Set Individual Cuts
143  Bool_t SetMinPtCut(Int_t PtCut);
144  Bool_t SetMesonKind(Int_t mesonKind);
145  Bool_t SetSelectionWindowCut(Int_t selectionCut);
147  Bool_t SetAlphaMesonCut(Int_t alphaMesonCut);
148  Bool_t SetAlphaMesonMergedCut(Int_t alphaMesonCut);
149  Bool_t SetRapidityMesonCut(Int_t RapidityMesonCut);
150  Bool_t SetBackgroundScheme(Int_t BackgroundScheme);
151  Bool_t SetNDegreesForRotationMethod(Int_t DegreesForRotationMethod);
152  Bool_t SetNumberOfBGEvents(Int_t NumberOfBGEvents);
153  Bool_t SetMCPSmearing(Int_t useMCPSmearing);
154  Bool_t SetSharedElectronCut(Int_t sharedElec);
155  Bool_t SetToCloseV0sCut(Int_t toClose);
156  Bool_t SetDCAGammaGammaCut(Int_t DCAGammaGamma);
157  Bool_t SetDCAZMesonPrimVtxCut(Int_t DCAZMesonPrimVtx);
158  Bool_t SetDCARMesonPrimVtxCut(Int_t DCARMesonPrimVtx);
159  void SetOpeningAngleCut(Float_t OpeningAngle){fOpeningAngle = OpeningAngle;}
160  Bool_t SetMinOpanMesonCut(Int_t minOpanMesonCut);
161  Bool_t SetMaxOpanMesonCut(Int_t maxOpanMesonCut);
163  void SetIsMergedClusterCut(Int_t merged) { fIsMergedClusterCut = merged; return;}
166 
169 
170  // Request Flags
185  Double_t GetMinPt() const {return fMinPt;}
195 
196  protected:
197  TRandom3 fRandom;
200  TObjString* fCutString;
202  // Histograms
213 
214  TF1* fBrem;
215  TF1* fFAlphaCut;
218 
241 
243 
251  Int_t* fElectronLabelArray; //[fElectronLabelArraySize] Array with elec/pos v0 label
253 
277 
278  private:
279 
281  ClassDef(AliConversionMesonCuts,25)
283 };
284 
285 
286 #endif
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 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 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 SetAlphaMesonCut(Int_t alphaMesonCut)
Double_t fAlphaCutMeson
max value for meson alpha cut
float Float_t
Definition: External.C:68
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
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 SetMaxOpanMesonCut(Int_t maxOpanMesonCut)
Double_t fSelectionLow
lower meson inv mass window for further selection
Bool_t fDCARMesonPrimVtxCutOn
cut flag for the maximum distance in R between the production point of the Meson & the primary vertex...
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 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 InitializeCutsFromCutString(const TString analysisCutSelection)
Bool_t SetDCARMesonPrimVtxCut(Int_t DCARMesonPrimVtx)
Bool_t SetMCPSmearing(Int_t useMCPSmearing)
Bool_t SetCut(cutIds cutID, Int_t cut)
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 *)