#include <TVector2.h>
#include "AliTracker.h"
-#include "AliESDtrack.h"
#include "AliTRDgeometry.h"
#include "AliTRDcluster.h"
,fSeedLab(-1)
,fdEdx(0)
,fDE(0)
+ ,fPIDquality(0)
,fClusterOwner(kFALSE)
,fPIDmethod(kLQ)
,fStopped(kFALSE)
fMom[i] = -1.;
fSnp[i] = 0.;
fTgl[i] = 0.;
+ fTrackletIndex[i] = -1;
+ }
+ for(int ispec=0; ispec<AliPID::kSPECIES; ispec++) {
+ fPID[ispec] = 1.0 / AliPID::kSPECIES;
}
for (UInt_t i = 0; i < kMAXCLUSTERSPERTRACK; i++) {
,fSeedLab(-1)
,fdEdx(0)
,fDE(0)
+ ,fPIDquality(0)
,fClusterOwner(kFALSE)
,fPIDmethod(kLQ)
,fStopped(kFALSE)
fMom[i] = -1.;
fSnp[i] = 0.;
fTgl[i] = 0.;
+ fTrackletIndex[i] = -1;
+ }
+ for(int ispec=0; ispec<AliPID::kSPECIES; ispec++) {
+ fPID[ispec] = 1.0 / AliPID::kSPECIES;
}
Double_t q = TMath::Abs(c->GetQ());
,fSeedLab(t.GetSeedLabel())
,fdEdx(t.fdEdx)
,fDE(t.fDE)
+ ,fPIDquality(t.fPIDquality)
,fClusterOwner(kTRUE)
,fPIDmethod(t.fPIDmethod)
,fStopped(t.fStopped)
fMom[i] = t.fMom[i];
fSnp[i] = t.fSnp[i];
fTgl[i] = t.fTgl[i];
+ fTrackletIndex[i] = t.fTrackletIndex[i];
}
Int_t n = t.GetNumberOfClusters();
fBudget[i] = t.fBudget[i];
}
-}
+ for(Int_t ispec = 0; ispec<AliPID::kSPECIES; ispec++) fPID[ispec] = t.fPID[ispec];
+}
//_____________________________________________________________________________
AliTRDtrack::AliTRDtrack(const AliKalmanTrack &t, Double_t /*alpha*/)
,fSeedLab(-1)
,fdEdx(t.GetPIDsignal())
,fDE(0)
+ ,fPIDquality(0)
,fClusterOwner(kFALSE)
,fPIDmethod(kLQ)
,fStopped(kFALSE)
fMom[i] = -1.;
fSnp[i] = 0.;
fTgl[i] = 0.;
+ fTrackletIndex[i] = -1;
+ }
+ for(int ispec=0; ispec<AliPID::kSPECIES; ispec++) {
+ fPID[ispec] = 1.0 / AliPID::kSPECIES;
}
for (UInt_t i = 0; i < kMAXCLUSTERSPERTRACK; i++) {
fBudget[i] = 0;
}
-}
+}
//_____________________________________________________________________________
AliTRDtrack::AliTRDtrack(const AliESDtrack &t)
,fSeedLab(-1)
,fdEdx(t.GetTRDsignal())
,fDE(0)
+ ,fPIDquality(0)
,fClusterOwner(kFALSE)
,fPIDmethod(kLQ)
,fStopped(kFALSE)
for (Int_t i = 0; i < kNplane; i++) {
for (Int_t j = 0; j < kNslice; j++) {
- fdEdxPlane[i][j] = t.GetTRDsignals(i,j);
+ fdEdxPlane[i][j] = t.GetTRDslice(i,j);
}
fTimBinPlane[i] = t.GetTRDTimBin(i);
fMom[i] = -1.;
fSnp[i] = 0.;
fTgl[i] = 0.;
+ fTrackletIndex[i] = -1;
}
const AliExternalTrackParam *par = &t;
for (Int_t i = 0; i < 3; i++) {
fBudget[i] = 0;
}
+ for(int ispec=0; ispec<AliPID::kSPECIES; ispec++) {
+ fPID[ispec] = t.GetTRDpid(ispec);
+ }
if ((t.GetStatus() & AliESDtrack::kTIME) == 0) {
return;
//
// Max charge in chamber
- Double_t maxcharge[AliESDtrack::kNPlane];
+ Double_t maxcharge[kNplane];
// Number of clusters attached to track per chamber and slice
- Int_t nCluster[AliESDtrack::kNPlane][AliESDtrack::kNSlice];
+ Int_t nCluster[kNplane][kNslice];
// Number of time bins in chamber
Int_t ntb = AliTRDcalibDB::Instance()->GetNumberOfTimeBins();
Int_t plane; // Plane of current cluster
AliTRDcluster *cluster = 0x0; // Pointer to current cluster
// Reset class and local counters/variables
- for (Int_t iPlane = 0; iPlane < AliESDtrack::kNPlane; iPlane++) {
+ for (Int_t iPlane = 0; iPlane < kNplane; iPlane++) {
fTimBinPlane[iPlane] = -1;
maxcharge[iPlane] = 0.0;
- for (Int_t iSlice = 0; iSlice < AliESDtrack::kNSlice; iSlice++) {
+ for (Int_t iSlice = 0; iSlice < kNslice; iSlice++) {
fdEdxPlane[iPlane][iSlice] = 0.0;
nCluster[iPlane][iSlice] = 0;
}
if (!cluster) continue;
// Read info from current cluster
- plane = AliTRDgeometry::GetPlane(cluster->GetDetector());
- if (plane < 0 || plane >= AliESDtrack::kNPlane) {
+ plane = AliTRDgeometry::GetLayer(cluster->GetDetector());
+ if (plane < 0 || plane >= kNplane) {
AliError(Form("Wrong plane %d", plane));
continue;
}
continue;
}
- slice = tb * AliESDtrack::kNSlice / ntb;
+ slice = tb * kNslice / ntb;
fdEdxPlane[plane][slice] += fdQdl[iClus];
if (fdQdl[iClus] > maxcharge[plane]) {
} // End of loop over cluster
// Normalize fdEdxPlane to number of clusters and set track segments
- for (Int_t iPlane = 0; iPlane < AliESDtrack::kNPlane; iPlane++) {
- for (Int_t iSlice = 0; iSlice < AliESDtrack::kNSlice; iSlice++) {
+ for (Int_t iPlane = 0; iPlane < kNplane; iPlane++) {
+ for (Int_t iSlice = 0; iSlice < kNslice; iSlice++) {
if (nCluster[iPlane][iSlice]) {
fdEdxPlane[iPlane][iSlice] /= nCluster[iPlane][iSlice];
}
const Int_t kMLPscale = 16000; // scaling of the MLP input to be smaller than 1
// Reset class and local contors/variables
- for (Int_t iPlane = 0; iPlane < AliESDtrack::kNPlane; iPlane++){
+ for (Int_t iPlane = 0; iPlane < kNplane; iPlane++){
for (Int_t iSlice = 0; iSlice < kNMLPslice; iSlice++) {
*(dedx + (kNMLPslice * iPlane) + iSlice) = 0.0;
}
}
// Read info from current cluster
- plane = AliTRDgeometry::GetPlane(cluster->GetDetector());
- if (plane < 0 || plane >= AliESDtrack::kNPlane) {
+ plane = AliTRDgeometry::GetLayer(cluster->GetDetector());
+ if (plane < 0 || plane >= kNplane) {
AliError(Form("Wrong plane %d",plane));
continue;
}
}
// Retrieve the CDB container class with the probability distributions
- const AliTRDCalPID *pd = calibration->GetPIDObject(fPIDmethod == kNN ? 0 : 1);
+ const AliTRDCalPID *pd = calibration->GetPIDObject(fPIDmethod == kNN ? AliTRDrecoParam::kNNPID : AliTRDrecoParam::kLQPID);
if (!pd) {
AliError("No access to AliTRDCalPID");
return kFALSE;
// Skip tracks which have no TRD signal at all
if (fdEdx == 0.) return kFALSE;
- for (Int_t iPlane = 0; iPlane < AliTRDgeometry::kNplan; iPlane++) {
+ for (Int_t iPlane = 0; iPlane < AliTRDgeometry::kNlayer; iPlane++) {
length = (AliTRDgeometry::AmThick() + AliTRDgeometry::DrThick())
/ TMath::Sqrt((1.0 - fSnp[iPlane]*fSnp[iPlane])
if (!AliExternalTrackParam::Update(p,cov)) {
return kFALSE;
}
-
- AliTracker::FillResiduals(this,p,cov,c->GetVolumeId());
+
+ AliTracker::FillResiduals(this,p,cov,c->GetVolumeId());
// Register cluster to track
Int_t n = GetNumberOfClusters();
//
return Int_t(TVector2::Phi_0_2pi(GetAlpha()) / AliTRDgeometry::GetAlpha())
- % AliTRDgeometry::kNsect;
+ % AliTRDgeometry::kNsector;
}