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 //_________________________________________________________________________
8 // Base class for reading data: MonteCarlo, ESD or AOD, of PHOS EMCAL and
9 // Central Barrel Tracking detectors.
10 // Not all MC particles/tracks/clusters are kept, some kinematical restrictions are done.
11 // Mother class of : AliCaloTrackESDReader: Fills ESD data in 3 TClonesArrays (PHOS, EMCAL, CTS)
12 // : AliCaloTrackMCReader: Fills Kinematics data in 3 TClonesArrays (PHOS, EMCAL, CTS)
13 // : AliCaloTrackAODReader: Fills AOD data in 3 TClonesArrays (PHOS, EMCAL, CTS)
15 // -- Author: Gustavo Conesa (INFN-LNF)
17 // --- ROOT system ---
20 class TLorentzVector ;
25 //--- ANALYSIS system ---
26 /* #include "AliStack.h" */
27 /* #include "AliHeader.h" */
28 /* #include "AliGenEventHeader.h" */
31 class AliGenEventHeader ;
32 #include "AliESDEvent.h"
33 #include "AliAODEvent.h"
34 #include "AliMCEvent.h"
36 #include "AliFidutialCut.h"
38 class AliCaloTrackReader : public TObject {
42 AliCaloTrackReader() ; // ctor
43 AliCaloTrackReader(const AliCaloTrackReader & g) ; // cpy ctor
44 AliCaloTrackReader & operator = (const AliCaloTrackReader & g) ;//cpy assignment
45 virtual ~AliCaloTrackReader() ;//virtual dtor
47 enum inputDataType {kESD, kAOD, kMC};
49 void InitParameters();
51 virtual Int_t GetDebug() const { return fDebug ; }
52 virtual void SetDebug(Int_t d) { fDebug = d ; }
54 virtual Int_t GetDataType() const { return fDataType ; }
55 virtual void SetDataType(Int_t data ){fDataType = data ; }
57 virtual void Print(const Option_t * opt)const;
59 //Minimum pt setters and getters
60 virtual Float_t GetEMCALPtMin() const { return fEMCALPtMin ; }
61 virtual Float_t GetPHOSPtMin() const { return fPHOSPtMin ; }
62 virtual Float_t GetCTSPtMin() const { return fCTSPtMin ; }
64 virtual void SetEMCALPtMin(Float_t pt){ fEMCALPtMin = pt ; }
65 virtual void SetPHOSPtMin(Float_t pt){ fPHOSPtMin = pt ; }
66 virtual void SetCTSPtMin(Float_t pt){ fCTSPtMin = pt ; }
68 //Input setters and getters
70 Bool_t IsCTSSwitchedOn() const { return fFillCTS ; }
71 void SwitchOnCTS() {fFillCTS = kTRUE ; }
72 void SwitchOffCTS() {fFillCTS = kFALSE ; }
74 Bool_t IsEMCALSwitchedOn() const { return fFillEMCAL ; }
75 void SwitchOnEMCAL() {fFillEMCAL = kTRUE ; }
76 void SwitchOffEMCAL() {fFillEMCAL = kFALSE ; }
78 Bool_t IsPHOSSwitchedOn() const { return fFillPHOS ; }
79 void SwitchOnPHOS() {fFillPHOS = kTRUE ; }
80 void SwitchOffPHOS() {fFillPHOS = kFALSE ; }
82 Bool_t IsEMCALCellsSwitchedOn() const { return fFillEMCALCells ; }
83 void SwitchOnEMCALCells() {fFillEMCALCells = kTRUE ; }
84 void SwitchOffEMCALCells() {fFillEMCALCells = kFALSE ; }
86 Bool_t IsPHOSCellsSwitchedOn() const { return fFillPHOSCells ; }
87 void SwitchOnPHOSCells() {fFillPHOSCells = kTRUE ; }
88 void SwitchOffPHOSCells() {fFillPHOSCells = kFALSE ; }
90 virtual void FillInputEvent();
92 virtual void FillInputCTS(){;}
93 virtual void FillInputEMCAL(){;}
94 virtual void FillInputPHOS(){;}
95 virtual void FillInputEMCALCells(){;}
96 virtual void FillInputPHOSCells(){;}
98 virtual TClonesArray* GetAODCTS() const {return fAODCTS ;}
99 virtual TClonesArray* GetAODEMCAL() const {return fAODEMCAL ;}
100 virtual TClonesArray* GetAODPHOS() const {return fAODPHOS ;}
101 virtual TNamed* GetEMCALCells() const {return fEMCALCells ;}
102 virtual TNamed* GetPHOSCells() const {return fPHOSCells ;}
104 virtual AliStack* GetStack() const ;
105 virtual AliHeader* GetHeader() const ;
106 virtual AliGenEventHeader* GetGenEventHeader() const ;
108 virtual void GetVertex(Double_t * ) {;}
109 virtual AliESDEvent* GetESD() const {return fESD;}
110 virtual AliAODEvent* GetAOD() const {return fAOD;}
111 virtual AliMCEvent* GetMC() const {return fMC;}
113 virtual void SetESD( AliESDEvent* esd) {fESD = esd;}
114 virtual void SetAOD(AliAODEvent* aod) {fAOD = aod;}
115 virtual void SetMC(AliMCEvent* mc) {fMC = mc;}
117 virtual void ResetLists();
119 virtual AliFidutialCut * GetFidutialCut() const {return fFidutialCut ;}
120 virtual void SetFidutialCut(AliFidutialCut * fc) { fFidutialCut = fc ;}
122 virtual void SetInputEvent(TObject* /*esd*/, TObject* /*aod*/, TObject* /*mc*/) {;}
126 Int_t fDataType ; //Select MC:Kinematics, Data:ESD/AOD, MCData:Both
127 Int_t fDebug; //Debugging level
128 AliFidutialCut * fFidutialCut; //Acceptance cuts
130 Float_t fCTSPtMin; // pT Threshold on charged particles
131 Float_t fEMCALPtMin; //pT Threshold on emcal clusters
132 Float_t fPHOSPtMin; // pT Threshold on phos clusters
134 TClonesArray* fAODCTS ; //! temporal array with tracks
135 TClonesArray* fAODEMCAL ; //! temporal array with EMCAL CaloClusters
136 TClonesArray* fAODPHOS ; //! temporal array with PHOS CaloClusters
137 TNamed * fEMCALCells ; //! temporal array with EMCAL CaloCells, ESD or AOD
138 TNamed * fPHOSCells ; //! temporal array with PHOS CaloCells, ESD or AOD
140 AliESDEvent *fESD; //! pointer to esd
141 AliAODEvent *fAOD; //! pointer to aod
142 AliMCEvent *fMC; //! Monte Carlo Event Handler
144 Bool_t fFillCTS; //use data from CTS
145 Bool_t fFillEMCAL; //use data from EMCAL
146 Bool_t fFillPHOS; //use data from PHOS
147 Bool_t fFillEMCALCells; //use data from EMCAL
148 Bool_t fFillPHOSCells; //use data from PHOS
150 ClassDef(AliCaloTrackReader,1)
154 #endif //AliCaloTrackReader_H