]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/GammaConv/AliAnalysisTaskPi0Reconstruction.h
changes from gsi svn
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / AliAnalysisTaskPi0Reconstruction.h
CommitLineData
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
22class AliAnalysisTaskPi0Reconstruction : public AliV0ReaderV1{
23public:
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
52protected:
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