]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITStrackMI.cxx
A default AliITSRecoParam object is defined in AliITSReconstructor as static data...
[u/mrichter/AliRoot.git] / ITS / AliITStrackMI.cxx
index 15f1a789bf29766106a1ce94215f4099f8f16396..67f4b4e78a8767b447dd90c8975196c6a98b76b7 100644 (file)
 //     dEdx analysis by: Boris Batyunya, JINR, Boris.Batiounia@cern.ch
 //-------------------------------------------------------------------------
 
+/* $Id$ */
+
 #include <TMatrixD.h>
 
 #include <TMath.h>
 
 #include "AliCluster.h"
 #include "AliESDtrack.h"
+#include "AliITSgeomTGeo.h"
 #include "AliITStrackMI.h"
 
 ClassImp(AliITStrackMI)
@@ -46,10 +49,11 @@ fConstrain(kFALSE),
 fGoldV0(kFALSE)
 {
   //constructor
-    for(Int_t i=0; i<kMaxLayer; i++) fClIndex[i]=-1;
+    for(Int_t i=0; i<AliITSgeomTGeo::GetNLayers(); i++) fClIndex[i]=-1;
     for(Int_t i=0; i<6; i++) { fNy[i]=0; fNz[i]=0; fNormQ[i]=0; fNormChi2[i]=1000;}
     for(Int_t i=0; i<12; i++) {fDy[i]=0; fDz[i]=0; fSigmaY[i]=0; fSigmaZ[i]=0; fChi2MIP[i]=0;}
     fD[0]=0; fD[1]=0;
+    fDnorm[0]=0; fDnorm[1]=0;
 }
 
 //____________________________________________________________________________
@@ -72,15 +76,11 @@ fGoldV0(kFALSE) {
   for(Int_t i=0; i<6; i++) {fClIndex[i]=-1; fNy[i]=0; fNz[i]=0; fNormQ[i]=0; fNormChi2[i]=1000;}
   for(Int_t i=0; i<12; i++) {fDy[i]=0; fDz[i]=0; fSigmaY[i]=0; fSigmaZ[i]=0;fChi2MIP[i]=0;}
   fD[0]=0; fD[1]=0;
+  fDnorm[0]=0; fDnorm[1]=0;
   //if (!Invariant()) throw "AliITStrackV2: conversion failed !\n";
 
 }
 
-void AliITStrackMI::UpdateESDtrack(ULong_t flags) {
-  fESDtrack->UpdateTrackParams(this,flags);
-  //if (flags == AliESDtrack::kITSin) fESDtrack->SetITSChi2MIP(fChi2MIP);
-}
-
 //____________________________________________________________________________
 AliITStrackMI::AliITStrackMI(const AliITStrackMI& t) : AliITStrackV2(t),
 fNUsed(t.fNUsed),
@@ -188,33 +188,18 @@ Int_t AliITStrackMI::CorrectForMaterial(Double_t d, Double_t x0) {
 }
 
 //____________________________________________________________________________
-Bool_t AliITStrackMI::UpdateMI(Double_t cy, Double_t cz, Double_t cerry, Double_t cerrz, Double_t chi2, Int_t index) {
+Bool_t AliITStrackMI::UpdateMI(const AliCluster *c, Double_t chi2, Int_t index) {
   //------------------------------------------------------------------
   //This function updates track parameters
   //------------------------------------------------------------------
-  Double_t dy=cy - GetY(), dz=cz - GetZ();
+  Double_t dy=c->GetY() - GetY(), dz=c->GetZ() - GetZ();
   Int_t layer = (index & 0xf0000000) >> 28;
   fDy[layer] = dy;
   fDz[layer] = dz;
-  fSigmaY[layer] = TMath::Sqrt(cerry*cerry+GetSigmaY2());
-  fSigmaZ[layer] = TMath::Sqrt(cerrz*cerrz+GetSigmaZ2());
-
-  Double_t p[2]={cy, cz};
-  Double_t cov[3]={cerry*cerry, 0., cerrz*cerrz};
-  if (!AliExternalTrackParam::Update(p,cov)) return kFALSE;
-
-  if (!Invariant()) {
-     AliWarning("Wrong invariant !");
-     return kFALSE;
-  }
-
-  if (chi2<0) return 1;
-  Int_t n=GetNumberOfClusters();
-  fIndex[n]=index;
-  SetNumberOfClusters(n+1);
-  SetChi2(GetChi2()+chi2);
+  fSigmaY[layer] = TMath::Sqrt(c->GetSigmaY2()+GetSigmaY2());
+  fSigmaZ[layer] = TMath::Sqrt(c->GetSigmaZ2()+GetSigmaZ2());
 
-  return kTRUE;
+  return Update(c,chi2,index);
 }
 
 Int_t AliITStrackMI::GetProlongationFast(Double_t alp, Double_t xk,Double_t &y, Double_t &z)