1 #ifndef AliCaloTrackReader_H
2 #define AliCaloTrackReader_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 /* History of cvs commits:
14 //_________________________________________________________________________
15 // Base class for reading data: MonteCarlo, ESD or AOD, of PHOS EMCAL and
16 // Central Barrel Tracking detectors.
17 // Not all MC particles/tracks/clusters are kept, some kinematical restrictions are done.
18 // Mother class of : AliCaloTrackESDReader: Fills ESD data in 3 TClonesArrays (PHOS, EMCAL, CTS)
19 // : AliCaloTrackMCReader: Fills Kinematics data in 3 TClonesArrays (PHOS, EMCAL, CTS)
20 // : AliCaloTrackAODReader: Fills AOD data in 3 TClonesArrays (PHOS, EMCAL, CTS)
22 // -- Author: Gustavo Conesa (INFN-LNF)
24 // --- ROOT system ---
27 class TLorentzVector ;
32 //--- ANALYSIS system ---
33 /* #include "AliStack.h" */
34 /* #include "AliHeader.h" */
35 /* #include "AliGenEventHeader.h" */
38 class AliGenEventHeader ;
39 #include "AliESDEvent.h"
40 #include "AliAODEvent.h"
41 #include "AliMCEvent.h"
43 #include "AliFidutialCut.h"
45 class AliCaloTrackReader : public TObject {
49 AliCaloTrackReader() ; // ctor
50 AliCaloTrackReader(const AliCaloTrackReader & g) ; // cpy ctor
51 AliCaloTrackReader & operator = (const AliCaloTrackReader & g) ;//cpy assignment
52 virtual ~AliCaloTrackReader() ;//virtual dtor
54 enum inputDataType {kESD, kAOD, kMC};
56 void InitParameters();
58 virtual Int_t GetDebug() const { return fDebug ; }
59 virtual void SetDebug(Int_t d) { fDebug = d ; }
61 virtual Int_t GetDataType() const { return fDataType ; }
62 virtual void SetDataType(Int_t data ){fDataType = data ; }
64 virtual void Print(const Option_t * opt)const;
66 //Minimum pt setters and getters
67 virtual Float_t GetEMCALPtMin() const { return fEMCALPtMin ; }
68 virtual Float_t GetPHOSPtMin() const { return fPHOSPtMin ; }
69 virtual Float_t GetCTSPtMin() const { return fCTSPtMin ; }
71 virtual void SetEMCALPtMin(Float_t pt){ fEMCALPtMin = pt ; }
72 virtual void SetPHOSPtMin(Float_t pt){ fPHOSPtMin = pt ; }
73 virtual void SetCTSPtMin(Float_t pt){ fCTSPtMin = pt ; }
75 //Input setters and getters
77 Bool_t IsCTSSwitchedOn() const { return fFillCTS ; }
78 void SwitchOnCTS() {fFillCTS = kTRUE ; }
79 void SwitchOffCTS() {fFillCTS = kFALSE ; }
81 Bool_t IsEMCALSwitchedOn() const { return fFillEMCAL ; }
82 void SwitchOnEMCAL() {fFillEMCAL = kTRUE ; }
83 void SwitchOffEMCAL() {fFillEMCAL = kFALSE ; }
85 Bool_t IsPHOSSwitchedOn() const { return fFillPHOS ; }
86 void SwitchOnPHOS() {fFillPHOS = kTRUE ; }
87 void SwitchOffPHOS() {fFillPHOS = kFALSE ; }
89 Bool_t IsEMCALCellsSwitchedOn() const { return fFillEMCALCells ; }
90 void SwitchOnEMCALCells() {fFillEMCALCells = kTRUE ; }
91 void SwitchOffEMCALCells() {fFillEMCALCells = kFALSE ; }
93 Bool_t IsPHOSCellsSwitchedOn() const { return fFillPHOSCells ; }
94 void SwitchOnPHOSCells() {fFillPHOSCells = kTRUE ; }
95 void SwitchOffPHOSCells() {fFillPHOSCells = kFALSE ; }
97 virtual void FillInputEvent();
99 virtual void FillInputCTS(){;}
100 virtual void FillInputEMCAL(){;}
101 virtual void FillInputPHOS(){;}
102 virtual void FillInputEMCALCells(){;}
103 virtual void FillInputPHOSCells(){;}
105 virtual TClonesArray* GetAODCTS() const {return fAODCTS ;}
106 virtual TClonesArray* GetAODEMCAL() const {return fAODEMCAL ;}
107 virtual TClonesArray* GetAODPHOS() const {return fAODPHOS ;}
108 virtual TNamed* GetEMCALCells() const {return fEMCALCells ;}
109 virtual TNamed* GetPHOSCells() const {return fPHOSCells ;}
111 virtual AliStack* GetStack() const ;
112 virtual AliHeader* GetHeader() const ;
113 virtual AliGenEventHeader* GetGenEventHeader() const ;
115 virtual void GetVertex(Double_t v[3]) {;}
116 virtual AliESDEvent* GetESD() const {return fESD;}
117 virtual AliAODEvent* GetAOD() const {return fAOD;}
118 virtual AliMCEvent* GetMC() const {return fMC;}
120 virtual void SetESD( AliESDEvent* esd) {fESD = esd;}
121 virtual void SetAOD(AliAODEvent* aod) {fAOD = aod;}
122 virtual void SetMC(AliMCEvent* mc) {fMC = mc;}
124 virtual void ResetLists();
126 virtual AliFidutialCut * GetFidutialCut() const {return fFidutialCut ;}
127 virtual void SetFidutialCut(AliFidutialCut * fc) { fFidutialCut = fc ;}
129 virtual void SetInputEvent(TObject* /*esd*/, TObject* /*aod*/, TObject* /*mc*/) {;}
133 Int_t fDataType ; //Select MC:Kinematics, Data:ESD/AOD, MCData:Both
134 Int_t fDebug; //Debugging level
135 AliFidutialCut * fFidutialCut; //Acceptance cuts
137 Float_t fCTSPtMin; // pT Threshold on charged particles
138 Float_t fEMCALPtMin; //pT Threshold on emcal clusters
139 Float_t fPHOSPtMin; // pT Threshold on phos clusters
141 TClonesArray* fAODCTS ; //! temporal array with tracks
142 TClonesArray* fAODEMCAL ; //! temporal array with EMCAL CaloClusters
143 TClonesArray* fAODPHOS ; //! temporal array with PHOS CaloClusters
144 TNamed * fEMCALCells ; //! temporal array with EMCAL CaloCells, ESD or AOD
145 TNamed * fPHOSCells ; //! temporal array with PHOS CaloCells, ESD or AOD
147 AliESDEvent *fESD; //! pointer to esd
148 AliAODEvent *fAOD; //! pointer to aod
149 AliMCEvent *fMC; //! Monte Carlo Event Handler
151 Bool_t fFillCTS; //use data from CTS
152 Bool_t fFillEMCAL; //use data from EMCAL
153 Bool_t fFillPHOS; //use data from PHOS
154 Bool_t fFillEMCALCells; //use data from EMCAL
155 Bool_t fFillPHOSCells; //use data from PHOS
157 ClassDef(AliCaloTrackReader,1)
161 #endif //AliCaloTrackReader_H