]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITStrackV2.cxx
AD QA for raw data
[u/mrichter/AliRoot.git] / ITS / AliITStrackV2.cxx
index bec150f669fda91837d832de19c3129de820ec06..ee4380d3bd94486d5d10187873d1dc3cfcdac9ce 100644 (file)
@@ -29,6 +29,7 @@
 #include "AliITStrackV2.h"
 #include "AliTracker.h"
 #include "AliLog.h"
+#include "AliPID.h"
 
 const Int_t AliITStrackV2::fgkWARN = 5;
 
@@ -65,13 +66,15 @@ AliITStrackV2::AliITStrackV2(AliESDtrack& t,Bool_t c):
   }
   Set(par->GetX(),par->GetAlpha(),par->GetParameter(),par->GetCovariance());
 
-  SetLabel(t.GetLabel());
-  SetMass(t.GetMass());
+  SetLabel(t.GetITSLabel());
+  SetMass(t.GetMassForTracking());
   SetNumberOfClusters(t.GetITSclusters(fIndex));
 
   if (t.GetStatus()&AliESDtrack::kTIME) {
     StartTimeIntegral();
-    Double_t times[10]; t.GetIntegratedTimes(times); SetIntegratedTimes(times);
+    Double_t times[AliPID::kSPECIESC]; 
+    t.GetIntegratedTimes(times,AliPID::kSPECIESC); 
+    SetIntegratedTimes(times);
     SetIntegratedLength(t.GetIntegratedLength());
   }
 
@@ -94,6 +97,19 @@ void AliITStrackV2::ResetClusters() {
 void AliITStrackV2::UpdateESDtrack(ULong_t flags) const {
   // Update track params
   fESDtrack->UpdateTrackParams(this,flags);
+  //
+  // set correctly the global label
+  if (fESDtrack->IsOn(AliESDtrack::kTPCin)) { 
+    // for global track the GetLabel should be negative if
+    // 1) GetTPCLabel<0
+    // 2) this->GetLabel()<0
+    // 3) GetTPCLabel() != this->GetLabel()
+    int label = fESDtrack->GetTPCLabel();
+    int itsLabel = GetLabel();
+    if (label<0 || itsLabel<0 || itsLabel!=label) label = -TMath::Abs(label);
+    fESDtrack->SetLabel(label);
+  }
+  //
   // copy the module indices
   Int_t i;
   for(i=0;i<2*AliITSgeomTGeo::kNLayers;i++) {
@@ -273,7 +289,7 @@ Bool_t AliITStrackV2::Update(const AliCluster* c, Double_t chi2, Int_t index)
 
   Int_t n=GetNumberOfClusters();
   if (!Invariant()) {
-     if (n>fgkWARN) AliWarning("Wrong invariant !");
+    if (n>fgkWARN) AliDebug(1,"Wrong invariant !");
      return kFALSE;
   }
 
@@ -320,32 +336,32 @@ Bool_t AliITStrackV2::Invariant() const {
 
   Double_t sP2=GetParameter()[2];
   if (TMath::Abs(sP2) >= kAlmost1){
-     if (n>fgkWARN) Warning("Invariant","fP2=%f\n",sP2);
+    if (n>fgkWARN) AliDebug(1,Form("fP2=%f\n",sP2));
      return kFALSE;
   }
   Double_t sC00=GetCovariance()[0];
   if (sC00<=0 || sC00>(9.+maxMisalErrY2)) {
-     if (n>fgkWARN) Warning("Invariant","fC00=%f\n",sC00); 
+    if (n>fgkWARN) AliDebug(1,Form("fC00=%f\n",sC00)); 
      return kFALSE;
   }
   Double_t sC11=GetCovariance()[2];
   if (sC11<=0 || sC11>(9.+maxMisalErrZ2)) {
-     if (n>fgkWARN) Warning("Invariant","fC11=%f\n",sC11); 
+    if (n>fgkWARN) AliDebug(1,Form("fC11=%f\n",sC11)); 
      return kFALSE;
   }
   Double_t sC22=GetCovariance()[5];
   if (sC22<=0 || sC22>1.) {
-     if (n>fgkWARN) Warning("Invariant","fC22=%f\n",sC22); 
+    if (n>fgkWARN) AliDebug(1,Form("fC22=%f\n",sC22)); 
      return kFALSE;
   }
   Double_t sC33=GetCovariance()[9];
   if (sC33<=0 || sC33>1.) {
-     if (n>fgkWARN) Warning("Invariant","fC33=%f\n",sC33); 
+    if (n>fgkWARN) AliDebug(1,Form("fC33=%f\n",sC33)); 
      return kFALSE;
   }
   Double_t sC44=GetCovariance()[14];
   if (sC44<=0 /*|| sC44>6e-5*/) {
-     if (n>fgkWARN) Warning("Invariant","fC44=%f\n",sC44);
+    if (n>fgkWARN) AliDebug(1,Form("fC44=%f\n",sC44));
      return kFALSE;
   }
 
@@ -364,7 +380,7 @@ Bool_t AliITStrackV2::Propagate(Double_t alp,Double_t xk) {
 
   if (!Invariant()) {
     Int_t n=GetNumberOfClusters();
-    if (n>fgkWARN) AliWarning("Wrong invariant !");
+    if (n>fgkWARN) AliDebug(1,"Wrong invariant !");
     return kFALSE;
   }
 
@@ -443,6 +459,7 @@ Bool_t AliITStrackV2::Improve(Double_t x0,Double_t xyz[3],Double_t ers[3]) {
   Double_t dx = x - xv, dy = par[0] - yv, dz = par[1] - zv;
   Double_t r2=dx*dx + dy*dy;
   Double_t p2=(1.+ GetTgl()*GetTgl())/(GetSigned1Pt()*GetSigned1Pt());
+  if (GetMass()<0) p2 *= 4; // q=2
   Double_t beta2=p2/(p2 + GetMass()*GetMass());
   x0*=TMath::Sqrt((1.+ GetTgl()*GetTgl())/(1.- GetSnp()*GetSnp()));
   Double_t theta2=14.1*14.1/(beta2*p2*1e6)*x0;
@@ -677,6 +694,7 @@ Bool_t AliITStrackV2::ImproveKalman(Double_t xyz[3],Double_t ers[3], const Doubl
   double ms44t = p34*p34;
   //
   double p2=(1.+ par[3]*par[3])/(par[4]*par[4]);
+  if (GetMass()<0) p2 *= 4; // q=2
   double beta2 = p2/(p2+GetMass()*GetMass());
   double theta2t = 14.1*14.1/(beta2*p2*1e6) * (1. + par[3]*par[3]);
   //