]>
Commit | Line | Data |
---|---|---|
1c5acb87 | 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 | ||
e5dbdaf0 | 24 | class AliPHOSGeoUtils; |
25 | class AliEMCALGeoUtils; | |
591cc579 | 26 | |
1c5acb87 | 27 | class AliAnaPi0 : public AliAnaPartCorrBaseClass { |
6639984f | 28 | |
29 | public: | |
30 | ||
31 | AliAnaPi0() ; // default ctor | |
32 | AliAnaPi0(const char *name) ; // default ctor | |
33 | AliAnaPi0(const AliAnaPi0 & g) ; // cpy ctor | |
34 | AliAnaPi0 & operator = (const AliAnaPi0 & api0) ;//cpy assignment | |
35 | virtual ~AliAnaPi0() ;//virtual dtor | |
36 | ||
37 | TList * GetCreateOutputObjects(); | |
38 | ||
39 | void Print(const Option_t * opt) const; | |
40 | ||
41 | void Init(); | |
42 | void InitParameters(); | |
43 | ||
44 | //void MakeAnalysisFillAOD() {;} //Not needed | |
45 | void MakeAnalysisFillHistograms(); | |
46 | ||
47 | // void SetBadRunsList(){;} ; //Set list of runs which can be used for this analysis | |
48 | //To be defined in future. | |
49 | void SetEtalonHisto(TH3D * h);//Provide etalon of binning for histograms | |
50 | ||
51 | //Setters for parameters of event buffers | |
52 | void SetNCentrBin(Int_t n=5){fNCentrBin=n ;} //number of bins in centrality | |
53 | void SetNZvertBin(Int_t n=5){fNZvertBin=n ;} //number of bins for vertex position | |
54 | void SetNRPBin(Int_t n=6) {fNrpBin=n ;} //number of bins in reaction plain | |
55 | void SetNMaxEvMix(Int_t n=20){fNmaxMixEv=n ;}//Maximal number of events for mixing | |
56 | ||
57 | //Setters for event selection | |
58 | void SetZvertexCut(Float_t zcut=40.){fZvtxCut=zcut ;} //cut on vertex position | |
59 | ||
60 | TString GetCalorimeter() const {return fCalorimeter ; } | |
61 | void SetCalorimeter(TString det) {fCalorimeter = det ; } | |
62 | ||
c0649ccf | 63 | void SetEMCALGeometryName(TString name) { fEMCALGeoName = name ; } |
64 | TString EMCALGeometryName() const { return fEMCALGeoName ; } | |
65 | ||
a5cc4f03 | 66 | void Terminate(TList* outputList); |
67 | void ReadHistograms(TList * outputList); //Fill histograms with histograms in ouput list, needed in Terminate. | |
68 | ||
6921fa00 | 69 | Int_t GetModuleNumber(AliAODPWG4Particle * particle); |
70 | void SetNumberOfModules(Int_t nmod) {fNModules = nmod;} | |
71 | ||
8d5beeb8 | 72 | Int_t GetNPID() const {return fNPID ; } |
73 | void SetNPID(Int_t n) {fNPID = n ; } | |
74 | ||
6639984f | 75 | private: |
76 | Bool_t IsBadRun(Int_t /*iRun*/) const {return kFALSE;} //Tests if this run bad according to private list | |
77 | ||
78 | private: | |
c0649ccf | 79 | Int_t fNCentrBin ; // Number of bins in event container for centrality |
80 | Int_t fNZvertBin ; // Number of bins in event container for vertex position | |
81 | Int_t fNrpBin ; // Number of bins in event container for reaction plain | |
82 | Int_t fNPID ; // Number of possible PID combinations | |
83 | Int_t fNmaxMixEv ; // Maximal number of events stored in buffer for mixing | |
84 | Float_t fZvtxCut ; // Cut on vertex position | |
85 | TString fCalorimeter ; // Select Calorimeter for IM | |
86 | TString fEMCALGeoName; // Name of geometry to use. | |
6921fa00 | 87 | Int_t fNModules ; // Number of EMCAL/PHOS modules, set as many histogras as modules |
c0649ccf | 88 | |
89 | TList ** fEventsList ; //! containers for photons in stored events | |
6639984f | 90 | |
91 | //Histograms | |
92 | ||
93 | TH3D * fhEtalon ; //Etalon histo, all distributions will have same binning as this one | |
94 | ||
6921fa00 | 95 | TH3D ** fhReMod ; //!REAL two-photon invariant mass distribution for different calorimeter modules. |
96 | ||
6639984f | 97 | TH3D ** fhRe1 ; //!REAL two-photon invariant mass distribution for different centralities and PID |
98 | TH3D ** fhMi1 ; //!MIXED two-photon invariant mass distribution for different centralities and PID | |
99 | TH3D ** fhRe2 ; //!REAL two-photon invariant mass distribution for different centralities and PID | |
100 | TH3D ** fhMi2 ; //!MIXED two-photon invariant mass distribution for different centralities and PID | |
101 | TH3D ** fhRe3 ; //!REAL two-photon invariant mass distribution for different centralities and PID | |
102 | TH3D ** fhMi3 ; //!MIXED two-photon invariant mass distribution for different centralities and PID | |
103 | TH3D * fhEvents; //!Number of events per centrality, RP, zbin | |
6921fa00 | 104 | |
6639984f | 105 | //Acceptance |
106 | TH1D * fhPrimPt ; //! Spectrum of Primary | |
107 | TH1D * fhPrimAccPt ; //! Spectrum of primary with accepted daughters | |
108 | TH1D * fhPrimY ; //! Rapidity distribution of primary particles | |
109 | TH1D * fhPrimAccY ; //! Rapidity distribution of primary with accepted daughters | |
110 | TH1D * fhPrimPhi ; //! Azimutal distribution of primary particles | |
111 | TH1D * fhPrimAccPhi; //! Azimutal distribution of primary with accepted daughters | |
112 | ||
e5dbdaf0 | 113 | AliPHOSGeoUtils * fPHOSGeo ; //! PHOS geometry pointer |
591cc579 | 114 | AliEMCALGeoUtils * fEMCALGeo ; //! EMCAL geometry pointer |
591cc579 | 115 | |
6921fa00 | 116 | ClassDef(AliAnaPi0,5) |
1c5acb87 | 117 | } ; |
118 | ||
119 | ||
120 | #endif //ALIANAPI0_H | |
121 | ||
122 | ||
123 |