]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/PartCorrBase/AliAnaPartCorrBaseClass.h
Add cluster disitribution histograms as a function of eta/phi and depending on V0...
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliAnaPartCorrBaseClass.h
CommitLineData
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 14class TClonesArray ;
591cc579 15class TObjArray ;
a3aebfff 16#include <TList.h>
1c5acb87 17#include <TObject.h>
0c1383b5 18class TObjString;
1c5acb87 19
c8fe2783 20 //Analysis
f37fa8d2 21class 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 29class AliStack ;
30class AliHeader ;
31class AliGenEventHeader ;
a3aebfff 32#include "AliAODPWG4ParticleCorrelation.h"
2ef5608f 33class AliEMCALGeometry;
765d44e7 34class AliPHOSGeoUtils;
c8fe2783 35#include "AliMixedEvent.h"
b6dd6ad2 36#include "AliCentrality.h"
72542aba 37#include "AliEventplane.h"
1c5acb87 38
39class AliAnaPartCorrBaseClass : public TObject {
40
c8fe2783 41public:
477d6cee 42 AliAnaPartCorrBaseClass() ; // default ctor
78219bac 43 virtual ~AliAnaPartCorrBaseClass() ; //virtual dtor
44
c8fe2783 45private:
477d6cee 46 AliAnaPartCorrBaseClass(const AliAnaPartCorrBaseClass & g) ; // cpy ctor
47 AliAnaPartCorrBaseClass & operator = (const AliAnaPartCorrBaseClass & g) ;//cpy assignment
477d6cee 48
c8fe2783 49public:
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 442private:
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