- // at first station
- esdTrack.SetInverseBendingMomentumUncorrected(trackParam->GetInverseBendingMomentum());
- esdTrack.SetThetaXUncorrected(TMath::ATan(trackParam->GetNonBendingSlope()));
- esdTrack.SetThetaYUncorrected(TMath::ATan(trackParam->GetBendingSlope()));
- esdTrack.SetZUncorrected(trackParam->GetZ());
- esdTrack.SetBendingCoorUncorrected(trackParam->GetBendingCoor());
- esdTrack.SetNonBendingCoorUncorrected(trackParam->GetNonBendingCoor());
- // at vertex
- esdTrack.SetInverseBendingMomentum(trackParamAtVtx.GetInverseBendingMomentum());
- esdTrack.SetThetaX(TMath::ATan(trackParamAtVtx.GetNonBendingSlope()));
- esdTrack.SetThetaY(TMath::ATan(trackParamAtVtx.GetBendingSlope()));
- esdTrack.SetZ(trackParamAtVtx.GetZ());
- esdTrack.SetBendingCoor(trackParamAtVtx.GetBendingCoor());
- esdTrack.SetNonBendingCoor(trackParamAtVtx.GetNonBendingCoor());
- // global info
- esdTrack.SetChi2(track->GetFitFMin());
- esdTrack.SetNHit(track->GetNTrackHits());
- esdTrack.SetLocalTrigger(track->GetLocalTrigger());
- esdTrack.SetChi2MatchTrigger(track->GetChi2MatchTrigger());
- esdTrack.SetHitsPatternInTrigCh(track->GetHitsPatternInTrigCh());
+ // check if this local trigger has already been matched
+ TIter itTrack(trackStore.CreateIterator());
+ while ( ( track = static_cast<AliMUONTrack*>(itTrack()) ) ) {
+ matched = (track->LoCircuit() == locTrg->LoCircuit());
+ if (matched) break;
+ }
+ if (matched) continue;
+
+ AliMUONESDInterface::MUONToESD(*locTrg, esdTrack, ghostId, triggerTrack);