]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/PartCorrBase/AliAnaPartCorrBaseClass.h
Added the include to cstdlib in several places to avoid compilation problems with...
[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
7//_________________________________________________________________________
8// Base class for analysis algorithms
9//-- Author: Gustavo Conesa (INFN-LNF)
10
fbeaf916 11#include <cstdlib>
12
1c5acb87 13//ROOT
14class TClonesArray ;
477d6cee 15class TRefArray ;
1c5acb87 16#include <TList.h>
17#include <TObject.h>
18
19//Analysis
20class AliAODCaloCluster;
21class AliAODCaloCells;
22#include "AliAODPWG4Particle.h"
23class AliCaloTrackReader ;
24class AliCaloPID ;
25class AliFidutialCut ;
26class AliIsolationCut ;
6639984f 27class AliMCAnalysisUtils ;
1c5acb87 28class AliNeutralMesonSelection ;
29class AliStack ;
30class AliHeader ;
31class AliGenEventHeader ;
32
33
34class AliAnaPartCorrBaseClass : public TObject {
35
36public:
37
477d6cee 38 AliAnaPartCorrBaseClass() ; // default ctor
39 AliAnaPartCorrBaseClass(const AliAnaPartCorrBaseClass & g) ; // cpy ctor
40 AliAnaPartCorrBaseClass & operator = (const AliAnaPartCorrBaseClass & g) ;//cpy assignment
41 virtual ~AliAnaPartCorrBaseClass() ; //virtual dtor
42
43// virtual void AddAODCaloCluster(AliAODCaloCluster calo) ;
44 virtual void AddAODParticle(AliAODPWG4Particle pc) ;
45//
46// virtual void ConnectAODCaloClusters();
47 virtual void ConnectAODPHOSCells();
48 virtual void ConnectAODEMCALCells();
49 virtual void ConnectInputOutputAODBranches();
50
51 virtual TList * GetCreateOutputObjects() { return (new TList) ;}
52
53 virtual void Init() {;}
54 virtual void InitParameters() ;
55
56 virtual void Print(const Option_t * ) const ;
57
58 virtual void MakeAnalysisFillAOD() {;}
59
60 virtual void MakeAnalysisFillHistograms() {;}
61
62 virtual Int_t GetDebug() const { return fDebug ; }
63 virtual void SetDebug(Int_t d) { fDebug = d ; }
64
65 virtual Int_t GetEventNumber() const ;
66
67 virtual AliCaloTrackReader * GetReader() const {return fReader ; }
68 virtual void SetReader(AliCaloTrackReader * reader) { fReader = reader ; }
69
70 virtual void Terminate() {;}
71
72 //analysis AOD branch
73 virtual TClonesArray * GetCreateOutputAODBranch() ;
74 virtual TString GetInputAODName() const {return fInputAODName ; }
75 virtual void SetInputAODName(TString name) { fInputAODName = name; }
76 virtual TString GetOutputAODName() const {return fOutputAODName ; }
77 virtual void SetOutputAODName(TString name) { fNewAOD = kTRUE ; fOutputAODName = name; }
78 virtual Bool_t NewOutputAOD() const {return fNewAOD;}
79 virtual TString GetOutputAODClassName() const {return fOutputAODClassName;}
80 virtual void SetOutputAODClassName(TString name) {fOutputAODClassName = name; }
81
82 virtual TClonesArray* GetInputAODBranch() const {return fInputAODBranch ;}
83 virtual TClonesArray* GetOutputAODBranch() const {return fOutputAODBranch ;}
84
85// virtual TClonesArray* GetAODCaloClusters() const {return fAODCaloClusters ;}
86 virtual TClonesArray* GetAODCaloClusters() const ;
87 virtual TClonesArray* GetAODTracks() const ;
88 virtual AliAODCaloCells* GetAODCaloCells() const {return fAODCaloCells ;}
89
90 virtual TRefArray* GetAODCTS() const ;
91 virtual TRefArray* GetAODEMCAL() const ;
92 virtual TRefArray* GetAODPHOS() const ;
93
94 virtual TString GetBaseParametersList();
95
96 virtual TNamed * GetEMCALCells() const ;
97 virtual TNamed * GetPHOSCells() const ;
98
99 virtual AliStack * GetMCStack() const ;
100 virtual AliHeader* GetMCHeader() const ;
101 virtual AliGenEventHeader* GetMCGenEventHeader() const ;
102
103 //Analysis helpers classes pointers setters and getters
104 virtual AliCaloPID * GetCaloPID() const {return fCaloPID ;}
105 virtual void SetCaloPID(AliCaloPID * pid) { fCaloPID = pid ;}
106
107 virtual AliFidutialCut * GetFidutialCut() const {return fFidCut ;}
108 virtual void SetFidutialCut(AliFidutialCut * fc) { fFidCut = fc ;}
109
110 virtual AliIsolationCut * GetIsolationCut() const {return fIC ;}
111 virtual void SetIsolationCut(AliIsolationCut * fc) { fIC = fc ;}
112
113 virtual AliMCAnalysisUtils * GetMCAnalysisUtils() const {return fMCUtils ;}
114 virtual void SetMCAnalysisUtils(AliMCAnalysisUtils * mcutils) { fMCUtils = mcutils ;}
115
116 virtual AliNeutralMesonSelection * GetNeutralMesonSelection() const {return fNMS ;}
117 virtual void SetNeutralMesonSelection(AliNeutralMesonSelection * nms) { fNMS = nms ;}
118
119 virtual Bool_t IsDataMC() const {return fDataMC ; }
120 virtual void SwitchOnDataMC() {fDataMC = kTRUE ; }
121 virtual void SwitchOffDataMC() {fDataMC = kFALSE ; }
122
123 virtual Bool_t IsFidutialCutOn() const {return fCheckFidCut ; }
124 virtual void SwitchOnFidutialCut() { fCheckFidCut = kTRUE;}
125 virtual void SwitchOffFidutialCut() { fCheckFidCut = kFALSE;}
126
127 virtual Bool_t IsCaloPIDOn() const {return fCheckCaloPID ; }
128 virtual void SwitchOnCaloPID() { fCheckCaloPID = kTRUE;}
129 virtual void SwitchOffCaloPID() { fCheckCaloPID = kFALSE;}
130
131 virtual Bool_t IsCaloPIDRecalculationOn() const {return fRecalculateCaloPID ; }
132 virtual void SwitchOnCaloPIDRecalculation() { fRecalculateCaloPID = kTRUE;}
133 virtual void SwitchOffCaloPIDRecalculation() { fRecalculateCaloPID = kFALSE;}
134
135 virtual Float_t GetMaxPt() const {return fMaxPt ; }
136 virtual Float_t GetMinPt() const {return fMinPt ; }
137 virtual void SetMaxPt(Float_t pt) {fMaxPt = pt ; }
138 virtual void SetMinPt(Float_t pt) {fMinPt = pt ; }
139 void SetPtCutRange(Double_t ptmin, Double_t ptmax)
140 { fMaxPt=ptmax; fMinPt=ptmin;}
141
142 //Histogrammes setters and getters
143 virtual void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n) {
144 fHistoNPtBins = n ;
145 fHistoPtMax = max ;
146 fHistoPtMin = min ;
147 }
148
149 Int_t GetHistoNPtBins() const { return fHistoNPtBins ; }
150 Float_t GetHistoPtMin() const { return fHistoPtMin ; }
151 Float_t GetHistoPtMax() const { return fHistoPtMax ; }
152
153 virtual void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n) {
154 fHistoNPhiBins = n ;
155 fHistoPhiMax = max ;
156 fHistoPhiMin = min ;
157 }
158
159 Int_t GetHistoNPhiBins() const { return fHistoNPhiBins ; }
160 Float_t GetHistoPhiMin() const { return fHistoPhiMin ; }
161 Float_t GetHistoPhiMax() const { return fHistoPhiMax ; }
162
163 virtual void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n) {
164 fHistoNEtaBins = n ;
165 fHistoEtaMax = max ;
166 fHistoEtaMin = min ;
167 }
168
169 Int_t GetHistoNEtaBins() const { return fHistoNEtaBins ; }
170 Float_t GetHistoEtaMin() const { return fHistoEtaMin ; }
171 Float_t GetHistoEtaMax() const { return fHistoEtaMax ; }
172
173
174 private:
175
176 Bool_t fDataMC ; // Flag to access MC data when using ESD or AOD
177 Int_t fDebug ; // Debug level
178 Bool_t fCheckFidCut ; // Do analysis for clusters in defined region
179 Bool_t fCheckCaloPID ; // Do analysis for calorimeters
180 Bool_t fRecalculateCaloPID ; // Recalculate PID or use PID weights in calorimeters
181 Float_t fMinPt ; // Maximum pt of (trigger) particles in the analysis
182 Float_t fMaxPt ; // Minimum pt of (trigger) particles in the analysis
183
184 AliCaloTrackReader * fReader; // Acces to ESD/AOD/MC data
185
186 TClonesArray* fInputAODBranch ; //! Selected input particles branch
187 TString fInputAODName ; // Name of input AOD branch;
188 TClonesArray* fOutputAODBranch ; //! Selected output particles branch
189 Bool_t fNewAOD ; // Flag, new aod branch added to the analysis or not.
190 TString fOutputAODName ; // Name of output AOD branch;
191 TString fOutputAODClassName; // Type of aod objects to be stored in the TClonesArray (AliAODPWG4Particle, AliAODPWG4ParticleCorrelation ...)
192
193 //TClonesArray* fAODCaloClusters ; //! selected PHOS/EMCAL CaloClusters
194 AliAODCaloCells * fAODCaloCells ; //! selected PHOS/EMCAL CaloCells
195
196 //Analysis helper classes access pointers
197 AliCaloPID * fCaloPID; // PID calculation
198 AliFidutialCut * fFidCut; // Acceptance cuts
199 AliIsolationCut * fIC; // Isolation cut
200 AliMCAnalysisUtils * fMCUtils; // MonteCarlo Analysis utils
201 AliNeutralMesonSelection * fNMS; // Neutral Meson Selection
202
203 //Histograms binning and range
204 Int_t fHistoNPtBins ; // Number of bins in pt axis
205 Float_t fHistoPtMax ; // Maximum value of pt histogram range
206 Float_t fHistoPtMin ; // Minimum value of pt histogram range
207 Int_t fHistoNPhiBins ; // Number of bins in phi axis
208 Float_t fHistoPhiMax ; // Maximum value of phi histogram range
209 Float_t fHistoPhiMin ; // Minimum value of phi histogram range
210 Int_t fHistoNEtaBins ; // Number of bins in eta axis
211 Float_t fHistoEtaMax ; // Maximum value of eta histogram range
212 Float_t fHistoEtaMin ; // Minimum value of eta histogram range
213
214 ClassDef(AliAnaPartCorrBaseClass,3)
215 } ;
1c5acb87 216
217
218#endif //ALIANAPARTCORRBASECLASS_H
219
220
221