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