1 - Rename AliAnaMaker and AliAnaBaseClass to AliAnaPartCorrMaker and AliAnaPartCorrB...
[u/mrichter/AliRoot.git] / PWG4 / 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 #include <TList.h>
14 #include <TObject.h>
15
16 //Analysis
17 class AliAODCaloCluster;
18 class AliAODCaloCells;
19 #include "AliAODParticleCorrelation.h"
20 class AliCaloTrackReader ;   
21 #include "AliCaloPID.h"
22 class AliFidutialCut ;
23 class AliIsolationCut ;
24 class AliNeutralMesonSelection ;
25 /* class AliStack ; */
26 /* class AliHeader ; */
27 /* class AliGenEventHeader ; */
28 #include "AliStack.h"
29 #include "AliHeader.h"
30 #include "AliGenEventHeader.h"
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 AddAODParticleCorrelation(AliAODParticleCorrelation pc) ;
43
44        virtual void ConnectAODCaloClusters();
45        virtual void ConnectAODPHOSCells();
46        virtual void ConnectAODEMCALCells();
47
48        virtual TList * GetCreateOutputObjects(){ return (new TList) ;}
49        
50        virtual void Print(const Option_t * ) const {;}
51        
52        virtual void MakeAnalysisFillAOD()  {;}
53        
54        virtual void MakeAnalysisFillHistograms() {;}
55   
56        virtual Int_t GetDebug() const  { return fDebug ; }
57        virtual void SetDebug(Int_t d)   { fDebug = d ; }
58
59        virtual AliCaloTrackReader * GetReader() const {return fReader ; }
60        virtual void SetReader(AliCaloTrackReader * reader) { fReader = reader ; }
61
62        virtual TClonesArray* GetAODBranch() const {return fAODBranch ;}
63        virtual TClonesArray* GetAODCaloClusters() const {return fAODCaloClusters ;}
64        virtual AliAODCaloCells* GetAODCaloCells() const {return fAODCaloCells ;}
65
66        virtual TClonesArray* GetAODCTS() const ;
67        virtual TClonesArray* GetAODEMCAL() const ;
68        virtual TClonesArray* GetAODPHOS() const ;
69        
70        virtual TNamed * GetEMCALCells() const ;
71        virtual TNamed * GetPHOSCells() const ;
72
73        virtual AliStack * GetMCStack() const ;
74        virtual AliHeader* GetMCHeader() const ;
75        virtual AliGenEventHeader* GetMCGenEventHeader() const ;
76
77        virtual void SetAODBranch(TClonesArray * tca) { fAODBranch = tca ; }
78
79        virtual AliCaloPID * GetCaloPID() const {return  fCaloPID ;}
80        virtual void SetCaloPID(AliCaloPID * pid) { fCaloPID = pid ;}
81
82        virtual AliFidutialCut * GetFidutialCut() const {return  fFidCut ;}
83        virtual void SetFidutialCut(AliFidutialCut * fc) { fFidCut = fc ;}
84
85        virtual AliIsolationCut * GetIsolationCut() const {return  fIC ;}
86        virtual void SetIsolationCut(AliIsolationCut * fc) { fIC = fc ;}
87        
88        virtual AliNeutralMesonSelection * GetNeutralMesonSelection() const {return  fNMS ;}
89        virtual void SetNeutralMesonSelection(AliNeutralMesonSelection * nms) { fNMS = nms ;}
90
91        virtual Bool_t     IsDataMC() const {return fDataMC ; }
92        virtual void SwitchOnDataMC()    {fDataMC = kTRUE ; }
93        virtual void SwitchOffDataMC()    {fDataMC = kFALSE ; }
94        
95        virtual Bool_t IsFidutialCutOn() {return fCheckFidCut ; }
96        virtual void SwitchOnFidutialCut() { fCheckFidCut = kTRUE;}
97        virtual void SwitchOffFidutialCut() { fCheckFidCut = kFALSE;}
98        
99        virtual Bool_t IsCaloPIDOn() {return fCheckCaloPID ; }
100        virtual void SwitchOnCaloPID() { fCheckCaloPID = kTRUE;}
101        virtual void SwitchOffCaloPID() { fCheckCaloPID = kFALSE;}
102        
103        virtual Bool_t IsCaloPIDRecalculationOn() {return fRecalculateCaloPID ; }
104        virtual void SwitchOnCaloPIDRecalculation() { fRecalculateCaloPID  = kTRUE;}
105        virtual void SwitchOffCaloPIDRecalculation() { fRecalculateCaloPID  = kFALSE;}
106        
107        virtual Float_t    GetMaxPt()         const {return fMaxPt ; }
108        virtual Float_t    GetMinPt()         const {return fMinPt ; }
109        virtual void SetMaxPt(Float_t pt)              {fMaxPt = pt ; }
110        virtual void SetMinPt(Float_t pt)              {fMinPt = pt ; }
111        void SetPtCutRange(Double_t ptmin, Double_t ptmax)
112        {  fMaxPt=ptmax;   fMinPt=ptmin;}
113        
114        virtual void InitParameters() ;
115     
116  private:    
117
118        Bool_t fDataMC ; //Flag to access MC data when using ESD or AOD     
119        Int_t fDebug ; // Debug level
120        Bool_t fCheckFidCut ; // Do analysis for clusters in defined region         
121        Bool_t fCheckCaloPID ; // Do analysis for calorimeters
122        Bool_t fRecalculateCaloPID ; //Recalculate PID or use PID weights in calorimeters
123        Float_t fMinPt ; //Maximum pt of (trigger) particles in the analysis
124        Float_t fMaxPt ; //Minimum pt of (trigger) particles in the analysis
125  
126        AliCaloTrackReader * fReader; //Acces to ESD/AOD/MC data
127
128        TClonesArray* fAODBranch ;        //! selected particles branch
129        TClonesArray* fAODCaloClusters ;     //! selected PHOS/EMCAL CaloClusters
130        AliAODCaloCells * fAODCaloCells ;     //! selected PHOS/EMCAL CaloCells
131        AliCaloPID * fCaloPID; // PID calculation
132        AliFidutialCut * fFidCut; //Acceptance cuts
133        AliIsolationCut * fIC; // Isolation cut 
134        AliNeutralMesonSelection * fNMS; // Neutral Meson Selection
135
136        ClassDef(AliAnaPartCorrBaseClass,1)
137  } ;
138
139
140 #endif //AliAnaPartCorrBaseClass_H
141
142
143