-}
-
- //__________________________________________________________________________
-AliMUONHitForRec* AliMUONTrackParam::GetHitForRecPtr(void) const
-{
-/// return pointer to HitForRec attached to the current TrackParam
-/// this method should not be called when fHitForRecPtr == NULL
- if (!fHitForRecPtr) AliWarning("fHitForRecPtr == NULL");
- return fHitForRecPtr;
-}
-
- //_________________________________________________________________________
-void AliMUONTrackParam::GetParamFrom(const AliESDMuonTrack& esdMuonTrack)
-{
- /// Get parameters from ESD track
- fZ = esdMuonTrack.GetZ();
- fParameters(0,0) = esdMuonTrack.GetNonBendingCoor();
- fParameters(1,0) = TMath::Tan(esdMuonTrack.GetThetaX());
- fParameters(2,0) = esdMuonTrack.GetBendingCoor();
- fParameters(3,0) = TMath::Tan(esdMuonTrack.GetThetaY());
- fParameters(4,0) = esdMuonTrack.GetInverseBendingMomentum();
-}
-
- //_________________________________________________________________________
-void AliMUONTrackParam::SetParamFor(AliESDMuonTrack& esdMuonTrack) const
-{
- /// Set parameters in ESD track
- esdMuonTrack.SetZ(fZ);
- esdMuonTrack.SetNonBendingCoor(fParameters(0,0));
- esdMuonTrack.SetThetaX(TMath::ATan(fParameters(1,0)));
- esdMuonTrack.SetBendingCoor(fParameters(2,0));
- esdMuonTrack.SetThetaY(TMath::ATan(fParameters(3,0)));
- esdMuonTrack.SetInverseBendingMomentum(fParameters(4,0));
-}
-
- //_________________________________________________________________________
-void AliMUONTrackParam::GetParamFromUncorrected(const AliESDMuonTrack& esdMuonTrack)
-{
- /// Get parameters from ESD track
- fZ = esdMuonTrack.GetZUncorrected();
- fParameters(0,0) = esdMuonTrack.GetNonBendingCoorUncorrected();
- fParameters(1,0) = TMath::Tan(esdMuonTrack.GetThetaXUncorrected());
- fParameters(2,0) = esdMuonTrack.GetBendingCoorUncorrected();
- fParameters(3,0) = TMath::Tan(esdMuonTrack.GetThetaYUncorrected());
- fParameters(4,0) = esdMuonTrack.GetInverseBendingMomentumUncorrected();
-}
-
- //_________________________________________________________________________
-void AliMUONTrackParam::SetParamForUncorrected(AliESDMuonTrack& esdMuonTrack) const
-{
- /// Set parameters in ESD track
- esdMuonTrack.SetZUncorrected(fZ);
- esdMuonTrack.SetNonBendingCoorUncorrected(fParameters(0,0));
- esdMuonTrack.SetThetaXUncorrected(TMath::ATan(fParameters(1,0)));
- esdMuonTrack.SetBendingCoorUncorrected(fParameters(2,0));
- esdMuonTrack.SetThetaYUncorrected(TMath::ATan(fParameters(3,0)));
- esdMuonTrack.SetInverseBendingMomentumUncorrected(fParameters(4,0));
-}
-
- //_________________________________________________________________________
-void AliMUONTrackParam::GetCovFrom(const AliESDMuonTrack& esdMuonTrack)
-{
- /// Get parameters covariances from ESD track
-
- // Get ESD covariance matrix
- if (!fCovariances) fCovariances = new TMatrixD(5,5);
- esdMuonTrack.GetCovariances(*fCovariances);
-
- // compute Jacobian to change the coordinate system
- // from (X,thetaX,Y,thetaY,c/pYZ) to (X,slopeX,Y,slopeY,c/pYZ)
- Double_t cosThetaX = TMath::Cos(TMath::ATan(fParameters(1,0)));
- Double_t cosThetaY = TMath::Cos(TMath::ATan(fParameters(3,0)));
- TMatrixD jacob(5,5);
- jacob.Zero();
- jacob(0,0) = 1.;
- jacob(1,1) = 1. / cosThetaX / cosThetaX;
- jacob(2,2) = 1.;
- jacob(3,3) = 1. / cosThetaY / cosThetaY;
- jacob(4,4) = 1.;
-
- // compute covariance matrix in ESD coordinate system
- TMatrixD tmp(*fCovariances,TMatrixD::kMultTranspose,jacob);
- *fCovariances = TMatrixD(jacob,TMatrixD::kMult,tmp);
-
-}
-
- //_________________________________________________________________________
-void AliMUONTrackParam::SetCovFor(AliESDMuonTrack& esdMuonTrack) const
-{
- /// Set parameters covariances in ESD track
-
- // set null matrix if covariances does not exist
- if (!fCovariances) {
- TMatrixD tmp(5,5);
- tmp.Zero();
- esdMuonTrack.SetCovariances(tmp);
- return;