]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/STEERBase/AliExternalTrackParam.cxx
1. Update to AliESDtrack
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliExternalTrackParam.cxx
index 77c6d3d3003714579d3de96480813d23d3fb9ea2..d1f41f7daf71ae676717cddd52071b7414d63589 100644 (file)
@@ -2248,3 +2248,30 @@ void AliExternalTrackParam::CheckCovariance() {
 //       eig.Print();
 //     }
 }
+
+Bool_t AliExternalTrackParam::ConstrainToVertex(const AliVVertex* vtx, Double_t b[3])
+{
+  // Constrain TPC inner params constrained
+  //
+  if (!vtx) 
+    return kFALSE;
+
+  Double_t dz[2], cov[3];
+  if (!PropagateToDCABxByBz(vtx, b, 3, dz, cov)) 
+    return kFALSE; 
+
+  Double_t covar[6]; 
+  vtx->GetCovarianceMatrix(covar);
+  
+  Double_t p[2]= { fP[0] - dz[0], fP[1] - dz[1] };
+  Double_t c[3]= { covar[2], 0., covar[5] };
+  
+  Double_t chi2C = GetPredictedChi2(p,c);
+  if (chi2C>kVeryBig) 
+    return kFALSE; 
+
+  if (!Update(p,c)) 
+    return kFALSE; 
+
+  return kTRUE;
+}