1)Terminate() method implemented in the frame. Simple examples on what to do with...
[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   void Terminate();
65   
66   private:
67   Bool_t IsBadRun(Int_t /*iRun*/) const {return kFALSE;} //Tests if this run bad according to private list
68   
69   private:
70   Int_t fNCentrBin ;            //number of bins in event container for centrality
71   Int_t fNZvertBin ;            //number of bins in event container for vertex position
72   Int_t fNrpBin ;                       //number of bins in event container for reaction plain
73   Int_t fNPID ;                 //Number of possible PID combinations
74   Int_t fNmaxMixEv ;            //Maximal number of events stored in buffer for mixing
75   Float_t fZvtxCut ;            //Cut on vertex position
76   TString fCalorimeter ;     //Select Calorimeter for IM
77   
78   TList ** fEventsList ;        //! containers for photons in stored events
79   
80   //Histograms
81   
82   TH3D * fhEtalon ; //Etalon histo, all distributions will have same binning as this one
83   
84   TH3D ** fhRe1 ;  //!REAL two-photon invariant mass distribution for different centralities and PID 
85   TH3D ** fhMi1 ;  //!MIXED two-photon invariant mass distribution for different centralities and PID
86   TH3D ** fhRe2 ;  //!REAL two-photon invariant mass distribution for different centralities and PID 
87   TH3D ** fhMi2 ;  //!MIXED two-photon invariant mass distribution for different centralities and PID
88   TH3D ** fhRe3 ;  //!REAL two-photon invariant mass distribution for different centralities and PID 
89   TH3D ** fhMi3 ;  //!MIXED two-photon invariant mass distribution for different centralities and PID
90   TH3D * fhEvents;  //!Number of events per centrality, RP, zbin
91   
92   //Acceptance
93   TH1D * fhPrimPt ;    //! Spectrum of Primary 
94   TH1D * fhPrimAccPt ; //! Spectrum of primary with accepted daughters 
95   TH1D * fhPrimY ;     //! Rapidity distribution of primary particles
96   TH1D * fhPrimAccY ;  //! Rapidity distribution of primary with accepted daughters
97   TH1D * fhPrimPhi ;   //! Azimutal distribution of primary particles
98   TH1D * fhPrimAccPhi; //! Azimutal distribution of primary with accepted daughters     
99   
100 #ifdef __PHOSGEO__
101   AliPHOSGeoUtils * fPHOSGeo ; //! PHOS geometry pointer
102 #endif  
103   
104   ClassDef(AliAnaPi0,3)
105 } ;
106
107
108 #endif //ALIANAPI0_H
109
110
111