1 #ifndef AliAnalysisTaskPi0Reconstruction_cxx
2 #define AliAnalysisTaskPi0Reconstruction_cxx
5 #include "AliESDEvent.h"
7 #include "AliAODConversionMother.h"
8 #include "AliConversionPhotonBase.h"
9 #include "AliAODConversionPhoton.h"
10 #include "AliConversionAODBGHandlerRP.h"
12 #include "AliAODTrack.h"
13 #include "AliESDtrack.h"
14 #include "AliVTrack.h"
15 #include "AliKFParticle.h"
16 #include "AliAnalysisTaskSE.h"
20 #include "AliV0ReaderV1.h"
22 class AliAnalysisTaskPi0Reconstruction : public AliV0ReaderV1{
24 AliAnalysisTaskPi0Reconstruction(const char *name);
25 virtual ~AliAnalysisTaskPi0Reconstruction();
27 virtual void UserCreateOutputObjects();
28 virtual void UserExec(Option_t *option);
29 virtual void Terminate(Option_t *);
31 // public getter functions
33 TClonesArray *GetPi0Candidates(){return fPi0Candidates;}
34 TClonesArray *GetBGPi0s(){return fBGPi0s;}
35 TClonesArray *GetTrueMCPi0s(){return fMCTruePi0s;}
38 // public Set Functions
39 void SetBGHandler(AliConversionAODBGHandlerRP *bgHandler);
40 void SetDefaultBGHandler();
41 void SetDeltaAODBranchName(TString string) { fDeltaAODBranchName = string;AliInfo(Form("Set DeltaAOD BranchName to: %s",fDeltaAODBranchName.Data()));}
42 void SetPi0MassRange(Double_t low,Double_t up){Pi0MassRange[0]=low;Pi0MassRange[1]=up;};
43 void SetEventMixing(Bool_t k){kEventMixing=k;};
44 void SetIsHeavyIon(Bool_t k){fIsHeavyIon=k;};
45 void SetUseSatelliteAODs(Bool_t k){kUseSatelliteAODs=k;};
46 void SetInvMassRange(Double_t range[2]){Pi0MassRange[0]=range[0];Pi0MassRange[1]=range[1];AliInfo(Form("Set Invariant Mass Range: %f - %f",Pi0MassRange[0],Pi0MassRange[1]));};
47 void SetRapidityCut(Double_t maxrapidity){fRapidityCut=maxrapidity;AliInfo(Form(" Rapidity Range for Pi0: %f - %f",-fRapidityCut,fRapidityCut));};
48 void SetAlphaCut(Double_t maxalpha){fAlphaCut=maxalpha;AliInfo(Form("Alpha Cut: %f",fAlphaCut));};
49 void SetUseOnlyTaggedPhotons(Bool_t ktag){kUseOnlyTaggedPhotons=ktag;}
50 void SetNRotations(Int_t nrot){fNRandomEventsForBGRotation=nrot;}
54 Bool_t IsMCMesonInReconstructionAcceptance(TParticle *fMCMother);
56 void FindDeltaAODBranchName();
57 void InitializeBGHandler();
59 void CalculatePi0Candidates();
60 void CalculateBackground();
62 void RotateParticle(AliAODConversionPhoton *gamma=0x0,Double_t angle=0);
64 Bool_t GetConversionGammas();
65 Bool_t GetPHOSGammas();
66 Bool_t GetEMCALGammas();
68 AliVTrack *GetTrack(Int_t label=-1);
69 Bool_t IsTruePi0(AliAODConversionMother *);
70 Bool_t CheckGamma(AliAODConversionPhoton *gamma=0x0);
71 Bool_t CheckPi0(AliAODConversionMother *pi0=0x0,Bool_t IsSignal=kTRUE);
73 void ProcessMCMesons();
75 Bool_t IsMCPhotonReconstructed(TParticle *MDaughter);
77 TString fDeltaAODBranchName;//! File where Gamma Conv AOD is located, if not in default AOD
78 AliConversionAODBGHandlerRP *fBGHandler;
80 Double_t *Pi0MassRange;
83 TRandom3 *fRandomizer;
84 Bool_t kUseSatelliteAODs;
85 TClonesArray *fPHOSGammas;
86 TClonesArray *fEMCALGammas;
87 TClonesArray *fPi0Candidates;
88 TClonesArray *fBGPi0s;
89 TClonesArray *fMCTruePi0s;
90 Double_t fRapidityCut;
92 Bool_t kUseOnlyTaggedPhotons;
93 Int_t fNRandomEventsForBGRotation;
100 TH1F *hPi0AlphaRejected;
101 TH1F *hPi0OpeningAngle;
102 TH1F *hPi0OpeningAngleRejected;
104 TH1F *hPi0RapidityRejected;
110 AliAnalysisTaskPi0Reconstruction(const AliAnalysisTaskPi0Reconstruction&); // not implemented
111 AliAnalysisTaskPi0Reconstruction& operator=(const AliAnalysisTaskPi0Reconstruction&); // not implemented
113 ClassDef(AliAnalysisTaskPi0Reconstruction, 1); // example of analysis