]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/AliCaloTrackReader.h
appropriately modified builders for package and PAR library
[u/mrichter/AliRoot.git] / PWG4 / AliCaloTrackReader.h
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     */
5 /* $Id:  $ */
6
7 /* History of cvs commits:
8  *
9  * $Log$
10  *
11  *
12  */
13
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) 
21 //                          
22 // -- Author: Gustavo Conesa (INFN-LNF)
23
24 // --- ROOT system ---
25 #include "TObject.h" 
26 class TClonesArray ; 
27 class TLorentzVector ;
28 class TString ;
29 #include "TArrayF.h"  
30 class Riostream ;
31
32 //--- ANALYSIS system ---
33 /* #include "AliStack.h"  */
34 /* #include "AliHeader.h"  */
35 /* #include "AliGenEventHeader.h"  */
36 class AliStack ; 
37 class AliHeader ; 
38 class AliGenEventHeader ; 
39 #include "AliESDEvent.h" 
40 #include "AliAODEvent.h" 
41 #include "AliMCEvent.h" 
42 class AliLog ;
43 #include "AliFidutialCut.h"
44
45 class AliCaloTrackReader : public TObject {
46
47 public: 
48
49   AliCaloTrackReader() ; // ctor
50   AliCaloTrackReader(const AliCaloTrackReader & g) ; // cpy ctor
51   AliCaloTrackReader & operator = (const AliCaloTrackReader & g) ;//cpy assignment
52   virtual ~AliCaloTrackReader() ;//virtual dtor
53
54   enum inputDataType {kESD, kAOD, kMC};
55   
56   void InitParameters();
57
58   virtual Int_t GetDebug() const  { return fDebug ; }
59   virtual void SetDebug(Int_t d)   { fDebug = d ; }
60
61   virtual Int_t GetDataType() const { return fDataType ; }
62   virtual void SetDataType(Int_t data ){fDataType = data ; }
63
64   virtual void Print(const Option_t * opt)const;
65
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  ; }
70
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 ; }
74   
75   //Input setters and getters
76
77   Bool_t IsCTSSwitchedOn() const { return fFillCTS ; }
78   void SwitchOnCTS() {fFillCTS = kTRUE ; }
79   void SwitchOffCTS() {fFillCTS = kFALSE ; }
80
81   Bool_t IsEMCALSwitchedOn() const { return fFillEMCAL ; }
82   void SwitchOnEMCAL() {fFillEMCAL = kTRUE ; }
83   void SwitchOffEMCAL() {fFillEMCAL = kFALSE ; }
84
85   Bool_t IsPHOSSwitchedOn() const { return fFillPHOS ; }
86   void SwitchOnPHOS() {fFillPHOS = kTRUE ; }
87   void SwitchOffPHOS() {fFillPHOS = kFALSE ; }
88
89   Bool_t IsEMCALCellsSwitchedOn() const { return fFillEMCALCells ; }
90   void SwitchOnEMCALCells() {fFillEMCALCells = kTRUE ; }
91   void SwitchOffEMCALCells() {fFillEMCALCells = kFALSE ; }
92
93   Bool_t IsPHOSCellsSwitchedOn() const { return fFillPHOSCells ; }
94   void SwitchOnPHOSCells() {fFillPHOSCells = kTRUE ; }
95   void SwitchOffPHOSCells() {fFillPHOSCells = kFALSE ; }
96
97   virtual void FillInputEvent();
98
99   virtual void FillInputCTS(){;}
100   virtual void FillInputEMCAL(){;}
101   virtual void FillInputPHOS(){;}
102   virtual void FillInputEMCALCells(){;}
103   virtual void FillInputPHOSCells(){;}
104
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 ;}
110
111   virtual AliStack* GetStack() const ;
112   virtual AliHeader* GetHeader() const ;
113   virtual AliGenEventHeader* GetGenEventHeader() const ;
114
115   virtual void GetVertex(Double_t * ) {;}
116   virtual AliESDEvent* GetESD() const {return fESD;}
117   virtual AliAODEvent* GetAOD() const {return fAOD;}
118   virtual AliMCEvent* GetMC() const {return fMC;}
119
120   virtual void SetESD( AliESDEvent* esd) {fESD = esd;}
121   virtual void SetAOD(AliAODEvent* aod) {fAOD = aod;}
122   virtual void SetMC(AliMCEvent* mc) {fMC = mc;}
123
124   virtual void ResetLists();
125
126   virtual AliFidutialCut * GetFidutialCut() const {return  fFidutialCut ;}
127   virtual void SetFidutialCut(AliFidutialCut * fc) { fFidutialCut = fc ;}
128
129   virtual void SetInputEvent(TObject* /*esd*/, TObject* /*aod*/, TObject* /*mc*/) {;}
130
131  protected:
132   
133   Int_t        fDataType ; //Select MC:Kinematics, Data:ESD/AOD, MCData:Both
134   Int_t        fDebug; //Debugging level
135   AliFidutialCut * fFidutialCut; //Acceptance cuts
136
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
140
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
146
147   AliESDEvent    *fESD;              //! pointer to esd
148   AliAODEvent    *fAOD;              //! pointer to aod
149   AliMCEvent     *fMC;  //! Monte Carlo Event Handler  
150
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
156
157   ClassDef(AliCaloTrackReader,1)
158 } ;
159
160
161 #endif //AliCaloTrackReader_H
162
163
164