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