BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EventDisplay/BesVisLib/include/BesVisLib/BesEvent.h
Go to the documentation of this file.
1//
2// BesEvent.h
3//
4
5#ifndef BES_EVENT
6#define BES_EVENT
7
8#include <TObject.h>
9#include <TString.h>
10#include <ctime> //Long Peixun's update: time.h -> ctime
11
12#include "BesEventHeader.h"
13#include "BesGeoTrack.h"
14
15#include "RootEventData/TDigiEvent.h"
16#include "RootEventData/TDisTrack.h"
17#include "RootEventData/TEvtHeader.h"
18#include "RootEventData/TRecEvTime.h"
19#include "RootEventData/TRecTrackEvent.h"
20#include "RootEventData/TTrigData.h"
21#include "RootEventData/TTrigEvent.h"
22
23class BesEvent : public TObject {
24
25private:
26 Double_t f_Magnetic;
27 BesEventHeader fEventHeader; // Event header
28 TDigiEvent* fDigiEvent;
29 TEvtHeader* fEvtHeader;
30 TTrigEvent* fTrigEvent;
31 TRecEvTime* fRecEvTime;
32
33 TObjArray* fMdcTrackCol;
34 TObjArray* fTofTrackCol;
35 TObjArray* fEmcTrackCol;
36 TObjArray* fMucTrackCol;
37 TObjArray* fExtTrackCol;
38
39 bool Is_tofBarrel( UInt_t status );
40 bool Is_tofCounter( UInt_t status );
41
42public:
44 virtual ~BesEvent();
45
46 virtual void Clear( Option_t* option = "" );
47 virtual void Delete( Option_t* option = "" );
48 virtual void Print( Option_t* option = "" );
49
50 // virtual void SetEvent(TDigiEvent *digiEvent, TDisTrack *recEvent, TEvtHeader *evtHeader,
51 // TTrigEvent *trigEvent); Long Peixun's update: add parameter "isRec"
52 virtual void SetEvent( TDigiEvent* digiEvent, TDisTrack* recEvent, TEvtHeader* evtHeader,
53 TRecEvTime* recEvTime, Bool_t isRec ); //, TTrigEvent *trigEvent);
54 virtual void SetHits();
55 virtual void SetTracks( TDisTrack* recEvent );
56 virtual void SetMdcTracks( TDisTrack* recEvent );
57 virtual void SetTofTracks( TDisTrack* recEvent );
58 virtual void SetEmcShowers( TDisTrack* recEvent );
59 virtual void SetMucTracks( TDisTrack* recEvent );
60 virtual void SetExtTracks( TDisTrack* recEvent );
61 virtual void ConstructMdcTrackFromRec( BesGeoTrack* mdcTrack, const TRecMdcTrack* recTrack,
62 TDisTrack* recEvent );
63 virtual void ConstructMucTrackFromRec( BesGeoTrack* mucTrack, const TRecMucTrack* recTrack );
64 virtual void ConstructEmcTrackFromRec( BesGeoTrack* emcTrack,
65 const TRecEmcShower* recTrack );
66 // virtual void ConstructTofTrackFromRec(BesGeoTrack *tofTrack, const TRecBTofTrack
67 // *recBTrack); virtual void ConstructTofTrackFromRec(BesGeoTrack *tofTrack, const
68 // TRecETofTrack *recETrack);
69 virtual void ConstructTofTrackFromRec( BesGeoTrack* tofTrack, const TRecTofTrack* recTrack,
70 TDisTrack* recEvent );
71 // virtual void ConstructExtTrackFromRec(BesGeoTrack *extTrack, const TExtTrack *recTrack);
72 virtual void DrawHits( Option_t* option );
73 virtual void DrawTracks( Option_t* option );
74 void SetMagnetic( Double_t input ) { f_Magnetic = input; }
75
76 const TObjArray* GetMdcDigiCol() const {
77 if ( fDigiEvent ) return fDigiEvent->getMdcDigiCol();
78 else return 0;
79 }
80 const TObjArray* GetTofDigiCol() const {
81 if ( fDigiEvent ) return fDigiEvent->getTofDigiCol();
82 else return 0;
83 }
84 const TObjArray* GetEmcDigiCol() const {
85 if ( fDigiEvent ) return fDigiEvent->getEmcDigiCol();
86 else return 0;
87 }
88 const TObjArray* GetMucDigiCol() const {
89 if ( fDigiEvent ) return fDigiEvent->getMucDigiCol();
90 else return 0;
91 }
92 const Int_t GetMdcDigiNum() const {
93 if ( fDigiEvent ) return fDigiEvent->getMdcDigiCol()->GetEntries();
94 else return -1;
95 }
96 const Int_t GetTofDigiNum() const {
97 if ( fDigiEvent ) return fDigiEvent->getTofDigiCol()->GetEntries();
98 else return -1;
99 }
100 const Int_t GetEmcDigiNum() const {
101 if ( fDigiEvent ) return fDigiEvent->getEmcDigiCol()->GetEntries();
102 else return -1;
103 }
104 const Int_t GetMucDigiNum() const {
105 if ( fDigiEvent ) return fDigiEvent->getMucDigiCol()->GetEntries();
106 else return -1;
107 }
108 const TMdcDigi* GetMdcDigi( Int_t i ) const {
109 if ( fDigiEvent ) return fDigiEvent->getMdcDigi( i );
110 else return 0;
111 } // Long Peixun's update: Remove semicolon
112 const TTofDigi* GetTofDigi( Int_t i ) const {
113 if ( fDigiEvent ) return fDigiEvent->getTofDigi( i );
114 else return 0;
115 }
116 const TEmcDigi* GetEmcDigi( Int_t i ) const {
117 if ( fDigiEvent ) return fDigiEvent->getEmcDigi( i );
118 else return 0;
119 }
120 const TMucDigi* GetMucDigi( Int_t i ) const {
121 if ( fDigiEvent ) return fDigiEvent->getMucDigi( i );
122 else return 0;
123 }
124
125 const TObjArray* GetMdcTrackCol( TDisTrack* recEvent ) const {
126 if ( recEvent ) return recEvent->getRecMdcTrackCol();
127 else return 0;
128 }
129 // const TObjArray* GetBTofTrackCol() const {
130 // if (fRecEvent)
131 // return fRecEvent->getTofTrackCol();
132 // else return 0;
133 // }
134 const TObjArray* GetTofTrackCol( TDisTrack* recEvent ) const {
135 if ( recEvent ) return recEvent->getTofTrackCol();
136 else return 0;
137 }
138 const TObjArray* GetEmcShowerCol( TDisTrack* recEvent ) const {
139 // if (recEvent)
140 // return recEvent->getEmcShowerCol();
141 // else
142 return 0;
143 }
144 const TObjArray* GetMucTrackCol( TDisTrack* recEvent ) const {
145 if ( recEvent ) return recEvent->getMucTrackCol();
146 else return 0;
147 }
148 const TObjArray* GetExtTrackCol() const {
149 return 0; // for test
150 // if (fRecEvent)
151 // return fRecEvent->getExtTrackCol();
152 // else return 0;
153 }
154 const TObjArray* GetDedxCol( TDisTrack* recEvent ) const {
155 // if (recEvent)
156 // return recEvent->getRecMdcDedxCol();
157 // else
158 return 0;
159 }
160 const Int_t GetMdcTrackNum( TDisTrack* recEvent ) const {
161 if ( recEvent )
162 // return recEvent->getRecMdcTrackCol()->GetEntries();
163 return recEvent->getMdcTrackNum();
164 else return -1;
165 }
166 // const Int_t GetBTofTrackNum() const {
167 // if (fRecEvent)
168 // return fRecEvent->getTofTrackCol()->GetEntries();
169 // else return -1;
170 // };
171 const Int_t GetTofTrackNum( TDisTrack* recEvent ) const {
172 if ( recEvent )
173 // return recEvent->getTofTrackCol()->GetEntries();
174 return recEvent->getTofTrackNum();
175 else return -1;
176 }
177 const Int_t GetEmcShowerNum( TDisTrack* recEvent ) const {
178 if ( recEvent )
179 // return recEvent->getEmcShowerCol()->GetEntries();
180 return recEvent->getEmcShowerNum();
181 else return -1;
182 }
183 const Int_t GetMucTrackNum( TDisTrack* recEvent ) const {
184 if ( recEvent ) return recEvent->getMucTrackNum();
185 // return recEvent->getMucTrackCol()->GetEntries();
186 else return -1;
187 }
188 const Int_t GetExtTrackNum() const {
189 return -1; // for test
190 // if (fRecEvent)
191 // return fRecEvent->getExtTrackCol()->GetEntries();
192 // else return -1;
193 }
194 const Int_t GetDedxNum( TDisTrack* recEvent ) const {
195 // if (fRecEvent)
196 // return fRecEvent->getRecMdcDedxCol()->GetEntries();
197 // else
198 return -1;
199 }
200 const TRecMdcTrack* GetMdcTrack( Int_t i, TDisTrack* recEvent ) const {
201 if ( recEvent ) return recEvent->getRecMdcTrack( i );
202 else return 0;
203 }
204 // const TRecBTofTrack* GetBTofTrack(Int_t i) const {
205 // if (fRecEvent)
206 // return fRecEvent->getBTofTrack(i);
207 // else return 0;
208 // };
209 const TRecTofTrack* GetTofTrack( Int_t i, TDisTrack* recEvent ) const {
210 if ( recEvent ) return recEvent->getTofTrack( i );
211 else return 0;
212 }
213 const TRecEmcShower* GetEmcShower( Int_t i, TDisTrack* recEvent ) const {
214 if ( recEvent ) return recEvent->getEmcShower( i );
215 else return 0;
216 }
217 const TRecMucTrack* GetMucTrack( Int_t i, TDisTrack* recEvent ) const {
218 if ( recEvent ) return recEvent->getMucTrack( i );
219 else return 0;
220 }
221 // const TExtTrack* GetExtTrack(Int_t i) const {
222 // if (fRecEvent)
223 // return fRecEvent->getExtTrack(i);
224 // else return 0;
225 // };
226 const TRecMdcDedx* GetDedx( Int_t i ) const {
227 // if (fRecEvent)
228 // return fRecEvent->getRecMdcDedx(i);
229 // else
230 return 0;
231 }
232
233 // header access functions
234 inline Long64_t GetRun() { return fEventHeader.GetRunNumber(); }
235 inline Long64_t GetEvent() { return fEventHeader.GetEventNumber(); }
236 inline Int_t GetYear() { return fEventHeader.GetEventYear(); }
237 inline Int_t GetMonth() { return fEventHeader.GetEventMonth(); }
238 inline Int_t GetDay() { return fEventHeader.GetEventDay(); }
239 inline Int_t GetHour() { return fEventHeader.GetEventHour(); }
240 inline Int_t GetMin() { return fEventHeader.GetEventMin(); }
241 inline Int_t GetSec() { return fEventHeader.GetEventSec(); }
242 inline Int_t GetMC() { return fEventHeader.GetEventMC(); }
243 inline BesEventHeader GetHeader() { return fEventHeader; }
244
245 ClassDef( BesEvent, 0 ) // BesVis Event
246};
247
248R__EXTERN BesEvent* gEvent;
249
250#endif
const TObjArray * GetMucTrackCol(TDisTrack *recEvent) const
const Int_t GetMucTrackNum(TDisTrack *recEvent) const
const TObjArray * GetTofTrackCol(TDisTrack *recEvent) const
virtual void Delete(Option_t *option="")
Definition BesEvent.cxx:59
virtual void SetHits()
Definition BesEvent.cxx:235
const TRecTofTrack * GetTofTrack(Int_t i, TDisTrack *recEvent) const
virtual ~BesEvent()
Definition BesEvent.cxx:49
virtual void Clear(Option_t *option="")
Definition BesEvent.cxx:99
const TObjArray * GetEmcShowerCol(TDisTrack *recEvent) const
virtual void ConstructTofTrackFromRec(BesGeoTrack *tofTrack, const TRecTofTrack *recTrack, TDisTrack *recEvent)
Definition BesEvent.cxx:673
virtual void SetTofTracks(TDisTrack *recEvent)
Definition BesEvent.cxx:281
const TTofDigi * GetTofDigi(Int_t i) const
const TObjArray * GetMdcTrackCol(TDisTrack *recEvent) const
const TRecMdcTrack * GetMdcTrack(Int_t i, TDisTrack *recEvent) const
const Int_t GetMdcTrackNum(TDisTrack *recEvent) const
virtual void ConstructEmcTrackFromRec(BesGeoTrack *emcTrack, const TRecEmcShower *recTrack)
Definition BesEvent.cxx:831
const Int_t GetTofTrackNum(TDisTrack *recEvent) const
virtual void Print(Option_t *option="")
const TRecMdcDedx * GetDedx(Int_t i) const
virtual void SetMucTracks(TDisTrack *recEvent)
Definition BesEvent.cxx:324
virtual void SetMdcTracks(TDisTrack *recEvent)
Definition BesEvent.cxx:261
virtual void SetEmcShowers(TDisTrack *recEvent)
Definition BesEvent.cxx:303
const Int_t GetEmcShowerNum(TDisTrack *recEvent) const
const TMucDigi * GetMucDigi(Int_t i) const
const TRecEmcShower * GetEmcShower(Int_t i, TDisTrack *recEvent) const
virtual void ConstructMucTrackFromRec(BesGeoTrack *mucTrack, const TRecMucTrack *recTrack)
Definition BesEvent.cxx:915
const TMdcDigi * GetMdcDigi(Int_t i) const
const TObjArray * GetDedxCol(TDisTrack *recEvent) const
virtual void SetEvent(TDigiEvent *digiEvent, TDisTrack *recEvent, TEvtHeader *evtHeader, TRecEvTime *recEvTime, Bool_t isRec)
Definition BesEvent.cxx:110
const Int_t GetDedxNum(TDisTrack *recEvent) const
const TEmcDigi * GetEmcDigi(Int_t i) const
const TRecMucTrack * GetMucTrack(Int_t i, TDisTrack *recEvent) const
virtual void ConstructMdcTrackFromRec(BesGeoTrack *mdcTrack, const TRecMdcTrack *recTrack, TDisTrack *recEvent)
Definition BesEvent.cxx:359
virtual void DrawHits(Option_t *option)
virtual void DrawTracks(Option_t *option)
virtual void SetTracks(TDisTrack *recEvent)
Definition BesEvent.cxx:247
virtual void SetExtTracks(TDisTrack *recEvent)
Definition BesEvent.cxx:344
const TRecTofTrack * getTofTrack(Int_t i) const
retrieve a TofTrack From the collection, using the index into the array
const TRecMucTrack * getMucTrack(Int_t i) const
retrieve a MucTrack From the collection, using the index into the array
const TObjArray * getRecMdcTrackCol() const
retrieve the whole TObjArray of RecMdcTrack Data
const TRecEmcShower * getEmcShower(Int_t i) const
retrieve a EmcShower from the collection, using the index into the array
int getMdcTrackNum()
const TObjArray * getTofTrackCol() const
retrieve the whole TObjArray of TofTrack Data
int getMucTrackNum()
int getEmcShowerNum()
int getTofTrackNum()
const TObjArray * getMucTrackCol() const
retrieve the whole TObjArray of MucTrack Data
const TRecMdcTrack * getRecMdcTrack(Int_t i) const
retrieve a MdcTrack from the collection, using the index into the array