- distTriggerTrack[0] = triggerTrack->GetX11() - xTrack;
- distTriggerTrack[1] = triggerTrack->GetY11() - yTrack;
- distTriggerTrack[2] = TMath::Tan(triggerTrack->GetThetay()) - ySlopeTrack;
-
- if(isCovOK){
- TMatrixD paramDiff(3,1);
- for(Int_t iVar = 0; iVar < 3; iVar++)
- paramDiff(iVar,0) = distTriggerTrack[iVar];
-
+ AliMUONTrackExtrap::LinearExtrapToZCov(&trackParam, triggerTrack->GetZ11());
+ const TMatrixD& kParamCov = trackParam.GetCovariances();
+
+ Double_t xTrack = trackParam.GetNonBendingCoor();
+ Double_t yTrack = trackParam.GetBendingCoor();
+ Double_t ySlopeTrack = trackParam.GetBendingSlope();
+
+ paramDiff(0,0) = triggerTrack->GetX11() - xTrack;
+ paramDiff(1,0) = triggerTrack->GetY11() - yTrack;
+ paramDiff(2,0) = triggerTrack->GetSlopeY() - ySlopeTrack;
+
+ // Covariance matrix 3x3 (X,Y,slopeY) for tracker tracks
+ trackCov.Zero();
+ trackCov(0,0) = kParamCov(0,0);
+ trackCov(1,1) = kParamCov(2,2);
+ trackCov(2,2) = kParamCov(3,3);
+ trackCov(1,2) = kParamCov(2,3);
+ trackCov(2,1) = kParamCov(3,2);
+
+ // Covariance matrix 3x3 (X,Y,slopeY) for trigger tracks
+ TMatrixD trigCov(triggerTrack->GetCovariances());
+
+ TMatrixD sumCov(trackCov,TMatrixD::kPlus,trigCov);
+ if (sumCov.Determinant() != 0) {
+ sumCov.Invert();
+