]>
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 ; | |
50f39b97 | 18 | class TH2D ; |
0c1383b5 | 19 | class TObjString; |
1c5acb87 | 20 | |
21 | //Analysis | |
5025c139 | 22 | #include "AliAnaPartCorrBaseClass.h" |
1c5acb87 | 23 | class AliAODEvent ; |
24 | class AliESDEvent ; | |
c8fe2783 | 25 | class AliAODPWG4Particle ; |
1c5acb87 | 26 | |
1c5acb87 | 27 | class AliAnaPi0 : public AliAnaPartCorrBaseClass { |
6639984f | 28 | |
78219bac | 29 | public: |
6639984f | 30 | AliAnaPi0() ; // default ctor |
6639984f | 31 | virtual ~AliAnaPi0() ;//virtual dtor |
78219bac | 32 | private: |
33 | AliAnaPi0(const AliAnaPi0 & g) ; // cpy ctor | |
614701c6 | 34 | AliAnaPi0 & operator = (const AliAnaPi0 & api0) ;//cpy assignment |
6639984f | 35 | |
78219bac | 36 | public: |
37 | ||
0c1383b5 | 38 | TObjString * GetAnalysisCuts(); |
39 | TList * GetCreateOutputObjects(); | |
6639984f | 40 | |
41 | void Print(const Option_t * opt) const; | |
42 | ||
5a2dbc3c | 43 | //void Init(); |
6639984f | 44 | void InitParameters(); |
45 | ||
5ae09196 | 46 | void FillAcceptanceHistograms(); |
6639984f | 47 | //void MakeAnalysisFillAOD() {;} //Not needed |
48 | void MakeAnalysisFillHistograms(); | |
49 | ||
50 | // void SetBadRunsList(){;} ; //Set list of runs which can be used for this analysis | |
51 | //To be defined in future. | |
5ae09196 | 52 | |
6639984f | 53 | //Setters for parameters of event buffers |
b05a14a3 | 54 | void SetNCentrBin(Int_t n=5) {fNCentrBin=n ;} //number of bins in centrality |
5025c139 | 55 | // void SetNZvertBin(Int_t n=5) {fNZvertBin=n ;} //number of bins for vertex position |
56 | // void SetNRPBin(Int_t n=6) {fNrpBin=n ;} //number of bins in reaction plain | |
b05a14a3 | 57 | void SetNMaxEvMix(Int_t n=20){fNmaxMixEv=n ;} //Maximal number of events for mixing |
6639984f | 58 | |
59 | //Setters for event selection | |
5025c139 | 60 | // void SetZvertexCut(Float_t zcut=40.){fZvtxCut=zcut ;} //cut on vertex position |
6639984f | 61 | |
62 | TString GetCalorimeter() const {return fCalorimeter ; } | |
99ca69fc | 63 | void SetCalorimeter(TString & det) {fCalorimeter = det ; } |
afabc52f | 64 | |
a5cc4f03 | 65 | void Terminate(TList* outputList); |
66 | void ReadHistograms(TList * outputList); //Fill histograms with histograms in ouput list, needed in Terminate. | |
67 | ||
6921fa00 | 68 | void SetNumberOfModules(Int_t nmod) {fNModules = nmod;} |
69 | ||
50f39b97 | 70 | void SwitchOnAngleSelection() {fUseAngleCut = kTRUE ; } |
71 | void SwitchOffAngleSelection() {fUseAngleCut = kFALSE ; } | |
c8fe2783 | 72 | |
73 | virtual Int_t GetEventIndex(AliAODPWG4Particle * part, Double_t * vert) ; | |
74 | ||
398c93cc | 75 | void SwitchOnInvPtWeight() {fMakeInvPtPlots = kTRUE ; } |
76 | void SwitchOffInvPtWeight() {fMakeInvPtPlots = kFALSE ; } | |
77 | ||
af7b3903 | 78 | void SwitchOnOwnMix() {fDoOwnMix = kTRUE ; } |
7e7694bb | 79 | void SwitchOffOwnMix() {fDoOwnMix = kFALSE ; } |
80 | ||
af7b3903 | 81 | void SwitchOnSameSM() {fSameSM = kTRUE ; } |
82 | void SwitchOffSameSM() {fSameSM = kFALSE ; } | |
83 | ||
5ae09196 | 84 | //Cuts for multiple analysis |
85 | void SwitchOnMultipleCutAnalysis() {fMultiCutAna = kTRUE;} | |
86 | void SwitchOffMultipleCutAnalysis() {fMultiCutAna = kFALSE;} | |
87 | ||
af7b3903 | 88 | void SetNPtCuts (Int_t size) {if(size <= 10)fNPtCuts = size; } |
89 | void SetNAsymCuts (Int_t size) {if(size <= 10)fNAsymCuts = size; } | |
90 | void SetNNCellCuts(Int_t size) {if(size <= 10)fNCellNCuts = size; } | |
91 | void SetNPIDBits (Int_t size) {if(size <= 10)fNPIDBits = size; } | |
d7c10d78 | 92 | |
af7b3903 | 93 | void SetPtCutsAt (Int_t pos,Float_t val) {if(pos < 10)fPtCuts[pos] = val;} |
94 | void SetAsymCutsAt (Int_t pos,Float_t val) {if(pos < 10)fAsymCuts[pos] = val;} | |
95 | void SetNCellCutsAt(Int_t pos,Int_t val) {if(pos < 10)fCellNCuts[pos] = val;} | |
96 | void SetPIDBitsAt (Int_t pos,Int_t val) {if(pos < 10)fPIDBits[pos] = val;} | |
d7c10d78 | 97 | |
6639984f | 98 | private: |
99 | Bool_t IsBadRun(Int_t /*iRun*/) const {return kFALSE;} //Tests if this run bad according to private list | |
100 | ||
101 | private: | |
af7b3903 | 102 | Bool_t fDoOwnMix; // Do combinatorial background not the one provided by the frame |
103 | Int_t fNCentrBin ; // Number of bins in event container for centrality | |
d7c10d78 | 104 | // Int_t fNrpBin ; // Number of bins in event container for reaction plain |
af7b3903 | 105 | Int_t fNmaxMixEv ; // Maximal number of events stored in buffer for mixing |
af7b3903 | 106 | TString fCalorimeter ; // Select Calorimeter for IM |
107 | Int_t fNModules ; // Number of EMCAL/PHOS modules, set as many histogras as modules | |
108 | Bool_t fUseAngleCut ; // Select pairs depending on their opening angle | |
70e003f3 | 109 | TList ** fEventsList ; //[fNCentrBin*GetNZvertBin()*GetNRPBin()]! Containers for photons in stored events |
af7b3903 | 110 | Bool_t fMultiCutAna; // Do analysis with several or fixed cut |
111 | Int_t fNPtCuts; // number of pt cuts | |
112 | Float_t fPtCuts[10]; // array with different pt cuts | |
113 | Int_t fNAsymCuts; // number of assymmetry cuts | |
114 | Float_t fAsymCuts[10]; // array with different assymetry cuts | |
115 | Int_t fNCellNCuts; // number of cuts with number of cells in cluster | |
116 | Int_t fCellNCuts[10]; // array with different cell number cluster cuts | |
117 | Int_t fNPIDBits ; // number of possible PID bit combinations | |
118 | Int_t fPIDBits[10]; // array with different PID bits | |
119 | ||
398c93cc | 120 | Bool_t fMakeInvPtPlots;// do plots with inverse pt weight |
af7b3903 | 121 | Bool_t fSameSM; // select only pairs in same SM; |
122 | ||
6639984f | 123 | //Histograms |
70e003f3 | 124 | TH2D ** fhReMod ; //[fNModules] REAL two-photon invariant mass distribution for different calorimeter modules. |
125 | TH2D ** fhReDiffMod ; //[fNModules+1] REAL two-photon invariant mass distribution for different clusters in different calorimeter modules. | |
af7b3903 | 126 | |
70e003f3 | 127 | TH2D ** fhRe1 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] REAL two-photon invariant mass distribution for different centralities and Asymmetry |
128 | TH2D ** fhMi1 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] MIXED two-photon invariant mass distribution for different centralities and Asymmetry | |
129 | TH2D ** fhRe2 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] REAL two-photon invariant mass distribution for different centralities and Asymmetry | |
130 | TH2D ** fhMi2 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] MIXED two-photon invariant mass distribution for different centralities and Asymmetry | |
131 | TH2D ** fhRe3 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] REAL two-photon invariant mass distribution for different centralities and Asymmetry | |
132 | TH2D ** fhMi3 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] MIXED two-photon invariant mass distribution for different centralities and Asymmetry | |
133 | ||
134 | TH2D ** fhReInvPt1 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] REAL two-photon invariant mass distribution for different centralities and Asymmetry, inverse pT | |
135 | TH2D ** fhMiInvPt1 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] MIXED two-photon invariant mass distribution for different centralities and Asymmetry, inverse pT | |
136 | TH2D ** fhReInvPt2 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] REAL two-photon invariant mass distribution for different centralities and Asymmetry, inverse pT | |
137 | TH2D ** fhMiInvPt2 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] MIXED two-photon invariant mass distribution for different centralities and Asymmetry, inverse pT | |
138 | TH2D ** fhReInvPt3 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] REAL two-photon invariant mass distribution for different centralities and Asymmetry, inverse pT | |
139 | TH2D ** fhMiInvPt3 ; //[fNCentrBin*fNPIDBits*fNAsymCuts] MIXED two-photon invariant mass distribution for different centralities and Asymmetry, inverse pT | |
5ae09196 | 140 | |
141 | //Multiple cuts | |
70e003f3 | 142 | TH2D ** fhRePtNCellAsymCuts ; //[fNPtCuts*fNAsymCuts*fNCellNCuts] REAL two-photon invariant mass distribution for different pt cut, n cell cuts and assymetry |
143 | TH2D ** fhRePIDBits ; //[fNPIDBits] REAL two-photon invariant mass distribution for different PID bits | |
144 | TH3D ** fhRePtMult ; //[fNAsymCuts] REAL two-photon invariant mass distribution for different track multiplicity and assymetry cuts | |
821c8090 | 145 | |
af7b3903 | 146 | TH2D * fhRePtAsym ; //!REAL two-photon pt vs asymmetry |
147 | TH2D * fhRePtAsymPi0 ; //!REAL two-photon pt vs asymmetry, close to pi0 mass | |
148 | TH2D * fhRePtAsymEta ; //!REAL two-photon pt vs asymmetry, close to eta mass | |
149 | ||
50f39b97 | 150 | TH3D * fhEvents; //!Number of events per centrality, RP, zbin |
151 | ||
152 | TH2D * fhRealOpeningAngle ; //! Opening angle of pair versus pair energy | |
153 | TH2D * fhRealCosOpeningAngle ; //! Cosinus of opening angle of pair version pair energy | |
6921fa00 | 154 | |
6639984f | 155 | //Acceptance |
156 | TH1D * fhPrimPt ; //! Spectrum of Primary | |
157 | TH1D * fhPrimAccPt ; //! Spectrum of primary with accepted daughters | |
158 | TH1D * fhPrimY ; //! Rapidity distribution of primary particles | |
159 | TH1D * fhPrimAccY ; //! Rapidity distribution of primary with accepted daughters | |
160 | TH1D * fhPrimPhi ; //! Azimutal distribution of primary particles | |
161 | TH1D * fhPrimAccPhi; //! Azimutal distribution of primary with accepted daughters | |
50f39b97 | 162 | TH2D * fhPrimOpeningAngle ; //! Opening angle of pair versus pair energy, primaries |
163 | TH2D * fhPrimCosOpeningAngle ; //! Cosinus of opening angle of pair version pair energy, primaries | |
164 | ||
398c93cc | 165 | ClassDef(AliAnaPi0,12) |
1c5acb87 | 166 | } ; |
167 | ||
168 | ||
169 | #endif //ALIANAPI0_H | |
170 | ||
171 | ||
172 |