]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/GammaConv/AliAnalysisTaskPi0Reconstruction.h
In order to use the new TPC dEdx information within the common pid classes the new...
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliAnalysisTaskPi0Reconstruction.h
1 #ifndef AliAnalysisTaskPi0Reconstruction_cxx
2 #define AliAnalysisTaskPi0Reconstruction_cxx
3
4 #include "TH1.h"
5 #include "AliESDEvent.h"
6
7 #include "AliAODConversionMother.h"
8 #include "AliConversionPhotonBase.h"
9 #include "AliAODConversionPhoton.h"
10 #include "AliConversionAODBGHandlerRP.h"
11
12 #include "AliAODTrack.h"
13 #include "AliESDtrack.h"
14 #include "AliVTrack.h"
15 #include "AliKFParticle.h"
16 #include "AliAnalysisTaskSE.h"
17 #include "TRandom3.h"
18 #include "TH1.h"
19 #include "AliLog.h"
20 #include "AliV0ReaderV1.h"
21
22 class AliAnalysisTaskPi0Reconstruction : public AliV0ReaderV1{
23 public:
24     AliAnalysisTaskPi0Reconstruction(const char *name);
25     virtual ~AliAnalysisTaskPi0Reconstruction();
26   
27     virtual void   UserCreateOutputObjects();
28     virtual void   UserExec(Option_t *option);
29     virtual void   Terminate(Option_t *);
30
31     // public getter functions
32
33     TClonesArray *GetPi0Candidates(){return fPi0Candidates;}
34     TClonesArray *GetBGPi0s(){return fBGPi0s;}
35     TClonesArray *GetTrueMCPi0s(){return fMCTruePi0s;}
36
37
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;}
51
52 protected:
53
54     Bool_t IsMCMesonInReconstructionAcceptance(TParticle *fMCMother);
55
56     void FindDeltaAODBranchName();
57     void InitializeBGHandler();
58
59     void CalculatePi0Candidates();
60     void CalculateBackground();
61
62     void RotateParticle(AliAODConversionPhoton *gamma=0x0,Double_t angle=0);
63
64     Bool_t GetConversionGammas();
65     Bool_t GetPHOSGammas();
66     Bool_t GetEMCALGammas();
67
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);
72
73     void ProcessMCMesons();
74
75     Bool_t IsMCPhotonReconstructed(TParticle *MDaughter);
76
77     TString     fDeltaAODBranchName;//! File where Gamma Conv AOD is located, if not in default AOD
78     AliConversionAODBGHandlerRP *fBGHandler;
79
80     Double_t *Pi0MassRange;
81     Bool_t kEventMixing;
82     Bool_t fIsHeavyIon;
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;
91     Double_t fAlphaCut;
92     Bool_t kUseOnlyTaggedPhotons;
93     Int_t fNRandomEventsForBGRotation;
94
95     // Histograms
96
97     TH1F *hPi0Cuts;
98     TH1F *hPi0BGCuts;
99     TH1F *hPi0Alpha;
100     TH1F *hPi0AlphaRejected;
101     TH1F *hPi0OpeningAngle;
102     TH1F *hPi0OpeningAngleRejected;
103     TH1F *hPi0Rapidity;
104     TH1F *hPi0RapidityRejected;
105     TH1F **hPi0TRUE;
106     TH2F **hPi0RECOTRUE;
107
108     TH3F *hPool;
109
110     AliAnalysisTaskPi0Reconstruction(const AliAnalysisTaskPi0Reconstruction&); // not implemented
111     AliAnalysisTaskPi0Reconstruction& operator=(const AliAnalysisTaskPi0Reconstruction&); // not implemented
112   
113     ClassDef(AliAnalysisTaskPi0Reconstruction, 1); // example of analysis
114 };
115
116 #endif
117