]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrBase/AliAnaPartCorrBaseClass.h
Comment out copy ctors and assignment opetators from classes source code, not needed.
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliAnaPartCorrBaseClass.h
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
11 #include <cstdlib>
12
13 //ROOT
14 class TClonesArray ;
15 class TObjArray ;
16 #include <TList.h> 
17 #include <TObject.h>
18
19 //Analysis
20 class AliESDCaloCluster;
21 class AliAODCaloCluster;
22 class AliAODCaloCells;
23 #include "AliCaloTrackReader.h"   
24 class AliCaloPID ;
25 class AliFiducialCut ;
26 class AliIsolationCut ;
27 class AliMCAnalysisUtils ;
28 class AliNeutralMesonSelection ;
29 #include "AliCalorimeterUtils.h" 
30 class AliStack ; 
31 class AliHeader ; 
32 class AliGenEventHeader ; 
33 #include "AliAODPWG4ParticleCorrelation.h"
34 class AliEMCALGeoUtils;
35 class AliPHOSGeoUtils;
36
37 class AliAnaPartCorrBaseClass : public TObject {
38         
39  public:   
40   AliAnaPartCorrBaseClass() ; // default ctor
41   virtual ~AliAnaPartCorrBaseClass() ; //virtual dtor
42   
43  private:
44   AliAnaPartCorrBaseClass(const AliAnaPartCorrBaseClass & g) ; // cpy ctor
45   AliAnaPartCorrBaseClass & operator = (const AliAnaPartCorrBaseClass & g) ;//cpy assignment
46   
47  public:
48   //    virtual void AddAODCaloCluster(AliAODCaloCluster calo) ;
49   virtual void AddAODParticle(AliAODPWG4Particle part) ;
50   
51 //      virtual void ConnectAODCaloClusters();
52   virtual void ConnectAODPHOSCells();
53   virtual void ConnectAODEMCALCells();
54   virtual void ConnectInputOutputAODBranches();
55   
56   virtual TList * GetCreateOutputObjects()      { return (new TList) ;}
57   //virtual TList * GetAnalysisOutputContainer()  { return fAnaOutContainer ;} 
58         
59   virtual void AddToHistogramsName(TString add) { fAddToHistogramsName = add; }  
60   virtual TString GetAddedHistogramsStringToName() {return fAddToHistogramsName ;}
61   
62   virtual void Init() {;}
63   virtual void InitParameters() ;
64   
65   virtual void Print(const Option_t * ) const ;
66   
67   virtual void MakeAnalysisFillAOD()  {;}
68   
69   virtual void MakeAnalysisFillHistograms() {;}
70   
71   virtual void MakeMixingAnalysisFillHistograms() {;}
72         
73   virtual Int_t GetDebug() const  { return fDebug ; }
74   virtual void SetDebug(Int_t d)   { fDebug = d ; }
75   
76   virtual Int_t GetEventNumber() const ;
77                 
78   virtual AliCaloTrackReader * GetReader() const {return fReader ; }
79   virtual void SetReader(AliCaloTrackReader * const reader) { fReader = reader ; }
80   
81   //Calorimeter helper class access methods
82   AliEMCALGeoUtils *  GetEMCALGeometry() const { return fCaloUtils->GetEMCALGeometry(); }
83   AliPHOSGeoUtils  *  GetPHOSGeometry()  const { return fCaloUtils->GetPHOSGeometry() ; }
84
85   Int_t GetModuleNumberCellIndexes(const Int_t absId, const TString calo, Int_t & icol, Int_t & irow, Int_t &iRCU) const {
86           return fCaloUtils->GetModuleNumberCellIndexes(absId, calo, icol, irow,iRCU);}
87   Int_t GetModuleNumber(AliAODPWG4Particle * part) const {
88           return fCaloUtils->GetModuleNumber(part, fReader->GetInputEvent());}
89   Int_t GetModuleNumber(AliESDCaloCluster * cluster) const {
90           return fCaloUtils->GetModuleNumber(cluster);}
91   Int_t GetModuleNumber(AliAODCaloCluster * cluster) const {
92           return fCaloUtils->GetModuleNumber(cluster);}
93         
94   virtual void Terminate(TList * /*outputList*/) {;}
95         
96   //analysis AOD branch
97   virtual TClonesArray * GetCreateOutputAODBranch() ;
98   virtual TString GetInputAODName() const {return fInputAODName ; }
99   virtual void SetInputAODName(TString name)   { fInputAODName = name; }        
100   virtual TString GetOutputAODName()  const {return fOutputAODName ; }
101   virtual void SetOutputAODName(TString name)   { fNewAOD = kTRUE ; fOutputAODName = name; }
102   virtual Bool_t NewOutputAOD() const {return fNewAOD;}
103   virtual TString GetOutputAODClassName() const {return fOutputAODClassName;}
104   virtual void SetOutputAODClassName(TString name) {fOutputAODClassName = name; }
105   virtual AliCalorimeterUtils * GetCaloUtils() const {return fCaloUtils ; }
106   void SetCaloUtils(AliCalorimeterUtils * caloutils) { fCaloUtils = caloutils ; }       
107         
108   virtual TString GetAODObjArrayName() const {return fAODObjArrayName;}
109   virtual void SetAODObjArrayName(TString name) {fAODObjArrayName = name; }
110
111   virtual TClonesArray* GetInputAODBranch() const {return fInputAODBranch ;}
112   virtual TClonesArray* GetOutputAODBranch() const {if(fNewAOD) return fOutputAODBranch; else return fInputAODBranch ;}
113   virtual TClonesArray* GetAODBranch(TString aodBranchName) const ;
114         
115 //      virtual TClonesArray* GetAODCaloClusters() const {return fAODCaloClusters ;}
116   virtual TClonesArray* GetAODCaloClusters() const ;
117   virtual TClonesArray* GetAODTracks() const ;  
118   virtual AliAODCaloCells* GetAODCaloCells() const {return fAODCaloCells ;}
119   
120   virtual TObjArray* GetAODCTS() const ;
121   virtual TObjArray* GetAODEMCAL() const ;
122   virtual TObjArray* GetAODPHOS() const ;
123   
124   virtual TString       GetBaseParametersList();
125   
126   virtual TNamed * GetEMCALCells() const ;
127   virtual TNamed * GetPHOSCells() const ;
128   
129   virtual AliStack * GetMCStack() const ;
130   virtual AliHeader* GetMCHeader() const ;
131   virtual AliGenEventHeader* GetMCGenEventHeader() const ;
132   
133   //Analysis helpers classes pointers setters and getters
134   virtual AliCaloPID * GetCaloPID() const {return  fCaloPID ;}
135   virtual void SetCaloPID(AliCaloPID * const pid) { fCaloPID = pid ;}
136   
137   virtual AliFiducialCut * GetFiducialCut() const {return  fFidCut ;}
138   virtual void SetFiducialCut(AliFiducialCut * const fc) { fFidCut = fc ;}
139   
140   virtual AliIsolationCut * GetIsolationCut() const {return  fIC ;}
141   virtual void SetIsolationCut(AliIsolationCut * const ic) { fIC = ic ;}
142   
143   virtual AliMCAnalysisUtils * GetMCAnalysisUtils() const {return  fMCUtils ;}
144   virtual void SetMCAnalysisUtils(AliMCAnalysisUtils * const mcutils) { fMCUtils = mcutils ;}   
145   
146   virtual AliNeutralMesonSelection * GetNeutralMesonSelection() const {return  fNMS ;}
147   virtual void SetNeutralMesonSelection(AliNeutralMesonSelection * const nms) { fNMS = nms ;}
148         
149   virtual Bool_t     IsDataMC() const {return fDataMC ; }
150   virtual void SwitchOnDataMC()    {fDataMC = kTRUE ; }
151   virtual void SwitchOffDataMC()    {fDataMC = kFALSE ; }
152   
153   virtual Bool_t IsFiducialCutOn() const {return fCheckFidCut ; }
154   virtual void SwitchOnFiducialCut() { fCheckFidCut = kTRUE;}
155   virtual void SwitchOffFiducialCut() { fCheckFidCut = kFALSE;}
156   
157   virtual Bool_t IsCaloPIDOn() const {return fCheckCaloPID ; }
158   virtual void SwitchOnCaloPID() { fCheckCaloPID = kTRUE;}
159   virtual void SwitchOffCaloPID() { fCheckCaloPID = kFALSE;}
160   
161   virtual Bool_t IsCaloPIDRecalculationOn() const {return fRecalculateCaloPID ; }
162   virtual void SwitchOnCaloPIDRecalculation() { fRecalculateCaloPID  = kTRUE;}
163   virtual void SwitchOffCaloPIDRecalculation() { fRecalculateCaloPID  = kFALSE;}
164   
165   virtual Float_t    GetMaxPt()         const {return fMaxPt ; }
166   virtual Float_t    GetMinPt()         const {return fMinPt ; }
167   virtual void SetMaxPt(Float_t pt)              {fMaxPt = pt ; }
168   virtual void SetMinPt(Float_t pt)              {fMinPt = pt ; }
169   virtual void SetPtCutRange(Double_t ptmin, Double_t ptmax)
170   {  fMaxPt=ptmax;   fMinPt=ptmin;}
171   
172   //Histogrammes setters and getters
173   //Pt, Energy 
174   virtual void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n) {
175     fHistoPtBins = n ;
176     fHistoPtMax = max ;
177     fHistoPtMin = min ;
178   }
179   
180   virtual Int_t   GetHistoPtBins()  const { return fHistoPtBins; }
181   virtual Float_t GetHistoPtMin()   const { return fHistoPtMin ; }
182   virtual Float_t GetHistoPtMax()   const { return fHistoPtMax ; }
183   
184   //Azimuthal angle
185   virtual void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n) {
186     fHistoPhiBins  = n ;
187     fHistoPhiMax   = max ;
188     fHistoPhiMin   = min ;
189   }
190   
191   virtual Int_t   GetHistoPhiBins()  const { return fHistoPhiBins; }
192   virtual Float_t GetHistoPhiMin()   const { return fHistoPhiMin ; }
193   virtual Float_t GetHistoPhiMax()   const { return fHistoPhiMax ; }
194   
195   //Pseudorapidity-rapidity
196   virtual void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n) {
197     fHistoEtaBins = n ;
198     fHistoEtaMax  = max ;
199     fHistoEtaMin  = min ;
200   }
201   
202   virtual Int_t   GetHistoEtaBins()  const { return fHistoEtaBins; }
203   virtual Float_t GetHistoEtaMin()   const { return fHistoEtaMin ; }
204   virtual Float_t GetHistoEtaMax()   const { return fHistoEtaMax ; }
205   
206   //Mass
207   virtual void SetHistoMassRangeAndNBins(Float_t min, Float_t max, Int_t n) {
208         fHistoMassBins = n ;
209         fHistoMassMax  = max ;
210         fHistoMassMin  = min ;
211   }
212         
213   virtual Int_t   GetHistoMassBins()  const { return fHistoMassBins ; }
214   virtual Float_t GetHistoMassMin()   const { return fHistoMassMin ; }
215   virtual Float_t GetHistoMassMax()   const { return fHistoMassMax ; }
216         
217   //Asymetry
218   virtual void SetHistoAsymmetryRangeAndNBins(Float_t min, Float_t max, Int_t n) {
219         fHistoAsymBins = n ;
220         fHistoAsymMax  = max ;
221         fHistoAsymMin  = min ;
222   }
223         
224   virtual Int_t   GetHistoAsymmetryBins()  const { return fHistoAsymBins ; }
225   virtual Float_t GetHistoAsymmetryMin()   const { return fHistoAsymMin ; }
226   virtual Float_t GetHistoAsymmetryMax()   const { return fHistoAsymMax ; }     
227         
228  private:    
229   
230   Bool_t  fDataMC ;             // Flag to access MC data when using ESD or AOD     
231   Int_t   fDebug ;              // Debug level
232   Bool_t  fCheckFidCut ;        // Do analysis for clusters in defined region         
233   Bool_t  fCheckCaloPID ;       // Do analysis for calorimeters
234   Bool_t  fRecalculateCaloPID ; // Recalculate PID or use PID weights in calorimeters
235   Float_t fMinPt ;              // Maximum pt of (trigger) particles in the analysis
236   Float_t fMaxPt ;              // Minimum pt of (trigger) particles in the analysis
237         
238   AliCaloTrackReader * fReader; // Acces to ESD/AOD/MC data
239   
240   TClonesArray* fInputAODBranch ;    //! Selected input particles branch
241   TString       fInputAODName ;      //  Name of input AOD branch;
242   TClonesArray* fOutputAODBranch ;   //! Selected output particles branch
243   Bool_t        fNewAOD ;            //  Flag, new aod branch added to the analysis or not.
244   TString       fOutputAODName ;     //  Name of output AOD branch;
245   TString       fOutputAODClassName; //  Type of aod objects to be stored in the TClonesArray (AliAODPWG4Particle, AliAODPWG4ParticleCorrelation ...)   
246   TString       fAODObjArrayName ;   // Name of ref array kept in a TList in AliAODParticleCorrelation with clusters or track references.
247   TString       fAddToHistogramsName;// Add this string to histograms name
248   
249   //TClonesArray* fAODCaloClusters ;  //! selected PHOS/EMCAL CaloClusters
250   AliAODCaloCells * fAODCaloCells ; //! selected PHOS/EMCAL CaloCells
251   
252   //Analysis helper classes access pointers
253   AliCaloPID               * fCaloPID; //! PID calculation
254   AliFiducialCut           * fFidCut;  //! Acceptance cuts
255   AliIsolationCut          * fIC;      //! Isolation cut 
256   AliMCAnalysisUtils       * fMCUtils; //! MonteCarlo Analysis utils 
257   AliNeutralMesonSelection * fNMS;     //! Neutral Meson Selection
258   AliCalorimeterUtils      * fCaloUtils ; //  Pointer to CalorimeterUtils
259
260   //TList * fAnaOutContainer;   // Temporal histogram output container, contents to be added to the main container passed to the main analysis frame
261
262   //Histograms binning and range    
263   Int_t   fHistoPtBins   ;  // Number of bins in pt axis
264   Float_t fHistoPtMax    ;  // Maximum value of pt histogram range
265   Float_t fHistoPtMin    ;  // Minimum value of pt histogram range
266   Int_t   fHistoPhiBins  ;  // Number of bins in phi axis
267   Float_t fHistoPhiMax   ;  // Maximum value of phi histogram range
268   Float_t fHistoPhiMin   ;  // Minimum value of phi histogram range
269   Int_t   fHistoEtaBins  ;  // Number of bins in eta axis
270   Float_t fHistoEtaMax   ;  // Maximum value of eta histogram range
271   Float_t fHistoEtaMin   ;  // Minimum value of eta histogram range
272   Int_t   fHistoMassBins ;  // Number of bins in mass axis
273   Float_t fHistoMassMax  ;  // Maximum value of mass histogram range
274   Float_t fHistoMassMin  ;  // Minimum value of mass histogram range
275   Int_t   fHistoAsymBins ;  // Number of bins in asymmetry axis
276   Float_t fHistoAsymMax  ;  // Maximum value of asymmetry histogram range
277   Float_t fHistoAsymMin  ;  // Minimum value of asymmetry histogram range
278         
279   ClassDef(AliAnaPartCorrBaseClass,7)
280     } ;
281
282
283 #endif //ALIANAPARTCORRBASECLASS_H
284
285
286