#ifndef ALICONVERSIONMESONCUTS_H
#define ALICONVERSIONMESONCUTS_H
#include "AliAODpidUtil.h"
#include "AliConversionPhotonBase.h"
#include "AliAODConversionMother.h"
#include "AliAODTrack.h"
#include "AliESDtrack.h"
#include "AliVTrack.h"
#include "AliAODTrack.h"
#include "AliStack.h"
#include "AliAnalysisCuts.h"
#include "TH1F.h"
#include "AliAODMCParticle.h"
class AliESDEvent;
class AliAODEvent;
class AliConversionPhotonBase;
class AliKFVertex;
class TH1F;
class TH2F;
class AliPIDResponse;
class AliAnalysisCuts;
class iostream;
class TList;
class AliAnalysisManager;
using namespace std;
class AliConversionMesonCuts : public AliAnalysisCuts {
public:
enum cutIds {
kMesonKind,
kBackgroundScheme,
kNumberOfBGEvents,
kDegreesForRotationMethod,
kRapidityMesonCut,
kRCut,
kalphaMesonCut,
kSelectionCut,
kElecShare,
kToCloseV0s,
kuseMCPSmearing,
kDcaGammaGamma,
kDcaRPrimVtx,
kDcaZPrimVtx,
kNCuts
};
Bool_t SetCutIds(TString cutString);
Int_t fCuts[kNCuts];
Bool_t SetCut(cutIds cutID, Int_t cut);
Bool_t UpdateCutString();
static const char * fgkCutNames[kNCuts];
Bool_t InitializeCutsFromCutString(const TString analysisCutSelection);
void FillElectonLabelArray(AliAODConversionPhoton* photon, Int_t nV0);
AliConversionMesonCuts(const char *name="MesonCuts", const char * title="Meson Cuts");
AliConversionMesonCuts(const AliConversionMesonCuts&);
AliConversionMesonCuts& operator=(const AliConversionMesonCuts&);
virtual ~AliConversionMesonCuts();
virtual Bool_t IsSelected(TObject* ){return kTRUE;}
virtual Bool_t IsSelected(TList* ) {return kTRUE;}
TString GetCutNumber();
Bool_t MesonIsSelected(AliAODConversionMother *pi0,Bool_t IsSignal=kTRUE, Double_t fRapidityShift=0.);
Bool_t MesonIsSelectedMC(TParticle *fMCMother,AliStack *fMCStack, Double_t fRapidityShift=0.);
Bool_t MesonIsSelectedAODMC(AliAODMCParticle *MCMother,TClonesArray *AODMCArray, Double_t fRapidityShift=0.);
Bool_t MesonIsSelectedMCDalitz(TParticle *fMCMother,AliStack *fMCStack, Int_t &labelelectron, Int_t &labelpositron, Int_t &labelgamma,Double_t fRapidityShift=0.);
Bool_t MesonIsSelectedMCEtaPiPlPiMiGamma(TParticle *fMCMother,AliStack *fMCStack, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelGamma, Double_t fRapidityShift=0);
Bool_t MesonIsSelectedMCPiPlPiMiPiZero(TParticle *fMCMother,AliStack *fMCStack, Int_t &labelNegPion, Int_t &labelPosPion, Int_t &labelNeutPion, Double_t fRapidityShift=0);
Bool_t MesonIsSelectedMCChiC(TParticle *fMCMother,AliStack *fMCStack, Int_t &, Int_t &, Int_t &, Double_t fRapidityShift=0. );
void PrintCuts();
void PrintCutsWithValues();
void InitCutHistograms(TString name="",Bool_t additionalHists=kFALSE);
void SetFillCutHistograms(TString name=""){if(!fHistograms){InitCutHistograms(name);};}
TList *GetCutHistograms(){return fHistograms;}
void SmearParticle(AliAODConversionPhoton * photon);
void SmearVirtualPhoton(AliAODConversionPhoton* photon);
TLorentzVector SmearElectron(TLorentzVector particle);
Bool_t RejectSharedElectronV0s(AliAODConversionPhoton* photon, Int_t nV0, Int_t nV0s);
Bool_t RejectToCloseV0s(AliAODConversionPhoton* photon, TList *photons, Int_t nV0);
Bool_t SetRCut(Int_t RCut);
Bool_t SetMesonKind(Int_t mesonKind);
Bool_t SetSelectionWindowCut(Int_t selectionCut);
Bool_t SetAlphaMesonCut(Int_t alphaMesonCut);
Bool_t SetRapidityMesonCut(Int_t RapidityMesonCut);
Bool_t SetBackgroundScheme(Int_t BackgroundScheme);
Bool_t SetNDegreesForRotationMethod(Int_t DegreesForRotationMethod);
Bool_t SetNumberOfBGEvents(Int_t NumberOfBGEvents);
Bool_t SetMCPSmearing(Int_t useMCPSmearing);
Bool_t SetSharedElectronCut(Int_t sharedElec);
Bool_t SetToCloseV0sCut(Int_t toClose);
Bool_t SetDCAGammaGammaCut(Int_t DCAGammaGamma);
Bool_t SetDCAZMesonPrimVtxCut(Int_t DCAZMesonPrimVtx);
Bool_t SetDCARMesonPrimVtxCut(Int_t DCARMesonPrimVtx);
Bool_t UseRotationMethod(){return fUseRotationMethodInBG;}
Bool_t UseTrackMultiplicity(){return fUseTrackMultiplicityForBG;}
Int_t GetNumberOfBGEvents(){return fNumberOfBGEvents;}
Int_t NDegreesRotation(){return fnDegreeRotationPMForBG;}
Bool_t DoBGCalculation(){return fDoBG;}
Bool_t DoBGProbability(){return fdoBGProbability;}
Bool_t UseElecSharingCut(){return fDoSharedElecCut;}
Bool_t UseToCloseV0sCut(){return fDoToCloseV0sCut;}
Bool_t UseMCPSmearing(){return fUseMCPSmearing;}
Int_t BackgroundHandlerType(){return fBackgroundHandler;}
Double_t GetSelectionLow() const {return fSelectionLow;}
Double_t GetSelectionHigh() const {return fSelectionHigh;}
protected:
TList *fHistograms;
Int_t fMesonKind;
Double_t fMaxR;
Double_t fSelectionLow;
Double_t fSelectionHigh;
Double_t fAlphaMinCutMeson;
Double_t fAlphaCutMeson;
Double_t fRapidityCutMeson;
Bool_t fUseRotationMethodInBG;
Bool_t fDoBG;
Bool_t fdoBGProbability;
Bool_t fUseTrackMultiplicityForBG;
Int_t fnDegreeRotationPMForBG;
Int_t fNumberOfBGEvents;
Float_t fOpeningAngle;
Bool_t fDoToCloseV0sCut;
Double_t fminV0Dist;
Bool_t fDoSharedElecCut;
Bool_t fUseMCPSmearing;
Double_t fPBremSmearing;
Double_t fPSigSmearing;
Double_t fPSigSmearingCte;
TF1* fBrem;
TRandom3 fRandom;
TF1* fFAlphaCut;
Bool_t fAlphaPtDepCut;
Int_t fElectronLabelArraySize;
Int_t* fElectronLabelArray;
Double_t fDCAGammaGammaCut;
Double_t fDCAZMesonPrimVtxCut;
Double_t fDCARMesonPrimVtxCut;
Bool_t fDCAGammaGammaCutOn;
Bool_t fDCAZMesonPrimVtxCutOn;
Bool_t fDCARMesonPrimVtxCutOn;
Int_t fBackgroundHandler;
TObjString* fCutString;
TH1F* hMesonCuts;
TH1F* hMesonBGCuts;
TH1F* hDCAGammaGammaMesonBefore;
TH1F* hDCAZMesonPrimVtxBefore;
TH1F* hDCARMesonPrimVtxBefore;
TH1F* hDCAGammaGammaMesonAfter;
TH2F* hDCAZMesonPrimVtxAfter;
TH1F* hDCARMesonPrimVtxAfter;
private:
ClassDef(AliConversionMesonCuts,7)
};
#endif
AliConversionMesonCuts.h:1 AliConversionMesonCuts.h:2 AliConversionMesonCuts.h:3 AliConversionMesonCuts.h:4 AliConversionMesonCuts.h:5 AliConversionMesonCuts.h:6 AliConversionMesonCuts.h:7 AliConversionMesonCuts.h:8 AliConversionMesonCuts.h:9 AliConversionMesonCuts.h:10 AliConversionMesonCuts.h:11 AliConversionMesonCuts.h:12 AliConversionMesonCuts.h:13 AliConversionMesonCuts.h:14 AliConversionMesonCuts.h:15 AliConversionMesonCuts.h:16 AliConversionMesonCuts.h:17 AliConversionMesonCuts.h:18 AliConversionMesonCuts.h:19 AliConversionMesonCuts.h:20 AliConversionMesonCuts.h:21 AliConversionMesonCuts.h:22 AliConversionMesonCuts.h:23 AliConversionMesonCuts.h:24 AliConversionMesonCuts.h:25 AliConversionMesonCuts.h:26 AliConversionMesonCuts.h:27 AliConversionMesonCuts.h:28 AliConversionMesonCuts.h:29 AliConversionMesonCuts.h:30 AliConversionMesonCuts.h:31 AliConversionMesonCuts.h:32 AliConversionMesonCuts.h:33 AliConversionMesonCuts.h:34 AliConversionMesonCuts.h:35 AliConversionMesonCuts.h:36 AliConversionMesonCuts.h:37 AliConversionMesonCuts.h:38 AliConversionMesonCuts.h:39 AliConversionMesonCuts.h:40 AliConversionMesonCuts.h:41 AliConversionMesonCuts.h:42 AliConversionMesonCuts.h:43 AliConversionMesonCuts.h:44 AliConversionMesonCuts.h:45 AliConversionMesonCuts.h:46 AliConversionMesonCuts.h:47 AliConversionMesonCuts.h:48 AliConversionMesonCuts.h:49 AliConversionMesonCuts.h:50 AliConversionMesonCuts.h:51 AliConversionMesonCuts.h:52 AliConversionMesonCuts.h:53 AliConversionMesonCuts.h:54 AliConversionMesonCuts.h:55 AliConversionMesonCuts.h:56 AliConversionMesonCuts.h:57 AliConversionMesonCuts.h:58 AliConversionMesonCuts.h:59 AliConversionMesonCuts.h:60 AliConversionMesonCuts.h:61 AliConversionMesonCuts.h:62 AliConversionMesonCuts.h:63 AliConversionMesonCuts.h:64 AliConversionMesonCuts.h:65 AliConversionMesonCuts.h:66 AliConversionMesonCuts.h:67 AliConversionMesonCuts.h:68 AliConversionMesonCuts.h:69 AliConversionMesonCuts.h:70 AliConversionMesonCuts.h:71 AliConversionMesonCuts.h:72 AliConversionMesonCuts.h:73 AliConversionMesonCuts.h:74 AliConversionMesonCuts.h:75 AliConversionMesonCuts.h:76 AliConversionMesonCuts.h:77 AliConversionMesonCuts.h:78 AliConversionMesonCuts.h:79 AliConversionMesonCuts.h:80 AliConversionMesonCuts.h:81 AliConversionMesonCuts.h:82 AliConversionMesonCuts.h:83 AliConversionMesonCuts.h:84 AliConversionMesonCuts.h:85 AliConversionMesonCuts.h:86 AliConversionMesonCuts.h:87 AliConversionMesonCuts.h:88 AliConversionMesonCuts.h:89 AliConversionMesonCuts.h:90 AliConversionMesonCuts.h:91 AliConversionMesonCuts.h:92 AliConversionMesonCuts.h:93 AliConversionMesonCuts.h:94 AliConversionMesonCuts.h:95 AliConversionMesonCuts.h:96 AliConversionMesonCuts.h:97 AliConversionMesonCuts.h:98 AliConversionMesonCuts.h:99 AliConversionMesonCuts.h:100 AliConversionMesonCuts.h:101 AliConversionMesonCuts.h:102 AliConversionMesonCuts.h:103 AliConversionMesonCuts.h:104 AliConversionMesonCuts.h:105 AliConversionMesonCuts.h:106 AliConversionMesonCuts.h:107 AliConversionMesonCuts.h:108 AliConversionMesonCuts.h:109 AliConversionMesonCuts.h:110 AliConversionMesonCuts.h:111 AliConversionMesonCuts.h:112 AliConversionMesonCuts.h:113 AliConversionMesonCuts.h:114 AliConversionMesonCuts.h:115 AliConversionMesonCuts.h:116 AliConversionMesonCuts.h:117 AliConversionMesonCuts.h:118 AliConversionMesonCuts.h:119 AliConversionMesonCuts.h:120 AliConversionMesonCuts.h:121 AliConversionMesonCuts.h:122 AliConversionMesonCuts.h:123 AliConversionMesonCuts.h:124 AliConversionMesonCuts.h:125 AliConversionMesonCuts.h:126 AliConversionMesonCuts.h:127 AliConversionMesonCuts.h:128 AliConversionMesonCuts.h:129 AliConversionMesonCuts.h:130 AliConversionMesonCuts.h:131 AliConversionMesonCuts.h:132 AliConversionMesonCuts.h:133 AliConversionMesonCuts.h:134 AliConversionMesonCuts.h:135 AliConversionMesonCuts.h:136 AliConversionMesonCuts.h:137 AliConversionMesonCuts.h:138 AliConversionMesonCuts.h:139 AliConversionMesonCuts.h:140 AliConversionMesonCuts.h:141 AliConversionMesonCuts.h:142 AliConversionMesonCuts.h:143 AliConversionMesonCuts.h:144 AliConversionMesonCuts.h:145 AliConversionMesonCuts.h:146 AliConversionMesonCuts.h:147 AliConversionMesonCuts.h:148 AliConversionMesonCuts.h:149 AliConversionMesonCuts.h:150 AliConversionMesonCuts.h:151 AliConversionMesonCuts.h:152 AliConversionMesonCuts.h:153 AliConversionMesonCuts.h:154 AliConversionMesonCuts.h:155 AliConversionMesonCuts.h:156 AliConversionMesonCuts.h:157 AliConversionMesonCuts.h:158 AliConversionMesonCuts.h:159 AliConversionMesonCuts.h:160 AliConversionMesonCuts.h:161 AliConversionMesonCuts.h:162 AliConversionMesonCuts.h:163 AliConversionMesonCuts.h:164 AliConversionMesonCuts.h:165 AliConversionMesonCuts.h:166 AliConversionMesonCuts.h:167 AliConversionMesonCuts.h:168 AliConversionMesonCuts.h:169 AliConversionMesonCuts.h:170 AliConversionMesonCuts.h:171 AliConversionMesonCuts.h:172 AliConversionMesonCuts.h:173 AliConversionMesonCuts.h:174 AliConversionMesonCuts.h:175 AliConversionMesonCuts.h:176 AliConversionMesonCuts.h:177 AliConversionMesonCuts.h:178 AliConversionMesonCuts.h:179 AliConversionMesonCuts.h:180 AliConversionMesonCuts.h:181 AliConversionMesonCuts.h:182 AliConversionMesonCuts.h:183 AliConversionMesonCuts.h:184 AliConversionMesonCuts.h:185