Additional functions, corrections to match the base class (T.Kuhr)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 19 Mar 2003 17:09:25 +0000 (17:09 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 19 Mar 2003 17:09:25 +0000 (17:09 +0000)
STEER/AliKalmanTrack.cxx
STEER/AliKalmanTrack.h
TPC/AliTPCtrack.h
TRD/AliTRDtrack.h

index 4e64e082d01ea400590f8aa9191cceee457a914d..2b7e739d3d18f3a6aa27f205a44afbd6990a9c87 100644 (file)
@@ -69,6 +69,186 @@ AliKalmanTrack::AliKalmanTrack(const AliKalmanTrack &t):
   for (Int_t i=0; i<5; i++) 
     fIntegratedTime[i] = t.fIntegratedTime[i];
 }
+
+//_______________________________________________________________________
+Double_t AliKalmanTrack::GetX() const
+{
+  Warning("GetX()","Method must be overloaded !\n");
+  return 0.;
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::GetdEdx() const
+{
+  Warning("GetdEdx()","Method must be overloaded !\n");
+  return 0.;
+}
+
+//_______________________________________________________________________
+Double_t AliKalmanTrack::GetY() const
+{
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  return par[0];
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::GetZ() const
+{
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  return par[1];
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::GetSnp() const
+{
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  return par[2];
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::GetTgl() const
+{
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  return par[3];
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::Get1Pt() const
+{
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  return par[4];
+}
+
+//_______________________________________________________________________
+Double_t AliKalmanTrack::Phi() const
+{
+// return global phi of track
+
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  Double_t phi = TMath::ASin(par[2]) + GetAlpha();
+  while (phi < 0) phi += TMath::TwoPi();
+  while (phi > TMath::TwoPi()) phi -= TMath::TwoPi();
+  return phi;
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::SigmaPhi() const
+{
+// return error of global phi of track
+
+  Double_t par[5];
+  Double_t cov[15];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  GetExternalCovariance(cov);
+  return TMath::Sqrt(TMath::Abs(cov[5] / (1. - par[2]*par[2])));
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::Theta() const
+{
+// return global theta of track
+
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  return TMath::Pi()/2. - TMath::ATan(par[3]);
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::SigmaTheta() const
+{
+// return error of global theta of track
+
+  Double_t par[5];
+  Double_t cov[15];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  GetExternalCovariance(cov);
+  return TMath::Sqrt(TMath::Abs(cov[5])) / (1. + par[3]*par[3]);
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::Px() const
+{
+// return x component of track momentum
+
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  Double_t phi = TMath::ASin(par[2]) + GetAlpha();
+  return TMath::Cos(phi) / TMath::Abs(par[4]);
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::Py() const
+{
+// return y component of track momentum
+
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  Double_t phi = TMath::ASin(par[2]) + GetAlpha();
+  return TMath::Sin(phi) / TMath::Abs(par[4]);
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::Pz() const
+{
+// return z component of track momentum
+
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  return par[3] / TMath::Abs(par[4]);
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::Pt() const
+{
+// return transverse component of track momentum
+
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  return 1. / TMath::Abs(par[4]);
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::SigmaPt() const
+{
+// return error of transverse component of track momentum
+
+  Double_t par[5];
+  Double_t cov[15];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  GetExternalCovariance(cov);
+  return TMath::Sqrt(cov[14]) / TMath::Abs(par[4]);
+}
+//_______________________________________________________________________
+Double_t AliKalmanTrack::P() const
+{
+// return total track momentum
+
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  return 1. / TMath::Abs(par[4] * TMath::Sin(TMath::ATan(par[3])));
+}
+//_______________________________________________________________________
+TVector3 AliKalmanTrack::Momentum() const
+{
+// return track momentum vector
+
+  Double_t par[5];
+  Double_t localX = GetX();
+  GetExternalParameters(localX, par);
+  Double_t phi = TMath::ASin(par[2]) + GetAlpha();
+  return TVector3(TMath::Cos(phi) / TMath::Abs(par[4]),
+                 TMath::Sin(phi) / TMath::Abs(par[4]),
+                 par[3] / TMath::Abs(par[4]));
+}
+
 //_______________________________________________________________________
 void AliKalmanTrack::StartTimeIntegral() 
 {
index 27ff9bb2631bd85fc1c787a8b4312b3cbc84c469..87a33ade49d3489e2bed26a15c890bb5e96845a7 100644 (file)
@@ -13,6 +13,7 @@
 //-------------------------------------------------------------------------
 
 #include <TObject.h>
+#include <TVector3.h>
 
 class AliCluster;
 
@@ -55,6 +56,27 @@ public:
   virtual void GetExternalParameters(Double_t &/*xr*/, Double_t /*x*/[5]) const {}
   virtual void GetExternalCovariance(Double_t /*cov*/[15]) const {}
 
+  virtual Double_t GetX() const;
+  virtual Double_t GetdEdx() const;
+
+  virtual Double_t GetY() const;
+  virtual Double_t GetZ() const;
+  virtual Double_t GetSnp() const;
+  virtual Double_t GetTgl() const;
+  virtual Double_t Get1Pt() const;
+
+  virtual Double_t Phi() const;
+  virtual Double_t SigmaPhi() const;
+  virtual Double_t Theta() const;
+  virtual Double_t SigmaTheta() const;
+  virtual Double_t Px() const;
+  virtual Double_t Py() const;
+  virtual Double_t Pz() const;
+  virtual Double_t Pt() const;
+  virtual Double_t SigmaPt() const;
+  virtual Double_t P() const;
+  virtual TVector3 Momentum() const;
+
   virtual Double_t GetPredictedChi2(const AliCluster *) const {return 0.;}
   virtual 
     Int_t PropagateTo(Double_t /*xr*/, Double_t /*x0*/, Double_t /*rho*/) {return 0;}
index d221bf9c90794b4bd94157977134cb873ffcc393..3d0cfbc5e8c4b4f23cd8d9bc6975d69df23b8684 100644 (file)
@@ -66,7 +66,7 @@ public:
   Double_t Px() const {return TMath::Cos(Phi())/TMath::Abs(Get1Pt());}
   Double_t Py() const {return TMath::Sin(Phi())/TMath::Abs(Get1Pt());}
   Double_t Pz() const {return GetTgl()/TMath::Abs(Get1Pt());}
-  Double_t Pt() const {return 1./Get1Pt();}
+  Double_t Pt() const {return 1./TMath::Abs(Get1Pt());}
   Double_t P() const {return TMath::Sqrt(Pt()*Pt()+Pz()*Pz());}
 
   Int_t Compare(const TObject *o) const;
index 3c95023cc641a05d978e09e80654582dc54f1f64..31eeafe3cb36e137e2bdef582469dbbed2d6ede0 100644 (file)
@@ -33,7 +33,7 @@ public:
    Float_t  GetClusterdQdl(Int_t i) const {return fdQdl[i];}    
 
    void     GetCovariance(Double_t cov[15]) const;  
-   Float_t  GetdEdx()  const {return fdEdx;}
+   Double_t GetdEdx()  const {return fdEdx;}
    Double_t GetEta()   const {return fE;}
 
    void     GetExternalCovariance(Double_t cov[15]) const ;