457 double estime,
int t0stat ) {
458 if ( tofDigiCol.size() <= 0 )
return;
459 TofDigiCol::iterator iter_digi = tofDigiCol.begin();
460 for ( ; iter_digi != tofDigiCol.end(); iter_digi++ )
462 unsigned int overflow = ( *iter_digi )->getOverflow();
463 if ( ( overflow & 0xfe000000 ) == 0xfe000000 )
475 digi_adc = 0x7fffffff;
476 digi_tdc = 0x7fffffff;
477 digi_qclock = 1000.0;
478 digi_tclock = 1000.0;
479 digi_overflow = overflow;
488 digi_crate = ( ( overflow & 0x1000000 ) >> 24 );
489 digi_geo = ( ( overflow & 0x0f80000 ) >> 19 );
490 digi_tdcnum = ( ( overflow & 0x0078000 ) >> 15 );
491 digi_err = ( overflow & 0x0007fff );
498 unsigned int adc = ( *iter_digi )->getChargeChannel();
499 unsigned int tdc = ( *iter_digi )->getTimeChannel();
512 digi_adc = ( adc & 0x1fff );
519 if ( adc == 0x7fffffff ) digi_adc = adc;
521 digi_qclock = ( ( adc & 0x7e000 ) >> 13 );
522 if ( adc == 0x7fffffff ) digi_qclock = 1000.;
523 digi_tclock = ( ( tdc & 0x7e000 ) >> 13 );
524 if ( tdc == 0x7fffffff ) digi_tclock = 1000.;
525 digi_overflow = overflow;
526 digi_noq = ( ( overflow & 0x20 ) >> 5 );
527 digi_not = ( ( overflow & 0x10 ) >> 4 );
528 digi_multiq = ( ( overflow & 0x08 ) >> 3 );
529 digi_multit = ( ( overflow & 0x04 ) >> 2 );
530 digi_overq = ( ( overflow & 0x02 ) >> 1 );
531 digi_overt = ( overflow & 0x01 );
533 digi_t0stat = t0stat;
692 ext_trackid = extTrack->
trackId();
693 ext_p = mdcTrack->
p();
694 ext_costheta =
cos( mdcTrack->
theta() );
696 int hitcase1[5], hitcase2[5], hitcase[5];
697 int tofId1[5], tofId2[5];
699 for (
unsigned int i = 0; i < 5; i++ )
706 ext_zrhit1[i] = -99.;
707 ext_zrhit2[i] = -99.;
719 ext_kalman[i] = mdcKalTrack->
getStat( 1, i );
730 if ( tofId1[i] >= 0 && tofId1[i] <= 87 )
732 ext_tofid1[i] = tofId1[i];
735 else if ( tofId1[i] >= 176 && tofId1[i] <= 223 )
737 ext_tofid1[i] = tofId1[i] - 176 + 48;
740 else if ( tofId1[i] >= 224 && tofId1[i] <= 271 )
742 ext_tofid1[i] = tofId1[i] - 176 - 48;
745 else if ( tofId1[i] >= 272 && tofId1[i] <= 1135 )
747 int module = tofId1[i] - 176 - 96;
748 ext_strip1[i] =
module % 12;
749 ext_tofid1[i] =
module / 12;
750 if ( tofId1[i] >= 272 && tofId1[i] <= 703 ) { hitcase1[i] = 5; }
751 else if ( tofId1[i] >= 704 && tofId1[i] <= 1135 ) { hitcase1[i] = 6; }
754 if ( tofId2[i] >= 88 && tofId2[i] <= 175 )
756 ext_tofid2[i] = tofId2[i];
759 else if ( tofId2[i] >= 272 && tofId2[i] <= 1135 )
761 int module = tofId2[i] - 176 - 96;
762 ext_strip2[i] =
module % 12;
763 ext_tofid2[i] =
module / 12;
764 if ( tofId2[i] >= 272 && tofId2[i] <= 703 ) { hitcase2[i] = 5; }
765 else if ( tofId2[i] >= 704 && tofId2[i] <= 1135 ) { hitcase2[i] = 6; }
775 if ( ( hitcase1[i] == 0 ) || ( hitcase1[i] == 2 ) )
777 ext_texp1[i] = extTrack->
tof1( i );
778 ext_path1[i] = extTrack->
tof1Path( i );
784 else if ( ( hitcase1[i] == 3 ) || ( hitcase1[i] == 4 ) )
786 ext_texp1[i] = extTrack->
tof1( i );
787 ext_path1[i] = extTrack->
tof1Path( i );
795 else if ( ( hitcase1[i] == 5 ) || ( hitcase1[i] == 6 ) )
797 ext_texp1[i] = extTrack->
tof1( i );
798 ext_path1[i] = extTrack->
tof1Path( i );
805 if ( ( hitcase2[i] == 5 ) || ( hitcase2[i] == 6 ) )
807 ext_texp2[i] = extTrack->
tof2( i );
808 ext_path2[i] = extTrack->
tof2Path( i );
814 else if ( hitcase2[i] == 1 )
816 ext_texp2[i] = extTrack->
tof2( i );
817 ext_path2[i] = extTrack->
tof2Path( i );
824 if ( ( hitcase1[i] == 7 ) && ( hitcase2[i] == 7 ) ) { ext_quality[i] = 3; }
825 else { ext_quality[i] = 0; }
827 if ( hitcase1[i] == 0 )
829 if ( hitcase2[i] == 1 ) { hitcase[i] = 2; }
830 else if ( hitcase2[i] == 7 ) { hitcase[i] = 0; }
832 else if ( ( hitcase1[i] == 3 ) || ( hitcase1[i] == 4 ) )
834 if ( hitcase2[i] == 7 ) { hitcase[i] == hitcase1[i]; }
836 else if ( ( hitcase1[i] == 5 ) || ( hitcase1[i] == 6 ) )
838 if ( hitcase2[i] == 7 ) { hitcase[i] == hitcase1[i]; }
841 if ( hitcase2[i] == 1 )
843 if ( hitcase1[i] == 7 ) { hitcase[i] = 1; }
845 else if ( ( hitcase2[i] == 5 ) || ( hitcase2[i] == 6 ) )
847 if ( hitcase1[i] == 7 ) { hitcase[i] == hitcase2[i]; }
848 else if ( hitcase1[i] == hitcase2[i] ) { hitcase[i] == hitcase2[i]; }
851 ext_hitcase1[i] = hitcase1[i];
852 ext_hitcase2[i] = hitcase2[i];
853 ext_hitcase[i] = hitcase[i];
1194 double estime,
int t0stat,
1201 RecMdcKalTrackCol::iterator
iter = mdcKalTrackCol.begin();
1202 for ( ;
iter != mdcKalTrackCol.end();
iter++ )
1204 if ( ( *iter )->trackId() == tof->
trackId() )
1206 double kappa = 10000.0;
1207 double tanl = -10000.0;
1210 kappa = ( *iter )->kappa();
1211 tanl = ( *iter )->tanl();
1212 if ( kappa > 0 ) { tof_charge = 1; }
1213 else { tof_charge = -1; }
1214 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1215 tof_pt[0] = 1.0 / kappa;
1216 tof_p[0] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[0] );
1219 kappa = ( *iter )->kappa();
1220 tanl = ( *iter )->tanl();
1221 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1222 tof_pt[1] = 1.0 / kappa;
1223 tof_p[1] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[1] );
1226 kappa = ( *iter )->kappa();
1227 tanl = ( *iter )->tanl();
1228 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1229 tof_pt[2] = 1.0 / kappa;
1230 tof_p[2] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[2] );
1233 kappa = ( *iter )->kappa();
1234 tanl = ( *iter )->tanl();
1235 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1236 tof_pt[3] = 1.0 / kappa;
1237 tof_p[3] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[3] );
1240 kappa = ( *iter )->kappa();
1241 tanl = ( *iter )->tanl();
1242 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1243 tof_pt[4] = 1.0 / kappa;
1244 tof_p[4] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[4] );
1249 tof_id1 = tof->
id1();
1250 tof_id2 = tof->
id2();
1255 tof_barrel = tof->
barrel();
1257 tof_momentum = tof->
p();
1258 tof_path1 = tof->
path1();
1259 tof_path2 = tof->
path2();
1260 tof_zrhit1 = tof->
zrhit1();
1261 tof_zrhit2 = tof->
zrhit2();
1264 tof_xhit1 = tof->
xhit1();
1265 tof_yhit1 = tof->
yhit1();
1266 tof_xhit2 = tof->
xhit2();
1267 tof_yhit2 = tof->
yhit2();
1268 for (
unsigned int i = 0; i < 5; i++ )
1270 tof_kal[i] = tof->
kal( i );
1271 tof_zr1[i] = tof->
zr1( i );
1272 tof_zr2[i] = tof->
zr2( i );
1274 tof_ztdc1 = tof->
ztdc1();
1275 tof_ztdc2 = tof->
ztdc2();
1276 tof_zadc1 = tof->
zadc1();
1277 tof_zadc2 = tof->
zadc2();
1300 tof_size1 = tof->
size1();
1301 tof_size2 = tof->
size2();
1302 tof_size3 = tof->
size3();
1303 tof_size4 = tof->
size4();
1304 tof_theta1 = tof->
theta1();
1305 tof_theta2 = tof->
theta2();
1306 tof_phi1 = tof->
phi1();
1307 tof_phi2 = tof->
phi2();
1311 tof_tofid1 = tof->
tofId1();
1312 tof_tofid2 = tof->
tofId2();
1313 tof_strip1 = tof->
strip1();
1314 tof_strip2 = tof->
strip2();
1327 tof_ph11 = tof->
ph11();
1328 tof_ph12 = tof->
ph12();
1329 tof_ph21 = tof->
ph21();
1330 tof_ph22 = tof->
ph22();
1331 tof_ph1 = tof->
ph1();
1332 tof_ph2 = tof->
ph2();
1334 tof_tofe11 = tof->
tof11( 0 );
1335 tof_tofe12 = tof->
tof12( 0 );
1336 tof_tofe21 = tof->
tof21( 0 );
1337 tof_tofe22 = tof->
tof22( 0 );
1338 tof_tofe1 = tof->
tof1( 0 );
1339 tof_tofe2 = tof->
tof2( 0 );
1340 tof_tofe = tof->
tof( 0 );
1341 tof_tofmu11 = tof->
tof11( 1 );
1342 tof_tofmu12 = tof->
tof12( 1 );
1343 tof_tofmu21 = tof->
tof21( 1 );
1344 tof_tofmu22 = tof->
tof22( 1 );
1345 tof_tofmu1 = tof->
tof1( 1 );
1346 tof_tofmu2 = tof->
tof2( 1 );
1347 tof_tofmu = tof->
tof( 1 );
1348 tof_tofpi11 = tof->
tof11( 2 );
1349 tof_tofpi12 = tof->
tof12( 2 );
1350 tof_tofpi21 = tof->
tof21( 2 );
1351 tof_tofpi22 = tof->
tof22( 2 );
1352 tof_tofpi1 = tof->
tof1( 2 );
1353 tof_tofpi2 = tof->
tof2( 2 );
1354 tof_tofpi = tof->
tof( 2 );
1355 tof_tofk11 = tof->
tof11( 3 );
1356 tof_tofk12 = tof->
tof12( 3 );
1357 tof_tofk21 = tof->
tof21( 3 );
1358 tof_tofk22 = tof->
tof22( 3 );
1359 tof_tofk1 = tof->
tof1( 3 );
1360 tof_tofk2 = tof->
tof2( 3 );
1361 tof_tofk = tof->
tof( 3 );
1362 tof_tofp11 = tof->
tof11( 4 );
1363 tof_tofp12 = tof->
tof12( 4 );
1364 tof_tofp21 = tof->
tof21( 4 );
1365 tof_tofp22 = tof->
tof22( 4 );
1366 tof_tofp1 = tof->
tof1( 4 );
1367 tof_tofp2 = tof->
tof2( 4 );
1368 tof_tofp = tof->
tof( 4 );
1369 tof_qch1 = tof->
qch1();
1370 tof_qch2 = tof->
qch2();
1371 tof_qch3 = tof->
qch3();
1372 tof_qch4 = tof->
qch4();
1373 tof_adc1 = tof->
adc1();
1374 tof_adc2 = tof->
adc2();
1375 tof_adc3 = tof->
adc3();
1376 tof_adc4 = tof->
adc4();
1377 tof_tdc1 = tof->
tdc1();
1378 tof_tdc2 = tof->
tdc2();
1379 tof_tdc3 = tof->
tdc3();
1380 tof_tdc4 = tof->
tdc4();
1391 tof_texpe = tof->
texp( 0 );
1392 tof_texpmu = tof->
texp( 1 );
1393 tof_texppi = tof->
texp( 2 );
1394 tof_texpk = tof->
texp( 3 );
1395 tof_texpp = tof->
texp( 4 );
1396 tof_tdiff1 = tof->
tdiff1();
1397 tof_tdiff2 = tof->
tdiff2();
1398 tof_estime = estime;
1399 tof_t0stat = t0stat;
1408 std::string calibData ) {
1414 RecMdcKalTrackCol::iterator
iter = mdcKalTrackCol.begin();
1415 for ( ;
iter != mdcKalTrackCol.end();
iter++ )
1417 if ( ( *iter )->trackId() == tof->
trackId() )
1419 double kappa = 10000.0;
1420 double tanl = -10000.0;
1423 kappa = ( *iter )->kappa();
1424 tanl = ( *iter )->tanl();
1425 if ( kappa > 0 ) { tof_charge = 1; }
1426 else { tof_charge = -1; }
1427 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1428 tof_pt[0] = 1.0 / kappa;
1429 tof_p[0] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[0] );
1432 kappa = ( *iter )->kappa();
1433 tanl = ( *iter )->tanl();
1434 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1435 tof_pt[1] = 1.0 / kappa;
1436 tof_p[1] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[1] );
1439 kappa = ( *iter )->kappa();
1440 tanl = ( *iter )->tanl();
1441 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1442 tof_pt[2] = 1.0 / kappa;
1443 tof_p[2] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[2] );
1446 kappa = ( *iter )->kappa();
1447 tanl = ( *iter )->tanl();
1448 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1449 tof_pt[3] = 1.0 / kappa;
1450 tof_p[3] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[3] );
1453 kappa = ( *iter )->kappa();
1454 tanl = ( *iter )->tanl();
1455 if (
abs( kappa ) < 1.0e-6 ) { kappa = 1.0e-6; }
1456 tof_pt[4] = 1.0 / kappa;
1457 tof_p[4] =
abs( sqrt( 1.0 + tanl * tanl ) * tof_pt[4] );
1462 tof_id1 = tof->
id1();
1463 tof_id2 = tof->
id2();
1466 tof_barrel = tof->
barrel();
1468 tof_momentum = tof->
p();
1469 tof_path1 = tof->
path1();
1470 tof_path2 = tof->
path2();
1471 tof_zrhit1 = tof->
zrhit1();
1472 tof_zrhit2 = tof->
zrhit2();
1475 tof_xhit1 = tof->
xhit1();
1476 tof_yhit1 = tof->
yhit1();
1477 tof_xhit2 = tof->
xhit2();
1478 tof_yhit2 = tof->
yhit2();
1479 for (
unsigned int i = 0; i < 5; i++ )
1481 tof_kal[i] = tof->
kal( i );
1482 tof_zr1[i] = tof->
zr1( i );
1483 tof_zr2[i] = tof->
zr2( i );
1485 tof_ztdc1 = tof->
ztdc1();
1486 tof_ztdc2 = tof->
ztdc2();
1487 tof_zadc1 = tof->
zadc1();
1488 tof_zadc2 = tof->
zadc2();
1511 tof_size1 = tof->
size1();
1512 tof_size2 = tof->
size2();
1513 tof_size3 = tof->
size3();
1514 tof_size4 = tof->
size4();
1515 tof_theta1 = tof->
theta1();
1516 tof_theta2 = tof->
theta2();
1517 tof_phi1 = tof->
phi1();
1518 tof_phi2 = tof->
phi2();
1522 tof_tofid1 = tof->
tofId1();
1523 tof_tofid2 = tof->
tofId2();
1524 tof_strip1 = tof->
strip1();
1525 tof_strip2 = tof->
strip2();
1538 tof_ph11 = tof->
ph11();
1539 tof_ph12 = tof->
ph12();
1540 tof_ph21 = tof->
ph21();
1541 tof_ph22 = tof->
ph22();
1542 tof_ph1 = tof->
ph1();
1543 tof_ph2 = tof->
ph2();
1545 tof_tofe11 = tof->
tof11( 0 );
1546 tof_tofe12 = tof->
tof12( 0 );
1547 tof_tofe21 = tof->
tof21( 0 );
1548 tof_tofe22 = tof->
tof22( 0 );
1549 tof_tofe1 = tof->
tof1( 0 );
1550 tof_tofe2 = tof->
tof2( 0 );
1551 tof_tofe = tof->
tof( 0 );
1552 tof_tofmu11 = tof->
tof11( 1 );
1553 tof_tofmu12 = tof->
tof12( 1 );
1554 tof_tofmu21 = tof->
tof21( 1 );
1555 tof_tofmu22 = tof->
tof22( 1 );
1556 tof_tofmu1 = tof->
tof1( 1 );
1557 tof_tofmu2 = tof->
tof2( 1 );
1558 tof_tofmu = tof->
tof( 1 );
1559 tof_tofpi11 = tof->
tof11( 2 );
1560 tof_tofpi12 = tof->
tof12( 2 );
1561 tof_tofpi21 = tof->
tof21( 2 );
1562 tof_tofpi22 = tof->
tof22( 2 );
1563 tof_tofpi1 = tof->
tof1( 2 );
1564 tof_tofpi2 = tof->
tof2( 2 );
1565 tof_tofpi = tof->
tof( 2 );
1566 tof_tofk11 = tof->
tof11( 3 );
1567 tof_tofk12 = tof->
tof12( 3 );
1568 tof_tofk21 = tof->
tof21( 3 );
1569 tof_tofk22 = tof->
tof22( 3 );
1570 tof_tofk1 = tof->
tof1( 3 );
1571 tof_tofk2 = tof->
tof2( 3 );
1572 tof_tofk = tof->
tof( 3 );
1573 tof_tofp11 = tof->
tof11( 4 );
1574 tof_tofp12 = tof->
tof12( 4 );
1575 tof_tofp21 = tof->
tof21( 4 );
1576 tof_tofp22 = tof->
tof22( 4 );
1577 tof_tofp1 = tof->
tof1( 4 );
1578 tof_tofp2 = tof->
tof2( 4 );
1579 tof_tofp = tof->
tof( 4 );
1580 tof_qch1 = tof->
qch1();
1581 tof_qch2 = tof->
qch2();
1582 tof_qch3 = tof->
qch3();
1583 tof_qch4 = tof->
qch4();
1584 tof_adc1 = tof->
adc1();
1585 tof_adc2 = tof->
adc2();
1586 tof_adc3 = tof->
adc3();
1587 tof_adc4 = tof->
adc4();
1588 tof_tdc1 = tof->
tdc1();
1589 tof_tdc2 = tof->
tdc2();
1590 tof_tdc3 = tof->
tdc3();
1591 tof_tdc4 = tof->
tdc4();
1602 tof_texpe = tof->
texp( 0 );
1603 tof_texpmu = tof->
texp( 1 );
1604 tof_texppi = tof->
texp( 2 );
1605 tof_texpk = tof->
texp( 3 );
1606 tof_texpp = tof->
texp( 4 );
1607 tof_tdiff1 = tof->
tdiff1();
1608 tof_tdiff2 = tof->
tdiff2();
1609 tof_estime = estime;
1610 tof_t0stat = t0stat;
1613 if ( calibData ==
"Bhabha" ) { particleId = 11; }
1614 else if ( calibData ==
"Dimu" ) { particleId = 13; }
1615 else if ( calibData ==
"pion" ) { particleId = 211; }
1616 else if ( calibData ==
"kaon" ) { particleId = 321; }
1617 else if ( calibData ==
"proton" ) { particleId = 2212; }
1620 cout <<
"Reconstruction::TofRec::TofCheckDigi::Fill_TofTrack: For MC, Wrong Input "
1626 tof_mctofp = -100.0;
1627 tof_mctrkid = -100.0;
1628 tof_mcpath = -100.0;
1629 tof_mctexp = -100.0;
1630 tof_mczrhit = -1000.0;
1632 McParticleCol::iterator iter_mc = mcParticleCol.begin();
1633 for ( ; iter_mc != mcParticleCol.end(); iter_mc++ )
1635 int pid = ( *iter_mc )->particleProperty();
1636 if (
abs( pid ) != particleId )
continue;
1637 if ( ( particleId == 11 || particleId == 13 ) &&
1638 ( ( pid > 0 && tof_charge > 0 ) || ( pid < 0 && tof_charge < 0 ) ) )
1640 if ( ( particleId != 11 && particleId != 13 ) &&
1641 ( ( pid > 0 && tof_charge < 0 ) || ( pid < 0 && tof_charge > 0 ) ) )
1644 int trkIndex = ( *iter_mc )->trackIndex();
1645 tof_mcp = ( *iter_mc )->initialFourMomentum().rho();
1647 TofMcHitCol::iterator iter_mc_tof = tofMcCol.begin();
1648 for ( ; iter_mc_tof != tofMcCol.end(); iter_mc_tof++ )
1650 if ( trkIndex != ( *iter_mc_tof )->getTrackIndex() )
continue;
1651 double mcposx = ( *iter_mc_tof )->getPositionX();
1652 double mcposy = ( *iter_mc_tof )->getPositionY();
1653 double mcposr = 0.1 * sqrt( mcposx * mcposx + mcposy * mcposy );
1654 double mcposz = 0.1 * ( *iter_mc_tof )->getPositionZ();
1655 double mcpx = ( *iter_mc_tof )->getPx();
1656 double mcpy = ( *iter_mc_tof )->getPy();
1657 double mcpz = ( *iter_mc_tof )->getPz();
1658 double mctofp = 0.001 * sqrt( mcpx * mcpx + mcpy * mcpy + mcpz * mcpz );
1659 tof_mctofp = mctofp;
1660 tof_mctrkid = ( *iter_mc_tof )->getTrackIndex();
1661 tof_mcpath = 0.1 * ( *iter_mc_tof )->getTrackLength();
1662 tof_mctexp = ( *iter_mc_tof )->getFlightTime();
1664 { tof_mczrhit = mcposz; }
1665 else if ( tof->
hitCase() == 3 || tof->
hitCase() == 4 ) { tof_mczrhit = mcposr; }
1703 bb_trksize = extTrackCol.size();
1704 bb_mdcsize = mdcTrackCol.size();
1705 bb_emcsize = emcShowerCol.size();
1707 RecMdcTrackCol::iterator iter_mdc1 = mdcTrackCol.begin();
1708 RecMdcTrackCol::iterator iter_mdc2 = mdcTrackCol.begin() + 1;
1710 Hep3Vector
p1 = ( *iter_mdc1 )->p3();
1711 Hep3Vector
p2 = ( *iter_mdc2 )->p3();
1713 bb_trk1 = ( *iter_mdc1 )->trackId();
1714 bb_pmdc1 = ( *iter_mdc1 )->p();
1715 bb_ptmdc1 = ( *iter_mdc1 )->pxy();
1716 bb_theta1 = ( *iter_mdc1 )->theta();
1717 bb_phi1 = ( *iter_mdc1 )->phi();
1718 bb_x1 = ( *iter_mdc1 )->x();
1719 bb_y1 = ( *iter_mdc1 )->y();
1720 bb_z1 = ( *iter_mdc1 )->z();
1721 bb_r1 = ( *iter_mdc1 )->r();
1722 bb_charge1 = ( *iter_mdc1 )->charge();
1723 bb_chi1 = ( *iter_mdc1 )->chi2();
1724 bb_ndof1 = ( *iter_mdc1 )->ndof();
1725 bb_layer1 = ( *iter_mdc1 )->lastLayer();
1726 bb_trk2 = ( *iter_mdc2 )->trackId();
1727 bb_pmdc2 = ( *iter_mdc2 )->p();
1728 bb_ptmdc2 = ( *iter_mdc2 )->pxy();
1729 bb_theta2 = ( *iter_mdc2 )->theta();
1730 bb_phi2 = ( *iter_mdc2 )->phi();
1731 bb_x2 = ( *iter_mdc2 )->x();
1732 bb_y2 = ( *iter_mdc2 )->y();
1733 bb_z2 = ( *iter_mdc2 )->z();
1734 bb_r2 = ( *iter_mdc2 )->r();
1735 bb_charge2 = ( *iter_mdc2 )->charge();
1736 bb_chi2 = ( *iter_mdc2 )->chi2();
1737 bb_ndof2 = ( *iter_mdc2 )->ndof();
1738 bb_layer2 = ( *iter_mdc2 )->lastLayer();
1740 bb_dang = 180.0 -
p1.angle(
p2.unit() ) * 180.0 /
pi;
1741 bb_dphi =
abs( ( *iter_mdc1 )->phi() - ( *iter_mdc2 )->phi() ) * 180.0 /
pi;
1743 RecMdcKalTrackCol::iterator iter_kal1 = mdcKalTrackCol.begin();
1744 RecMdcKalTrackCol::iterator iter_kal2 = mdcKalTrackCol.begin() + 1;
1746 if ( ( ( *iter_kal1 )->trackId() == ( *iter_mdc2 )->trackId() ) &&
1747 ( ( *iter_kal2 )->trackId() == ( *iter_mdc1 )->trackId() ) )
1749 RecMdcKalTrackCol::iterator iter_tmp = iter_kal1;
1750 iter_kal1 = iter_kal2;
1751 iter_kal2 = iter_tmp;
1757 double tanl1 = ( *iter_kal1 )->tanl();
1758 double kappa1 = ( *iter_kal1 )->kappa();
1759 double tanl2 = ( *iter_kal2 )->tanl();
1760 double kappa2 = ( *iter_kal2 )->kappa();
1761 bb_pe1 = sqrt( 1.0 + tanl1 * tanl1 ) / kappa1;
1762 bb_pte1 = 1.0 / kappa1;
1763 bb_pe2 = sqrt( 1.0 + tanl2 * tanl2 ) / kappa2;
1764 bb_pte2 = 1.0 / kappa2;
1768 tanl1 = ( *iter_kal1 )->tanl();
1769 kappa1 = ( *iter_kal1 )->kappa();
1770 tanl2 = ( *iter_kal2 )->tanl();
1771 kappa2 = ( *iter_kal2 )->kappa();
1772 bb_pmu1 = sqrt( 1.0 + tanl1 * tanl1 ) / kappa1;
1773 bb_ptmu1 = 1.0 / kappa1;
1774 bb_pmu2 = sqrt( 1.0 + tanl2 * tanl2 ) / kappa2;
1775 bb_ptmu2 = 1.0 / kappa2;
1777 RecExtTrackCol::iterator iter_ext1 = extTrackCol.begin();
1778 RecExtTrackCol::iterator iter_ext2 = extTrackCol.begin() + 1;
1780 Hep3Vector extPos1 = ( *iter_ext1 )->emcPosition();
1781 Hep3Vector extPos2 = ( *iter_ext2 )->emcPosition();
1783 bb_extx1 = extPos1.x();
1784 bb_exty1 = extPos1.y();
1785 bb_extz1 = extPos1.z();
1786 bb_extx2 = extPos2.x();
1787 bb_exty2 = extPos2.y();
1788 bb_extz2 = extPos2.z();
1790 RecEmcShowerCol::iterator iter_emc1 = emcShowerCol.begin();
1791 RecEmcShowerCol::iterator iter_emc2 = emcShowerCol.begin() + 1;
1793 Hep3Vector emcPos1( ( *iter_emc1 )->x(), ( *iter_emc1 )->y(), ( *iter_emc1 )->z() );
1794 Hep3Vector emcPos2( ( *iter_emc2 )->x(), ( *iter_emc2 )->y(), ( *iter_emc2 )->z() );
1799 Hep3Vector dis1 = extPos1 - emcPos1;
1800 Hep3Vector dis2 = extPos2 - emcPos1;
1804 if ( dis1.r() > dis2.r() )
1806 RecEmcShowerCol::iterator iter_tmp = iter_emc1;
1807 iter_emc1 = iter_emc2;
1808 iter_emc2 = iter_tmp;
1809 Hep3Vector emc_tmp = emcPos1;
1813 dis1 = extPos1 - emcPos1;
1814 dis2 = extPos2 - emcPos2;
1816 bb_emctrk1 = ( *iter_emc1 )->trackId();
1817 bb_emcx1 = ( *iter_emc1 )->x();
1818 bb_emcy1 = ( *iter_emc1 )->y();
1819 bb_emcz1 = ( *iter_emc1 )->z();
1820 bb_ep1 = ( *iter_emc1 )->energy() / ( *iter_mdc1 )->p();
1822 bb_th1 = ( *iter_emc1 )->theta();
1823 bb_ph1 = ( *iter_emc1 )->phi();
1824 bb_emctrk2 = ( *iter_emc2 )->trackId();
1825 bb_emcx2 = ( *iter_emc2 )->x();
1826 bb_emcy2 = ( *iter_emc2 )->y();
1827 bb_emcz2 = ( *iter_emc2 )->z();
1828 bb_ep2 = ( *iter_emc2 )->energy() / ( *iter_mdc2 )->p();
1830 bb_th2 = ( *iter_emc2 )->theta();
1831 bb_ph2 = ( *iter_emc2 )->phi();
1833 bb_drxy1 = dis1.rho();
1836 bb_drxy2 = dis2.rho();
1840 RecEmcShowerCol::iterator iter_emc = emcShowerCol.begin();
1841 for ( ; iter_emc != emcShowerCol.end(); iter_emc++ ) {
etot += ( *iter_emc )->energy(); }
1842 bb_etot =
etot - ( *iter_emc1 )->energy() - ( *iter_emc2 )->energy();