2#include "DstEvent/TofHitStatus.h"
6 NTuple::Tuple*& cetftrk )
7 : trk_tuple( trk ), cbtrk_tuple( cbtrk ), cetrk_tuple( cetrk ), cetftrk_tuple( cetftrk ) {
11 std::cerr <<
" Error: invalid pionter in TofCheckData(NTuple::Tuple*) for trk_tple"
16 trk_tuple->addItem(
"run", trk_run );
17 trk_tuple->addItem(
"event", trk_event );
18 trk_tuple->addItem(
"toftrackid", trk_toftrackid );
19 trk_tuple->addItem(
"trackid", trk_trackid );
20 trk_tuple->addItem(
"charge", trk_charge );
21 trk_tuple->addItem(
"p", 5, trk_p );
22 trk_tuple->addItem(
"tofid", trk_tofid );
23 trk_tuple->addItem(
"strip", trk_strip );
24 trk_tuple->addItem(
"raw", trk_raw );
25 trk_tuple->addItem(
"readout", trk_readout );
26 trk_tuple->addItem(
"counter", trk_counter );
27 trk_tuple->addItem(
"cluster", trk_cluster );
28 trk_tuple->addItem(
"barrel", trk_barrel );
29 trk_tuple->addItem(
"east", trk_east );
30 trk_tuple->addItem(
"layer", trk_layer );
31 trk_tuple->addItem(
"over", trk_overflow );
32 trk_tuple->addItem(
"cluster", trk_cluster );
33 trk_tuple->addItem(
"multihit", trk_multihit );
34 trk_tuple->addItem(
"ncounter", trk_ncounter );
35 trk_tuple->addItem(
"neast", trk_neast );
36 trk_tuple->addItem(
"nwest", trk_nwest );
37 trk_tuple->addItem(
"mrpc", trk_mrpc );
38 trk_tuple->addItem(
"path", trk_path );
39 trk_tuple->addItem(
"zrhit", trk_zrhit );
40 trk_tuple->addItem(
"ph", trk_ph );
41 trk_tuple->addItem(
"tof", trk_tof );
42 trk_tuple->addItem(
"errtof", trk_errtof );
43 trk_tuple->addItem(
"beta", trk_beta );
44 trk_tuple->addItem(
"texpe", trk_texpe );
45 trk_tuple->addItem(
"texpmu", trk_texpmu );
46 trk_tuple->addItem(
"texppi", trk_texppi );
47 trk_tuple->addItem(
"texpk", trk_texpk );
48 trk_tuple->addItem(
"texpp", trk_texpp );
49 trk_tuple->addItem(
"offe", trk_offe );
50 trk_tuple->addItem(
"offmu", trk_offmu );
51 trk_tuple->addItem(
"offpi", trk_offpi );
52 trk_tuple->addItem(
"offk", trk_offk );
53 trk_tuple->addItem(
"offp", trk_offp );
54 trk_tuple->addItem(
"sige", trk_sige );
55 trk_tuple->addItem(
"sigmu", trk_sigmu );
56 trk_tuple->addItem(
"sigpi", trk_sigpi );
57 trk_tuple->addItem(
"sigk", trk_sigk );
58 trk_tuple->addItem(
"sigp", trk_sigp );
59 trk_tuple->addItem(
"qual", trk_quality );
60 trk_tuple->addItem(
"t0", trk_t0 );
61 trk_tuple->addItem(
"errt0", trk_errt0 );
62 trk_tuple->addItem(
"errz", trk_errz );
63 trk_tuple->addItem(
"phi", trk_phi );
64 trk_tuple->addItem(
"errphi", trk_errphi );
65 trk_tuple->addItem(
"e", trk_energy );
66 trk_tuple->addItem(
"erre", trk_errenergy );
71 std::cerr <<
" Error: invalid pionter in TofCheckData(NTuple::Tuple*) for cbtrk_tple"
76 cbtrk_tuple->addItem(
"run", cbtrk_run );
77 cbtrk_tuple->addItem(
"event", cbtrk_event );
78 cbtrk_tuple->addItem(
"tofid", cbtrk_tofid );
79 cbtrk_tuple->addItem(
"qual", cbtrk_qual );
80 cbtrk_tuple->addItem(
"texp", cbtrk_texp );
81 cbtrk_tuple->addItem(
"tdc1", cbtrk_tdc1 );
82 cbtrk_tuple->addItem(
"tdc2", cbtrk_tdc2 );
83 cbtrk_tuple->addItem(
"adc1", cbtrk_adc1 );
84 cbtrk_tuple->addItem(
"adc2", cbtrk_adc2 );
85 cbtrk_tuple->addItem(
"zhit", cbtrk_zhit );
86 cbtrk_tuple->addItem(
"dzhit", cbtrk_dzhit );
87 cbtrk_tuple->addItem(
"sint", cbtrk_sintheta );
88 cbtrk_tuple->addItem(
"p", cbtrk_p );
89 cbtrk_tuple->addItem(
"q", cbtrk_q );
90 cbtrk_tuple->addItem(
"path", cbtrk_path );
95 std::cerr <<
" Error: invalid pionter in TofCheckData(NTuple::Tuple*) for cetrk_tple"
100 cetrk_tuple->addItem(
"run", cetrk_run );
101 cetrk_tuple->addItem(
"event", cetrk_event );
102 cetrk_tuple->addItem(
"tofid", cetrk_tofid );
103 cetrk_tuple->addItem(
"qual", cetrk_qual );
104 cetrk_tuple->addItem(
"texp", cetrk_texp );
105 cetrk_tuple->addItem(
"tdc", cetrk_tdc );
106 cetrk_tuple->addItem(
"adc", cetrk_adc );
107 cetrk_tuple->addItem(
"rhit", cetrk_rhit );
108 cetrk_tuple->addItem(
"drhit", cetrk_drhit );
110 cetrk_tuple->addItem(
"p", cetrk_p );
111 cetrk_tuple->addItem(
"q", cetrk_q );
112 cetrk_tuple->addItem(
"path", cetrk_path );
115 if ( !cetftrk_tuple )
117 std::cerr <<
" Error: invalid pionter in TofCheckData(NTuple::Tuple*) for cetftrk_tple"
122 cetftrk_tuple->addItem(
"run", cetftrk_run );
123 cetftrk_tuple->addItem(
"event", cetftrk_event );
124 cetftrk_tuple->addItem(
"tofid", cetftrk_tofid );
125 cetftrk_tuple->addItem(
"qual", cetftrk_qual );
126 cetftrk_tuple->addItem(
"texp", cetftrk_texp );
127 cetftrk_tuple->addItem(
"tdc1", cetftrk_tdc1 );
128 cetftrk_tuple->addItem(
"tdc2", cetftrk_tdc2 );
129 cetftrk_tuple->addItem(
"adc1", cetftrk_adc1 );
130 cetftrk_tuple->addItem(
"adc2", cetftrk_adc2 );
131 cetftrk_tuple->addItem(
"zhit", cetftrk_zhit );
132 cetftrk_tuple->addItem(
"dzhit", cetftrk_dzhit );
133 cetftrk_tuple->addItem(
"sint", cetftrk_sintheta );
134 cetftrk_tuple->addItem(
"p", cetftrk_p );
135 cetftrk_tuple->addItem(
"q", cetftrk_q );
136 cetftrk_tuple->addItem(
"path", cetftrk_path );
144 double p[5] = { 0. };
148 double kappa = kalTrack->
kappa();
149 if ( kappa > 0 ) { charge = 1; }
150 else { charge = -1; }
151 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
152 p[0] =
abs( sqrt( 1.0 + kalTrack->
tanl() * kalTrack->
tanl() ) / kappa );
154 kappa = kalTrack->
kappa();
155 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
156 p[1] =
abs( sqrt( 1.0 + kalTrack->
tanl() * kalTrack->
tanl() ) / kappa );
158 kappa = kalTrack->
kappa();
159 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
160 p[2] =
abs( sqrt( 1.0 + kalTrack->
tanl() * kalTrack->
tanl() ) / kappa );
162 kappa = kalTrack->
kappa();
163 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
164 p[3] =
abs( sqrt( 1.0 + kalTrack->
tanl() * kalTrack->
tanl() ) / kappa );
166 kappa = kalTrack->
kappa();
167 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
168 p[4] =
abs( sqrt( 1.0 + kalTrack->
tanl() * kalTrack->
tanl() ) / kappa );
173 trk_trackid = recTof->
trackID();
175 for (
unsigned int i = 0; i < 5; i++ ) { trk_p[i] = p[i]; }
176 trk_tofid = recTof->
tofID();
177 trk_strip = recTof->
strip();
180 trk_raw = hitStatus->
is_raw();
185 trk_east = hitStatus->
is_east();
186 trk_layer = hitStatus->
layer();
189 trk_ncounter = hitStatus->
ncounter();
190 trk_neast = hitStatus->
neast();
191 trk_nwest = hitStatus->
nwest();
192 trk_mrpc = hitStatus->
is_mrpc();
202 trk_path = recTof->
path();
203 trk_zrhit = recTof->
zrhit();
204 trk_ph = recTof->
ph();
205 trk_tof = recTof->
tof();
206 trk_errtof = recTof->
errtof();
207 trk_beta = recTof->
beta();
223 trk_quality = recTof->
quality();
224 trk_t0 = recTof->
t0();
225 trk_errt0 = recTof->
errt0();
226 trk_errz = recTof->
errz();
227 trk_phi = recTof->
phi();
228 trk_errphi = recTof->
errphi();
229 trk_energy = recTof->
energy();
239 cbtrk_tofid = recBTof->
mod();
240 cbtrk_qual = recBTof->
qual();
241 cbtrk_texp = recBTof->
tpred( 1 );
242 cbtrk_tdc1 = recBTof->
tdc1();
243 cbtrk_tdc2 = recBTof->
tdc2();
244 cbtrk_adc1 = recBTof->
adc1();
245 cbtrk_adc2 = recBTof->
adc2();
246 cbtrk_zhit = recBTof->
zHit();
247 cbtrk_dzhit = recBTof->
dzHit();
248 cbtrk_sintheta = recBTof->
sinTheta();
249 cbtrk_p = recBTof->
p();
250 cbtrk_q = recBTof->
Q();
251 cbtrk_path = recBTof->
path();
252 cbtrk_tuple->write();
260 cetrk_tofid = recETof->
mod();
261 cetrk_qual = recETof->
qual();
262 cetrk_texp = recETof->
tpred( 1 );
263 cetrk_tdc = recETof->
tdc();
264 cetrk_adc = recETof->
adc();
265 cetrk_rhit = recETof->
rHit();
266 cetrk_drhit = recETof->
drHit();
268 cetrk_p = recETof->
p();
269 cetrk_q = recETof->
Q();
270 cetrk_path = recETof->
path();
271 cetrk_tuple->write();
279 cetftrk_tofid = recBTof->
mod();
280 cetftrk_qual = recBTof->
qual();
281 cetftrk_texp = recBTof->
tpred( 1 );
282 cetftrk_tdc1 = recBTof->
tdc1();
283 cetftrk_tdc2 = recBTof->
tdc2();
284 cetftrk_adc1 = recBTof->
adc1();
285 cetftrk_adc2 = recBTof->
adc2();
286 cetftrk_zhit = recBTof->
zHit();
287 cetftrk_dzhit = recBTof->
dzHit();
288 cetftrk_sintheta = recBTof->
sinTheta();
289 cetftrk_p = recBTof->
p();
290 cetftrk_q = recBTof->
Q();
291 cetftrk_path = recBTof->
path();
292 cetftrk_tuple->write();
298 RecTofTrackCol::iterator iter_tof = recTofTrackCol.begin();
299 for ( ; iter_tof != recTofTrackCol.end(); iter_tof++ )
301 RecMdcKalTrackCol::iterator iter_kal = kalTrackCol.begin();
302 for ( ; iter_kal != kalTrackCol.end(); iter_kal++ )
304 if ( ( *iter_tof )->trackID() == ( *iter_kal )->trackId() )
break;
306 Fill( eventHeader, *iter_tof, *iter_kal, iter_kal != kalTrackCol.end() );
313 RecBTofCalHitCol::iterator iter_btof = recBTofCalHitCol.begin();
314 for ( ; iter_btof != recBTofCalHitCol.end(); iter_btof++ )
316 if ( fabs( ( *iter_btof )->dzHit() - 1.0 ) < 1.0e-6 )
318 else {
FillETF( eventHeader, *iter_btof ); }
325 RecETofCalHitCol::iterator iter_etof = recETofCalHitCol.begin();
326 for ( ; iter_etof != recETofCalHitCol.end(); iter_etof++ )
327 {
Fill( eventHeader, *iter_etof ); }
ObjectVector< RecMdcKalTrack > RecMdcKalTrackCol
ObjectVector< RecBTofCalHit > RecBTofCalHitCol
ObjectVector< RecETofCalHit > RecETofCalHitCol
ObjectVector< RecTofTrack > RecTofTrackCol
const double tanl(void) const
static void setPidType(PidType pidType)
const double kappa(void) const
double texpProton() const
double toffsetProton() const
unsigned int status() const
double texpElectron() const
double toffsetMuon() const
double sigmaElectron() const
double toffsetElectron() const
double toffsetKaon() const
double toffsetPion() const
double sigmaProton() const
void FillCol(Event::EventHeader &, RecTofTrackCol &, RecMdcKalTrackCol &)
void Fill(Event::EventHeader &, RecTofTrack *&, RecMdcKalTrack *&, bool)
TofCheckData(NTuple::Tuple *&trk, NTuple::Tuple *&cbtrk, NTuple::Tuple *&cetrk, NTuple::Tuple *&cetftrk)
void FillETF(Event::EventHeader &, RecBTofCalHit *&)
void FillBarrel(Event::EventHeader &, RecBTofCalHit *&)
unsigned int ncounter() const
unsigned int layer() const
void setStatus(unsigned int status)
unsigned int nwest() const
unsigned int neast() const