]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODTrack.cxx
Fix momentum implementation.
[u/mrichter/AliRoot.git] / STEER / AliAODTrack.cxx
index cb791c8e4cb653b660cb2d482a524457099d204d..ce0c44a447b3a74f8077d71c77166f0a1867f531 100644 (file)
@@ -108,7 +108,6 @@ AliAODTrack::AliAODTrack(Int_t id,
   SetUsedForPrimVtxFit(usedForPrimVtxFit);
   if(covMatrix) SetCovMatrix(covMatrix);
   SetPID(pid);
-
 }
 
 //______________________________________________________________________________
@@ -179,14 +178,14 @@ template <class T> void AliAODTrack::SetP(const T *p, const Bool_t cartesian)
 
   if (p) {
     if (cartesian) {
-      Double_t pt = TMath::Sqrt(p[0]*p[0] + p[1]*p[1]);
-      Double_t P = TMath::Sqrt(pt*pt + p[2]*p[2]);
+      Double_t pt2 = p[0]*p[0] + p[1]*p[1];
+      Double_t P = TMath::Sqrt(pt2 + p[2]*p[2]);
       
-      fMomentum[0] = 1./pt;
-      fMomentum[1] = TMath::ACos(p[2]/P);
-      fMomentum[2] = TMath::ATan2(p[1], p[0]);
+      fMomentum[0] = TMath::Sqrt(pt2); // pt
+      fMomentum[1] = (pt2 != 0.) ? TMath::ATan2(p[1], p[0]) : -999; // phi
+      fMomentum[2] = (P != 0.) ? TMath::ACos(p[2]/P) : -999.; // theta
     } else {
-      fMomentum[0] = p[0];  // 1/pt
+      fMomentum[0] = p[0];  // pt
       fMomentum[1] = p[1];  // phi
       fMomentum[2] = p[2];  // theta
     }