f23cde169cb5cab877f9423d7b91d5489f8a6f70
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaPhoton.h
1 #ifndef ALIANAPHOTON_H
2 #define ALIANAPHOTON_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id: AliAnaPhoton.h 27413 2008-07-18 13:28:12Z gconesab $ */
6
7 //_________________________________________________________________________
8 //
9 // Class for the photon identification.
10 // Clusters from calorimeters are identified as photons
11 // and kept in the AOD. Few histograms produced.
12 //
13
14 //-- Author: Gustavo Conesa (INFN-LNF)
15
16 // --- ROOT system ---
17 class TH2F ;
18 class TH1F;
19 class TString ;
20
21 // --- ANALYSIS system ---
22 #include "AliAnaPartCorrBaseClass.h"
23 //#include "AliStack.h"
24 //#include "TParticle.h"
25 class AliStack;
26 class TParticle;
27
28 class TList ;
29
30 class AliAnaPhoton : public AliAnaPartCorrBaseClass {
31
32 public: 
33
34   AliAnaPhoton() ; // default ctor
35   AliAnaPhoton(const AliAnaPhoton & g) ; // cpy ctor
36   AliAnaPhoton & operator = (const AliAnaPhoton & g) ;//cpy assignment
37   virtual ~AliAnaPhoton() ; //virtual dtor
38   
39   TList *  GetCreateOutputObjects();
40
41   void Init();
42
43   void MakeAnalysisFillAOD()  ;
44   
45   void MakeAnalysisFillHistograms() ; 
46   
47   void Print(const Option_t * opt)const;
48   
49   TString GetCalorimeter()   const {return fCalorimeter ; }
50   void SetCalorimeter(TString det)    {fCalorimeter = det ; }
51
52   Bool_t IsTrackMatchRejectionOn()   const {return fRejectTrackMatch ; }
53   void SwitchOnTrackMatchRejection()  {fRejectTrackMatch = kTRUE ; }
54   void SwitchOffTrackMatchRejection() {fRejectTrackMatch = kFALSE ; }  
55
56   Bool_t IsCheckConversionOn()   const {return fCheckConversion ; }
57   void SwitchOnConversionChecker()  {fCheckConversion = kTRUE ; }
58   void SwitchOffConversionChecker() {fCheckConversion = kFALSE ; }  
59         
60   Bool_t AreConvertedPairsInAOD()   const {return fAddConvertedPairsToAOD ; }
61   void SwitchOnAdditionConvertedPairsToAOD()  {fAddConvertedPairsToAOD = kTRUE ; }
62   void SwitchOffAdditionConvertedPairsToAOD() {fAddConvertedPairsToAOD = kFALSE ; }  
63         
64   void InitParameters();
65  
66   void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
67     fMinDist = m1;
68     fMinDist2 = m2;
69     fMinDist3 = m3;
70   }
71         
72   Float_t GetMassCut()    const {return fMassCut ; }
73   void SetMassCut(Float_t m)    {fMassCut = m ; }
74         
75   private:
76  
77   TString fCalorimeter ; // Calorimeter where the gamma is searched;
78   Float_t fMinDist ;     // Minimal distance to bad channel to accept cluster
79   Float_t fMinDist2;     // Cuts on Minimal distance to study acceptance evaluation
80   Float_t fMinDist3;     // One more cut on distance used for acceptance-efficiency study
81   Bool_t  fRejectTrackMatch ;      //If PID on, reject clusters which have an associated TPC track
82   Bool_t  fCheckConversion;        // Combine pairs of clusters with mass close to 0
83   Bool_t  fAddConvertedPairsToAOD; // Put Converted pairs in AOD
84   Float_t fMassCut;                // Mass cut for the conversion pairs selection
85         
86   //Histograms  
87   TH1F * fhPtPhoton   ; //! Number of identified photon vs transerse momentum 
88   TH2F * fhPhiPhoton  ; //! Azimuthal angle of identified  photon vs transerse momentum 
89   TH2F * fhEtaPhoton  ; //! Pseudorapidity of identified  photon vs transerse momentum 
90                 
91   //MC
92   TH1F * fhDeltaE  ; //! MC-Reco E distribution      
93   TH1F * fhDeltaPt ; //! MC-Reco pT distribution
94   TH1F * fhRatioE  ; //! Reco/MC E distribution      
95   TH1F * fhRatioPt ; //! Reco/MC pT distribution
96   TH2F * fh2E  ; //! E distribution, Reco vs MC
97   TH2F * fh2Pt ; //! pT distribution, Reco vs MC
98   
99   TH1F * fhPtMCPhoton;   //! Number of identified gamma 
100   TH2F * fhPhiMCPhoton;  //! Phi of identified gamma
101   TH2F * fhEtaMCPhoton;  //! eta of identified gamma    
102         
103   TH1F * fhPtPrompt;   //! Number of identified prompt gamma 
104   TH2F * fhPhiPrompt;  //! Phi of identified  prompt gamma
105   TH2F * fhEtaPrompt;  //! eta of identified  prompt gamma
106
107   TH1F * fhPtFragmentation;   //! Number of identified fragmentation gamma 
108   TH2F * fhPhiFragmentation;  //! Phi of identified  fragmentation gamma
109   TH2F * fhEtaFragmentation;  //! eta of identified  fragmentation gamma
110
111   TH1F * fhPtISR;   //! Number of identified initial state radiation gamma 
112   TH2F * fhPhiISR;  //! Phi of identified initial state radiation gamma
113   TH2F * fhEtaISR;  //! eta of identified initial state radiation gamma
114
115   TH1F * fhPtPi0Decay;   //! Number of identified Pi0Decay gamma 
116   TH2F * fhPhiPi0Decay;  //! Phi of identified  Pi0Decay gamma
117   TH2F * fhEtaPi0Decay;  //! eta of identified  Pi0Decay gamma
118
119   TH1F * fhPtOtherDecay;   //! Number of identified OtherDecay gamma 
120   TH2F * fhPhiOtherDecay;  //! Phi of identified  OtherDecay gamma
121   TH2F * fhEtaOtherDecay;  //! eta of identified  OtherDecay gamma
122
123   TH1F * fhPtConversion;   //! Number of identified Conversion gamma 
124   TH2F * fhPhiConversion;  //! Phi of identified  Conversion gamma
125   TH2F * fhEtaConversion;  //! eta of identified  Conversion gamma
126
127   TH1F * fhPtUnknown;   //! Number of identified Unknown gamma 
128   TH2F * fhPhiUnknown;  //! Phi of identified  Unknown gamma
129   TH2F * fhEtaUnknown;  //! eta of identified  Unknown gamma
130
131    ClassDef(AliAnaPhoton,6)
132
133 } ;
134  
135
136 #endif//ALIANAPHOTON_H
137
138
139