105{
106 SmartDataPtr<EvtRecEvent> evt(eventSvc_, "/Event/EvtRec/EvtRecEvent");
108 if ( !evt || !trks ) {
109 return false;
110 }
111
112 std::vector<EvtRecTrack*> gtrks;
113 for (int i = 0; i < evt->totalCharged(); ++i) {
115 if ( isGoodTrack(trk) ) {
116 gtrks.push_back(trk);
117 }
118 }
119 if ( gtrks.size() != 2 ) return false;
120
121 double time[2] = { -100., -100.};
122 for ( int i = 0; i < 2; ++i ) {
123 if ( gtrks[i]->isTofTrackValid() ){
124 SmartRefVector<RecTofTrack> tofTrks = gtrks[i]->tofTrack();
125 for ( SmartRefVector<RecTofTrack>::iterator it = tofTrks.begin(); it != tofTrks.end(); ++it ) {
126 if ( ( (*it)->status() & 0x8 ) == 0x8 ) {
127 time[i] = (*it)->tof();
128 break;
129 }
130 }
131 }
132 }
133 if (
time[0] > -99. &&
time[1] > -99. && fabs(
time[0]-
time[1]) > 5 )
return true;
134
135 if ( isElectron(gtrks[0]) && isElectron(gtrks[1]) ) return true;
136 if ( isMuon(gtrks[0]) && isMuon(gtrks[1]) ) return true;
137
138 return false;
139}
_EXTERN_ std::string EvtRecTrackCol