]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONTrackParam.cxx
Changing Digit by VDigit (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONTrackParam.cxx
index cf86ff5939f22f50fd94834c565c01085d3b68ce..b11809ed58b3d02035b5d629d03f2f339663d4da 100644 (file)
 //
 ///////////////////////////////////////////////////
 
-#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
@@ -100,8 +102,6 @@ AliMUONTrackParam& AliMUONTrackParam::operator=(const AliMUONTrackParam& theMUON
 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();
 }
 
@@ -126,14 +126,6 @@ AliMUONHitForRec* AliMUONTrackParam::GetHitForRecPtr(void) const
   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)
 {
@@ -158,10 +150,34 @@ void AliMUONTrackParam::SetParamFor(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 )
@@ -174,7 +190,7 @@ Double_t AliMUONTrackParam::Px() const
   //__________________________________________________________________________
 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 )
@@ -187,7 +203,7 @@ Double_t AliMUONTrackParam::Py() const
   //__________________________________________________________________________
 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 )
@@ -199,7 +215,7 @@ Double_t AliMUONTrackParam::Pz() const
   //__________________________________________________________________________
 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 )
@@ -297,8 +313,12 @@ Int_t AliMUONTrackParam::Compare(const TObject* trackParam) const
   /// "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);
 }