,kMask = 0x3f // bit mask
,kNtb = 31 // max clusters/pad row
,kNclusters = 2*kNtb // max number of clusters/tracklet
- ,kNslices = 10 // max dEdx slices
+ ,kNdEdxSlices= 8 // dEdx slices allocated in reconstruction
};
// bits from 0-13 are reserved by ROOT (see TObject.h)
enum ETRDtrackletStatus {
kOwner = BIT(14) // owner of its clusters
,kRowCross = BIT(15) // pad row cross tracklet
- ,kPID = BIT(16) // PID contributor
+ ,kChmbGood = BIT(16) // status of the detector from calibration view point
,kCalib = BIT(17) // calibrated tracklet
,kKink = BIT(18) // kink prolongation tracklet
,kStandAlone = BIT(19) // tracklet build during stand alone track finding
,kPrimary = BIT(20) // tracklet from a primary track candidate
- ,kChmbGood = BIT(21) // status of the detector from calibration view point
};
enum ETRDtrackletError { // up to 8 bits
Bool_t CookPID();
Bool_t Fit(UChar_t opt=0);
Bool_t FitRobust(Bool_t ChgPlus=kTRUE);
- Bool_t Init(AliTRDtrackV1 *track);
+ Bool_t Init(const AliTRDtrackV1 *track);
void Init(const AliRieman *fit);
Bool_t IsEqual(const TObject *inTracklet) const;
Bool_t IsCalibrated() const { return TestBit(kCalib);}
Bool_t IsOwner() const { return TestBit(kOwner);}
Bool_t IsKink() const { return TestBit(kKink);}
Bool_t IsPrimary() const { return TestBit(kPrimary);}
- Bool_t HasPID() const { return TestBit(kPID);}
Bool_t HasError(ETRDtrackletError err) const
{ return TESTBIT(fErrorMsg, err);}
Bool_t IsOK() const { return GetN() > 4 && GetNUsed() < 4;}
Float_t GetdZdX() const { return fZfit[1];}
Int_t GetdY() const { return Int_t(GetY()/0.014);}
Int_t GetDetector() const { return fDet;}
+ Int_t GetChargeGaps(Float_t sz[kNtb], Float_t pos[kNtb], Int_t ntb[kNtb]) const;
void GetCalibParam(Float_t &exb, Float_t &vd, Float_t &t0, Float_t &s2, Float_t &dl, Float_t &dt) const {
exb = fExB; vd = fVD; t0 = fT0; s2 = fS2PRF; dl = fDiffL; dt = fDiffT;}
AliTRDcluster* GetClusters(Int_t i) const { return i<0 || i>=kNclusters ? NULL: fClusters[i];}
void SetLabels(Int_t *lbls) { memcpy(fLabels, lbls, 3*sizeof(Int_t)); }
void SetKink(Bool_t k = kTRUE){ SetBit(kKink, k);}
void SetPrimary(Bool_t k = kTRUE){ SetBit(kPrimary, k);}
- void SetPID(Bool_t k = kTRUE) { SetBit(kPID, k);}
void SetStandAlone(Bool_t st) { SetBit(kStandAlone, st); }
void SetPt(Double_t pt) { fPt = pt;}
void SetOwner();
Float_t fS2Z; // estimated resolution in the z direction
Float_t fC[2]; // Curvature for standalone [0] rieman [1] vertex constrained
Float_t fChi2; // Global chi2
- Float_t fdEdx[kNslices]; // dE/dx measurements for tracklet
+ Float_t fdEdx[kNdEdxSlices]; // dE/dx measurements for tracklet
Float_t fProb[AliPID::kSPECIES]; // PID probabilities
Int_t fLabels[3]; // most frequent MC labels and total number of different labels
Double_t fRefCov[7]; // covariance matrix of the track in the yz plane + the rest of the diagonal elements