AliPhysics  5364b50 (5364b50)
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 MesonIsSelectedMCPiPlPiMiPiZero(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0);
117  Bool_t MesonIsSelectedMCPiZeroGamma(TParticle *fMCMother, AliMCEvent *mcEvent, Int_t &labelNeutPion, Int_t &labelGamma, Double_t fRapidityShift=0);
118  Bool_t MesonIsSelectedMCChiC(TParticle *fMCMother,AliMCEvent *mcEvent, Int_t &, Int_t &, Int_t &, Double_t fRapidityShift=0. );
119  Bool_t MesonIsSelectedPiZeroGammaAngle(AliAODConversionMother *omega, AliAODConversionMother *pi0, AliAODConversionPhoton *gamma, Bool_t DoPiZeroAngleCut, TF1 *maxfit, Double_t lowerFactor, Double_t upperFactor);
120  void PrintCuts();
121  void PrintCutsWithValues();
122 
123  void SetLightOutput( Bool_t flag ){fDoLightOutput = flag; return;}
124  void SetRunningMode(Int_t mode){fMode = mode; return;}
125  void InitCutHistograms(TString name="",Bool_t additionalHists=kFALSE);
128  void SmearParticle(AliAODConversionPhoton * photon);
130  TLorentzVector SmearElectron(TLorentzVector particle);
131 
133 
134  //Cut functions
136  Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0);
137 
139 
140  // Set Individual Cuts
141  Bool_t SetMinPtCut(Int_t PtCut);
142  Bool_t SetMesonKind(Int_t mesonKind);
143  Bool_t SetSelectionWindowCut(Int_t selectionCut);
145  Bool_t SetAlphaMesonCut(Int_t alphaMesonCut);
146  Bool_t SetAlphaMesonMergedCut(Int_t alphaMesonCut);
147  Bool_t SetRapidityMesonCut(Int_t RapidityMesonCut);
148  Bool_t SetBackgroundScheme(Int_t BackgroundScheme);
149  Bool_t SetNDegreesForRotationMethod(Int_t DegreesForRotationMethod);
150  Bool_t SetNumberOfBGEvents(Int_t NumberOfBGEvents);
151  Bool_t SetMCPSmearing(Int_t useMCPSmearing);
152  Bool_t SetSharedElectronCut(Int_t sharedElec);
153  Bool_t SetToCloseV0sCut(Int_t toClose);
154  Bool_t SetDCAGammaGammaCut(Int_t DCAGammaGamma);
155  Bool_t SetDCAZMesonPrimVtxCut(Int_t DCAZMesonPrimVtx);
156  Bool_t SetDCARMesonPrimVtxCut(Int_t DCARMesonPrimVtx);
157  void SetOpeningAngleCut(Float_t OpeningAngle){fOpeningAngle = OpeningAngle;}
158  Bool_t SetMinOpanMesonCut(Int_t minOpanMesonCut);
159  Bool_t SetMaxOpanMesonCut(Int_t maxOpanMesonCut);
161  void SetIsMergedClusterCut(Int_t merged) { fIsMergedClusterCut = merged; return;}
164 
167 
168  // Request Flags
182  Double_t GetMinPt() const {return fMinPt;}
192  protected:
196 
198 
199  //cuts
229  TF1* fBrem; //
230  TRandom3 fRandom; //
231  TF1* fFAlphaCut; //
234  Int_t* fElectronLabelArray; //[fElectronLabelArraySize] Array with elec/pos v0 label
257  // Histograms
258  TObjString* fCutString;
270 
271  private:
272 
274  ClassDef(AliConversionMesonCuts,22)
276 };
277 
278 
279 #endif
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
Double_t mass
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)
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)
virtual Bool_t CheckWhetherInMassRange(Double_t mass)
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
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
Bool_t fdoBGProbability
flag to use probability method for meson bg estimation
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 SetMinOpanMesonCut(Int_t minOpanMesonCut)
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.
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 *)