]>
Commit | Line | Data |
---|---|---|
1c5acb87 | 1 | #ifndef ALIANAPARTCORRBASECLASS_H |
2 | #define ALIANAPARTCORRBASECLASS_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | /* $Id: $ */ | |
6 | ||
c8fe2783 | 7 | //_________________________________________________________________________ |
8 | // Base class for analysis algorithms | |
9 | //-- Author: Gustavo Conesa (INFN-LNF) | |
5025c139 | 10 | //-Add the possibality for event selection analysis based on vertex and multiplicity bins (Yaxian Mao, 10/10/2010) |
fbeaf916 | 11 | #include <cstdlib> |
12 | ||
c8fe2783 | 13 | //ROOT |
1c5acb87 | 14 | class TClonesArray ; |
591cc579 | 15 | class TObjArray ; |
a3aebfff | 16 | #include <TList.h> |
1c5acb87 | 17 | #include <TObject.h> |
0c1383b5 | 18 | class TObjString; |
1c5acb87 | 19 | |
c8fe2783 | 20 | //Analysis |
f37fa8d2 | 21 | class AliVCaloCells; |
e6e63685 | 22 | #include "AliCaloTrackReader.h" |
decca433 | 23 | #include "AliCaloPID.h" |
24 | #include "AliFiducialCut.h" | |
25 | #include "AliIsolationCut.h" | |
26 | #include "AliMCAnalysisUtils.h" | |
27 | #include "AliNeutralMesonSelection.h" | |
8cfc6870 | 28 | #include "AliCalorimeterUtils.h" |
1c5acb87 | 29 | class AliStack ; |
30 | class AliHeader ; | |
31 | class AliGenEventHeader ; | |
a3aebfff | 32 | #include "AliAODPWG4ParticleCorrelation.h" |
2ef5608f | 33 | class AliEMCALGeometry; |
765d44e7 | 34 | class AliPHOSGeoUtils; |
c8fe2783 | 35 | #include "AliMixedEvent.h" |
b6dd6ad2 | 36 | #include "AliCentrality.h" |
72542aba | 37 | #include "AliEventplane.h" |
1c5acb87 | 38 | |
39 | class AliAnaPartCorrBaseClass : public TObject { | |
40 | ||
c8fe2783 | 41 | public: |
477d6cee | 42 | AliAnaPartCorrBaseClass() ; // default ctor |
78219bac | 43 | virtual ~AliAnaPartCorrBaseClass() ; //virtual dtor |
44 | ||
c8fe2783 | 45 | private: |
477d6cee | 46 | AliAnaPartCorrBaseClass(const AliAnaPartCorrBaseClass & g) ; // cpy ctor |
47 | AliAnaPartCorrBaseClass & operator = (const AliAnaPartCorrBaseClass & g) ;//cpy assignment | |
477d6cee | 48 | |
c8fe2783 | 49 | public: |
f37fa8d2 | 50 | |
477d6cee | 51 | |
be518ab0 | 52 | //General methods, to be declared in deriving classes if needed |
a3aebfff | 53 | |
0a14e9ae | 54 | virtual void MakeAnalysisFillAOD() {;} |
55 | ||
56 | virtual void MakeAnalysisFillHistograms() {;} | |
57 | ||
58 | AliVCluster* FindCluster(TObjArray* clusters, const Int_t id, Int_t & iclus, const Int_t first=0) ; | |
59 | ||
477d6cee | 60 | virtual void Init() {;} |
61 | virtual void InitParameters() ; | |
62 | ||
63 | virtual void Print(const Option_t * ) const ; | |
0a14e9ae | 64 | |
be518ab0 | 65 | virtual void Terminate(TList * /*outputList*/) {;} |
66 | ||
67 | ||
68 | //Histograms, cuts | |
a0348d55 | 69 | virtual TList * GetCreateOutputObjects() { return (new TList) ; } |
0c1383b5 | 70 | |
0a14e9ae | 71 | virtual void AddToHistogramsName(TString add) { fAddToHistogramsName = add ; } |
a0348d55 | 72 | virtual TString GetAddedHistogramsStringToName()const { return fAddToHistogramsName ; } |
477d6cee | 73 | |
a0348d55 | 74 | virtual TObjString * GetAnalysisCuts() { return 0x0 ; } |
0a14e9ae | 75 | TString GetBaseParametersList(); |
be518ab0 | 76 | |
77 | //Getters, setters | |
0a14e9ae | 78 | virtual Int_t GetDebug() const { return fDebug ; } |
79 | virtual void SetDebug(Int_t d) { fDebug = d ; } | |
be518ab0 | 80 | |
0a14e9ae | 81 | virtual Int_t GetEventNumber() const ; |
be518ab0 | 82 | |
83 | virtual AliCaloTrackReader * GetReader() const { return fReader ; } | |
42dc8e7d | 84 | virtual void SetReader(AliCaloTrackReader * const reader) { fReader = reader ; } |
798a9b04 | 85 | |
be518ab0 | 86 | //Calorimeter specific access methods |
87 | AliCalorimeterUtils * GetCaloUtils() const { return fCaloUtils ; } | |
88 | void SetCaloUtils(AliCalorimeterUtils * caloutils) { fCaloUtils = caloutils ; } | |
89 | ||
2ef5608f | 90 | AliEMCALGeometry * GetEMCALGeometry() const { return fCaloUtils->GetEMCALGeometry() ; } |
be518ab0 | 91 | AliPHOSGeoUtils * GetPHOSGeometry() const { return fCaloUtils->GetPHOSGeometry() ; } |
c8fe2783 | 92 | |
e6e63685 | 93 | Int_t GetModuleNumberCellIndexes(const Int_t absId, const TString calo, Int_t & icol, Int_t & irow, Int_t &iRCU) const { |
765d44e7 | 94 | return fCaloUtils->GetModuleNumberCellIndexes(absId, calo, icol, irow,iRCU);} |
b05a14a3 | 95 | Int_t GetModuleNumber(AliAODPWG4Particle * part) const { |
765d44e7 | 96 | return fCaloUtils->GetModuleNumber(part, fReader->GetInputEvent());} |
be518ab0 | 97 | Int_t GetModuleNumber(AliVCluster * cluster) const { |
765d44e7 | 98 | return fCaloUtils->GetModuleNumber(cluster);} |
f37fa8d2 | 99 | |
3ff76907 | 100 | //Centrality |
72542aba | 101 | AliCentrality* GetCentrality() const { return fReader->GetCentrality() ; } |
102 | Int_t GetEventCentrality() const { return fReader->GetEventCentrality() ; } | |
a5cc4f03 | 103 | |
72542aba | 104 | //Event plane |
105 | AliEventplane* GetEventPlane() const { return fReader->GetEventPlane() ; } | |
106 | TString GetEventPlaneMethod() const { return fReader->GetEventPlaneMethod() ; } | |
107 | ||
be518ab0 | 108 | //AOD branch |
109 | virtual void AddAODParticle(AliAODPWG4Particle part) ; | |
110 | virtual void ConnectInputOutputAODBranches(); | |
111 | ||
477d6cee | 112 | virtual TClonesArray * GetCreateOutputAODBranch() ; |
be518ab0 | 113 | virtual TString GetInputAODName() const { return fInputAODName ; } |
114 | virtual void SetInputAODName(TString name) { fInputAODName = name ; } | |
115 | virtual TString GetOutputAODName() const { return fOutputAODName ; } | |
116 | virtual void SetOutputAODName(TString name) { fNewAOD = kTRUE ; fOutputAODName = name; } | |
117 | virtual Bool_t NewOutputAOD() const { return fNewAOD ; } | |
118 | virtual TString GetOutputAODClassName() const { return fOutputAODClassName ; } | |
119 | virtual void SetOutputAODClassName(TString name) { fOutputAODClassName = name ; } | |
120 | ||
121 | virtual TString GetAODObjArrayName() const { return fAODObjArrayName ; } | |
122 | virtual void SetAODObjArrayName(TString name) { fAODObjArrayName = name ; } | |
c8fe2783 | 123 | |
be518ab0 | 124 | virtual TClonesArray* GetInputAODBranch() const { return fInputAODBranch ; } |
125 | virtual TClonesArray* GetOutputAODBranch() const { if(fNewAOD) return fOutputAODBranch; else return fInputAODBranch ; } | |
42dc8e7d | 126 | virtual TClonesArray* GetAODBranch(TString aodBranchName) const ; |
127 | ||
be518ab0 | 128 | //Track cluster arrays access methods |
129 | virtual TClonesArray* GetAODCaloClusters() const ; | |
130 | virtual TClonesArray* GetAODTracks() const ; | |
131 | virtual AliVCaloCells* GetPHOSCells() const { return fReader->GetPHOSCells() ;} | |
132 | virtual AliVCaloCells* GetEMCALCells() const { return fReader->GetEMCALCells() ;} | |
133 | virtual TObjArray* GetCTSTracks() const ; | |
134 | virtual TObjArray* GetEMCALClusters() const ; | |
135 | virtual TObjArray* GetPHOSClusters() const ; | |
136 | ||
137 | //MC event acces methods | |
138 | virtual AliStack * GetMCStack() const ; | |
139 | virtual AliHeader* GetMCHeader() const ; | |
140 | virtual AliGenEventHeader * GetMCGenEventHeader() const ; | |
477d6cee | 141 | |
f37fa8d2 | 142 | //Analysis helpers classes pointers setters and getters |
be518ab0 | 143 | virtual AliCaloPID * GetCaloPID() { if(!fCaloPID) fCaloPID = new AliCaloPID(); return fCaloPID ; } |
144 | virtual AliFiducialCut * GetFiducialCut() { if(!fFidCut) fFidCut = new AliFiducialCut(); return fFidCut ; } | |
145 | virtual AliIsolationCut * GetIsolationCut() { if(!fIC) fIC = new AliIsolationCut(); return fIC ; } | |
146 | virtual AliMCAnalysisUtils * GetMCAnalysisUtils() { if(!fMCUtils) fMCUtils = new AliMCAnalysisUtils(); return fMCUtils ; } | |
147 | virtual AliNeutralMesonSelection * GetNeutralMesonSelection() { if(!fNMS) fNMS = new AliNeutralMesonSelection(); return fNMS ; } | |
148 | ||
149 | virtual void SetCaloPID(AliCaloPID * const pid) { fCaloPID = pid ; } | |
150 | virtual void SetFiducialCut(AliFiducialCut * const fc) { fFidCut = fc ; } | |
151 | virtual void SetIsolationCut(AliIsolationCut * const ic) { fIC = ic ; } | |
152 | virtual void SetMCAnalysisUtils(AliMCAnalysisUtils * const mcutils) { fMCUtils = mcutils ; } | |
153 | virtual void SetNeutralMesonSelection(AliNeutralMesonSelection * const nms) { fNMS = nms ; } | |
765d44e7 | 154 | |
be518ab0 | 155 | virtual Bool_t IsDataMC() const { return fDataMC ; } |
156 | virtual void SwitchOnDataMC() { fDataMC = kTRUE ; if(!fMCUtils)fMCUtils = new AliMCAnalysisUtils();} | |
157 | virtual void SwitchOffDataMC() { fDataMC = kFALSE ; } | |
158 | ||
159 | virtual Bool_t IsFiducialCutOn() const { return fCheckFidCut ; } | |
160 | virtual void SwitchOnFiducialCut() { fCheckFidCut = kTRUE; if(!fFidCut)fFidCut = new AliFiducialCut();} | |
161 | virtual void SwitchOffFiducialCut() { fCheckFidCut = kFALSE ; } | |
162 | ||
163 | virtual Bool_t IsCaloPIDOn() const { return fCheckCaloPID ; } | |
164 | virtual void SwitchOnCaloPID() { fCheckCaloPID = kTRUE; if(!fCaloPID)fCaloPID = new AliCaloPID();} | |
165 | virtual void SwitchOffCaloPID() { fCheckCaloPID = kFALSE ; } | |
166 | ||
a5fb4114 | 167 | //Cluster energy/momentum cut |
168 | virtual Float_t GetMaxPt() const { return fMaxPt ; } | |
169 | virtual Float_t GetMinPt() const { return fMinPt ; } | |
170 | virtual void SetMaxPt(Float_t pt) { fMaxPt = pt ; } | |
171 | virtual void SetMinPt(Float_t pt) { fMinPt = pt ; } | |
be518ab0 | 172 | virtual void SetPtCutRange(Double_t ptmin, Double_t ptmax) |
a5fb4114 | 173 | { fMaxPt=ptmax; fMinPt=ptmin; } |
174 | ||
175 | virtual Float_t GetMaxEnergy() const { return fMaxPt ; } | |
176 | virtual Float_t GetMinEnergy() const { return fMinPt ; } | |
177 | virtual void SetMaxEnergy(Float_t e) { fMaxPt = e ; } | |
178 | virtual void SetMinEnergy(Float_t e) { fMinPt = e ; } | |
179 | virtual void SetEnergyCutRange(Double_t emin, Double_t emax) | |
180 | { fMaxPt=emax; fMinPt=emin; } | |
181 | ||
182 | //Cluster Pairs Time cut | |
183 | virtual void SetPairTimeCut(Float_t t) { fPairTimeCut = t ; } //ns | |
184 | virtual Float_t GetPairTimeCut() const { return fPairTimeCut ; } //ns | |
185 | ||
5025c139 | 186 | //Setters for parameters of event buffers |
be518ab0 | 187 | virtual void SetMultiBin(Int_t n=1) { fMultiBin = n ;} //number of bins in Multiplicity |
188 | virtual void SetNZvertBin(Int_t n=1) { fNZvertBin = n ;} //number of bins for vertex position | |
189 | virtual void SetNRPBin(Int_t n=1) { fNrpBin = n ;} //number of bins in reaction plain | |
72542aba | 190 | virtual void SetNCentrBin(Int_t n=1) { fNCentrBin = n ;} //number of bins in centrality |
191 | virtual void SetNMaxEvMix(Int_t n=20) { fNmaxMixEv = n ;} //maximal number of events for mixing | |
5025c139 | 192 | virtual void SetMultiplicity(Int_t multimin, Int_t multimax) {fMinMulti = multimin ; fMaxMulti = multimax ; } |
be518ab0 | 193 | virtual void SwitchOnEventSelection() { fUseSelectEvent = kTRUE ; } |
194 | virtual void SwitchOffEventSelection() { fUseSelectEvent = kFALSE ; } | |
5025c139 | 195 | //Getters for event selection |
be518ab0 | 196 | virtual Int_t GetMultiBin() const { return fMultiBin ; } //number of bins in Multiplicity |
197 | virtual Int_t GetNZvertBin() const { return fNZvertBin ; } //number of bins in vertex | |
198 | virtual Int_t GetNRPBin() const { return fNrpBin ; } //number of bins in reaction plain | |
72542aba | 199 | virtual Int_t GetNCentrBin() const { return fNCentrBin ; } //number of bins in centrality |
200 | virtual Int_t GetNMaxEvMix() const { return fNmaxMixEv ; } //maximal number of events for mixin | |
be518ab0 | 201 | virtual Float_t GetZvertexCut() const { return GetReader()->GetZvertexCut();} //cut on vertex position |
202 | virtual Int_t GetMaxMulti() const { return fMaxMulti ; } | |
203 | virtual Int_t GetMinMulti() const { return fMinMulti ; } | |
5025c139 | 204 | |
205 | // Do correlation analysis with different event buffers | |
be518ab0 | 206 | virtual Bool_t DoEventSelect() const { return fUseSelectEvent ; } |
207 | ||
208 | //Mixed event | |
209 | virtual AliMixedEvent * GetMixedEvent() { return GetReader()->GetMixedEvent() ; } | |
210 | virtual Int_t GetNMixedEvent() const { return GetReader()->GetNMixedEvent() ; } | |
211 | ||
212 | //Vertex methods | |
213 | virtual void GetVertex(Double_t vertex[3]) const { GetReader()->GetVertex(vertex) ; } | |
49b5c49b | 214 | virtual void GetVertex(Double_t vertex[3], const Int_t evtIndex) const |
215 | { GetReader()->GetVertex(vertex,evtIndex) ; } | |
216 | virtual Double_t* GetVertex(const Int_t evtIndex) const { return GetReader()->GetVertex(evtIndex) ; } | |
be518ab0 | 217 | |
49b5c49b | 218 | virtual Bool_t IsTrackMatched(AliVCluster * cluster, AliVEvent* event) const |
219 | { return fCaloPID->IsTrackMatched(cluster, fCaloUtils, event) ; } | |
be518ab0 | 220 | |
221 | //MULTIPLICITY | |
222 | Int_t GetTrackMultiplicity() const { return fReader->GetTrackMultiplicity() ; } | |
223 | //VZERO | |
224 | Int_t GetV0Signal(Int_t i ) const { return fReader->GetV0Signal(i) ; } | |
225 | Int_t GetV0Multiplicity(Int_t i ) const { return fReader->GetV0Multiplicity(i) ; } | |
226 | ||
227 | ||
521636d2 | 228 | //Histogrammes setters and getters (move to independend class to hold the parameters soon) |
477d6cee | 229 | |
f37fa8d2 | 230 | //Pt, Energy |
477d6cee | 231 | virtual void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n) { |
5a2dbc3c | 232 | fHistoPtBins = n ; |
477d6cee | 233 | fHistoPtMax = max ; |
234 | fHistoPtMin = min ; | |
235 | } | |
236 | ||
be518ab0 | 237 | virtual Int_t GetHistoPtBins() const { return fHistoPtBins ; } |
238 | virtual Float_t GetHistoPtMin() const { return fHistoPtMin ; } | |
239 | virtual Float_t GetHistoPtMax() const { return fHistoPtMax ; } | |
a5fb4114 | 240 | virtual void SetHistoEnergyRangeAndNBins(Float_t min, Float_t max, Int_t n) { |
241 | SetHistoPtRangeAndNBins(min, max, n); | |
242 | } | |
243 | ||
244 | virtual Int_t GetHistoEnergyBins() const { return fHistoPtBins ; } | |
245 | virtual Float_t GetHistoEnergyMin() const { return fHistoPtMin ; } | |
246 | virtual Float_t GetHistoEnergyMax() const { return fHistoPtMax ; } | |
477d6cee | 247 | |
c8fe2783 | 248 | //Azimuthal angle |
477d6cee | 249 | virtual void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n) { |
5a2dbc3c | 250 | fHistoPhiBins = n ; |
251 | fHistoPhiMax = max ; | |
252 | fHistoPhiMin = min ; | |
477d6cee | 253 | } |
254 | ||
765d44e7 | 255 | virtual Int_t GetHistoPhiBins() const { return fHistoPhiBins; } |
256 | virtual Float_t GetHistoPhiMin() const { return fHistoPhiMin ; } | |
257 | virtual Float_t GetHistoPhiMax() const { return fHistoPhiMax ; } | |
477d6cee | 258 | |
f37fa8d2 | 259 | //Pseudorapidity-rapidity |
477d6cee | 260 | virtual void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n) { |
5a2dbc3c | 261 | fHistoEtaBins = n ; |
262 | fHistoEtaMax = max ; | |
263 | fHistoEtaMin = min ; | |
477d6cee | 264 | } |
265 | ||
765d44e7 | 266 | virtual Int_t GetHistoEtaBins() const { return fHistoEtaBins; } |
267 | virtual Float_t GetHistoEtaMin() const { return fHistoEtaMin ; } | |
268 | virtual Float_t GetHistoEtaMax() const { return fHistoEtaMax ; } | |
5a2dbc3c | 269 | |
f37fa8d2 | 270 | //Mass |
5a2dbc3c | 271 | virtual void SetHistoMassRangeAndNBins(Float_t min, Float_t max, Int_t n) { |
c8fe2783 | 272 | fHistoMassBins = n ; |
273 | fHistoMassMax = max ; | |
274 | fHistoMassMin = min ; | |
5a2dbc3c | 275 | } |
276 | ||
765d44e7 | 277 | virtual Int_t GetHistoMassBins() const { return fHistoMassBins ; } |
be518ab0 | 278 | virtual Float_t GetHistoMassMin() const { return fHistoMassMin ; } |
279 | virtual Float_t GetHistoMassMax() const { return fHistoMassMax ; } | |
5a2dbc3c | 280 | |
f37fa8d2 | 281 | //Asymetry |
5a2dbc3c | 282 | virtual void SetHistoAsymmetryRangeAndNBins(Float_t min, Float_t max, Int_t n) { |
c8fe2783 | 283 | fHistoAsymBins = n ; |
284 | fHistoAsymMax = max ; | |
285 | fHistoAsymMin = min ; | |
5a2dbc3c | 286 | } |
287 | ||
765d44e7 | 288 | virtual Int_t GetHistoAsymmetryBins() const { return fHistoAsymBins ; } |
be518ab0 | 289 | virtual Float_t GetHistoAsymmetryMin() const { return fHistoAsymMin ; } |
290 | virtual Float_t GetHistoAsymmetryMax() const { return fHistoAsymMax ; } | |
c8fe2783 | 291 | |
798a9b04 | 292 | |
293 | //VZero | |
294 | virtual void SetHistoV0SignalRangeAndNBins(Int_t min, Int_t max, Int_t n) { | |
295 | fHistoV0SBins = n ; | |
296 | fHistoV0SMax = max ; | |
297 | fHistoV0SMin = min ; | |
298 | } | |
299 | ||
c75defdf | 300 | virtual Int_t GetHistoV0SignalBins() const { return fHistoV0SBins ; } |
be518ab0 | 301 | virtual Int_t GetHistoV0SignalMin() const { return fHistoV0SMin ; } |
302 | virtual Int_t GetHistoV0SignalMax() const { return fHistoV0SMax ; } | |
798a9b04 | 303 | |
304 | virtual void SetHistoV0MultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n) { | |
305 | fHistoV0MBins = n ; | |
306 | fHistoV0MMax = max ; | |
307 | fHistoV0MMin = min ; | |
308 | } | |
309 | ||
c75defdf | 310 | virtual Int_t GetHistoV0MultiplicityBins() const { return fHistoV0MBins ; } |
be518ab0 | 311 | virtual Int_t GetHistoV0MultiplicityMin() const { return fHistoV0MMin ; } |
312 | virtual Int_t GetHistoV0MultiplicityMax() const { return fHistoV0MMax ; } | |
798a9b04 | 313 | |
314 | virtual void SetHistoTrackMultiplicityRangeAndNBins(Int_t min, Int_t max, Int_t n) { | |
315 | fHistoTrMBins = n ; | |
316 | fHistoTrMMax = max ; | |
317 | fHistoTrMMin = min ; | |
318 | } | |
319 | ||
c75defdf | 320 | virtual Int_t GetHistoTrackMultiplicityBins() const { return fHistoTrMBins ; } |
be518ab0 | 321 | virtual Int_t GetHistoTrackMultiplicityMin() const { return fHistoTrMMin ; } |
322 | virtual Int_t GetHistoTrackMultiplicityMax() const { return fHistoTrMMax ; } | |
798a9b04 | 323 | |
521636d2 | 324 | |
325 | Int_t GetHistoFinePtBins() const { return fHistoFinePtBins ; } | |
326 | Float_t GetHistoFinePtMin() const { return fHistoFinePtMin ; } | |
327 | Float_t GetHistoFinePtMax() const { return fHistoFinePtMax ; } | |
328 | ||
329 | Int_t GetHistodEdxBins() const { return fHistodEdxBins ; } | |
330 | Float_t GetHistodEdxMin() const { return fHistodEdxMin ; } | |
331 | Float_t GetHistodEdxMax() const { return fHistodEdxMax ; } | |
332 | ||
35c71d5c | 333 | Int_t GetHistoNClusterCellBins() const { return fHistoNClusCellBins ; } |
334 | Int_t GetHistoNClusterCellMin() const { return fHistoNClusCellMin ; } | |
335 | Int_t GetHistoNClusterCellMax() const { return fHistoNClusCellMax ; } | |
336 | ||
337 | Int_t GetHistoNClustersBins() const { return fHistoNClustersBins ; } | |
338 | Int_t GetHistoNClustersMin() const { return fHistoNClustersMin ; } | |
339 | Int_t GetHistoNClustersMax() const { return fHistoNClustersMax ; } | |
340 | ||
341 | Int_t GetHistoNCellsBins() const { return fHistoNCellsBins ; } | |
342 | Int_t GetHistoNCellsMin() const { return fHistoNCellsMin ; } | |
343 | Int_t GetHistoNCellsMax() const { return fHistoNCellsMax ; } | |
521636d2 | 344 | |
345 | Int_t GetHistoPOverEBins() const { return fHistoPOverEBins ; } | |
346 | Float_t GetHistoPOverEMin() const { return fHistoPOverEMin ; } | |
347 | Float_t GetHistoPOverEMax() const { return fHistoPOverEMax ; } | |
348 | ||
349 | Int_t GetHistodRBins() const { return fHistodRBins ; } | |
350 | Float_t GetHistodRMin() const { return fHistodRMin ; } | |
351 | Float_t GetHistodRMax() const { return fHistodRMax ; } | |
352 | ||
353 | Int_t GetHistoTimeBins() const { return fHistoTimeBins ; } | |
354 | Float_t GetHistoTimeMin() const { return fHistoTimeMin ; } | |
355 | Float_t GetHistoTimeMax() const { return fHistoTimeMax ; } | |
356 | ||
357 | Int_t GetHistoRatioBins() const { return fHistoRatioBins ; } | |
358 | Float_t GetHistoRatioMin() const { return fHistoRatioMin ; } | |
359 | Float_t GetHistoRatioMax() const { return fHistoRatioMax ; } | |
360 | ||
361 | Int_t GetHistoVertexDistBins() const { return fHistoVertexDistBins ; } | |
362 | Float_t GetHistoVertexDistMin() const { return fHistoVertexDistMin ; } | |
363 | Float_t GetHistoVertexDistMax() const { return fHistoVertexDistMax ; } | |
364 | ||
365 | Int_t GetHistoRBins() const { return fHistoRBins ; } | |
366 | Float_t GetHistoRMin() const { return fHistoRMin ; } | |
367 | Float_t GetHistoRMax() const { return fHistoRMax ; } | |
368 | ||
369 | Int_t GetHistoXBins() const { return fHistoXBins ; } | |
370 | Float_t GetHistoXMin() const { return fHistoXMin ; } | |
371 | Float_t GetHistoXMax() const { return fHistoXMax ; } | |
372 | ||
373 | Int_t GetHistoYBins() const { return fHistoYBins ; } | |
374 | Float_t GetHistoYMin() const { return fHistoYMin ; } | |
375 | Float_t GetHistoYMax() const { return fHistoYMax ; } | |
376 | ||
377 | Int_t GetHistoZBins() const { return fHistoZBins ; } | |
378 | Float_t GetHistoZMin() const { return fHistoZMin ; } | |
379 | Float_t GetHistoZMax() const { return fHistoZMax ; } | |
380 | ||
381 | Int_t GetHistoShowerShapeBins() const { return fHistoSSBins ; } | |
382 | Float_t GetHistoShowerShapeMin() const { return fHistoSSMin ; } | |
383 | Float_t GetHistoShowerShapeMax() const { return fHistoSSMax ; } | |
384 | ||
385 | Int_t GetHistoDiffTimeBins() const { return fHistoDiffTimeBins ; } | |
386 | Float_t GetHistoDiffTimeMin() const { return fHistoDiffTimeMin ; } | |
387 | Float_t GetHistoDiffTimeMax() const { return fHistoDiffTimeMax ; } | |
388 | ||
389 | ||
390 | virtual void SetHistoPOverERangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
391 | fHistoPOverEBins = n ; fHistoPOverEMax = max ; fHistoPOverEMin = min ; } | |
392 | ||
393 | virtual void SetHistoFinePtRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
394 | fHistoFinePtBins = n ; fHistoFinePtMax = max ; fHistoFinePtMin = min ; } | |
395 | ||
396 | virtual void SetHistodEdxRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
397 | fHistodEdxBins = n ; fHistodEdxMax = max ; fHistodEdxMin = min ; } | |
398 | ||
399 | virtual void SetHistodRRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
400 | fHistodRBins = n ; fHistodRMax = max ; fHistodRMin = min ; } | |
401 | ||
402 | virtual void SetHistoTimeRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
403 | fHistoTimeBins = n ; fHistoTimeMax = max ; fHistoTimeMin = min ; } | |
404 | ||
405 | virtual void SetHistoNClusterCellRangeAndNBins(Int_t min, Int_t max, Int_t n) { | |
35c71d5c | 406 | fHistoNClusCellBins = n ; fHistoNClusCellMax = max ; fHistoNClusCellMin = min ; } |
407 | ||
408 | virtual void SetHistoNClustersRangeAndNBins (Int_t min, Int_t max, Int_t n) { | |
409 | fHistoNClustersBins = n ; fHistoNClustersMax = max ; fHistoNClustersMin = min ; } | |
410 | ||
411 | virtual void SetHistoNCellsRangeAndNBins (Int_t min, Int_t max, Int_t n) { | |
412 | fHistoNCellsBins = n ; fHistoNCellsMax = max ; fHistoNCellsMin = min ; } | |
521636d2 | 413 | |
414 | virtual void SetHistoRatioRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
415 | fHistoRatioBins = n ; fHistoRatioMax = max ; fHistoRatioMin = min ; } | |
416 | ||
417 | virtual void SetHistoVertexDistRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
418 | fHistoVertexDistBins = n ; fHistoVertexDistMax = max ; fHistoVertexDistMin = min ; } | |
419 | ||
420 | virtual void SetHistoXRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
421 | fHistoXBins = n ; fHistoXMax = max ; fHistoXMin = min ; } | |
422 | ||
423 | virtual void SetHistoYRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
424 | fHistoYBins = n ; fHistoYMax = max ; fHistoYMin = min ; } | |
425 | ||
426 | virtual void SetHistoZRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
427 | fHistoZBins = n ; fHistoZMax = max ; fHistoZMin = min ; } | |
428 | ||
429 | virtual void SetHistoRRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
430 | fHistoRBins = n ; fHistoRMax = max ; fHistoRMin = min ; } | |
431 | ||
432 | virtual void SetHistoShowerShapeRangeAndNBins (Float_t min, Float_t max, Int_t n) { | |
433 | fHistoSSBins = n ; fHistoSSMax = max ; fHistoSSMin = min ; } | |
434 | ||
435 | void SetHistoDiffTimeRangeAndNBins(Float_t min, Float_t max, Int_t n) { | |
436 | fHistoDiffTimeBins = n ; fHistoDiffTimeMax = max ; fHistoDiffTimeMin = min ; } | |
437 | ||
be518ab0 | 438 | void SwitchOnPlotsMaking() { fMakePlots = kTRUE ; } |
439 | void SwitchOffPlotsMaking() { fMakePlots = kFALSE ; } | |
440 | Bool_t MakePlotsOn() const { return fMakePlots ; } | |
f8006433 | 441 | |
c8fe2783 | 442 | private: |
477d6cee | 443 | |
798a9b04 | 444 | Bool_t fDataMC ; // Flag to access MC data when using ESD or AOD |
445 | Int_t fDebug ; // Debug level | |
446 | Bool_t fCheckFidCut ; // Do analysis for clusters in defined region | |
447 | Bool_t fCheckCaloPID ; // Do analysis for calorimeters | |
448 | Bool_t fRecalculateCaloPID ; // Recalculate PID or use PID weights in calorimeters | |
449 | Float_t fMinPt ; // Maximum pt of (trigger) particles in the analysis | |
450 | Float_t fMaxPt ; // Minimum pt of (trigger) particles in the analysis | |
a5fb4114 | 451 | Float_t fPairTimeCut; // Maximum difference between time of cluster pairs (ns) |
798a9b04 | 452 | Int_t fMultiBin ; // Number of bins in event container for multiplicity |
453 | Int_t fNZvertBin ; // Number of bins in event container for vertex position | |
454 | Int_t fNrpBin ; // Number of bins in event container for reaction plain | |
72542aba | 455 | Int_t fNCentrBin ; // Number of bins in event container for centrality |
456 | Int_t fNmaxMixEv ; // Maximal number of events stored in buffer for mixing | |
798a9b04 | 457 | Int_t fMaxMulti ; // Maximum multiplicity of particles in the analysis |
458 | Int_t fMinMulti ; // Maximum multiplicity of particles in the analysis | |
459 | Bool_t fUseSelectEvent ; // Select events based on multiplicity and vertex cuts | |
460 | Bool_t fMakePlots ; // Print plots | |
d7c10d78 | 461 | |
591cc579 | 462 | |
39ffdc47 | 463 | AliCaloTrackReader * fReader; // Acces to ESD/AOD/MC data |
477d6cee | 464 | |
465 | TClonesArray* fInputAODBranch ; //! Selected input particles branch | |
466 | TString fInputAODName ; // Name of input AOD branch; | |
467 | TClonesArray* fOutputAODBranch ; //! Selected output particles branch | |
468 | Bool_t fNewAOD ; // Flag, new aod branch added to the analysis or not. | |
469 | TString fOutputAODName ; // Name of output AOD branch; | |
470 | TString fOutputAODClassName; // Type of aod objects to be stored in the TClonesArray (AliAODPWG4Particle, AliAODPWG4ParticleCorrelation ...) | |
3ff76907 | 471 | TString fAODObjArrayName ; // Name of ref array kept in a TList in AliAODParticleCorrelation with clusters or track references. |
472 | TString fAddToHistogramsName;// Add this string to histograms name | |
473 | ||
f37fa8d2 | 474 | //Analysis helper classes access pointers |
a0348d55 | 475 | AliCaloPID * fCaloPID; // PID calculation |
476 | AliFiducialCut * fFidCut; // Acceptance cuts | |
477 | AliIsolationCut * fIC; // Isolation cut | |
478 | AliMCAnalysisUtils * fMCUtils; // MonteCarlo Analysis utils | |
479 | AliNeutralMesonSelection * fNMS; // Neutral Meson Selection | |
a5fb4114 | 480 | AliCalorimeterUtils * fCaloUtils ; // Pointer to CalorimeterUtils |
f37fa8d2 | 481 | |
482 | //Histograms binning and range | |
521636d2 | 483 | Int_t fHistoPtBins ; // Number of bins in pt axis |
484 | Float_t fHistoPtMax ; // Maximum value of pt histogram range | |
485 | Float_t fHistoPtMin ; // Minimum value of pt histogram range | |
486 | Int_t fHistoPhiBins ; // Number of bins in phi axis | |
487 | Float_t fHistoPhiMax ; // Maximum value of phi histogram range | |
488 | Float_t fHistoPhiMin ; // Minimum value of phi histogram range | |
489 | Int_t fHistoEtaBins ; // Number of bins in eta axis | |
490 | Float_t fHistoEtaMax ; // Maximum value of eta histogram range | |
491 | Float_t fHistoEtaMin ; // Minimum value of eta histogram range | |
492 | Int_t fHistoMassBins ; // Number of bins in mass axis | |
493 | Float_t fHistoMassMax ; // Maximum value of mass histogram range | |
494 | Float_t fHistoMassMin ; // Minimum value of mass histogram range | |
495 | Int_t fHistoAsymBins ; // Number of bins in asymmetry axis | |
496 | Float_t fHistoAsymMax ; // Maximum value of asymmetry histogram range | |
497 | Float_t fHistoAsymMin ; // Minimum value of asymmetry histogram range | |
498 | Int_t fHistoV0SBins ; // Number of bins in V0 signal axis | |
499 | Int_t fHistoV0SMax ; // Maximum value of V0 signal histogram range | |
500 | Int_t fHistoV0SMin ; // Minimum value of V0 signal histogram range | |
501 | Int_t fHistoV0MBins ; // Number of bins in V0 multiplicity axis | |
502 | Int_t fHistoV0MMax ; // Maximum value of V0 multiplicity histogram range | |
503 | Int_t fHistoV0MMin ; // Minimum value of V0 multiplicity histogram range | |
504 | Int_t fHistoTrMBins ; // Number of bins in V0 multiplicity axis | |
505 | Int_t fHistoTrMMax ; // Maximum value of track multiplicity histogram range | |
506 | Int_t fHistoTrMMin ; // Minimum value of track multiplicity histogram range | |
507 | Int_t fHistoFinePtBins; // fine binning for fhAmpId histogram | |
508 | Float_t fHistoFinePtMax; // maximum pt value for fhAmpId histogram | |
509 | Float_t fHistoFinePtMin; // minimum pt value for fhAmpId histogram | |
510 | Int_t fHistoPOverEBins; // p/E histogram number of bins | |
511 | Float_t fHistoPOverEMax; // p/E maximum value | |
512 | Float_t fHistoPOverEMin; // p/E minimum value | |
513 | Int_t fHistodEdxBins; // dEdx histogram number of bins | |
514 | Float_t fHistodEdxMax; // dEdx maximum value | |
515 | Float_t fHistodEdxMin; // dEdx minimum value | |
516 | Int_t fHistodRBins; // dR histogram number of bins | |
517 | Float_t fHistodRMax; // dR maximum value | |
518 | Float_t fHistodRMin; // dR minimum value | |
519 | Int_t fHistoTimeBins; // cell time histogram number of bins | |
520 | Float_t fHistoTimeMax; // cell time maximum value | |
521 | Float_t fHistoTimeMin; // cell time minimum value | |
35c71d5c | 522 | Int_t fHistoNClusCellBins; // number of cells per cluster histogram number of bins |
523 | Int_t fHistoNClusCellMax; // number of cells per cluster maximum value | |
524 | Int_t fHistoNClusCellMin; // number of cells per cluster minimum value | |
525 | Int_t fHistoNCellsBins; // number of cells histogram number of bins | |
526 | Int_t fHistoNCellsMax; // number of cells maximum value | |
527 | Int_t fHistoNCellsMin; // number of cells minimum value | |
528 | Int_t fHistoNClustersBins; // number of clusters histogram number of bins | |
529 | Int_t fHistoNClustersMax; // number of clusters maximum value | |
530 | Int_t fHistoNClustersMin; // number of clusters minimum value | |
521636d2 | 531 | Int_t fHistoRatioBins; // ratio histogram number of bins |
532 | Float_t fHistoRatioMax; // ratio maximum value | |
533 | Float_t fHistoRatioMin; // ratio minimum value | |
534 | Int_t fHistoVertexDistBins; // vertex distance histogram number of bins | |
535 | Float_t fHistoVertexDistMax; // vertex distance maximum value | |
536 | Float_t fHistoVertexDistMin; // vertex distance minimum value | |
537 | Int_t fHistoRBins; // r =sqrt(x^2+y^2+z^2) (cm) position histogram number of bins | |
538 | Float_t fHistoRMax; // r =sqrt(x^2+y^2+z^2) (cm) maximum value | |
539 | Float_t fHistoRMin; // r =sqrt(x^2+y^2+z^2) (cm) minimum value | |
540 | Int_t fHistoXBins; // x (cm) position histogram number of bins | |
541 | Float_t fHistoXMax; // x (cm) position maximum value | |
542 | Float_t fHistoXMin; // x (cm) position minimum value | |
543 | Int_t fHistoYBins; // y (cm) position histogram number of bins | |
544 | Float_t fHistoYMax; // y (cm) position maximum value | |
545 | Float_t fHistoYMin; // y (cm) position minimum value | |
546 | Int_t fHistoZBins; // z (cm) position histogram number of bins | |
547 | Float_t fHistoZMax; // z (cm) position maximum value | |
548 | Float_t fHistoZMin; // z (cm) position minimum value | |
549 | Int_t fHistoSSBins; // Shower Shape parameter histogram number of bins | |
550 | Float_t fHistoSSMax; // Shower Shape parameter position maximum value | |
551 | Float_t fHistoSSMin; // Shower Shape parameter position minimum value | |
552 | Int_t fHistoDiffTimeBins; // Difference cluster pair time parameter histogram number of bins | |
553 | Float_t fHistoDiffTimeMax; // Difference cluster pair time parameter position maximum value | |
554 | Float_t fHistoDiffTimeMin; // Difference cluster pair time parameter position minimum value | |
555 | ||
35c71d5c | 556 | ClassDef(AliAnaPartCorrBaseClass,19) |
c8fe2783 | 557 | } ; |
1c5acb87 | 558 | |
559 | ||
560 | #endif //ALIANAPARTCORRBASECLASS_H | |
561 | ||
562 | ||
563 |