#include "AliITStrackV2.h"
#include "AliTracker.h"
#include "AliLog.h"
+#include "AliPID.h"
const Int_t AliITStrackV2::fgkWARN = 5;
}
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());
}
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++) {
Int_t n=GetNumberOfClusters();
if (!Invariant()) {
- if (n>fgkWARN) AliWarning("Wrong invariant !");
+ if (n>fgkWARN) AliDebug(1,"Wrong invariant !");
return kFALSE;
}
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;
}
if (!Invariant()) {
Int_t n=GetNumberOfClusters();
- if (n>fgkWARN) AliWarning("Wrong invariant !");
+ if (n>fgkWARN) AliDebug(1,"Wrong invariant !");
return kFALSE;
}
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;
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]);
//