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()
{
//-------------------------------------------------------------------------
#include <TObject.h>
+#include <TVector3.h>
class AliCluster;
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;}