]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFtrack.cxx
updates to comply with AliTOFGeometryV5 becoming AliTOFGeometry and Calibration objects
[u/mrichter/AliRoot.git] / TOF / AliTOFtrack.cxx
index 85290531aa2015a6cab38070b07c68aa91edce6d..f515e79ac95c842c0a10440bbfdf74cd43d33ef1 100644 (file)
@@ -28,7 +28,6 @@
 #include "AliESDtrack.h" 
 #include "AliTracker.h" 
 
-#include "AliTOFGeometryV5.h"
 #include "AliTOFGeometry.h"
 #include "AliTOFtrack.h" 
 
@@ -38,8 +37,7 @@ ClassImp(AliTOFtrack)
 AliTOFtrack::AliTOFtrack() : 
   AliKalmanTrack(),
   fSeedInd(-1),
-  fSeedLab(-1),
-  fTOFgeometry(0)
+  fSeedLab(-1)
 {
   //
   // Default constructor.
@@ -50,8 +48,7 @@ AliTOFtrack::AliTOFtrack() :
 AliTOFtrack::AliTOFtrack(const AliTOFtrack& t) : 
   AliKalmanTrack(t),
   fSeedInd(t.fSeedInd),
-  fSeedLab(t.fSeedLab),
-  fTOFgeometry(new AliTOFGeometryV5()) 
+  fSeedLab(t.fSeedLab) 
 {
   //
   // Copy constructor.
@@ -62,8 +59,7 @@ AliTOFtrack::AliTOFtrack(const AliTOFtrack& t) :
 AliTOFtrack::AliTOFtrack(const AliESDtrack& t) :
   AliKalmanTrack(), 
   fSeedInd(-1),
-  fSeedLab(-1),
-  fTOFgeometry(new AliTOFGeometryV5()) 
+  fSeedLab(-1) 
 {
   //
   // Constructor from AliESDtrack
@@ -86,7 +82,6 @@ AliTOFtrack& AliTOFtrack::operator=(const AliTOFtrack &source)
 {
   // ass. op.
 
-  this->fTOFgeometry=source.fTOFgeometry;
   return *this;
 
 }
@@ -134,9 +129,9 @@ Bool_t AliTOFtrack::PropagateToInnerTOF()
   // defined by x=xk through media of density=rho and radiationLength=x0
 
 
-  Double_t ymax=fTOFgeometry->RinTOF()*TMath::Tan(0.5*AliTOFGeometry::GetAlpha());
+  Double_t ymax=AliTOFGeometry::RinTOF()*TMath::Tan(0.5*AliTOFGeometry::GetAlpha());
   Bool_t skip = kFALSE;
-  Double_t y=GetYat(fTOFgeometry->RinTOF(),skip);
+  Double_t y=GetYat(AliTOFGeometry::RinTOF(),skip);
   if (skip) {
     return kFALSE;
   }
@@ -161,12 +156,42 @@ Bool_t AliTOFtrack::PropagateToInnerTOF()
     
   }
   
-  if(!PropagateTo(fTOFgeometry->RinTOF()))return 0;
+  if(!PropagateTo(AliTOFGeometry::RinTOF()))return 0;
   
   return kTRUE;
   
 }     
 
+//_________________________________________________________________________
+Double_t AliTOFtrack::GetPredictedChi2(const AliCluster3D *c) const {
+  //
+  //
+  //
+  Double_t p[3]={c->GetX(), c->GetY(), c->GetZ()};
+  Double_t covyz[3]={c->GetSigmaY2(), c->GetSigmaYZ(), c->GetSigmaZ2()};
+  Double_t covxyz[3]={c->GetSigmaX2(), c->GetSigmaXY(), c->GetSigmaXZ()};
+  return AliExternalTrackParam::GetPredictedChi2(p, covyz, covxyz);
+}
+//_________________________________________________________________________
+Bool_t AliTOFtrack::PropagateTo(const AliCluster3D *c) {
+  //
+  //
+  //
+  Double_t oldX=GetX(), oldY=GetY(), oldZ=GetZ();
+  Double_t p[3]={c->GetX(), c->GetY(), c->GetZ()};
+  Double_t covyz[3]={c->GetSigmaY2(), c->GetSigmaYZ(), c->GetSigmaZ2()};
+  Double_t covxyz[3]={c->GetSigmaX2(), c->GetSigmaXY(), c->GetSigmaXZ()};
+  Double_t bz=GetBz();
+  if (!AliExternalTrackParam::PropagateTo(p, covyz, covxyz, bz)) return kFALSE;
+  if (IsStartedTimeIntegral()) {
+    Double_t d = TMath::Sqrt((GetX()-oldX)*(GetX()-oldX) +
+                            (GetY()-oldY)*(GetY()-oldY) +
+                            (GetZ()-oldZ)*(GetZ()-oldZ));
+    if (GetX()<oldX) d=-d;
+    AddTimeStep(d);
+  }
+  return kTRUE;
+}
 //_________________________________________________________________________
 Double_t AliTOFtrack::GetYat(Double_t xk, Bool_t & skip) const {     
 //-----------------------------------------------------------------
@@ -191,6 +216,7 @@ Int_t AliTOFtrack::Compare(const TObject *o) const {
   return 0;
 }
 
+//_____________________________________________________________________________
 Double_t AliTOFtrack::GetBz() const {
   //
   // returns Bz component of the magnetic field (kG)