]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/PHOSTasks/PHOS_Tagging/AliAnalysisTaskTaggedPhotons.h
67c5e3aa830553139e63b5acf3fa81fbea8498e0
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_Tagging / AliAnalysisTaskTaggedPhotons.h
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"  
16 class AliAnalysisUtils ;
17 class AliAODEvent ; 
18 class THashList ; 
19 class TH2I ;
20 class AliPHOSGeometry;
21 class AliCaloPhoton;
22 class AliAODMCParticle ;
23 class AliVCluster ;
24 class AliTriggerAnalysis ;
25 class TParticle ;
26
27 class AliAnalysisTaskTaggedPhotons : public AliAnalysisTaskSE {
28
29 public:
30   AliAnalysisTaskTaggedPhotons() ;
31   AliAnalysisTaskTaggedPhotons(const char *name) ;
32   AliAnalysisTaskTaggedPhotons(const AliAnalysisTaskTaggedPhotons& ap) ;   
33   AliAnalysisTaskTaggedPhotons& operator = (const AliAnalysisTaskTaggedPhotons& ap) ;
34   virtual ~AliAnalysisTaskTaggedPhotons() ;
35    
36   virtual void UserCreateOutputObjects(); 
37   virtual void Init() ; 
38   virtual void LocalInit() { Init() ; }
39   virtual void UserExec(Option_t * opt = "") ;
40   virtual void Terminate(Option_t * opt = "") ;
41
42   void SetTrigger(Bool_t isPHOSTrig){fIsMB=isPHOSTrig;}
43   void SetMC(Bool_t isMC=kTRUE){fIsMC=isMC;}
44   void SetPi0WeightParameters(TArrayD * ar) ;
45
46 protected:
47   void    FillMCHistos() ;
48   void    FillTaggingHistos() ;
49   Int_t   GetFiducialArea(const Float_t * pos)const ; //what kind of fiducial area hit the photon
50   Int_t   IsSameParent(const AliCaloPhoton *p1, const AliCaloPhoton *p2) const; //Check MC genealogy; return PDG of parent
51   Bool_t  IsGoodChannel(Int_t mod, Int_t ix, Int_t iz) ;
52   Double_t  InPi0Band(Double_t m, Double_t pt)const; //Check if invariant mass is within pi0 peak
53   Bool_t  TestDisp(Double_t l0, Double_t l1, Double_t e)const  ;
54   Bool_t  TestTOF(Double_t /*t*/,Double_t /*en*/)const{return kTRUE;} 
55   Bool_t  TestCharged(Double_t dr,Double_t en)const ;
56   void    InitGeometry() ;  //read reotation matrixes from AOD/AOD
57   Int_t   EvalIsolation(TLorentzVector * ph,Bool_t isPhoton) ;
58   Bool_t  TestLambda(Double_t pt,Double_t l1,Double_t l2) ;
59   Bool_t  TestPID(Int_t iPID, AliCaloPhoton* part) ;
60   Double_t PrimaryParticleWeight(AliAODMCParticle * particle) ;
61   Int_t   FindPrimary(AliVCluster*, Bool_t&);
62   void FillHistogram(const char * key,Double_t x) const ; //Fill 1D histogram witn name key
63   void FillHistogram(const char * key,Double_t x, Double_t y) const ; //Fill 2D histogram witn name key
64   void FillHistogram(const char * key,Double_t x, Double_t y, Double_t z) const ; //Fill 3D histogram witn name key
65   void FillPIDHistograms(const char * name, const AliCaloPhoton * p) const ;
66   void FillPIDHistograms(const char * name, const AliCaloPhoton * p ,Double_t y) const ;
67   void FillPIDHistograms(const char * name, const AliCaloPhoton * p , const AliCaloPhoton * p2,Double_t y, Bool_t isReal) const ;
68
69 private:
70
71   AliPHOSGeometry  *fPHOSgeom;   //!PHOS geometry
72   THashList *   fOutputContainer ;   //! List of output histograms
73   TClonesArray *fStack ;             //!Pointer to MC stack
74   TClonesArray * fTrackEvent ;   //!List of tracks in the event
75   TClonesArray * fPHOSEvent ;    //!List of tracks in the event
76   TList   * fPHOSEvents[10][5] ; //!Previous events for mixing
77   TList   * fCurrentMixedList;   //! list of previous evetns for given centrality
78   AliTriggerAnalysis * fTriggerAnalysis ; //!
79   AliAnalysisUtils * fUtils ;
80  
81   //Fiducial area parameters
82   Float_t fZmax ;               //Rectangular
83   Float_t fZmin ;               //area
84   Float_t fPhimax ;             //covered by
85   Float_t fPhimin ;             //full calorimeter
86   Double_t fWeightParamPi0[6] ; //Parameters to calculate weights
87   //
88   Double_t fCentrality;
89   Int_t fCentBin ;
90   Bool_t fIsMB ; //which trigger to use
91   Bool_t fIsMC ; //Is this is MC
92   TH2I * fPHOSBadMap[6] ; 
93     
94   ClassDef(AliAnalysisTaskTaggedPhotons, 2);   // a PHOS photon analysis task 
95 };
96 #endif // ALIANALYSISTASKTAGGEDPHOTONS_H