198 MsgStream log(
msgSvc(), name() );
199 log << MSG::INFO <<
"in execute()" << endmsg;
201 StatusCode sc = StatusCode::SUCCESS;
206 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(),
"/Event/EventHeader" );
209 log << MSG::FATAL <<
"Could not find Event Header" << endmsg;
213 log << MSG::INFO <<
"Event: " << m_totalEvent
214 <<
"\tcurrent run: " << eventHeader->runNumber()
215 <<
"\tcurrent event: " << eventHeader->eventNumber() << endmsg;
217 event = eventHeader->eventNumber();
218 run = eventHeader->runNumber();
220 string release = getenv(
"BES_RELEASE" );
224 for ( std::vector<FilterEvent>::iterator it = m_filter_event.begin();
225 it != m_filter_event.end(); ++it )
227 const FilterEvent& fe = ( *it );
228 if (
release == fe.bossver && run == fe.runid && event == fe.eventid )
230 cout <<
"SKIP: " << fe.bossver <<
" " << fe.runid <<
" " << fe.eventid << std::endl;
231 return StatusCode::SUCCESS;
236 if ( m_CompareWithMcHit == 1 )
238 SmartDataPtr<McParticleCol> mcParticleCol( eventSvc(),
"/Event/MC/McParticleCol" );
239 if ( !mcParticleCol )
241 log << MSG::FATAL <<
"Could not find McParticle" << endmsg;
245 McParticleCol::iterator iter_mc = mcParticleCol->begin();
249 int pid = ( *iter_mc )->particleProperty();
255 if ( m_particleTable->particle( pid ) )
257 charge = (int)m_particleTable->particle( pid )->charge();
258 mass = m_particleTable->particle( pid )->mass();
261 log << MSG::ERROR <<
"no this particle id in particle table, please check data"
266 if ( m_particleTable->particle( -pid ) )
268 charge = (int)m_particleTable->particle( -pid )->charge();
270 mass = m_particleTable->particle( -pid )->mass();
273 log << MSG::ERROR <<
"no this particle id in particle table, please check data"
276 else { log << MSG::WARNING <<
"wrong particle id, please check data" << endmsg; }
284 HepLorentzVector initialMomentum = ( *iter_mc )->initialFourMomentum();
285 HepLorentzVector initialPos = ( *iter_mc )->initialPosition();
286 if ( m_NtOutput >= 1 )
288 m_px_mc = initialMomentum.px();
289 m_py_mc = initialMomentum.py();
290 m_pz_mc = initialMomentum.pz();
294 log << MSG::INFO <<
" particleId = " << ( *iter_mc )->particleProperty() << endmsg;
299 SmartDataPtr<MucDigiCol> mucDigiCol( eventSvc(),
"/Event/Digi/MucDigiCol" );
302 log << MSG::FATAL <<
"Could not find MUC digi" << endmsg;
303 return ( StatusCode::FAILURE );
305 MucDigiCol::iterator iter4 = mucDigiCol->begin();
306 for ( ; iter4 != mucDigiCol->end(); iter4++, digiId++ ) {}
307 log << MSG::INFO <<
"Total MUC digis:\t" << digiId << endmsg;
308 if ( digiId == 0 )
return ( StatusCode::SUCCESS );
341 if ( m_CompareWithMcHit )
346 SmartDataPtr<McParticleCol> mcParticleCol( eventSvc(),
"/Event/MC/McParticleCol" );
347 if ( !mcParticleCol )
349 log << MSG::FATAL <<
"Could not find McParticle" << endmsg;
352 McParticleCol::iterator iter_mc = mcParticleCol->begin();
355 SmartDataPtr<Event::MucMcHitCol> aMucMcHitCol( eventSvc(),
"/Event/MC/MucMcHitCol" );
358 log << MSG::WARNING <<
"Could not find MucMcHitCol" << endmsg;
362 log << MSG::DEBUG <<
"MucMcHitCol contains " << aMucMcHitCol->size() <<
" Hits " << endmsg;
363 MucMcHitCol::iterator iter_MucMcHit = aMucMcHitCol->begin();
364 for ( ; iter_MucMcHit != aMucMcHitCol->end(); iter_MucMcHit++ )
366 mucID = ( *iter_MucMcHit )->identify();
368 log << MSG::DEBUG <<
" MucMcHit "
372 <<
" Track Id " << ( *iter_MucMcHit )->getTrackIndex() <<
" pos x "
373 << ( *iter_MucMcHit )->getPositionX() <<
" pos y "
374 << ( *iter_MucMcHit )->getPositionY() <<
" pos z "
375 << ( *iter_MucMcHit )->getPositionZ() << endmsg;
378 for ( iter_mc = mcParticleCol->begin(); iter_mc != mcParticleCol->end(); iter_mc++ )
380 if ( ( *iter_mc )->trackIndex() == ( *iter_MucMcHit )->getTrackIndex() )
382 assocMcPart = *iter_mc;
386 if ( assocMcPart == 0 )
388 log << MSG::WARNING <<
"No Corresponding Mc Particle found for this MucMcHit"
392 MucMcHit* assocMucMcHit = *iter_MucMcHit;
395 if ( relMcMuc == 0 ) log << MSG::DEBUG <<
"relMcMuc not created " << endmsg;
399 if ( !addstat )
delete relMcMuc;
403 log << MSG::DEBUG <<
" Fill McPartToMucHitTab, size " << assocMcMuc.
size() << endmsg;
404 iter_mc = mcParticleCol->begin();
405 for ( ; iter_mc != mcParticleCol->end(); iter_mc++ )
407 log << MSG::DEBUG <<
" Track index " << ( *iter_mc )->trackIndex()
408 <<
" particleId = " << ( *iter_mc )->particleProperty() << endmsg;
410 vector<McPartToMucHitRel*> vecMucMcHit = assocMcMuc.
getRelByFirst( *iter_mc );
411 vector<McPartToMucHitRel*>::iterator iter_MucMcHit = vecMucMcHit.begin();
412 for ( ; iter_MucMcHit != vecMucMcHit.end(); iter_MucMcHit++ )
414 mucID = ( *iter_MucMcHit )->getSecond()->identify();
418 <<
" MC Particle index " << ( *iter_MucMcHit )->getFirst()->trackIndex()
450 m_MucRecHitContainer->Clear();
452 m_MucRecHitContainer->SetMucRecHitCol( aMucRecHitCol );
454 SmartIF<IDataManagerSvc> dataManSvc( eventSvc() );
455 DataObject* mucRecHitCol;
456 eventSvc()->findObject(
"/Event/Recon/MucRecHitCol", mucRecHitCol );
457 if ( mucRecHitCol != NULL )
459 dataManSvc->clearSubTree(
"/Event/Recon/MucRecHitCol" );
460 eventSvc()->unregisterObject(
"/Event/Recon/MucRecHitCol" );
463 sc = eventSvc()->registerObject(
"/Event/Recon/MucRecHitCol", aMucRecHitCol );
466 log << MSG::ERROR <<
"/Event/Recon/MucRecHitCol not registerd!" << endmsg;
467 return ( StatusCode::FAILURE );
470 log << MSG::INFO <<
"Add digis" << endmsg;
471 MucDigiCol::iterator iter_Muc = mucDigiCol->begin();
473 for ( ; iter_Muc != mucDigiCol->end(); iter_Muc++, mucDigiId++ )
475 mucID = ( *iter_Muc )->identify();
481 m_MucRecHitContainer->AddHit( part, seg, gap, strip );
483 log << MSG::DEBUG <<
" digit" << mucDigiId <<
" : "
484 <<
" part " << part <<
" seg " << seg <<
" gap " << gap <<
" strip " << strip
493 DataObject* aReconEvent;
494 eventSvc()->findObject(
"/Event/Recon", aReconEvent );
495 if ( aReconEvent == NULL )
499 StatusCode sc = eventSvc()->registerObject(
"/Event/Recon", aReconEvent );
500 if ( sc != StatusCode::SUCCESS )
502 log << MSG::FATAL <<
"Could not register ReconEvent" << endmsg;
503 return ( StatusCode::FAILURE );
506 StatusCode fr = eventSvc()->findObject(
"/Event/Recon", aReconEvent );
507 if ( fr != StatusCode::SUCCESS )
509 log << MSG::WARNING <<
"Could not find register ReconEvent, will create it" << endmsg;
510 StatusCode sc = eventSvc()->registerObject(
"/Event/Recon", aReconEvent );
511 if ( sc != StatusCode::SUCCESS )
513 log << MSG::FATAL <<
"Could not register ReconEvent" << endmsg;
514 return ( StatusCode::FAILURE );
518 DataObject* mucTrackCol;
519 eventSvc()->findObject(
"/Event/Recon/RecMucTrackCol", mucTrackCol );
520 if ( mucTrackCol != NULL )
522 dataManSvc->clearSubTree(
"/Event/Recon/RecMucTrackCol" );
523 eventSvc()->unregisterObject(
"/Event/Recon/RecMucTrackCol" );
526 sc = eventSvc()->registerObject(
"/Event/Recon/RecMucTrackCol", aRecMucTrackCol );
527 if ( sc != StatusCode::SUCCESS )
529 log << MSG::FATAL <<
"Could not register MUC track collection" << endmsg;
530 return ( StatusCode::FAILURE );
534 SmartDataPtr<RecMucTrackCol> findRecMucTrackCol( eventSvc(),
"/Event/Recon/RecMucTrackCol" );
535 if ( !findRecMucTrackCol )
537 log << MSG::FATAL <<
"Could not find RecMucTrackCol" << endmsg;
538 return ( StatusCode::FAILURE );
540 aRecMucTrackCol->clear();
546 SmartDataPtr<RecExtTrackCol> aExtTrackCol( eventSvc(),
"/Event/Recon/RecExtTrackCol" );
549 log << MSG::WARNING <<
"Can't find ExtTrackCol in TDS!" << endmsg;
553 SmartDataPtr<RecMdcTrackCol> aMdcTrackCol( eventSvc(),
"/Event/Recon/RecMdcTrackCol" );
556 log << MSG::WARNING <<
"Can't find MdcTrackCol in TDS!" << endmsg;
562 SmartDataPtr<RecEmcShowerCol> aShowerCol( eventSvc(),
"/Event/Recon/RecEmcShowerCol" );
565 log << MSG::WARNING <<
"Could not find RecEmcShowerCol" << endmsg;
579 log << MSG::INFO <<
"Add tracks info, ExtTrackSeedMode = " << m_ExtTrackSeedMode
580 <<
", EmcShowerSeedMode = " << m_EmcShowerSeedMode << endmsg;
582 if ( m_ExtTrackSeedMode == 1 )
584 SmartDataPtr<McParticleCol> mcParticleCol( eventSvc(),
"/Event/MC/McParticleCol" );
585 if ( !mcParticleCol )
587 log << MSG::FATAL <<
"Could not find McParticle" << endmsg;
589 return ( StatusCode::SUCCESS );
591 McParticleCol::iterator iter_mc = mcParticleCol->begin();
593 int trackIndex = -99;
594 for (
int iTrack = 0; iter_mc != mcParticleCol->end(); iter_mc++, iTrack++ )
596 if ( !( *iter_mc )->primaryParticle() )
continue;
597 int pid = ( *iter_mc )->particleProperty();
602 if ( m_particleTable->particle( pid ) )
604 charge = (int)m_particleTable->particle( pid )->charge();
605 mass = m_particleTable->particle( pid )->mass();
608 log << MSG::ERROR <<
"no this particle id in particle table, please check data"
613 if ( m_particleTable->particle( -pid ) )
615 charge = (int)m_particleTable->particle( -pid )->charge();
617 mass = m_particleTable->particle( -pid )->mass();
620 log << MSG::ERROR <<
"no this particle id in particle table, please check data"
623 else { log << MSG::WARNING <<
"wrong particle id, please check data" << endmsg; }
627 log << MSG::WARNING <<
" neutral particle charge = 0!!! ...just skip it !" << endmsg;
631 trackIndex = ( *iter_mc )->trackIndex();
632 log << MSG::DEBUG <<
"iTrack " << iTrack <<
" index " << trackIndex
633 <<
" particleId = " << ( *iter_mc )->particleProperty() << endmsg;
637 aTrack->
setId( muctrackId );
639 HepLorentzVector initialMomentum = ( *iter_mc )->initialFourMomentum();
640 HepLorentzVector initialPos = ( *iter_mc )->initialPosition();
641 float theta0 = initialMomentum.theta();
642 float phi0 = initialMomentum.phi();
646 float x0 = initialPos.x();
647 float y0 = initialPos.y();
648 float z0 = initialPos.z();
650 Hep3Vector startPos( x0, y0, z0 );
651 Hep3Vector startP( initialMomentum.px(), initialMomentum.py(), initialMomentum.pz() );
652 log << MSG::DEBUG <<
"startP " << startP <<
" startPos " << startPos << endmsg;
653 Hep3Vector endPos( 0, 0, 0 ), endP;
659 aTrack->
SetExtMucPos( endPos.x(), endPos.y(), endPos.z() );
661 aTrack->
SetMucPos( endPos.x(), endPos.y(), endPos.z() );
675 log << MSG::INFO <<
"Add track, trkIndex: " << trackIndex <<
"\tmucTrkId: " << muctrackId
677 aRecMucTrackCol->add( aTrack );
681 else if ( m_ExtTrackSeedMode == 2 )
683 if ( !aExtTrackCol || !aMdcTrackCol )
685 log << MSG::WARNING <<
"Can't find ExtTrackCol or MdcTrackCol in TDS!" << endmsg;
686 return StatusCode::SUCCESS;
689 int trackIndex = -99;
697 RecExtTrackCol::iterator iter_ExtTrack = aExtTrackCol->begin();
698 RecMdcTrackCol::iterator iter_MdcTrack = aMdcTrackCol->begin();
700 for ( ; iter_ExtTrack != aExtTrackCol->end() && iter_MdcTrack != aMdcTrackCol->end();
701 iter_ExtTrack++, iter_MdcTrack++, iExtTrack++ )
703 trackIndex = ( *iter_ExtTrack )->GetTrackId();
704 log << MSG::DEBUG <<
"iExtTrack " << iExtTrack <<
" index " << trackIndex <<
" MucPos "
705 << iExtTrack << ( *iter_ExtTrack )->mucPosition().x() <<
" "
706 << ( *iter_ExtTrack )->mucPosition().y() <<
" "
707 << ( *iter_ExtTrack )->mucPosition().z() <<
" r "
708 << ( *iter_ExtTrack )->mucPosition().r() << endmsg;
710 if ( ( *iter_ExtTrack )->mucPosition().x() == -99 &&
711 ( *iter_ExtTrack )->mucPosition().y() == -99 &&
712 ( *iter_ExtTrack )->mucPosition().z() == -99 )
714 log << MSG::INFO <<
"Bad ExtTrack, trackIndex: " << trackIndex <<
", skip" << endmsg;
719 krechi = ( *iter_ExtTrack )->MucKalchi2();
720 kdof = ( *iter_ExtTrack )->MucKaldof();
721 kdep = ( *iter_ExtTrack )->MucKaldepth();
722 kbrLay = ( *iter_ExtTrack )->MucKalbrLastLayer();
723 kecLay = ( *iter_ExtTrack )->MucKalecLastLayer();
724 if ( kdof <= 0 ) krechi = 0.;
725 else krechi = krechi / kdof;
730 aTrack->
setId( muctrackId );
744 Hep3Vector mdcMomentum = ( *iter_MdcTrack )->p3();
745 Hep3Vector mucPos = ( *iter_ExtTrack )->mucPosition();
746 Hep3Vector mucMomentum = ( *iter_ExtTrack )->mucMomentum();
749 aTrack->
SetMdcMomentum( mdcMomentum.x(), mdcMomentum.y(), mdcMomentum.z() );
750 aTrack->
SetExtMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
753 aTrack->
SetMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
754 aTrack->
SetMucMomentum( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
756 aTrack->
SetCurrentDir( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
759 log << MSG::INFO <<
"Add track, trkIndex: " << trackIndex <<
"\tmucTrkId: " << muctrackId
761 aRecMucTrackCol->add( aTrack );
765 else if ( m_ExtTrackSeedMode == 3 )
770 log << MSG::WARNING <<
"Can't find MdcTrackCol in TDS!" << endmsg;
771 return StatusCode::SUCCESS;
774 log << MSG::INFO <<
"Mdc track size: " << aMdcTrackCol->size() << endmsg;
776 int trackIndex = -99;
777 for ( RecMdcTrackCol::iterator iter_mdc1 = aMdcTrackCol->begin();
778 iter_mdc1 != aMdcTrackCol->end(); iter_mdc1++ )
784 trackIndex = ( *iter_mdc1 )->trackId();
785 HepVector helix = ( *iter_mdc1 )->helix();
788 float x0 = helix[0] *
cos( helix[1] );
789 float y0 = helix[0] *
sin( helix[1] );
796 float dx = -1 *
sin( helix[1] );
797 float dy =
cos( helix[1] );
804 aTrack->
setId( muctrackId );
809 Hep3Vector mucPos( x0, y0, z0 );
810 Hep3Vector mucMomentum( dx, dy, dz );
821 log << MSG::INFO <<
"Add track, trkIndex: " << trackIndex <<
"\tmucTrkId: " << muctrackId
823 aRecMucTrackCol->add( aTrack );
827 else { log << MSG::INFO <<
"ExtTrackSeedMode error!" << endmsg; }
830 if ( m_EmcShowerSeedMode == 1 )
832 int trackIndex = 999;
833 RecEmcShowerCol::iterator iShowerCol;
834 for ( iShowerCol = aShowerCol->begin(); iShowerCol != aShowerCol->end(); iShowerCol++ )
842 aTrack->
setId( muctrackId );
845 Hep3Vector mucPos = ( *iShowerCol )->position();
846 Hep3Vector mucMomentum = ( *iShowerCol )->position();
848 aTrack->
SetExtMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
851 aTrack->
SetMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
852 aTrack->
SetMucMomentum( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
854 aTrack->
SetCurrentDir( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
858 log << MSG::INFO <<
"Add track, trkIndex: " << trackIndex <<
"\tmucTrkId: " << muctrackId
860 aRecMucTrackCol->add( aTrack );
866 log << MSG::DEBUG <<
" track container filled " << endmsg;
869 log << MSG::INFO <<
"Start tracking..." << endmsg;
872 for (
int iTrack = 0; iTrack < (int)aRecMucTrackCol->size(); iTrack++ )
874 log << MSG::DEBUG <<
"iTrack " << iTrack << endmsg;
875 aTrack = ( *aRecMucTrackCol )[iTrack];
880 if ( currentPos.mag() <
kMinor )
882 log << MSG::WARNING <<
"No MUC intersection in track " << iTrack << endmsg;
887 int firstHitFound[2] = { 0, 0 };
889 int firstHitGap[2] = { -1, -1 };
901 float xInsct, yInsct, zInsct;
902 aTrack->
Project( iPart, iGap, xInsct, yInsct, zInsct, seg );
904 cout <<
"part " << iPart <<
" gap " << iGap <<
" x " << xInsct <<
" y " << yInsct
905 <<
" z " << zInsct <<
" seg " << seg << endl;
907 if ( seg == -1 )
continue;
911 for (
int iDeltaSeg = 0; iDeltaSeg <
kNSegSearch; iDeltaSeg++ )
925 if ( firstHitFound[orient] != 1 )
928 for (
int iHit = 0; iHit < m_MucRecHitContainer->GetGapHitCount( iPart, iSeg, iGap );
931 log << MSG::DEBUG <<
"iSeg " << iSeg <<
" iHit " << iHit << endmsg;
932 MucRecHit* pHit = m_MucRecHitContainer->GetHit( iPart, iSeg, iGap, iHit );
937 log << MSG::WARNING <<
"MucRecTrkExt: null pointer to pHit" << endmsg;
947 log << MSG::DEBUG <<
"distance = " << setw( 8 ) << dX <<
" size " << setw( 4 )
950 if ( m_NtOutput >= 2 )
956 m_strip = pHit->
Strip();
961 if ( fabs( dX ) < window )
990 if ( firstHitGap[orient] == -1 ) firstHitGap[orient] = iGap;
991 firstHitFound[orient] = 1;
994 log << MSG::DEBUG <<
" part " << iPart <<
" seg " << iSeg <<
" gap " << iGap
995 <<
" strip " << setw( 2 ) << pHit->
Strip() <<
" attatched" << endmsg;
996 log << MSG::DEBUG <<
"current total hits " << aTrack->
GetTotalHits() << endmsg;
1000 m_NHitsLostInGap[iGap]++;
1013 if ( m_ExtTrackSeedMode != 3 && !m_Blind )
1015 if ( firstHitFound[orient] && firstHitGap[orient] != iGap ) aTrack->
CorrectDir();
1023 aTrack->
LineFit( m_fittingMethod );
1025 log << MSG::INFO <<
"Fit track done! trackIndex: " << aTrack->
trackId()
1026 <<
", mucId: " << aTrack->
id() <<
", RecMode: " << aTrack->
GetRecMode() << endmsg;
1028 if ( m_NtOutput >= 1 )
1030 m_depth = aTrack->
depth();
1033 m_Chi2 = aTrack->
chi2();
1041 m_emctrack = m_emcrec;
1045 if ( m_NtOutput >= 2 )
1047 vector<MucRecHit*> attachedHits = aTrack->
GetHits();
1049 vector<float> distanceHits = aTrack->
getDistHits();
1053 for (
int i = 0; i < expectedHits.size(); i++ )
1060 for (
int j = 0; j < attachedHits.size(); j++ )
1065 if ( attachedHits.size() == distanceHits.size() )
1067 m_part = jhit->
Part();
1068 m_seg = jhit->
Seg();
1069 m_gap = jhit->
Gap();
1070 m_strip = jhit->
Strip();
1071 m_distance = distanceHits[j];
1072 m_Distance = distanceHits_quad[j];
1085 log << MSG::DEBUG <<
"track Index " << aTrack->
trackId() << setw( 2 )
1086 << mucDigiCol->size() - nHitsAttached <<
" of " << setw( 2 ) << mucDigiCol->size()
1087 <<
" lost " << endmsg;
1096 if ( m_MucHitSeedMode == 1 )
1098 MucRecHit *pHit = 0, *pHit0 = 0, *pHit1 = 0;
1105 bool hit0 =
false, hit1 =
false;
1106 int firstgap0 = -1, firstgap1 = -1;
1107 int nStrip0 = 0, nStrip1 = 0;
1108 Hep3Vector posHit0, posHit1;
1111 count = m_MucRecHitContainer->GetGapHitCount( iPart, iSeg, iGap );
1112 for (
int iHit0 = 0; iHit0 <
count; iHit0++ )
1115 pHit = m_MucRecHitContainer->GetHit( iPart, iSeg, iGap, iHit0 );
1118 log << MSG::FATAL <<
"MucRecRoadFinder-E10 "
1119 <<
" part " << iPart <<
" seg " << iSeg <<
" gap " << iGap <<
" null pointer"
1128 if ( orient == 1 && hit0 ==
false )
1133 if ( iGap == firstgap0 )
1139 if ( orient == 0 && hit1 ==
false )
1144 if ( iGap == firstgap1 )
1172 int trackIndex = 999;
1175 aTrack->
setId( muctrackId );
1180 Hep3Vector mucPos, mucMomentum;
1183 mucMomentum.set( posHit0.x(), posHit0.y(), posHit1.z() );
1184 mucPos = mucMomentum * 0.9;
1189 mucMomentum.set( posHit0.x(), posHit1.y(), posHit0.z() * 0.5 + posHit1.z() * 0.5 );
1190 mucPos = mucMomentum * 0.9;
1194 aTrack->
SetExtMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
1197 aTrack->
SetMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
1198 aTrack->
SetMucMomentum( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
1199 aTrack->
SetCurrentPos( mucPos.x(), mucPos.y(), mucPos.z() );
1200 aTrack->
SetCurrentDir( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
1203 aRecMucTrackCol->add( aTrack );
1208 if ( m_NtOutput >= 1 )
1210 m_depth = aTrack->
depth();
1213 m_Chi2 = aTrack->
chi2();
1229 int nTracksTotal = 0;
1230 int nTracksFound = 0;
1231 int nTracksLost = 0;
1232 int nTracksLostByExt = 0;
1233 int nTracksMisFound = 0;
1235 int nDigisTotal = 0;
1239 int nHitsMisFound = 0;
1448 m_NDigisTotal += nDigisTotal;
1449 m_NHitsTotal += nHitsTotal;
1450 m_NHitsFoundTotal += nHitsFound;
1451 m_NHitsLostTotal += nHitsLost;
1452 m_NHitsMisFoundTotal += nHitsMisFound;
1455 m_NTracksTotal += nTracksTotal;
1456 m_NTracksRecoTotal += nTracksFound;
1457 m_NTracksLostByMdcTotal += nTracksLost;
1458 m_NTracksLostByExtTotal += nTracksLostByExt;
1459 m_NTracksMdcGhostTotal += nTracksMisFound;
1460 if ( aRecMucTrackCol->size() > 0 )
1462 RecMucTrack* aRecMucTrack = ( *aRecMucTrackCol )[0];
1464 if ( m_NtOutput >= 1 )
1478 if ( m_NtOutput >= 1 ) m_tuple->write();
1479 return StatusCode::SUCCESS;