PartCorr split in 2 Base and Dep; coding violations corrected; PHOS geometry can...
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaPi0.h
1 #ifndef ALIANAPI0_H
2 #define ALIANAPI0_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id: $ */
6
7 //_________________________________________________________________________
8 // Class to fill two-photon invariant mass hisograms 
9 // to be used to extract pi0 raw yield.
10 //
11 //-- Author: Dmitri Peressounko (RRC "KI")
12 //-- Adapted to PartCorr frame by Lamia Benhabib (SUBATECH)
13 //-- and Gustavo Conesa (INFN-Frascati)
14
15 //Root
16 class TList;
17 class TH3D ;
18
19 //Analysis
20 class AliAODEvent ;
21 class AliESDEvent ;
22 #include "AliAnaPartCorrBaseClass.h"
23
24 #ifdef __PHOSGEO__
25         class AliPHOSGeoUtils;
26 #endif
27
28 class AliAnaPi0 : public AliAnaPartCorrBaseClass {
29         
30 public: 
31         
32     AliAnaPi0() ; // default ctor
33     AliAnaPi0(const char *name) ; // default ctor
34     AliAnaPi0(const AliAnaPi0 & g) ; // cpy ctor
35     AliAnaPi0 & operator = (const AliAnaPi0 & api0) ;//cpy assignment
36     virtual ~AliAnaPi0() ;//virtual dtor
37         
38     TList * GetCreateOutputObjects(); 
39         
40     void Print(const Option_t * opt) const;
41
42         void Init();
43         void InitParameters();
44
45     //void MakeAnalysisFillAOD() {;} //Not needed
46     void MakeAnalysisFillHistograms();
47         
48 //    void SetBadRunsList(){;} ;     //Set list of runs which can be used for this analysis
49                                                                          //To be defined in future.
50     void SetEtalonHisto(TH3D * h);//Provide etalon of binning for histograms
51         
52     //Setters for parameters of event buffers
53     void SetNCentrBin(Int_t n=5){fNCentrBin=n ;} //number of bins in centrality 
54     void SetNZvertBin(Int_t n=5){fNZvertBin=n ;} //number of bins for vertex position
55     void SetNRPBin(Int_t n=6)   {fNrpBin=n ;}    //number of bins in reaction plain
56     void SetNMaxEvMix(Int_t n=20){fNmaxMixEv=n ;}//Maximal number of events for mixing
57         
58     //Setters for event selection
59     void SetZvertexCut(Float_t zcut=40.){fZvtxCut=zcut ;} //cut on vertex position
60         
61         TString GetCalorimeter()   const {return fCalorimeter ; }
62         void SetCalorimeter(TString det)    {fCalorimeter = det ; }
63         
64 private:
65         Bool_t IsBadRun(Int_t /*iRun*/) const {return kFALSE;} //Tests if this run bad according to private list
66         
67 private:
68         
69         Int_t fNCentrBin ;              //number of bins in event container for centrality
70         Int_t fNZvertBin ;              //number of bins in event container for vertex position
71         Int_t fNrpBin ;                 //number of bins in event container for reaction plain
72         Int_t fNPID ;                   //Number of possible PID combinations
73         Int_t fNmaxMixEv ;              //Maximal number of events stored in buffer for mixing
74         Float_t fZvtxCut ;              //Cut on vertex position
75         TString fCalorimeter ;     //Select Calorimeter for IM
76         
77         TList ** fEventsList ;  //! containers for photons in stored events
78                         
79         //Histograms
80         
81         TH3D * fhEtalon ; //Etalon histo, all distributions will have same binning as this one
82         
83         TH3D ** fhRe1 ;  //!REAL two-photon invariant mass distribution for different centralities and PID 
84         TH3D ** fhMi1 ;  //!MIXED two-photon invariant mass distribution for different centralities and PID
85         TH3D ** fhRe2 ;  //!REAL two-photon invariant mass distribution for different centralities and PID 
86         TH3D ** fhMi2 ;  //!MIXED two-photon invariant mass distribution for different centralities and PID
87         TH3D ** fhRe3 ;  //!REAL two-photon invariant mass distribution for different centralities and PID 
88         TH3D ** fhMi3 ;  //!MIXED two-photon invariant mass distribution for different centralities and PID
89         TH3D * fhEvents;  //!Number of events per centrality, RP, zbin
90         
91         //Acceptance
92         TH1D * fhPrimPt ;    //! Spectrum of Primary 
93         TH1D * fhPrimAccPt ; //! Spectrum of primary with accepted daughters 
94         TH1D * fhPrimY ;     //! Rapidity distribution of primary particles
95         TH1D * fhPrimAccY ;  //! Rapidity distribution of primary with accepted daughters
96         TH1D * fhPrimPhi ;   //! Azimutal distribution of primary particles
97         TH1D * fhPrimAccPhi; //! Azimutal distribution of primary with accepted daughters       
98         
99 #ifdef __PHOSGEO__
100        AliPHOSGeoUtils * fPHOSGeo ; //! PHOS geometry pointer
101 #endif  
102
103         ClassDef(AliAnaPi0,3)
104 } ;
105
106
107 #endif //ALIANAPI0_H
108
109
110