//
///////////////////////////////////////////////////
-#include <Riostream.h>
-#include <TMatrixD.h>
-
#include "AliMUONTrackParam.h"
+#include "AliMUONHitForRec.h"
+
#include "AliESDMuonTrack.h"
#include "AliLog.h"
-#include "AliMUONHitForRec.h"
+
+#include <Riostream.h>
+#include <TMath.h>
+#include <TMatrixD.h>
/// \cond CLASSIMP
ClassImp(AliMUONTrackParam) // Class implementation in ROOT context
AliMUONTrackParam::~AliMUONTrackParam()
{
/// Destructor
-/// Update the number of TrackHit's connected to the attached HitForRec if any
- if (fHitForRecPtr) fHitForRecPtr->SetNTrackHits(fHitForRecPtr->GetNTrackHits() - 1); // decrement NTrackHits of hit
DeleteCovariances();
}
return fHitForRecPtr;
}
- //__________________________________________________________________________
-void AliMUONTrackParam::SetHitForRecPtr(AliMUONHitForRec* hitForRec)
-{
-/// set pointeur to associated HitForRec and update the number of TrackHit's connected to it
- fHitForRecPtr = hitForRec;
- fHitForRecPtr->SetNTrackHits(fHitForRecPtr->GetNTrackHits() + 1); // increment NTrackHits of hit
-}
-
//_________________________________________________________________________
void AliMUONTrackParam::GetParamFrom(const AliESDMuonTrack& esdMuonTrack)
{
esdMuonTrack.SetNonBendingCoor(fNonBendingCoor);
}
+ //_________________________________________________________________________
+void AliMUONTrackParam::GetParamFromUncorrected(const AliESDMuonTrack& esdMuonTrack)
+{
+ /// assigned value form ESD track.
+ fInverseBendingMomentum = esdMuonTrack.GetInverseBendingMomentumUncorrected();
+ fBendingSlope = TMath::Tan(esdMuonTrack.GetThetaYUncorrected());
+ fNonBendingSlope = TMath::Tan(esdMuonTrack.GetThetaXUncorrected());
+ fZ = esdMuonTrack.GetZUncorrected();
+ fBendingCoor = esdMuonTrack.GetBendingCoorUncorrected();
+ fNonBendingCoor = esdMuonTrack.GetNonBendingCoorUncorrected();
+}
+
+ //_________________________________________________________________________
+void AliMUONTrackParam::SetParamForUncorrected(AliESDMuonTrack& esdMuonTrack)
+{
+ /// assigned value form ESD track.
+ esdMuonTrack.SetInverseBendingMomentumUncorrected(fInverseBendingMomentum);
+ esdMuonTrack.SetThetaXUncorrected(TMath::ATan(fNonBendingSlope));
+ esdMuonTrack.SetThetaYUncorrected(TMath::ATan(fBendingSlope));
+ esdMuonTrack.SetZUncorrected(fZ);
+ esdMuonTrack.SetBendingCoorUncorrected(fBendingCoor);
+ esdMuonTrack.SetNonBendingCoorUncorrected(fNonBendingCoor);
+}
+
//__________________________________________________________________________
Double_t AliMUONTrackParam::Px() const
{
- /// return px from track paramaters
+ /// return p_x from track parameters
Double_t pYZ, pZ, pX;
pYZ = 0;
if ( TMath::Abs(fInverseBendingMomentum) > 0 )
//__________________________________________________________________________
Double_t AliMUONTrackParam::Py() const
{
- /// return px from track paramaters
+ /// return p_y from track parameters
Double_t pYZ, pZ, pY;
pYZ = 0;
if ( TMath::Abs(fInverseBendingMomentum) > 0 )
//__________________________________________________________________________
Double_t AliMUONTrackParam::Pz() const
{
- /// return px from track paramaters
+ /// return p_z from track parameters
Double_t pYZ, pZ;
pYZ = 0;
if ( TMath::Abs(fInverseBendingMomentum) > 0 )
//__________________________________________________________________________
Double_t AliMUONTrackParam::P() const
{
- /// return p from track paramaters
+ /// return p from track parameters
Double_t pYZ, pZ, p;
pYZ = 0;
if ( TMath::Abs(fInverseBendingMomentum) > 0 )
/// "Compare" function to sort with decreasing Z (spectro. muon Z <0).
/// Returns 1 (0, -1) if Z of current TrackHit
/// is smaller than (equal to, larger than) Z of TrackHit
- if (fHitForRecPtr->GetZ() < ((AliMUONTrackParam*)trackParam)->fHitForRecPtr->GetZ()) return(1);
- else if (fHitForRecPtr->GetZ() == ((AliMUONTrackParam*)trackParam)->fHitForRecPtr->GetZ()) return(0);
+ if (fHitForRecPtr) {
+ if (fHitForRecPtr->GetZ() != fZ)
+ AliWarning("track parameters are given at a different z position than the one of the corresponding hit");
+ }
+ if (fZ < ((AliMUONTrackParam*)trackParam)->GetZ()) return(1);
+ else if (fZ == ((AliMUONTrackParam*)trackParam)->GetZ()) return(0);
else return(-1);
}