192 MsgStream log(
msgSvc(), name());
193 log << MSG::INFO <<
"in execute()" << endreq;
196 StatusCode sc = StatusCode::SUCCESS;
201 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),
"/Event/EventHeader");
203 log << MSG::FATAL <<
"Could not find Event Header" << endreq;
207 log << MSG::INFO <<
"Event: "<<m_totalEvent<<
"\tcurrent run: "<<eventHeader->runNumber()<<
"\tcurrent event: "<< eventHeader->eventNumber()<<endreq;
209event = eventHeader->eventNumber();
210run = eventHeader->runNumber();
212 string release = getenv(
"BES_RELEASE");
216 for (std::vector<FilterEvent>::iterator it = m_filter_event.begin();
217 it != m_filter_event.end(); ++it) {
218 const FilterEvent& fe = (*it);
219 if (
release == fe.bossver && run == fe.runid && event == fe.eventid) {
220 cout <<
"SKIP: " << fe.bossver <<
" "
222 << fe.eventid << std::endl;
223 return StatusCode::SUCCESS;
228 if(m_CompareWithMcHit==1){
229 SmartDataPtr<McParticleCol> mcParticleCol(eventSvc(),
"/Event/MC/McParticleCol");
230 if (!mcParticleCol) {
231 log << MSG::FATAL <<
"Could not find McParticle" << endreq;
235 McParticleCol::iterator iter_mc = mcParticleCol->begin();
239 int pid = (*iter_mc)->particleProperty();
245 if(m_particleTable->particle( pid )){
246 charge = (int)m_particleTable->particle( pid )->charge();
247 mass = m_particleTable->particle( pid )->mass();
249 else log << MSG::ERROR <<
"no this particle id in particle table, please check data" <<endreq;
250 }
else if ( pid <0 ) {
251 if(m_particleTable->particle( -pid )){
252 charge = (int)m_particleTable->particle( -pid )->charge();
254 mass = m_particleTable->particle( -pid )->mass();
256 else log << MSG::ERROR <<
"no this particle id in particle table, please check data" <<endreq;
258 log << MSG::WARNING <<
"wrong particle id, please check data" <<endreq;
267 HepLorentzVector initialMomentum = (*iter_mc)->initialFourMomentum();
268 HepLorentzVector initialPos = (*iter_mc)->initialPosition();
270 m_px_mc = initialMomentum.px();
271 m_py_mc = initialMomentum.py();
272 m_pz_mc = initialMomentum.pz();
276 log << MSG::INFO <<
" particleId = " << (*iter_mc)->particleProperty() << endreq;
281 SmartDataPtr<MucDigiCol> mucDigiCol(eventSvc(),
"/Event/Digi/MucDigiCol");
283 log << MSG::FATAL <<
"Could not find MUC digi" << endreq;
284 return( StatusCode::FAILURE);
286 MucDigiCol::iterator iter4 = mucDigiCol->begin();
287 for (;iter4 != mucDigiCol->end(); iter4++, digiId++) {
289 log << MSG::INFO <<
"Total MUC digis:\t" << digiId << endreq;
290 if( digiId == 0 )
return ( StatusCode::SUCCESS);
323 if (m_CompareWithMcHit) {
327 SmartDataPtr<McParticleCol> mcParticleCol(eventSvc(),
"/Event/MC/McParticleCol");
328 if (!mcParticleCol) {
329 log << MSG::FATAL <<
"Could not find McParticle" << endreq;
332 McParticleCol::iterator iter_mc = mcParticleCol->begin();
335 SmartDataPtr<Event::MucMcHitCol> aMucMcHitCol(eventSvc(),
"/Event/MC/MucMcHitCol");
337 log << MSG::WARNING <<
"Could not find MucMcHitCol" << endreq;
341 log << MSG::DEBUG <<
"MucMcHitCol contains " << aMucMcHitCol->size() <<
" Hits " << endreq;
342 MucMcHitCol::iterator iter_MucMcHit = aMucMcHitCol->begin();
343 for (; iter_MucMcHit != aMucMcHitCol->end(); iter_MucMcHit++) {
344 mucID = (*iter_MucMcHit)->identify();
346 log << MSG::DEBUG <<
" MucMcHit " <<
" : "
351 <<
" Track Id " << (*iter_MucMcHit)->getTrackIndex()
352 <<
" pos x " << (*iter_MucMcHit)->getPositionX()
353 <<
" pos y " << (*iter_MucMcHit)->getPositionY()
354 <<
" pos z " << (*iter_MucMcHit)->getPositionZ()
358 for (iter_mc = mcParticleCol->begin(); iter_mc != mcParticleCol->end(); iter_mc++) {
359 if ( (*iter_mc)->trackIndex() == (*iter_MucMcHit)->getTrackIndex() ) {
360 assocMcPart = *iter_mc;
364 if (assocMcPart == 0) {
365 log << MSG::WARNING <<
"No Corresponding Mc Particle found for this MucMcHit" << endreq;
368 MucMcHit *assocMucMcHit = *iter_MucMcHit;
371 if (relMcMuc == 0) log << MSG::DEBUG <<
"relMcMuc not created " << endreq;
374 if(!addstat)
delete relMcMuc;
378 log << MSG::DEBUG <<
" Fill McPartToMucHitTab, size " << assocMcMuc.
size() << endreq;
379 iter_mc = mcParticleCol->begin();
380 for (;iter_mc != mcParticleCol->end(); iter_mc++) {
381 log << MSG::DEBUG <<
" Track index " << (*iter_mc)->trackIndex()
382 <<
" particleId = " << (*iter_mc)->particleProperty()
385 vector< McPartToMucHitRel* > vecMucMcHit = assocMcMuc.
getRelByFirst(*iter_mc);
386 vector< McPartToMucHitRel* >::iterator iter_MucMcHit = vecMucMcHit.begin();
387 for (; iter_MucMcHit != vecMucMcHit.end(); iter_MucMcHit++) {
388 mucID = (*iter_MucMcHit)->getSecond()->identify();
392 <<
" MC Particle index "
393 << (*iter_MucMcHit)->getFirst()->trackIndex()
394 <<
" contains " <<
" MucMcHit "
421 if (!m_MucRecHitContainer) {
424 m_MucRecHitContainer->
Clear();
428 SmartIF<IDataManagerSvc> dataManSvc(eventSvc());
429 DataObject *mucRecHitCol;
430 eventSvc()->findObject(
"/Event/Recon/MucRecHitCol",mucRecHitCol);
431 if(mucRecHitCol != NULL) {
432 dataManSvc->clearSubTree(
"/Event/Recon/MucRecHitCol");
433 eventSvc()->unregisterObject(
"/Event/Recon/MucRecHitCol");
436 sc = eventSvc()->registerObject(
"/Event/Recon/MucRecHitCol", aMucRecHitCol);
438 log << MSG::ERROR <<
"/Event/Recon/MucRecHitCol not registerd!" << endreq;
439 return( StatusCode::FAILURE);
442 log << MSG::INFO <<
"Add digis" << endreq;
443 MucDigiCol::iterator iter_Muc = mucDigiCol->begin();
445 for (;iter_Muc != mucDigiCol->end(); iter_Muc++, mucDigiId++) {
446 mucID = (*iter_Muc)->identify();
452 m_MucRecHitContainer->
AddHit(part, seg, gap, strip);
454 log << MSG::DEBUG <<
" digit" << mucDigiId <<
" : "
458 <<
" strip " << strip
467 DataObject *aReconEvent ;
468 eventSvc()->findObject(
"/Event/Recon",aReconEvent);
469 if(aReconEvent==NULL) {
472 StatusCode sc = eventSvc()->registerObject(
"/Event/Recon",aReconEvent);
473 if(sc!=StatusCode::SUCCESS) {
474 log << MSG::FATAL <<
"Could not register ReconEvent" <<endreq;
475 return( StatusCode::FAILURE);
478 StatusCode fr = eventSvc()->findObject(
"/Event/Recon",aReconEvent);
479 if(fr!=StatusCode::SUCCESS) {
480 log << MSG::WARNING <<
"Could not find register ReconEvent, will create it" <<endreq;
481 StatusCode sc = eventSvc()->registerObject(
"/Event/Recon",aReconEvent);
482 if(sc!=StatusCode::SUCCESS) {
483 log << MSG::FATAL <<
"Could not register ReconEvent" <<endreq;
484 return( StatusCode::FAILURE);
488 DataObject *mucTrackCol;
489 eventSvc()->findObject(
"/Event/Recon/RecMucTrackCol",mucTrackCol);
490 if(mucTrackCol != NULL) {
491 dataManSvc->clearSubTree(
"/Event/Recon/RecMucTrackCol");
492 eventSvc()->unregisterObject(
"/Event/Recon/RecMucTrackCol");
495 sc = eventSvc()->registerObject(
"/Event/Recon/RecMucTrackCol", aRecMucTrackCol);
496 if(sc!=StatusCode::SUCCESS) {
497 log << MSG::FATAL <<
"Could not register MUC track collection" << endreq;
498 return( StatusCode::FAILURE);
502 SmartDataPtr<RecMucTrackCol> findRecMucTrackCol(eventSvc(),
"/Event/Recon/RecMucTrackCol");
503 if (!findRecMucTrackCol) {
504 log << MSG::FATAL <<
"Could not find RecMucTrackCol" << endreq;
505 return( StatusCode::FAILURE);
507 aRecMucTrackCol->clear();
513 SmartDataPtr<RecExtTrackCol> aExtTrackCol(eventSvc(),
"/Event/Recon/RecExtTrackCol");
515 log << MSG::WARNING <<
"Can't find ExtTrackCol in TDS!" << endreq;
519 SmartDataPtr<RecMdcTrackCol> aMdcTrackCol(eventSvc(),
"/Event/Recon/RecMdcTrackCol");
521 log << MSG::WARNING <<
"Can't find MdcTrackCol in TDS!" << endreq;
527 SmartDataPtr<RecEmcShowerCol> aShowerCol(eventSvc(),
"/Event/Recon/RecEmcShowerCol");
529 log << MSG::WARNING <<
"Could not find RecEmcShowerCol" << endreq;
543 log << MSG::INFO <<
"Add tracks info, ExtTrackSeedMode = " << m_ExtTrackSeedMode <<
", EmcShowerSeedMode = " << m_EmcShowerSeedMode << endreq;
545 if (m_ExtTrackSeedMode == 1)
547 SmartDataPtr<McParticleCol> mcParticleCol(eventSvc(),
"/Event/MC/McParticleCol");
548 if (!mcParticleCol) {
549 log << MSG::FATAL <<
"Could not find McParticle" << endreq;
551 return( StatusCode::SUCCESS);
553 McParticleCol::iterator iter_mc = mcParticleCol->begin();
555 int trackIndex = -99;
556 for (
int iTrack = 0;iter_mc != mcParticleCol->end(); iter_mc++, iTrack++) {
557 if(!(*iter_mc)->primaryParticle())
continue;
558 int pid = (*iter_mc)->particleProperty();
563 if(m_particleTable->particle( pid )){
564 charge = (int)m_particleTable->particle( pid )->charge();
565 mass = m_particleTable->particle( pid )->mass();
567 else log << MSG::ERROR <<
"no this particle id in particle table, please check data" <<endreq;
570 if(m_particleTable->particle( -pid )){
571 charge = (int)m_particleTable->particle( -pid )->charge();
573 mass = m_particleTable->particle( -pid )->mass();
575 else log << MSG::ERROR <<
"no this particle id in particle table, please check data" <<endreq;
577 log << MSG::WARNING <<
"wrong particle id, please check data" <<endreq;
582 <<
" neutral particle charge = 0!!! ...just skip it !"
587 trackIndex = (*iter_mc)->trackIndex();
588 log << MSG::DEBUG <<
"iTrack " << iTrack <<
" index " << trackIndex
589 <<
" particleId = " << (*iter_mc)->particleProperty()
594 aTrack->
setId(muctrackId);
596 HepLorentzVector initialMomentum = (*iter_mc)->initialFourMomentum();
597 HepLorentzVector initialPos = (*iter_mc)->initialPosition();
598 float theta0 = initialMomentum.theta();
599 float phi0 = initialMomentum.phi();
603 float x0 = initialPos.x();
604 float y0 = initialPos.y();
605 float z0 = initialPos.z();
607 Hep3Vector startPos(x0, y0, z0);
608 Hep3Vector startP(initialMomentum.px(), initialMomentum.py(), initialMomentum.pz());
609 log << MSG::DEBUG <<
"startP " << startP <<
" startPos "<<startPos<< endreq;
610 Hep3Vector endPos(0, 0, 0), endP;
616 aTrack->
SetExtMucPos( endPos.x(), endPos.y(), endPos.z() );
618 aTrack->
SetMucPos( endPos.x(), endPos.y(), endPos.z() );
632 log << MSG::INFO <<
"Add track, trkIndex: " << trackIndex <<
"\tmucTrkId: " << muctrackId << endreq;
633 aRecMucTrackCol->add(aTrack);
637 else if (m_ExtTrackSeedMode == 2)
639 if (!aExtTrackCol || !aMdcTrackCol) {
640 log << MSG::WARNING <<
"Can't find ExtTrackCol or MdcTrackCol in TDS!" << endreq;
641 return StatusCode::SUCCESS;
644 int trackIndex = -99;
651 RecExtTrackCol::iterator iter_ExtTrack = aExtTrackCol->begin();
652 RecMdcTrackCol::iterator iter_MdcTrack = aMdcTrackCol->begin();
654 for (;iter_ExtTrack != aExtTrackCol->end() && iter_MdcTrack != aMdcTrackCol->end(); iter_ExtTrack++, iter_MdcTrack++, iExtTrack++)
656 trackIndex = (*iter_ExtTrack)->GetTrackId();
657 log << MSG::DEBUG <<
"iExtTrack " << iExtTrack <<
" index " << trackIndex <<
" MucPos "
658 << iExtTrack << (*iter_ExtTrack)->mucPosition().x() <<
" "
659 << (*iter_ExtTrack)->mucPosition().y() <<
" "
660 << (*iter_ExtTrack)->mucPosition().z() <<
" r "
661 << (*iter_ExtTrack)->mucPosition().r() << endreq;
663 if((*iter_ExtTrack)->mucPosition().x() == -99 &&
664 (*iter_ExtTrack)->mucPosition().y() == -99 &&
665 (*iter_ExtTrack)->mucPosition().z() == -99)
667 log << MSG::INFO <<
"Bad ExtTrack, trackIndex: " << trackIndex <<
", skip" << endreq;
672 krechi = (*iter_ExtTrack)->MucKalchi2();
673 kdof= (*iter_ExtTrack)->MucKaldof();
674 kdep = (*iter_ExtTrack)->MucKaldepth();
675 kbrLay = (*iter_ExtTrack)->MucKalbrLastLayer();
676 kecLay = (*iter_ExtTrack)->MucKalecLastLayer();
677 if(kdof<=0)krechi = 0.;
678 else krechi = krechi/kdof;
683 aTrack->
setId(muctrackId);
697 Hep3Vector mdcMomentum = (*iter_MdcTrack)->p3();
698 Hep3Vector mucPos = (*iter_ExtTrack)->mucPosition();
699 Hep3Vector mucMomentum = (*iter_ExtTrack)->mucMomentum();
702 aTrack->
SetMdcMomentum( mdcMomentum.x(), mdcMomentum.y(), mdcMomentum.z() );
703 aTrack->
SetExtMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
706 aTrack->
SetMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
707 aTrack->
SetMucMomentum( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
709 aTrack->
SetCurrentDir( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
712 log << MSG::INFO <<
"Add track, trkIndex: " << trackIndex <<
"\tmucTrkId: " << muctrackId << endreq;
713 aRecMucTrackCol->add(aTrack);
717 else if(m_ExtTrackSeedMode == 3)
721 log << MSG::WARNING <<
"Can't find MdcTrackCol in TDS!" << endreq;
722 return StatusCode::SUCCESS;
725 log<< MSG::INFO <<
"Mdc track size: "<<aMdcTrackCol->size()<<endreq;
727 int trackIndex = -99;
728 for(RecMdcTrackCol::iterator iter_mdc1 = aMdcTrackCol->begin(); iter_mdc1 != aMdcTrackCol->end(); iter_mdc1++){
733 trackIndex = (*iter_mdc1)->trackId();
734 HepVector helix = (*iter_mdc1)->helix();
737 float x0 = helix[0] *
cos(helix[1]);
738 float y0 = helix[0] *
sin(helix[1]);
745 float dx = -1*
sin(helix[1]);
746 float dy =
cos(helix[1]);
753 aTrack->
setId(muctrackId);
759 Hep3Vector mucPos(x0,y0,z0);
760 Hep3Vector mucMomentum(dx,dy,dz);
771 log << MSG::INFO <<
"Add track, trkIndex: " << trackIndex <<
"\tmucTrkId: " << muctrackId << endreq;
772 aRecMucTrackCol->add(aTrack);
776 else {log << MSG::INFO <<
"ExtTrackSeedMode error!"<<endreq; }
779 if(m_EmcShowerSeedMode == 1)
781 int trackIndex = 999;
782 RecEmcShowerCol::iterator iShowerCol;
783 for(iShowerCol=aShowerCol->begin(); iShowerCol!=aShowerCol->end(); iShowerCol++)
791 aTrack->
setId(muctrackId);
794 Hep3Vector mucPos = (*iShowerCol)->position();
795 Hep3Vector mucMomentum = (*iShowerCol)->position();
797 aTrack->
SetExtMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
800 aTrack->
SetMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
801 aTrack->
SetMucMomentum( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
803 aTrack->
SetCurrentDir( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
807 log << MSG::INFO <<
"Add track, trkIndex: " << trackIndex <<
"\tmucTrkId: " << muctrackId << endreq;
808 aRecMucTrackCol->add(aTrack);
814 log << MSG::DEBUG <<
" track container filled " << endreq;
817 log << MSG::INFO <<
"Start tracking..." << endreq;
820 for(
int iTrack = 0; iTrack < (int)aRecMucTrackCol->size(); iTrack++)
822 log << MSG::DEBUG <<
"iTrack " << iTrack << endreq;
823 aTrack = (*aRecMucTrackCol)[iTrack];
828 if(currentPos.mag() <
kMinor) {
829 log << MSG::WARNING <<
"No MUC intersection in track " << iTrack << endreq;
834 int firstHitFound[2] = { 0, 0};
835 int firstHitGap[2] = {-1, -1};
845 float xInsct, yInsct, zInsct;
846 aTrack->
Project(iPart, iGap, xInsct, yInsct, zInsct, seg);
847 if(m_MsOutput) cout <<
"part " << iPart <<
" gap " << iGap <<
" x " << xInsct <<
" y " << yInsct <<
" z " << zInsct <<
" seg " << seg << endl;
849 if(seg == -1)
continue;
853 for(
int iDeltaSeg = 0; iDeltaSeg <
kNSegSearch; iDeltaSeg++)
868 for (
int iHit = 0; iHit < m_MucRecHitContainer->
GetGapHitCount(iPart, iSeg, iGap); iHit++)
870 log << MSG::DEBUG <<
"iSeg " << iSeg <<
" iHit " << iHit << endreq;
871 MucRecHit* pHit = m_MucRecHitContainer->
GetHit(iPart, iSeg, iGap, iHit);
875 log << MSG::WARNING <<
"MucRecTrkExt: null pointer to pHit" << endreq;
884 log << MSG::DEBUG <<
"distance = " << setw(8) << dX <<
" size " << setw(4) << window << endreq;
888 m_part = iPart; m_seg = iSeg; m_gap = iGap; m_strip = pHit->
Strip();
889 m_diff = -99; m_tuple->write();
892 if (fabs(dX) < window)
914 if (firstHitGap[orient] == -1) firstHitGap[orient] = iGap;
915 firstHitFound[orient] = 1;
918 log << MSG::DEBUG <<
" part " << iPart <<
" seg " << iSeg <<
" gap " << iGap
919 <<
" strip " << setw(2) << pHit->
Strip() <<
" attatched" << endreq;
920 log << MSG::DEBUG <<
"current total hits " << aTrack->
GetTotalHits() << endreq;
923 m_NHitsLostInGap[iGap]++;
934 if(m_ExtTrackSeedMode != 3 && !m_Blind) {
935 if (firstHitFound[orient] && firstHitGap[orient] != iGap) aTrack->
CorrectDir();
943 aTrack->
LineFit(m_fittingMethod);
945 log << MSG::INFO <<
"Fit track done! trackIndex: " << aTrack->
trackId() <<
", mucId: " << aTrack->
id() <<
", RecMode: " << aTrack->
GetRecMode() << endreq;
949 m_depth = aTrack->
depth();
952 m_Chi2 = aTrack->
chi2();
960 m_emctrack = m_emcrec;
966 vector<MucRecHit*> attachedHits = aTrack->
GetHits();
968 vector<float> distanceHits = aTrack->
getDistHits();
972 for(
int i=0; i< expectedHits.size(); i++)
978 for(
int j=0; j< attachedHits.size(); j++)
982 if(attachedHits.size()==distanceHits.size())
984 m_part = jhit->
Part(); m_seg = jhit->
Seg(); m_gap = jhit->
Gap();
985 m_strip = jhit->
Strip();
986 m_distance = distanceHits[j];
987 m_Distance = distanceHits_quad[j];
1000 log << MSG::DEBUG <<
"track Index " << aTrack->
trackId()
1001 << setw(2) << mucDigiCol->size() - nHitsAttached <<
" of "
1002 << setw(2) << mucDigiCol->size() <<
" lost " << endreq;
1012 if(m_MucHitSeedMode == 1)
1014 MucRecHit *pHit = 0 ,*pHit0 = 0, *pHit1 = 0;
1021 bool hit0 =
false, hit1 =
false;
int firstgap0 = -1, firstgap1 = -1;
int nStrip0 = 0, nStrip1 = 0;
1022 Hep3Vector posHit0, posHit1;
1026 for (
int iHit0 = 0; iHit0 < count; iHit0++)
1029 pHit = m_MucRecHitContainer->
GetHit(iPart, iSeg, iGap, iHit0);
1031 log << MSG::FATAL <<
"MucRecRoadFinder-E10 " <<
" part " << iPart
1032 <<
" seg " << iSeg <<
" gap " << iGap <<
" null pointer"
1041 if(orient == 1 && hit0 ==
false){
1045 if(iGap == firstgap0){
1050 if(orient == 0 && hit1 ==
false){
1054 if(iGap == firstgap1){
1079 int trackIndex = 999;
1082 aTrack->
setId(muctrackId);
1087 Hep3Vector mucPos, mucMomentum;
1089 mucMomentum.set(posHit0.x(),posHit0.y(),posHit1.z());
1090 mucPos = mucMomentum * 0.9;
1093 mucMomentum.set(posHit0.x(),posHit1.y(),posHit0.z()*0.5+posHit1.z()*0.5);
1094 mucPos = mucMomentum * 0.9;
1097 aTrack->
SetExtMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
1100 aTrack->
SetMucPos( mucPos.x(), mucPos.y(), mucPos.z() );
1101 aTrack->
SetMucMomentum( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
1103 aTrack->
SetCurrentDir( mucMomentum.x(), mucMomentum.y(), mucMomentum.z() );
1106 aRecMucTrackCol->add(aTrack);
1112 m_depth = aTrack->
depth();
1115 m_Chi2 = aTrack->
chi2();
1131 int nTracksTotal = 0;
1132 int nTracksFound = 0;
1133 int nTracksLost = 0;
1134 int nTracksLostByExt = 0;
1135 int nTracksMisFound = 0;
1137 int nDigisTotal = 0;
1141 int nHitsMisFound = 0;
1347 m_NDigisTotal += nDigisTotal;
1348 m_NHitsTotal += nHitsTotal;
1349 m_NHitsFoundTotal += nHitsFound;
1350 m_NHitsLostTotal += nHitsLost;
1351 m_NHitsMisFoundTotal += nHitsMisFound;
1354 m_NTracksTotal += nTracksTotal;
1355 m_NTracksRecoTotal += nTracksFound;
1356 m_NTracksLostByMdcTotal += nTracksLost;
1357 m_NTracksLostByExtTotal += nTracksLostByExt;
1358 m_NTracksMdcGhostTotal += nTracksMisFound;
1359 if (aRecMucTrackCol->size() > 0)
1361 RecMucTrack *aRecMucTrack = (*aRecMucTrackCol)[0];
1376 if(m_NtOutput>=1) m_tuple->write();
1377 return StatusCode::SUCCESS;