2 #ifndef AliBarrelTrack_H
3 #define AliBarrelTrack_H
8 class AliBarrelTrack : public TObject {
12 Int_t fLabel; // kine tree index
14 Int_t fRefPlane; // id of the reference plane
15 Int_t fIsIn; // direction
17 Double_t fX; // Kalman Time
18 Double_t fAlpha; // sector angle
21 Double_t fZ; // Z in global cs
22 Double_t fY; // Y in local cs corresponds to r-phi
23 Double_t fTgLambda; // Tangent of the dip angle
24 Double_t fSnPhi; // Sin
25 Double_t f1Pt; // inverse of momentum
37 Double_t fTimeHypothesis[5]; // time for all hypoptheses
38 Double_t fLength; // track length
41 Int_t fNClusters; // Number of clusters
42 Int_t fNWrong; // Number of wrong clusters
43 Double_t fChi2; // Chi 2
44 Int_t fNRotate; // number of rotations / sector crossing
46 Double_t fMass; // mass hypothesis
47 Double_t fdEdX; // dE/dX
56 void SetLabel(Int_t label);
57 void SetX(Double_t x, Double_t alpha);
58 void SetRefPlane(Int_t nRefPlane, Int_t isIn);
59 void SetNClusters(Int_t nClusters, Double_t chi2);
60 void SetTime(Double_t time[5], Double_t length);
61 void SetStateVector(Double_t vec[5]); // external parameters
62 void SetCovarianceMatrix(Double_t vec[15]); // external parameters
64 void SetNWrongClusters(Int_t n) {fNWrong = n;}
65 void SetNRotate(Int_t n) {fNRotate = n;}
67 void SetMass(Double_t mass) {fMass = mass;}
68 void SetdEdX(Double_t dEdX) {fdEdX = dEdX;}
73 Int_t GetLabel() const {return fLabel;}
74 Int_t GetNClusters() const {return fNClusters;}
75 Int_t GetNWrongClusters() const {return fNWrong;}
76 Int_t GetNRotate() const {return fNRotate;}
78 Int_t GetRefPlane() const {return fRefPlane;}
80 Double_t GetX() const {return fX;}
81 Double_t Y() const {return fY;}
82 Double_t Z() const {return fZ;}
84 Double_t GetMass() const {return fMass;}
86 // track oriented variables
87 Double_t Pt() const {return (f1Pt==0)? 0 : 1./f1Pt;}
88 Double_t TgLambda() const {return fTgLambda;}
89 Double_t Eta() const {return -TMath::Log(TMath::Tan(0.25 *TMath::Pi()-0.5*Lambda()));}
90 Double_t Phi() const {return TMath::ASin(fSnPhi);}
94 Double_t DeltaY() const {return TMath::Sqrt(fCy);}
95 Double_t DeltaZ() const {return TMath::Sqrt(fCz);}
96 Double_t DeltaTgLambda() const {return TMath::Sqrt(fCtg);}
97 Double_t DeltaSnPhi() const {return TMath::Sqrt(fCphi);}
98 Double_t DeltaPt() const {return Pt() - 1./(Pt() + TMath::Sqrt(fCpt));}
101 // reference oriented variables
102 Double_t Px() const {return TMath::Cos(Phi()+fAlpha) * Pt();}
103 Double_t Py() const {return TMath::Sin(Phi()+fAlpha) * Pt();}
104 Double_t Pz() const {return fTgLambda*Pt();}
105 Double_t P() const {return Pt()*(fTgLambda+1);}
107 Double_t Lambda() const {return TMath::ATan(fTgLambda);}
109 ClassDef(AliBarrelTrack,1)