]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrDep/AliAnaShowerParameter.h
hooks for PMD flow analysis
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaShowerParameter.h
1 #ifndef ALIANASHOWERPARAMETER_H
2 #define ALIANASHOWERPARAMETER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id: AliAnaShowerParameter.h 27413 2008-07-18 13:28:12Z gconesab $ */
6
7 //_________________________________________________________________________
8 //
9 // Class cloned from AliAnaPhoton, main aim is shower shape studies
10 // 
11 // 
12 //
13 //-- Author: Jocelyn Mlynarz (WSU) and Gustavo Conesa (LPSC)
14
15 // --- ROOT system ---
16 class TH3F;
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 class AliEMCALGeoUtils;
30 class AliAnaShowerParameter : public AliAnaPartCorrBaseClass {
31
32 public: 
33
34   AliAnaShowerParameter() ; // default ctor
35   AliAnaShowerParameter(const AliAnaShowerParameter & g) ; // cpy ctor
36   AliAnaShowerParameter & operator = (const AliAnaShowerParameter & g) ;//cpy assignment
37   virtual ~AliAnaShowerParameter() ; //virtual dtor
38   
39   TList *  GetCreateOutputObjects();
40
41   void Init();
42
43   TObjString* GetAnalysisCuts();
44
45   void MakeAnalysisFillAOD()  ;
46     
47   void MakeAnalysisFillHistograms() ; 
48   
49   void Print(const Option_t * opt)const;
50   
51   TString GetCalorimeter()   const {return fCalorimeter ; }
52   void SetCalorimeter(TString det)    {fCalorimeter = det ; }
53
54   Bool_t IsTrackMatchRejectionOn()   const {return fRejectTrackMatch ; }
55   void SwitchOnTrackMatchRejection()  {fRejectTrackMatch = kTRUE ; }
56   void SwitchOffTrackMatchRejection() {fRejectTrackMatch = kFALSE ; }  
57
58   Bool_t IsCheckConversionOn()   const {return fCheckConversion ; }
59   void SwitchOnConversionChecker()  {fCheckConversion = kTRUE ; }
60   void SwitchOffConversionChecker() {fCheckConversion = kFALSE ; }  
61         
62   Bool_t AreConvertedPairsInAOD()   const {return fAddConvertedPairsToAOD ; }
63   void SwitchOnAdditionConvertedPairsToAOD()  {fAddConvertedPairsToAOD = kTRUE ; }
64   void SwitchOffAdditionConvertedPairsToAOD() {fAddConvertedPairsToAOD = kFALSE ; }  
65         
66   void InitParameters();
67  
68   void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
69     fMinDist = m1;
70     fMinDist2 = m2;
71     fMinDist3 = m3;
72   }
73         
74   Float_t GetMassCut()    const {return fMassCut ; }
75   void SetMassCut(Float_t m)    {fMassCut = m ; }
76   void SetNClusterCut(Int_t nc)   {fNumClusters = nc;}
77   Int_t GetNClusterCut()   {return fNumClusters;}
78   void SetTimeCut(Double_t min, Double_t max) {fTimeCutMin = min; fTimeCutMax = max;}
79   Double_t GetTimeCutMin() const {return fTimeCutMin;}
80   Double_t GetTimeCutMax() const {return fTimeCutMax;}  
81         
82   private:
83  
84   TString fCalorimeter ; // Calorimeter where the gamma is searched;
85   Float_t fMinDist ;     // Minimal distance to bad channel to accept cluster
86   Float_t fMinDist2;     // Cuts on Minimal distance to study acceptance evaluation
87   Float_t fMinDist3;     // One more cut on distance used for acceptance-efficiency study
88   Bool_t  fRejectTrackMatch ;      //If PID on, reject clusters which have an associated TPC track
89   Bool_t  fCheckConversion;        // Combine pairs of clusters with mass close to 0
90   Bool_t  fAddConvertedPairsToAOD; // Put Converted pairs in AOD
91   Float_t fMassCut;                // Mass cut for the conversion pairs selection
92   Float_t fNCellsCut;
93   Double_t fTimeCutMin  ;    // Remove clusters/cells with time smaller than this value, in ns
94   Double_t fTimeCutMax  ;    // Remove clusters/cells with time larger than this value, in ns
95   AliEMCALGeoUtils * fEMCALGeo;
96   Int_t fNumClusters;        //Cut that selects events with a specific number of clusters
97
98   //Histograms   
99   TH1F * fhNClusters  ; //! Number of clusters per event.
100   TH2F * fhNCellCluster;//! Number of cells per cluster
101   TH1F * fhPtCluster   ; //! Number of clusters vs transerse momentum 
102   TH2F * fhPhiCluster  ; //! Azimuthal angle of clusters vs transerse momentum 
103   TH2F * fhEtaCluster  ; //! Pseudorapidity of clusters vs transerse momentum
104   TH1F * fhDeltaPhiClusters  ; //! Delta phi of cluster pairs
105   TH1F * fhDeltaEtaClusters  ; //! Delta eta of cluster pairs 
106   TH3F * fhLambdaCluster  ; //! Shower parameters of clusters vs transerse momentum
107   TH2F * fhDispersionCluster  ; //! Dispersion of the clusters
108   TH3F * fhELambdaCluster  ; //! Shower parameters of clusters vs Energy
109   TH3F * fhELambdaCellCluster  ; //! Shower parameters of clusters vs Energy
110
111   TH2F * fhNCellPhoton;//! Number of cells per photon
112   TH3F * fhLambdaPhoton  ; //! Shower parameters of photons vs transerse momentum
113   TH2F * fhDispersionPhoton  ; //! Dispersion of the photons
114   TH3F * fhELambdaPhoton  ; //! Shower parameters of photons vs Energy
115   TH3F * fhELambdaCellPhoton  ; //! Shower parameters of photons vs Energy
116
117   TH2F * fhNCellPi0;//! Number of cells per neutral pion
118   TH3F * fhLambdaPi0  ; //! Shower parameters of neutral pions vs transerse momentum
119   TH2F * fhDispersionPi0  ; //! Dispersion of the neutral pions
120   TH3F * fhELambdaPi0  ; //! Shower parameters of neutral pions vs Energy
121   TH3F * fhELambdaCellPi0  ; //! Shower parameters of neutral pions vs Energy
122
123   TH2F * fhNCellChargedHadron;//! Number of cells per charged hadron
124   TH3F * fhLambdaChargedHadron  ; //! Shower parameters of charged hadrons vs transerse momentum
125   TH2F * fhDispersionChargedHadron  ; //! Dispersion of the charged hadrons
126   TH3F * fhELambdaChargedHadron  ; //! Shower parameters of charged hadrons vs Energy
127   TH3F * fhELambdaCellChargedHadron  ; //! Shower parameters of charged hadrons vs Energy
128
129   //MC
130   TH1F * fhDeltaE  ; //! MC-Reco E distribution      
131   TH1F * fhDeltaPt ; //! MC-Reco pT distribution
132   TH1F * fhRatioE  ; //! Reco/MC E distribution      
133   TH1F * fhRatioPt ; //! Reco/MC pT distribution
134   TH2F * fh2E  ; //! E distribution, Reco vs MC
135   TH2F * fh2Pt ; //! pT distribution, Reco vs MC
136   TH2F * fhMCPdg; //! Complete list of PDG Codes.
137   
138   TH1F * fhEMCPhoton;   //! Number of identified gamma 
139   TH2F * fhPhiMCPhoton;  //! Phi of identified gamma
140   TH2F * fhEtaMCPhoton;  //! eta of identified gamma    
141   TH3F * fhLambdaMCPhoton  ; //! Shower parameters of MC photons vs transerse momentum 
142   TH3F * fhPhotTrueE;  // MC truth E vs Recons E vs. Lambda of the cluster for MC photons
143   TH1F * fhRatioEPhoton  ; //! Reco/MC E distribution for photons      
144   
145   TH1F * fhEMCPi0;   //! Number of identified  (single shower) Pi0 
146   TH2F * fhPhiMCPi0;  //! Phi of identified Pi0
147   TH2F * fhEtaMCPi0;  //! eta of identified Pi0 
148   TH3F * fhLambdaMCPi0  ; //! Shower parameters of MC Pi0 vs transerse momentum   
149   TH3F * fhPi0TrueE;  // MC truth E vs Recons E vs. Lambda of the cluster for MC Pi0s
150   TH2F * fhProductionDistance; //! Distance from beam to production of the Pi0
151   TH2F * fhProductionRadius; //! R from beam to Pi0
152   TH2F * fhDecayAngle;//! Decay angle of the Pi0
153   TH1F * fhRatioEPi0  ; //! Reco/MC E distribution for Pi0s
154
155   TH1F * fhEMCPion;   //! Number of identified pions 
156   TH2F * fhPhiMCPion;  //! Phi of identified pions
157   TH2F * fhEtaMCPion;  //! eta of identified pions      
158   TH3F * fhLambdaMCPion; //! Shower parameters of MC pions vs transerse momentum   
159   TH3F * fhPionTrueE;  // MC truth E vs Recons E vs. Lambda of the cluster for MC pions
160   TH1F * fhRatioEPion  ; //! Reco/MC E distribution for charged pions      
161
162   TH1F * fhEMCProton;   //! Number of identified protons
163   TH2F * fhPhiMCProton;  //! Phi of identified protons
164   TH2F * fhEtaMCProton;  //! eta of identified protons  
165   TH3F * fhLambdaMCProton  ; //! Shower parameters of MC protons vs transerse momentum  
166   TH3F * fhProtonTrueE;  // MC truth E vs Recons E vs. Lambda of the cluster for MC protons
167   TH1F * fhRatioEProton  ; //! Reco/MC E distribution for protons       
168
169   TH1F * fhEMCAntiProton;   //! Number of identified antiprotons
170   TH2F * fhPhiMCAntiProton;  //! Phi of identified antiprotons
171   TH2F * fhEtaMCAntiProton;  //! eta of identified antiprotons  
172   TH3F * fhLambdaMCAntiProton  ; //! Shower parameters of MC antiprotons vs transerse momentum 
173   TH3F * fhAntiProtonTrueE;  // MC truth E vs Recons E vs. Lambda of the cluster for MC antiprotons
174   TH1F * fhRatioEAntiProton  ; //! Reco/MC E distribution for antiprotons        
175
176   TH1F * fhEMCNeutron;   //! Number of identified neutrons
177   TH2F * fhPhiMCNeutron;  //! Phi of identified neutrons
178   TH2F * fhEtaMCNeutron;  //! eta of identified neutrons        
179   TH3F * fhLambdaMCNeutron  ; //! Shower parameters of MC neutrons vs transerse momentum
180   TH3F * fhNeutronTrueE;  // MC truth E vs Recons E vs. Lambda of the cluster for MC Neutrons
181   TH1F * fhRatioENeutron  ; //! Reco/MC E distribution for photons         
182
183   TH1F * fhEMCEta;   //! Number of identified etas
184   TH2F * fhPhiMCEta;  //! Phi of identified etas
185   TH2F * fhEtaMCEta;  //! eta of identified etas        
186   TH3F * fhLambdaMCEta  ; //! Shower parameters of MC etas vs transerse momentum 
187
188   TH1D *  fhPrimPt; //! Pi0 pT spectrum truth.
189
190    ClassDef(AliAnaShowerParameter,1)
191
192 } ;
193  
194
195 #endif//AliAnaShowerParameter_H
196
197
198