Float_t lam=TMath::ATan(par[3]);
Float_t pt1=TMath::Abs(par[4]);
Float_t mom=1./(pt1*TMath::Cos(lam));
- Float_t dedx=track->GetdEdx();
+ Float_t dedx=track->GetPIDsignal();
Int_t pcode=GetPcode(dedx/40.,mom);
// cout<<"TPCtrack dedx,mom,pcode="<<dedx<<","<<mom<<","<<pcode<<endl;
return pcode?pcode:211;
fIntegratedTime[i] = t.fIntegratedTime[i];
}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::GetX() const
-{
- // Returns the X coordinate of the current track position
- AliWarning("Method must be overloaded !");
- return 0.;
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::GetdEdx() const
-{
- // Returns the dE/dx of the track
- AliWarning("Method must be overloaded !");
- return 0.;
-}
-
-//_______________________________________________________________________
-Double_t AliKalmanTrack::GetY() const
-{
- // Returns the Y coordinate of the current track position
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- return par[0];
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::GetZ() const
-{
- // Returns the Z coordinate of the current track position
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- return par[1];
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::GetSnp() const
-{
- // Returns the Sin(phi), where phi is the angle between the transverse
- // momentum (in xOy plane) and the X axis
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- return par[2];
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::GetTgl() const
-{
- // Returns the Tan(lambda), where lambda is the dip angle (between
- // the bending plane (xOy) and the momentum of the track
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- return par[3];
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::Get1Pt() const
-{
- // Returns 1/pT
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- return par[4];
-}
-
-//_______________________________________________________________________
-Double_t AliKalmanTrack::Phi() const
-{
-// return global phi of track
-
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- if (par[2] > 1.) par[2] = 1.;
- if (par[2] < -1.) par[2] = -1.;
- Double_t phi = TMath::ASin(par[2]) + GetAlpha();
- while (phi < 0) phi += TMath::TwoPi();
- while (phi > TMath::TwoPi()) phi -= TMath::TwoPi();
- return phi;
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::SigmaPhi() const
-{
-// return error of global phi of track
-
- Double_t par[5];
- Double_t cov[15];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- GetExternalCovariance(cov);
- return TMath::Sqrt(TMath::Abs(cov[5] / (1. - par[2]*par[2])));
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::Theta() const
-{
-// return global theta of track
-
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- return TMath::Pi()/2. - TMath::ATan(par[3]);
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::SigmaTheta() const
-{
-// return error of global theta of track
-
- Double_t par[5];
- Double_t cov[15];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- GetExternalCovariance(cov);
- return TMath::Sqrt(TMath::Abs(cov[5])) / (1. + par[3]*par[3]);
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::Eta() const
-{
-// return global eta of track
-
- return -TMath::Log(TMath::Tan(Theta()/2.));
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::Px() const
-{
-// return x component of track momentum
-
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- Double_t phi = TMath::ASin(par[2]) + GetAlpha();
- return TMath::Cos(phi) / TMath::Abs(par[4]);
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::Py() const
-{
-// return y component of track momentum
-
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- Double_t phi = TMath::ASin(par[2]) + GetAlpha();
- return TMath::Sin(phi) / TMath::Abs(par[4]);
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::Pz() const
-{
-// return z component of track momentum
-
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- return par[3] / TMath::Abs(par[4]);
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::Pt() const
-{
-// return transverse component of track momentum
-
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- return 1. / TMath::Abs(par[4]);
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::SigmaPt() const
-{
-// return error of transverse component of track momentum
-
- Double_t par[5];
- Double_t cov[15];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- GetExternalCovariance(cov);
- return TMath::Sqrt(cov[14]) / TMath::Abs(par[4]);
-}
-//_______________________________________________________________________
-Double_t AliKalmanTrack::P() const
-{
-// return total track momentum
-
- Double_t par[5];
- Double_t localX = GetX();
- GetExternalParameters(localX, par);
- return 1. / TMath::Abs(par[4] * TMath::Cos(TMath::ATan(par[3])));
-}
//_______________________________________________________________________
void AliKalmanTrack::StartTimeIntegral()
{
virtual void GetExternalParameters(Double_t &/*xr*/, Double_t /*x*/[5]) const {}
virtual void GetExternalCovariance(Double_t /*cov*/[15]) const {}
- virtual Double_t GetX() const;
- virtual Double_t GetdEdx() const;
-
- virtual Double_t GetY() const;
- virtual Double_t GetZ() const;
- virtual Double_t GetSnp() const;
- virtual Double_t GetTgl() const;
- virtual Double_t Get1Pt() const;
-
- virtual Double_t Phi() const;
- virtual Double_t SigmaPhi() const;
- virtual Double_t Theta() const;
- virtual Double_t SigmaTheta() const;
- virtual Double_t Eta() const;
- virtual Double_t Px() const;
- virtual Double_t Py() const;
- virtual Double_t Pz() const;
- virtual Double_t Pt() const;
- virtual Double_t SigmaPt() const;
- virtual Double_t P() const;
-
virtual Double_t GetPredictedChi2(const AliCluster *) const {return 0.;}
virtual Int_t
PropagateTo(Double_t /*xr*/, Double_t /*x0*/, Double_t /*rho*/) {return 0;}
cout<<"TPCtrack dedx,mom,pcode="<<dedx<<","<<mom<<","<<pcode<<endl;
return pcode?pcode:211;
}
+
//-----------------------------------------------------------
Int_t AliTPCPid::GetPcode(AliKalmanTrack *track)
{
Float_t pt1=TMath::Abs(par[4]);
Float_t mom=0.;
if( (pt1*TMath::Cos(lam))!=0. ){ mom=1./(pt1*TMath::Cos(lam)); }else{mom=0.;};
- Float_t dedx=track->GetdEdx();
+ Float_t dedx=track->GetPIDsignal();
cout<<"lam,pt1,mom,dedx="<<lam<<","<<pt1<<","<<mom<<","<<dedx<<endl;
Int_t pcode=GetPcode(dedx,mom);
cout<<"ITS V2 dedx,mom,pcode="<<dedx<<","<<mom<<","<<pcode<<endl;
return pcode?pcode:211;
}
+
//-----------------------------------------------------------
Int_t AliTPCPid::GetPcode(Float_t q,Float_t pm)
{
for (Int_t i=0; i<3;i++) fKinkIndexes[i]=0;
}
-//_____________________________________________________________________________
-AliTPCtrack::AliTPCtrack(const AliKalmanTrack& t,Double_t alpha) :
-AliKalmanTrack(t) {
- //-----------------------------------------------------------------
- // Conversion AliKalmanTrack -> AliTPCtrack.
- //-----------------------------------------------------------------
- SetChi2(0.);
- SetNumberOfClusters(0);
-
- fdEdx = 0.;
- fAlpha = alpha;
- if (fAlpha < -TMath::Pi()) fAlpha += 2*TMath::Pi();
- else if (fAlpha >= TMath::Pi()) fAlpha -= 2*TMath::Pi();
-
- //Conversion of the track parameters
- Double_t x,p[5]; t.GetExternalParameters(x,p);
- fX=x; x=GetConvConst();
- fP0=p[0];
- fP1=p[1];
- fP3=p[3];
- fP4=p[4]/x;
- fP2=fP4*fX - p[2];
-
- //Conversion of the covariance matrix
- Double_t c[15]; t.GetExternalCovariance(c);
- c[10]/=x; c[11]/=x; c[12]/=x; c[13]/=x; c[14]/=x*x;
-
- Double_t c22=fX*fX*c[14] - 2*fX*c[12] + c[5];
- Double_t c32=fX*c[13] - c[8];
- Double_t c20=fX*c[10] - c[3], c21=fX*c[11] - c[4], c42=fX*c[14] - c[12];
-
- fC00=c[0 ];
- fC10=c[1 ]; fC11=c[2 ];
- fC20=c20; fC21=c21; fC22=c22;
- fC30=c[6 ]; fC31=c[7 ]; fC32=c32; fC33=c[9 ];
- fC40=c[10]; fC41=c[11]; fC42=c42; fC43=c[13]; fC44=c[14];
- //
- //MI
- fSdEdx = 0;
- fNFoundable = 0;
- fBConstrain = 0;
- fLastPoint = 0;
- fFirstPoint = 0;
- fRemoval = 0;
- fTrackType = 0;
- fLab2 = 0;
- for (Int_t i=0; i<3;i++) fKinkIndexes[i]=0;
-}
-
//_____________________________________________________________________________
AliTPCtrack::AliTPCtrack(const AliESDtrack& t) : AliKalmanTrack() {
//-----------------------------------------------------------------
AliTPCtrack();
AliTPCtrack(UInt_t index, const Double_t xx[5],
const Double_t cc[15], Double_t xr, Double_t alpha);
- AliTPCtrack(const AliKalmanTrack& t, Double_t alpha);
AliTPCtrack(const AliESDtrack& t);
AliTPCtrack(const AliTPCtrack& t);
virtual ~AliTPCtrack() {}
Int_t n=(Int_t)seedTree->GetEntries();
for (Int_t i=0; i<n; i++) {
seedTree->GetEvent(i);
- fSeeds->AddLast(new AliTPCseed(*seed,seed->GetAlpha()));
+ fSeeds->AddLast(new AliTPCseed(*seed));
}
delete seed;
if ( (status & AliESDtrack::kTRDrefit ) == 0 ) continue;
AliTPCtrack* tpcTrack = new AliTPCtrack(*track);
- AliTPCseed* seed = new AliTPCseed(*tpcTrack, tpcTrack->GetAlpha());
+ AliTPCseed* seed = new AliTPCseed(*tpcTrack);
if ( (status & AliESDtrack::kTRDrefit) == 0 ) seed->ResetCovariance();
if ( (status & AliESDtrack::kITSout) == 0 ) continue;
const AliTPCtrack t(*esd);
- AliTPCseed s(t,t.GetAlpha());
+ AliTPCseed s(t);
if ( (status & AliESDtrack::kITSout) == 0 ) s.ResetCovariance();
public:
AliTPCseed():AliTPCtrack(){}
AliTPCseed(const AliTPCtrack &t):AliTPCtrack(t){}
- AliTPCseed(const AliKalmanTrack &t, Double_t a):AliTPCtrack(t,a){}
AliTPCseed(UInt_t index, const Double_t xx[5],
const Double_t cc[15], Double_t xr, Double_t alpha):
AliTPCtrack(index, xx, cc, xr, alpha) {}
ULong_t status=esd->GetStatus();
if (!(status&AliESDtrack::kTPCin)) continue;
AliTPCtrack t(*esd);
- AliTPCseed *seed = new AliTPCseed(t,t.GetAlpha());
+ AliTPCseed *seed = new AliTPCseed(t/*,t.GetAlpha()*/);
for (Int_t ikink=0;ikink<3;ikink++) seed->GetKinkIndexes()[ikink] = esd->GetKinkIndex(ikink);
if ((status==AliESDtrack::kTPCin)&&(direction==1)) seed->ResetCovariance();
if ( direction ==2 &&(status & AliESDtrack::kTRDrefit) == 0 ) seed->ResetCovariance();
Int_t n=(Int_t)seedTree->GetEntries();
for (Int_t i=0; i<n; i++) {
seedTree->GetEvent(i);
- fSeeds->AddLast(new AliTPCseed(*seed,seed->GetAlpha()));
+ fSeeds->AddLast(new AliTPCseed(*seed/*,seed->GetAlpha()*/));
}
delete seed;
fCurrentSigmaY2=0;
fCurrentSigmaZ2=0;
}
-
+/*
AliTPCseed::AliTPCseed(const AliKalmanTrack &t, Double_t a):AliTPCtrack(t,a){
//
//copy constructor
fCurrentSigmaZ2=0;
}
-
+*/
AliTPCseed::AliTPCseed(UInt_t index, const Double_t xx[5], const Double_t cc[15],
Double_t xr, Double_t alpha):
virtual ~AliTPCseed();
AliTPCseed(const AliTPCtrack &t);
AliTPCseed(const AliTPCseed &s);
- AliTPCseed(const AliKalmanTrack &t, Double_t a);
+ //AliTPCseed(const AliKalmanTrack &t, Double_t a);
AliTPCseed(UInt_t index, const Double_t xx[5],
const Double_t cc[15], Double_t xr, Double_t alpha);
Int_t Compare(const TObject *o) const;
SetMass(t.GetMass());
SetNumberOfClusters(0);
- fdEdx=t.GetdEdx();
+ fdEdx=t.GetPIDsignal();
for (Int_t i=0;i<kNPlane;i++){
fdEdxPlane[i] = 0.0;
fTimBinPlane[i] = -1;