17 if ( !calib_barrel_item.empty() )
19 std::vector<TofCalib*>::iterator
iter = calib_barrel_item.begin();
20 for ( ;
iter != calib_barrel_item.end();
iter++ )
22 if ( ( *
iter ) )
delete ( *iter );
24 calib_barrel_item.clear();
26 if ( !calib_endcap_item.empty() )
28 std::vector<TofCalib*>::iterator
iter = calib_endcap_item.begin();
29 for ( ;
iter != calib_endcap_item.end();
iter++ )
31 if ( ( *
iter ) )
delete ( *iter );
33 calib_endcap_item.clear();
35 if ( !calib_etf_item.empty() )
37 std::vector<TofCalib*>::iterator
iter = calib_etf_item.begin();
38 for ( ;
iter != calib_etf_item.end();
iter++ )
40 if ( ( *
iter ) )
delete ( *iter );
42 calib_etf_item.clear();
44 if ( !calibration_barrel_item.empty() )
46 std::vector<TofCalibFit*>::iterator
iter = calibration_barrel_item.begin();
47 for ( ;
iter != calibration_barrel_item.end();
iter++ )
49 if ( ( *
iter ) )
delete ( *iter );
51 calibration_barrel_item.clear();
53 if ( !calibration_barrel_item2.empty() )
55 std::vector<TofCalibFit*>::iterator
iter = calibration_barrel_item2.begin();
56 for ( ;
iter != calibration_barrel_item2.end();
iter++ )
58 if ( ( *
iter ) )
delete ( *iter );
60 calibration_barrel_item2.clear();
62 if ( !calibration_endcap_item.empty() )
64 std::vector<TofCalibFit*>::iterator
iter = calibration_endcap_item.begin();
65 for ( ;
iter != calibration_endcap_item.end();
iter++ )
67 if ( ( *
iter ) )
delete ( *iter );
69 calibration_endcap_item.clear();
102 if ( !calib_barrel_item.empty() || !calibration_barrel_item.empty() )
104 std::cout <<
"Begin barrel counters calibration..." << std::endl;
105 std::cout << setiosflags( ios::left ) << setw( 10 ) <<
"TOF ID" << setw( 8 ) <<
"Entries"
106 << setw( 30 ) <<
"What Calibration" << std::endl;
107 HepVector tcorrelation;
108 for (
unsigned int i = 0; i <
NBarrel; i++ )
110 RecordSet* barrelData = m_dataset->getBarrelData( i );
111 if ( !calib_barrel_item.empty() )
113 std::vector<TofCalib*>::iterator iter1 = calib_barrel_item.begin();
114 for ( ; iter1 != calib_barrel_item.end(); iter1++ )
117 ( *iter1 )->calculate( barrelData, i );
120 if ( !calibration_barrel_item.empty() )
122 std::vector<TofCalibFit*>::iterator iter2 = calibration_barrel_item.begin();
123 for ( ; iter2 != calibration_barrel_item.end(); iter2++ )
125 ( *iter2 )->calculate( barrelData, i );
128 if ( ( *iter2 )->name() ==
"calib_barrel_common" )
129 { tcorrelation = ( *iter2 )->tcorrelation(); }
135 for (
unsigned int i = 0; i <
NBarrel; i++ )
137 RecordSet* barrelData = m_dataset->getBarrelData( i );
138 if ( !calibration_barrel_item2.empty() )
140 std::vector<TofCalibFit*>::iterator iter2 = calibration_barrel_item2.begin();
141 for ( ; iter2 != calibration_barrel_item2.end(); iter2++ )
145 if ( ( *iter2 )->name() ==
"calib_barrel_sigma" )
146 { ( *iter2 )->setTCorrelation( tcorrelation ); }
148 ( *iter2 )->calculate( barrelData, i );
154 if ( !calib_endcap_item.empty() || !calibration_endcap_item.empty() )
156 std::cout <<
"Begin endcap counters calibration..." << std::endl;
157 std::cout << setiosflags( ios::left ) << setw( 10 ) <<
"TOF ID" << setw( 8 ) <<
"Entries"
158 << setw( 30 ) <<
"What Calibration" << std::endl;
159 for (
unsigned int i = 0; i <
NEndcap; i++ )
161 RecordSet* endcapData = m_dataset->getEndcapData( i );
162 if ( !calib_endcap_item.empty() )
164 std::vector<TofCalib*>::iterator iter1 = calib_endcap_item.begin();
165 for ( ; iter1 != calib_endcap_item.end(); iter1++ )
168 ( *iter1 )->calculate( endcapData, i );
171 if ( !calibration_endcap_item.empty() )
173 std::vector<TofCalibFit*>::iterator iter2 = calibration_endcap_item.begin();
174 for ( ; iter2 != calibration_endcap_item.end(); iter2++ )
175 { ( *iter2 )->calculate( endcapData, i ); }
180 if ( !calib_etf_item.empty() || !calibration_etf_item.empty() )
182 std::cout <<
"Begin ETF(MRPC) calibration..." << std::endl;
183 std::cout << setiosflags( ios::left ) << setw( 10 ) <<
"TOF ID *12 + STRIP" << setw( 8 )
184 <<
"Entries" << setw( 30 ) <<
"What Calibration" << std::endl;
185 HepVector tcorrelation;
186 for (
unsigned int i = 0; i <
NEtf *
NStrip; i++ )
188 RecordSet* etfData = m_dataset->getEtfData( i );
189 if ( !calib_etf_item.empty() )
191 std::vector<TofCalib*>::iterator iter1 = calib_etf_item.begin();
192 for ( ; iter1 != calib_etf_item.end(); iter1++ )
195 ( *iter1 )->calculate( etfData, i );
198 if ( !calibration_etf_item.empty() )
200 std::vector<TofCalibFit*>::iterator iter2 = calibration_etf_item.begin();
201 for ( ; iter2 != calibration_etf_item.end(); iter2++ )
202 { ( *iter2 )->calculate( etfData, i ); }
212 if ( !calib_barrel_item.empty() )
214 std::vector<TofCalib*>::iterator
iter = calib_barrel_item.begin();
215 for ( ;
iter != calib_barrel_item.end();
iter++ )
217 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".txt" );
218 ( *iter )->fillTxt( fname.c_str() );
222 if ( !calib_endcap_item.empty() )
224 std::vector<TofCalib*>::iterator
iter = calib_endcap_item.begin();
225 for ( ;
iter != calib_endcap_item.end();
iter++ )
227 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".txt" );
228 ( *iter )->fillTxt( fname.c_str() );
232 if ( !calib_etf_item.empty() )
234 std::vector<TofCalib*>::iterator
iter = calib_etf_item.begin();
235 for ( ;
iter != calib_etf_item.end();
iter++ )
237 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".txt" );
238 ( *iter )->fillTxt( fname.c_str() );
242 if ( !calibration_barrel_item.empty() )
244 std::vector<TofCalibFit*>::iterator
iter = calibration_barrel_item.begin();
245 for ( ;
iter != calibration_barrel_item.end();
iter++ )
247 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".txt" );
248 ( *iter )->fillTxt( fname.c_str() );
251 if ( !calibration_barrel_item2.empty() )
253 std::vector<TofCalibFit*>::iterator
iter = calibration_barrel_item2.begin();
254 for ( ;
iter != calibration_barrel_item2.end();
iter++ )
256 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".txt" );
257 ( *iter )->fillTxt( fname.c_str() );
261 if ( !calibration_endcap_item.empty() )
263 std::vector<TofCalibFit*>::iterator
iter = calibration_endcap_item.begin();
264 for ( ;
iter != calibration_endcap_item.end();
iter++ )
266 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".txt" );
267 ( *iter )->fillTxt( fname.c_str() );
271 if ( !calibration_etf_item.empty() )
273 std::vector<TofCalibFit*>::iterator
iter = calibration_etf_item.begin();
274 for ( ;
iter != calibration_etf_item.end();
iter++ )
276 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".txt" );
277 ( *iter )->fillTxt( fname.c_str() );
287 sprintf( filename1,
"%s/barrel%i.root", dir.c_str(),
count );
288 TFile
f1( filename1,
"RECREATE" );
289 TTree* ntbarrel =
new TTree(
"btrk",
"barrel data after calibration" );
310 ntbarrel->Branch(
"run", &run,
"run/I" );
311 ntbarrel->Branch(
"event", &event,
"event/I" );
312 ntbarrel->Branch(
"tofid", &tofid,
"tofid/I" );
313 ntbarrel->Branch(
"qleft", &qleft,
"qleft/D" );
314 ntbarrel->Branch(
"qright", &qright,
"qright/D" );
315 ntbarrel->Branch(
"tleft", &tleft,
"tleft/D" );
316 ntbarrel->Branch(
"tright", &tright,
"tright/D" );
317 ntbarrel->Branch(
"zrhit", &zrhit,
"zrhit/D" );
318 ntbarrel->Branch(
"texp", &texp,
"texp/D" );
319 ntbarrel->Branch(
"path", &path,
"path/D" );
320 ntbarrel->Branch(
"phi", &phi,
"phi/D" );
321 ntbarrel->Branch(
"theta", &theta,
"theta/D" );
322 ntbarrel->Branch(
"p", &p,
"p/D" );
323 ntbarrel->Branch(
"t0", &t0,
"t0/D" );
324 ntbarrel->Branch(
"q0", &q0,
"q0/D" );
325 ntbarrel->Branch(
"hitcase", &hitcase,
"hitcase/I" );
328 std::cout <<
"begin to write..." << filename1 << std::endl;
329 for (
unsigned int i = 0; i <
NBarrel; i++ )
331 std::cout <<
"\r\b Writing record ... " << ( int( ( ++counter ) * 100. /
NBarrel ) )
333 RecordSet* barrelData = m_dataset->getBarrelData( i );
334 std::vector<Record*>::iterator
iter = barrelData->begin();
335 for ( ;
iter != barrelData->end();
iter++ )
337 run = ( *iter )->run();
338 event = ( *iter )->event();
339 tofid = ( *iter )->tofid();
340 qleft = ( *iter )->qleft();
341 qright = ( *iter )->qright();
342 tleft = ( *iter )->tleft();
343 tright = ( *iter )->tright();
344 zrhit = ( *iter )->zrhit();
345 texp = ( *iter )->texp();
346 path = ( *iter )->path();
347 phi = ( *iter )->phi();
348 theta = ( *iter )->theta();
350 t0 = ( *iter )->t0();
351 q0 = ( *iter )->q0();
352 hitcase = ( *iter )->hitcase();
356 std::cout << std::endl;
362 sprintf( filename2,
"%s/endcap%i.root", dir.c_str(),
count );
363 TFile f2( filename2,
"RECREATE" );
364 TTree* ntendcap =
new TTree(
"etrk",
"endcap data after calibration" );
366 ntendcap->Branch(
"run", &run,
"run/I" );
367 ntendcap->Branch(
"event", &event,
"event/I" );
368 ntendcap->Branch(
"tofid", &tofid,
"tofid/I" );
369 ntendcap->Branch(
"qleft", &qleft,
"qleft/D" );
370 ntendcap->Branch(
"qright", &qright,
"qright/D" );
371 ntendcap->Branch(
"tleft", &tleft,
"tleft/D" );
372 ntendcap->Branch(
"tright", &tright,
"tright/D" );
373 ntendcap->Branch(
"zrhit", &zrhit,
"zrhit/D" );
374 ntendcap->Branch(
"texp", &texp,
"texp/D" );
375 ntendcap->Branch(
"path", &path,
"path/D" );
376 ntendcap->Branch(
"phi", &phi,
"phi/D" );
377 ntendcap->Branch(
"theta", &theta,
"theta/D" );
378 ntendcap->Branch(
"p", &p,
"p/D" );
379 ntendcap->Branch(
"t0", &t0,
"t0/D" );
380 ntendcap->Branch(
"q0", &q0,
"q0/D" );
381 ntendcap->Branch(
"hitcase", &hitcase,
"hitcase/I" );
384 std::cout <<
"begin to write..." << filename2 << std::endl;
385 for (
unsigned int i = 0; i <
NEndcap; i++ )
387 std::cout <<
"\r\b Writing record ... " << ( int( ( ++counter ) * 100. /
NEndcap ) )
389 RecordSet* endcapData = m_dataset->getEndcapData( i );
390 std::vector<Record*>::iterator
iter = endcapData->begin();
391 for ( ;
iter != endcapData->end();
iter++ )
393 run = ( *iter )->run();
394 event = ( *iter )->event();
395 tofid = ( *iter )->tofid();
396 qleft = ( *iter )->qleft();
397 qright = ( *iter )->qright();
398 tleft = ( *iter )->tleft();
399 tright = ( *iter )->tright();
400 zrhit = ( *iter )->zrhit();
401 texp = ( *iter )->texp();
402 path = ( *iter )->path();
403 phi = ( *iter )->phi();
404 theta = ( *iter )->theta();
406 t0 = ( *iter )->t0();
407 q0 = ( *iter )->q0();
408 hitcase = ( *iter )->hitcase();
412 std::cout << std::endl;
418 sprintf( filename3,
"%s/etf%i.root", dir.c_str(),
count );
419 TFile f3( filename3,
"RECREATE" );
420 TTree* ntetf =
new TTree(
"etf",
"en data after calibration" );
422 ntetf->Branch(
"run", &run,
"run/I" );
423 ntetf->Branch(
"event", &event,
"event/I" );
424 ntetf->Branch(
"tofid", &tofid,
"tofid/I" );
425 ntetf->Branch(
"strip", &strip,
"strip/I" );
426 ntetf->Branch(
"qleft", &qleft,
"qleft/D" );
427 ntetf->Branch(
"qright", &qright,
"qright/D" );
428 ntetf->Branch(
"tleft", &tleft,
"tleft/D" );
429 ntetf->Branch(
"tright", &tright,
"tright/D" );
430 ntetf->Branch(
"zrhit", &zrhit,
"zrhit/D" );
431 ntetf->Branch(
"dt", &
dt,
"dt/D" );
432 ntetf->Branch(
"texp", &texp,
"texp/D" );
433 ntetf->Branch(
"path", &path,
"path/D" );
434 ntetf->Branch(
"phi", &phi,
"phi/D" );
435 ntetf->Branch(
"p", &p,
"p/D" );
436 ntetf->Branch(
"t0", &t0,
"t0/D" );
437 ntetf->Branch(
"q0", &q0,
"q0/D" );
438 ntetf->Branch(
"hitcase", &hitcase,
"hitcase/I" );
441 std::cout <<
"begin to write..." << filename3 << std::endl;
442 for (
unsigned int i = 0; i <
NEtf *
NStrip; i++ )
444 std::cout <<
"\r\b Writing record ... "
445 << ( int( ( ++counter ) * 100. / (
NEtf *
NStrip ) ) ) <<
"%";
446 RecordSet* etfData = m_dataset->getEtfData( i );
447 std::vector<Record*>::iterator
iter = etfData->begin();
448 for ( ;
iter != etfData->end();
iter++ )
450 run = ( *iter )->run();
451 event = ( *iter )->event();
452 tofid = ( *iter )->tofid();
453 strip = ( *iter )->strip();
454 qleft = ( *iter )->qleft();
455 qright = ( *iter )->qright();
456 tleft = ( *iter )->tleft();
457 tright = ( *iter )->tright();
458 zrhit = ( *iter )->zrhit();
459 dt = ( *iter )->dt();
460 texp = ( *iter )->texp();
461 path = ( *iter )->path();
462 phi = ( *iter )->phi();
464 t0 = ( *iter )->t0();
465 q0 = ( *iter )->q0();
466 hitcase = ( *iter )->hitcase();
470 std::cout << std::endl;
475 if ( !calibration_barrel_item.empty() )
477 std::vector<TofCalibFit*>::iterator
iter = calibration_barrel_item.begin();
478 for ( ;
iter != calibration_barrel_item.end();
iter++ )
480 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".root" );
481 ( *iter )->fillRoot( fname.c_str() );
484 if ( !calibration_barrel_item2.empty() )
486 std::vector<TofCalibFit*>::iterator
iter = calibration_barrel_item2.begin();
487 for ( ;
iter != calibration_barrel_item2.end();
iter++ )
489 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".root" );
490 ( *iter )->fillRoot( fname.c_str() );
494 if ( !calibration_endcap_item.empty() )
496 std::vector<TofCalibFit*>::iterator
iter = calibration_endcap_item.begin();
497 for ( ;
iter != calibration_endcap_item.end();
iter++ )
499 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".root" );
500 ( *iter )->fillRoot( fname.c_str() );
504 if ( !calibration_etf_item.empty() )
506 std::vector<TofCalibFit*>::iterator
iter = calibration_etf_item.begin();
507 for ( ;
iter != calibration_etf_item.end();
iter++ )
509 string fname = dir + string(
"/" ) + ( *iter )->name() + string(
".root" );
510 ( *iter )->fillRoot( fname.c_str() );