]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/PHOSTasks/PHOS_Tagging/AliAnalysisTaskTaggedPhotons.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_Tagging / AliAnalysisTaskTaggedPhotons.h
CommitLineData
213dd723 1#ifndef ALIANALYSISTASKTAGGEDPHOTONS_H
2#define ALIANALYSISTASKTAGGEDPHOTONS_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5//______________________________________________________________________________
6// Analysis for PHOS Tagged Photons
7// marks photons making pi0 with any other photon
8// and calculates necessary corrections for fake pairs and
9// decay partners escaped acceptance. If MC info is present
10// fills set of controll histograms.
11//
12//*-- Dmitry Peresunko
13//////////////////////////////////////////////////////////////////////////////
14
15#include "AliAnalysisTaskSE.h"
92071be9 16class AliAnalysisUtils ;
213dd723 17class AliAODEvent ;
18class THashList ;
19class TH2I ;
20class AliPHOSGeometry;
0b9a6a23 21class AliCaloPhoton;
92071be9 22class AliAODMCParticle ;
b5f58f9c 23class AliVCluster ;
213dd723 24class AliTriggerAnalysis ;
25class TParticle ;
ccfee237 26class AliPHOSTriggerUtils ;
213dd723 27
28class AliAnalysisTaskTaggedPhotons : public AliAnalysisTaskSE {
29
30public:
31 AliAnalysisTaskTaggedPhotons() ;
32 AliAnalysisTaskTaggedPhotons(const char *name) ;
33 AliAnalysisTaskTaggedPhotons(const AliAnalysisTaskTaggedPhotons& ap) ;
34 AliAnalysisTaskTaggedPhotons& operator = (const AliAnalysisTaskTaggedPhotons& ap) ;
35 virtual ~AliAnalysisTaskTaggedPhotons() ;
36
37 virtual void UserCreateOutputObjects();
38 virtual void Init() ;
39 virtual void LocalInit() { Init() ; }
40 virtual void UserExec(Option_t * opt = "") ;
41 virtual void Terminate(Option_t * opt = "") ;
42
92071be9 43 void SetTrigger(Bool_t isPHOSTrig){fIsMB=isPHOSTrig;}
b2a1268b 44 void SetMC(Bool_t isMC=kTRUE){fIsMC=isMC;}
9dffc18a 45 void SetFastMC(void){fIsFastMC=kTRUE;fIsMC=kTRUE; } //same as MC, but bypass event checks
b2a1268b 46 void SetPi0WeightParameters(TArrayD * ar) ;
f2a95c3b 47 void SetDustanceToBad(Float_t cut=2.5){fMinBCDistance=cut;}
213dd723 48
49protected:
50 void FillMCHistos() ;
51 void FillTaggingHistos() ;
52 Int_t GetFiducialArea(const Float_t * pos)const ; //what kind of fiducial area hit the photon
b2a1268b 53 Int_t IsSameParent(const AliCaloPhoton *p1, const AliCaloPhoton *p2) const; //Check MC genealogy; return PDG of parent
92071be9 54 Bool_t IsGoodChannel(Int_t mod, Int_t ix, Int_t iz) ;
17612a19 55 Double_t InPi0Band(Double_t m, Double_t pt)const; //Check if invariant mass is within pi0 peak
213dd723 56 Bool_t TestDisp(Double_t l0, Double_t l1, Double_t e)const ;
57 Bool_t TestTOF(Double_t /*t*/,Double_t /*en*/)const{return kTRUE;}
58 Bool_t TestCharged(Double_t dr,Double_t en)const ;
59 void InitGeometry() ; //read reotation matrixes from AOD/AOD
b3977ac8 60 Int_t EvalIsolation(TLorentzVector * ph,Bool_t isPhoton) ;
213dd723 61 Bool_t TestLambda(Double_t pt,Double_t l1,Double_t l2) ;
0b9a6a23 62 Bool_t TestPID(Int_t iPID, AliCaloPhoton* part) ;
92071be9 63 Double_t PrimaryParticleWeight(AliAODMCParticle * particle) ;
b5f58f9c 64 Int_t FindPrimary(AliVCluster*, Bool_t&);
213dd723 65 void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key
66 void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key
67 void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key
0b9a6a23 68 void FillPIDHistograms(const char * name, const AliCaloPhoton * p) const ;
69 void FillPIDHistograms(const char * name, const AliCaloPhoton * p ,Double_t y) const ;
d94c63d9 70 void FillPIDHistograms(const char * name, const AliCaloPhoton * p , const AliCaloPhoton * p2,Double_t y, Bool_t isReal) const ;
213dd723 71
72private:
73
ccfee237 74 AliPHOSGeometry *fPHOSgeom; //!PHOS geometry
75 THashList * fOutputContainer ; //!List of output histograms
76 TClonesArray *fStack ; //!Pointer to MC stack (AOD)
77 TClonesArray * fTrackEvent ; //!List of tracks in the event
78 TClonesArray * fPHOSEvent ; //!List of tracks in the event
79 TList * fPHOSEvents[10][5] ; //!Previous events for mixing
80 TList * fCurrentMixedList; //! list of previous evetns for given centrality
213dd723 81 AliTriggerAnalysis * fTriggerAnalysis ; //!
92071be9 82 AliAnalysisUtils * fUtils ;
ccfee237 83 AliPHOSTriggerUtils * fPHOSTrigUtils ; //! utils to analyze PHOS trigger
213dd723 84
85 //Fiducial area parameters
86 Float_t fZmax ; //Rectangular
87 Float_t fZmin ; //area
88 Float_t fPhimax ; //covered by
89 Float_t fPhimin ; //full calorimeter
f2a95c3b 90 Float_t fMinBCDistance; //minimal distance to bad channel
3ffb8893 91 Double_t fWeightParamPi0[7] ; //Parameters to calculate weights
213dd723 92 //
93 Double_t fCentrality;
94 Int_t fCentBin ;
ccfee237 95 Bool_t fIsMB ; //which trigger to use
96 Bool_t fIsMC ; //Is this is MC
97 Bool_t fIsFastMC; //This is fast MC, bypass event checks
213dd723 98 TH2I * fPHOSBadMap[6] ;
92071be9 99
ccfee237 100 ClassDef(AliAnalysisTaskTaggedPhotons, 4); // a PHOS photon analysis task
213dd723 101};
102#endif // ALIANALYSISTASKTAGGEDPHOTONS_H