]>
Commit | Line | Data |
---|---|---|
2eedd4ed | 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 |