]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/AliCaloTrackReader.h
Updating for CMake
[u/mrichter/AliRoot.git] / PWG4 / AliCaloTrackReader.h
CommitLineData
d92b41ad 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
d92b41ad 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)
14//
15// -- Author: Gustavo Conesa (INFN-LNF)
16
17// --- ROOT system ---
18#include "TObject.h"
19class TClonesArray ;
20class TLorentzVector ;
21class TString ;
22#include "TArrayF.h"
23class Riostream ;
24
25//--- ANALYSIS system ---
26/* #include "AliStack.h" */
27/* #include "AliHeader.h" */
28/* #include "AliGenEventHeader.h" */
29class AliStack ;
30class AliHeader ;
31class AliGenEventHeader ;
32#include "AliESDEvent.h"
33#include "AliAODEvent.h"
34#include "AliMCEvent.h"
35class AliLog ;
36#include "AliFidutialCut.h"
37
38class AliCaloTrackReader : public TObject {
39
40public:
41
42 AliCaloTrackReader() ; // ctor
43 AliCaloTrackReader(const AliCaloTrackReader & g) ; // cpy ctor
44 AliCaloTrackReader & operator = (const AliCaloTrackReader & g) ;//cpy assignment
45 virtual ~AliCaloTrackReader() ;//virtual dtor
46
47 enum inputDataType {kESD, kAOD, kMC};
48
49 void InitParameters();
50
51 virtual Int_t GetDebug() const { return fDebug ; }
52 virtual void SetDebug(Int_t d) { fDebug = d ; }
53
54 virtual Int_t GetDataType() const { return fDataType ; }
55 virtual void SetDataType(Int_t data ){fDataType = data ; }
56
57 virtual void Print(const Option_t * opt)const;
58
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 ; }
63
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 ; }
67
68 //Input setters and getters
69
70 Bool_t IsCTSSwitchedOn() const { return fFillCTS ; }
71 void SwitchOnCTS() {fFillCTS = kTRUE ; }
72 void SwitchOffCTS() {fFillCTS = kFALSE ; }
73
74 Bool_t IsEMCALSwitchedOn() const { return fFillEMCAL ; }
75 void SwitchOnEMCAL() {fFillEMCAL = kTRUE ; }
76 void SwitchOffEMCAL() {fFillEMCAL = kFALSE ; }
77
78 Bool_t IsPHOSSwitchedOn() const { return fFillPHOS ; }
79 void SwitchOnPHOS() {fFillPHOS = kTRUE ; }
80 void SwitchOffPHOS() {fFillPHOS = kFALSE ; }
81
82 Bool_t IsEMCALCellsSwitchedOn() const { return fFillEMCALCells ; }
83 void SwitchOnEMCALCells() {fFillEMCALCells = kTRUE ; }
84 void SwitchOffEMCALCells() {fFillEMCALCells = kFALSE ; }
85
86 Bool_t IsPHOSCellsSwitchedOn() const { return fFillPHOSCells ; }
87 void SwitchOnPHOSCells() {fFillPHOSCells = kTRUE ; }
88 void SwitchOffPHOSCells() {fFillPHOSCells = kFALSE ; }
89
90 virtual void FillInputEvent();
91
92 virtual void FillInputCTS(){;}
93 virtual void FillInputEMCAL(){;}
94 virtual void FillInputPHOS(){;}
95 virtual void FillInputEMCALCells(){;}
96 virtual void FillInputPHOSCells(){;}
97
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 ;}
103
104 virtual AliStack* GetStack() const ;
105 virtual AliHeader* GetHeader() const ;
106 virtual AliGenEventHeader* GetGenEventHeader() const ;
107
2cc4014d 108 virtual void GetVertex(Double_t * ) {;}
d92b41ad 109 virtual AliESDEvent* GetESD() const {return fESD;}
110 virtual AliAODEvent* GetAOD() const {return fAOD;}
111 virtual AliMCEvent* GetMC() const {return fMC;}
112
113 virtual void SetESD( AliESDEvent* esd) {fESD = esd;}
114 virtual void SetAOD(AliAODEvent* aod) {fAOD = aod;}
115 virtual void SetMC(AliMCEvent* mc) {fMC = mc;}
116
117 virtual void ResetLists();
118
119 virtual AliFidutialCut * GetFidutialCut() const {return fFidutialCut ;}
120 virtual void SetFidutialCut(AliFidutialCut * fc) { fFidutialCut = fc ;}
121
122 virtual void SetInputEvent(TObject* /*esd*/, TObject* /*aod*/, TObject* /*mc*/) {;}
123
124 protected:
125
126 Int_t fDataType ; //Select MC:Kinematics, Data:ESD/AOD, MCData:Both
127 Int_t fDebug; //Debugging level
128 AliFidutialCut * fFidutialCut; //Acceptance cuts
129
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
133
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
139
140 AliESDEvent *fESD; //! pointer to esd
141 AliAODEvent *fAOD; //! pointer to aod
142 AliMCEvent *fMC; //! Monte Carlo Event Handler
143
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
149
150 ClassDef(AliCaloTrackReader,1)
151} ;
152
153
154#endif //AliCaloTrackReader_H
155
156
157