X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITStrackMI.cxx;h=df83813c5f6a691a7cca169d77b68573beacac3b;hb=cbfdb0cc0d8297c961f7e9b1c040dc084c752396;hp=7a0161d085cbc6f5736d866604b8f81df00aa62c;hpb=2ab7b59cfedfabb7dce558225acda7f69c7770c0;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITStrackMI.cxx b/ITS/AliITStrackMI.cxx index 7a0161d085c..df83813c5f6 100644 --- a/ITS/AliITStrackMI.cxx +++ b/ITS/AliITStrackMI.cxx @@ -39,8 +39,7 @@ const Int_t kWARN=5; AliITStrackMI::AliITStrackMI():AliITStrackV2(), fNUsed(0), fNSkipped(0), -fNDeadZone(0), -fDeadZoneProbability(0), +fNDeadZone(0), fReconstructed(kFALSE), fExpQ(40), fChi22(0), @@ -50,8 +49,8 @@ fGoldV0(kFALSE) { //constructor for(Int_t i=0; i ITS track. // If c==kTRUE, create the ITS track out of the constrained params. //------------------------------------------------------------------ - 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;} + for(Int_t i=0; i<6; i++) {fClIndex[i]=-1; fNy[i]=0; fNz[i]=0; fNormQ[i]=0; fNormChi2[i]=1000; fDeadZoneProbability[i]=0;} + for(Int_t i=0; i<12; i++) {fDy[i]=0; fDz[i]=0; fSigmaY[i]=0; fSigmaZ[i]=0; fSigmaYZ[i]=0; fChi2MIP[i]=0;} fD[0]=0; fD[1]=0; fDnorm[0]=0; fDnorm[1]=0; //if (!Invariant()) throw "AliITStrackV2: conversion failed !\n"; @@ -86,7 +84,6 @@ AliITStrackMI::AliITStrackMI(const AliITStrackMI& t) : AliITStrackV2(t), fNUsed(t.fNUsed), fNSkipped(t.fNSkipped), fNDeadZone(t.fNDeadZone), -fDeadZoneProbability(t.fDeadZoneProbability), fReconstructed(t.fReconstructed), fExpQ(t.fExpQ), fChi22(t.fChi22), @@ -102,10 +99,10 @@ fGoldV0(t.fGoldV0) { fD[0]=t.fD[0]; fD[1]=t.fD[1]; fDnorm[0] = t.fDnorm[0]; fDnorm[1]=t.fDnorm[1]; for(Int_t i=0; i<6; i++) { - fClIndex[i]= t.fClIndex[i]; fNy[i]=t.fNy[i]; fNz[i]=t.fNz[i]; fNormQ[i]=t.fNormQ[i]; fNormChi2[i] = t.fNormChi2[i]; + fClIndex[i]= t.fClIndex[i]; fNy[i]=t.fNy[i]; fNz[i]=t.fNz[i]; fNormQ[i]=t.fNormQ[i]; fNormChi2[i] = t.fNormChi2[i]; fDeadZoneProbability[i]=t.fDeadZoneProbability[i]; } for(Int_t i=0; i<12; i++) {fDy[i]=t.fDy[i]; fDz[i]=t.fDz[i]; - fSigmaY[i]=t.fSigmaY[i]; fSigmaZ[i]=t.fSigmaZ[i];fChi2MIP[i]=t.fChi2MIP[i];} + fSigmaY[i]=t.fSigmaY[i]; fSigmaZ[i]=t.fSigmaZ[i]; fSigmaYZ[i]=t.fSigmaYZ[i]; fChi2MIP[i]=t.fChi2MIP[i];} //memcpy(fDy,t.fDy,6*sizeof(Float_t)); //memcpy(fDz,t.fDz,6*sizeof(Float_t)); //memcpy(fSigmaY,t.fSigmaY,6*sizeof(Float_t)); @@ -129,13 +126,13 @@ Int_t AliITStrackMI::Compare(const TObject *o) const { } -Double_t AliITStrackMI::GetPredictedChi2MI(Double_t cy, Double_t cz, Double_t cerry, Double_t cerrz) const +Double_t AliITStrackMI::GetPredictedChi2MI(Double_t cy, Double_t cz, Double_t cerry, Double_t cerrz, Double_t covyz) const { //----------------------------------------------------------------- // This function calculates a predicted chi2 increment. //----------------------------------------------------------------- Double_t p[2]={cy, cz}; - Double_t cov[3]={cerry*cerry, 0., cerrz*cerrz}; + Double_t cov[3]={cerry*cerry, covyz, cerrz*cerrz}; return AliExternalTrackParam::GetPredictedChi2(p,cov); } @@ -150,6 +147,8 @@ Bool_t AliITStrackMI::UpdateMI(const AliCluster *c, Double_t chi2, Int_t index) fDz[layer] = dz; fSigmaY[layer] = TMath::Sqrt(c->GetSigmaY2()+GetSigmaY2()); fSigmaZ[layer] = TMath::Sqrt(c->GetSigmaZ2()+GetSigmaZ2()); + fSigmaYZ[layer] = c->GetSigmaYZ()+GetSigmaZY(); + return Update(c,chi2,index); } @@ -160,7 +159,7 @@ Int_t AliITStrackMI::GetProlongationFast(Double_t alp, Double_t xk,Double_t &y, //get fast prolongation //----------------------------------------------------------------------------- Double_t ca=TMath::Cos(alp-GetAlpha()), sa=TMath::Sin(alp-GetAlpha()); - Double_t cf=TMath::Sqrt(1.- GetSnp()*GetSnp()); + Double_t cf=TMath::Sqrt((1.-GetSnp())*(1.+GetSnp())); // **** rotation ********************** y= -GetX()*sa + GetY()*ca; // **** translation ****************** @@ -169,7 +168,7 @@ Int_t AliITStrackMI::GetProlongationFast(Double_t alp, Double_t xk,Double_t &y, if (TMath::Abs(f2) >= 0.9999) { return 0; } - Double_t r1=TMath::Sqrt(1.- f1*f1), r2=TMath::Sqrt(1.- f2*f2); + Double_t r1=TMath::Sqrt((1.-f1)*(1.+f1)), r2=TMath::Sqrt((1.-f2)*(1.+f2)); y += dx*(f1+f2)/(r1+r2); z = GetZ()+dx*(f1+f2)/(f1*r2 + f2*r1)*GetTgl(); return 1;