AliRoot Core  3dc7879 (3dc7879)
AliExternalTrackParam.h
Go to the documentation of this file.
1 #ifndef ALIEXTERNALTRACKPARAM_H
2 #define ALIEXTERNALTRACKPARAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id$ */
7 
8 /*****************************************************************************
9  * "External" track parametrisation class *
10  * *
11  * external param0: local Y-coordinate of a track (cm) *
12  * external param1: local Z-coordinate of a track (cm) *
13  * external param2: local sine of the track momentum azimuthal angle *
14  * external param3: tangent of the track momentum dip angle *
15  * external param4: 1/pt (1/(GeV/c)) *
16  * *
17  * The parameters are estimated at an exact position x in a local coord. *
18  * system rotated by angle alpha with respect to the global coord.system. *
19  * Origin: I.Belikov, CERN, Jouri.Belikov@cern.ch *
20  *****************************************************************************/
21 #include "TMath.h"
22 
23 #include "AliVTrack.h"
24 #include "AliVMisc.h"
25 const Double_t kVeryBig=1./kAlmost0;
26 const Double_t kMostProbablePt=0.35;
27 
28 class AliVVertex;
29 class TPolyMarker3D;
30 
31 const Double_t kC0max=100*100, // SigmaY<=100cm
32  kC2max=100*100, // SigmaZ<=100cm
33  kC5max=1*1, // SigmaSin<=1
34  kC9max=1*1, // SigmaTan<=1
35  kC14max=100*100; // Sigma1/Pt<=100 1/GeV
36 
38  public:
42  AliExternalTrackParam(Double_t x, Double_t alpha,
43  const Double_t param[5], const Double_t covar[15]);
44  AliExternalTrackParam(Double_t xyz[3],Double_t pxpypz[3],
45  Double_t cv[21],Short_t sign);
46  // constructor for reinitialisation of vtable
49 
51  void CopyFromVTrack(const AliVTrack *vTrack);
52 
53  template <typename T>
54  void Set(T x, T alpha, const T param[5], const T covar[15]) {
55  // Sets the parameters
56  if (alpha < -TMath::Pi()) alpha += 2*TMath::Pi();
57  else if (alpha >= TMath::Pi()) alpha -= 2*TMath::Pi();
58  fX=x; fAlpha=alpha;
59  for (Int_t i = 0; i < 5; i++) fP[i] = param[i];
60  for (Int_t i = 0; i < 15; i++) fC[i] = covar[i];
61 
63 
64  }
65 
66  void SetParamOnly(double x, double alpha, const double param[5]) {
67  // Sets the parameters, neglect cov matrix
68  if (alpha < -TMath::Pi()) alpha += 2*TMath::Pi();
69  else if (alpha >= TMath::Pi()) alpha -= 2*TMath::Pi();
70  fX=x; fAlpha=alpha;
71  for (Int_t i = 0; i < 5; i++) fP[i] = param[i];
72  }
73 
74  void Set(Double_t xyz[3],Double_t pxpypz[3],Double_t cv[21],Short_t sign);
75 
76  static void SetMostProbablePt(Double_t pt) { fgMostProbablePt=pt; }
77  static Double_t GetMostProbablePt() { return fgMostProbablePt; }
78 
79  void Reset();
80  void ResetCovariance(Double_t s2);
81  void AddCovariance(const Double_t cov[15]);
82 
83  const Double_t *GetParameter() const {return fP;}
84  const Double_t *GetCovariance() const {return fC;}
85  virtual Bool_t IsStartedTimeIntegral() const {return kFALSE;}
86  virtual void AddTimeStep(Double_t ) {} // dummy method, real stuff is done in AliKalmanTrack
87  Double_t GetAlpha() const {return fAlpha;}
88  Double_t GetX() const {return fX;}
89  Double_t GetY() const {return fP[0];}
90  Double_t GetZ() const {return fP[1];}
91  Double_t GetSnp() const {return fP[2];}
92  virtual Double_t GetTgl() const {return fP[3];}
94  virtual void GetImpactParameters(Float_t& ,Float_t&) const {}
95  Double_t GetSigned1Pt() const {return fP[4];}
96 
97  Double_t GetSigmaY2() const {return fC[0];}
98  Double_t GetSigmaZY() const {return fC[1];}
99  Double_t GetSigmaZ2() const {return fC[2];}
100  Double_t GetSigmaSnpY() const {return fC[3];}
101  Double_t GetSigmaSnpZ() const {return fC[4];}
102  Double_t GetSigmaSnp2() const {return fC[5];}
103  Double_t GetSigmaTglY() const {return fC[6];}
104  Double_t GetSigmaTglZ() const {return fC[7];}
105  Double_t GetSigmaTglSnp() const {return fC[8];}
106  Double_t GetSigmaTgl2() const {return fC[9];}
107  Double_t GetSigma1PtY() const {return fC[10];}
108  Double_t GetSigma1PtZ() const {return fC[11];}
109  Double_t GetSigma1PtSnp() const {return fC[12];}
110  Double_t GetSigma1PtTgl() const {return fC[13];}
111  Double_t GetSigma1Pt2() const {return fC[14];}
112 
113  // additional functions for AliVParticle
114  Double_t Px() const;
115  Double_t Py() const;
116  Double_t Pz() const { return Pt()*GetTgl(); }
117  Double_t Pt() const { return TMath::Abs(GetSignedPt()); }
118  Double_t P() const { return GetP(); }
119  Bool_t PxPyPz(Double_t p[3]) const { return GetPxPyPz(p); }
120 
121  Double_t Xv() const;
122  Double_t Yv() const;
123  Double_t Zv() const {return GetZ();}
124  Bool_t XvYvZv(Double_t x[3]) const { return GetXYZ(x); }
125 
126  Double_t OneOverPt() const { return 1./Pt(); }
127  Double_t Phi() const;
128  Double_t PhiPos() const;
129  Double_t Theta() const;
130  virtual Double_t E() const;
131  virtual Double_t M() const;
132  Double_t Eta() const;
133  virtual Double_t Y() const;
134  virtual Short_t Charge() const { return (Short_t)GetSign(); }
135  virtual const Double_t *PID() const { return 0x0; }
136 
137  // additional functions from AliVTrack
138  virtual Int_t GetID() const { return -999; }
139  virtual UChar_t GetITSClusterMap() const {return 0; }
140  virtual ULong64_t GetStatus() const { return 0; }
141 
142  Double_t GetSign() const {return (fP[4]>0) ? 1 : -1;}
143  Double_t GetP() const;
144  Double_t GetSignedPt() const {
145  return (TMath::Abs(fP[4])>kAlmost0) ? 1./fP[4]:TMath::Sign(kVeryBig,fP[4]);
146  }
147  Double_t Get1P() const;
148  virtual Double_t GetC(Double_t b) const {return fP[4]*b*kB2C;}
149  void GetDZ(Double_t x,Double_t y,Double_t z,Double_t b,Float_t dz[2]) const;
150  Double_t GetD(Double_t xv, Double_t yv, Double_t b) const;
151  Double_t GetLinearD(Double_t xv, Double_t yv) const;
152 
153  Bool_t CorrectForMeanMaterial(Double_t xOverX0, Double_t xTimesRho,
154  Double_t mass, Bool_t anglecorr=kFALSE,
155  Double_t (*f)(Double_t)=AliExternalTrackParam::BetheBlochSolid);
156 
157  Bool_t CorrectForMeanMaterialdEdx(Double_t xOverX0, Double_t xTimesRho,
158  Double_t mass, Double_t dEdx, Bool_t anglecorr=kFALSE);
159 
160  Bool_t CorrectForMeanMaterialZA(Double_t xOverX0, Double_t xTimesRho,
161  Double_t mass,
162  Double_t zOverA=0.49848,
163  Double_t density=2.33,
164  Double_t exEnergy=173e-9,
165  Double_t jp1=0.20,
166  Double_t jp2=3.00,
167  Bool_t anglecorr=kFALSE
168  );
169 
170  //
171  // Bethe-Bloch formula parameterizations
172  //
173  static Double_t BetheBlochAleph(Double_t bg,
174  Double_t kp1=0.76176e-1,
175  Double_t kp2=10.632,
176  Double_t kp3=0.13279e-4,
177  Double_t kp4=1.8631,
178  Double_t kp5=1.9479
179  );
180  static Double_t BetheBlochGeant(Double_t bg,
181  Double_t kp0=2.33,
182  Double_t kp1=0.20,
183  Double_t kp2=3.00,
184  Double_t kp3=173e-9,
185  Double_t kp4=0.49848
186  );
187 
188  static Double_t BetheBlochSolid(Double_t bg);
189  static Double_t BetheBlochGas(Double_t bg);
190 
191  Double_t GetPredictedChi2(const Double_t p[2],const Double_t cov[3]) const;
192 
193  Double_t
194  GetPredictedChi2(const Double_t p[3],const Double_t covyz[3],const Double_t covxyz[3]) const;
195 
196  Double_t GetPredictedChi2(const AliExternalTrackParam *t) const;
197 
198  Bool_t
199  PropagateTo(Double_t p[3],Double_t covyz[3],Double_t covxyz[3],Double_t b);
200 
201  Double_t *GetResiduals(Double_t *p,Double_t *cov,Bool_t updated=kTRUE) const;
202  Bool_t Update(const Double_t p[2],const Double_t cov[3]);
203  Bool_t Rotate(Double_t alpha);
204  Bool_t RotateParamOnly(Double_t alpha);
205  Bool_t Invert();
206  Bool_t PropagateTo(Double_t x, Double_t b);
207  Bool_t PropagateParamOnlyTo(Double_t xk, Double_t b);
208  Bool_t Propagate(Double_t alpha, Double_t x, Double_t b);
209  Bool_t PropagateBxByBz(Double_t alpha, Double_t x, Double_t b[3]);
210  Bool_t PropagateParamOnlyBxByBzTo(Double_t xk, const Double_t b[3]);
211  void Propagate(Double_t len,Double_t x[3],Double_t p[3],Double_t bz) const;
212  Bool_t Intersect(Double_t pnt[3], Double_t norm[3], Double_t bz) const;
213 
214  static void g3helx3(Double_t qfield, Double_t step, Double_t vect[7]);
215  Bool_t PropagateToBxByBz(Double_t x, const Double_t b[3]);
216  Bool_t RelateToVVertexBxByBzDCA(const AliVVertex *vtx, Double_t b[3], Double_t maxd,
217  AliExternalTrackParam *cParam=NULL, Double_t dz[2]=NULL, Double_t dzcov[3]=NULL);
218 
219  void GetHelixParameters(Double_t h[6], Double_t b) const;
220  Double_t GetDCA(const AliExternalTrackParam *p, Double_t b,
221  Double_t &xthis,Double_t &xp) const;
222  Double_t PropagateToDCA(AliExternalTrackParam *p, Double_t b);
223  Bool_t PropagateToDCA(const AliVVertex *vtx, Double_t b, Double_t maxd,
224  Double_t dz[2]=0, Double_t cov[3]=0);
225  Bool_t PropagateToDCABxByBz(const AliVVertex *vtx, Double_t b[3],
226  Double_t maxd, Double_t dz[2]=0, Double_t cov[3]=0);
227  Bool_t ConstrainToVertex(const AliVVertex* vtx, Double_t b[3]);
228 
229  void GetDirection(Double_t d[3]) const;
230  Bool_t GetPxPyPz(Double_t *p) const;
231  Bool_t GetXYZ(Double_t *p) const;
232  Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const;
233  Bool_t GetPxPyPzAt(Double_t x, Double_t b, Double_t p[3]) const;
234  Bool_t GetXYZAt(Double_t x, Double_t b, Double_t r[3]) const;
235  Double_t GetParameterAtRadius(Double_t r, Double_t bz, Int_t parType) const;
236 
237  Bool_t GetYAt(Double_t x, Double_t b, Double_t &y) const;
238  Bool_t GetZAt(Double_t x, Double_t b, Double_t &z) const;
239  Double_t GetYAtFast(Double_t x, Double_t b) const {double y=0; return GetYAt(x,b,y) ? y : -99999;}
240  Double_t GetZAtFast(Double_t x, Double_t b) const {double z=0; return GetZAt(x,b,z) ? z : -99999;}
241  Bool_t GetYZAt(Double_t x, Double_t b, Double_t *yz) const;
242  void Print(Option_t* option = "") const;
243  Double_t GetSnpAt(Double_t x,Double_t b) const;
244  Bool_t GetXatLabR(Double_t r,Double_t &x, Double_t bz, Int_t dir=0) const;
245  Bool_t GetXYZatR(Double_t xr,Double_t bz, Double_t *xyz=0, Double_t* alpSect=0) const;
246 
247  //Deprecated
248  Bool_t CorrectForMaterial(Double_t d, Double_t x0, Double_t mass,
249  Double_t (*f)(Double_t)=AliExternalTrackParam::BetheBlochSolid);
250 
251  Bool_t GetDistance(AliExternalTrackParam *param2, Double_t x, Double_t dist[3], Double_t b);
252  static Int_t GetIndex(Int_t i, Int_t j);
253  Int_t GetLabel() const {return -1;}
254  Int_t PdgCode() const {return 0;}
255 
256  //
257  // visualization (M. Ivanov)
258  //
259  virtual void FillPolymarker(TPolyMarker3D *pol, Float_t magf, Float_t minR, Float_t maxR, Float_t stepR);
260  virtual void DrawTrack(Float_t magF, Float_t minR, Float_t maxR, Float_t stepR);
261 
262  virtual Bool_t Translate(Double_t *vTrasl,Double_t *covV);
263 
264  void CheckCovariance();
265 
266  static Bool_t GetUseLogTermMS() {return fgUseLogTermMS;}
267  static void SetUseLogTermMS(Bool_t v=kTRUE) {fgUseLogTermMS = v;}
268 
269  //---------------------------------------------------------------------------
270  //--the calibration interface--
271  //--to be used in online calibration/QA
272  //--should also be implemented in ESD so it works offline as well
273  //-----------
274  virtual Int_t GetTrackParam ( AliExternalTrackParam & ) const {return 0;}
275  virtual Int_t GetTrackParamRefitted ( AliExternalTrackParam & ) const {return 0;}
276  virtual Int_t GetTrackParamIp ( AliExternalTrackParam & ) const {return 0;}
277  virtual Int_t GetTrackParamTPCInner ( AliExternalTrackParam & ) const {return 0;}
278  virtual Int_t GetTrackParamOp ( AliExternalTrackParam & ) const {return 0;}
279  virtual Int_t GetTrackParamCp ( AliExternalTrackParam & ) const {return 0;}
280  virtual Int_t GetTrackParamITSOut ( AliExternalTrackParam & ) const {return 0;}
281 
282  protected:
283  AliExternalTrackParam(const AliVTrack *vTrack);
284 
285 /* protected: */
286  private:
287  Double_t &Par(Int_t i) {return fP[i];}
288  Double_t &Cov(Int_t i) {return fC[i];}
289  protected:
290  Double32_t fX; // X coordinate for the point of parametrisation
291  Double32_t fAlpha; // Local <-->global coor.system rotation angle
292  Double32_t fP[5]; // The track parameters
293  Double32_t fC[15]; // The track parameter covariance matrix
294 
295  static Double32_t fgMostProbablePt; // "Most probable" pt
296  // (to be used if Bz=0)
297  static Bool_t fgUseLogTermMS; // use log term in Mult.Stattering evaluation
298  ClassDef(AliExternalTrackParam, 8)
299 };
300 
301 inline void AliExternalTrackParam::ResetCovariance(Double_t s2) {
302  //
303  // Reset the covarince matrix to "something big"
304  //
305 
306  s2 = TMath::Abs(s2);
307  Double_t fC0=fC[0]*s2,
308  fC2=fC[2]*s2,
309  fC5=fC[5]*s2,
310  fC9=fC[9]*s2,
311  fC14=fC[14]*s2;
312 
313  if (fC0>kC0max) fC0 = kC0max;
314  if (fC2>kC2max) fC2 = kC2max;
315  if (fC5>kC5max) fC5 = kC5max;
316  if (fC9>kC9max) fC9 = kC9max;
317  if (fC14>kC14max) fC14 = kC14max;
318 
319 
320  fC[0] = fC0;
321  fC[1] = 0.; fC[2] = fC2;
322  fC[3] = 0.; fC[4] = 0.; fC[5] = fC5;
323  fC[6] = 0.; fC[7] = 0.; fC[8] = 0.; fC[9] = fC9;
324  fC[10]= 0.; fC[11]= 0.; fC[12]= 0.; fC[13]= 0.; fC[14] = fC14;
325 }
326 
327 
328 
329 
330 #endif
Double_t GetSigmaZY() const
TBrowser b
Definition: RunAnaESD.C:12
Bool_t GetPxPyPzAt(Double_t x, Double_t b, Double_t p[3]) const
Bool_t XvYvZv(Double_t x[3]) const
void GetDZ(Double_t x, Double_t y, Double_t z, Double_t b, Float_t dz[2]) const
Bool_t Propagate(Double_t alpha, Double_t x, Double_t b)
Bool_t Intersect(Double_t pnt[3], Double_t norm[3], Double_t bz) const
Double_t GetSigma1PtSnp() const
void Print(Option_t *option="") const
static Double32_t fgMostProbablePt
Double_t GetSigmaZ2() const
Bool_t Rotate(Double_t alpha)
const Double_t kC2max
Double_t GetSigmaTglZ() const
virtual void GetImpactParameters(Float_t[], Float_t[]) const
Definition: AliVTrack.h:136
Bool_t Update(const Double_t p[2], const Double_t cov[3])
void Set(T x, T alpha, const T param[5], const T covar[15])
virtual ULong64_t GetStatus() const
Bool_t GetXYZatR(Double_t xr, Double_t bz, Double_t *xyz=0, Double_t *alpSect=0) const
Bool_t GetYAt(Double_t x, Double_t b, Double_t &y) const
Bool_t GetXYZ(Double_t *p) const
static Int_t GetIndex(Int_t i, Int_t j)
virtual void DrawTrack(Float_t magF, Float_t minR, Float_t maxR, Float_t stepR)
virtual Bool_t IsStartedTimeIntegral() const
static Double_t BetheBlochGeant(Double_t bg, Double_t kp0=2.33, Double_t kp1=0.20, Double_t kp2=3.00, Double_t kp3=173e-9, Double_t kp4=0.49848)
Double_t * GetResiduals(Double_t *p, Double_t *cov, Bool_t updated=kTRUE) const
virtual Int_t GetTrackParamIp(AliExternalTrackParam &) const
Bool_t RelateToVVertexBxByBzDCA(const AliVVertex *vtx, Double_t b[3], Double_t maxd, AliExternalTrackParam *cParam=NULL, Double_t dz[2]=NULL, Double_t dzcov[3]=NULL)
Float_t p[]
Definition: kNNTest.C:133
static Double_t BetheBlochSolid(Double_t bg)
virtual Double_t Y() const
virtual UChar_t GetITSClusterMap() const
Double_t GetAlpha() const
const Double_t kC14max
Double_t GetSigmaSnpY() const
Bool_t PropagateToDCABxByBz(const AliVVertex *vtx, Double_t b[3], Double_t maxd, Double_t dz[2]=0, Double_t cov[3]=0)
Bool_t GetCovarianceXYZPxPyPz(Double_t cv[21]) const
Bool_t RotateParamOnly(Double_t alpha)
virtual Double_t GetTgl() const
Bool_t PropagateParamOnlyTo(Double_t xk, Double_t b)
Double_t PropagateToDCA(AliExternalTrackParam *p, Double_t b)
const Double_t * GetParameter() const
Double_t GetLinearD(Double_t xv, Double_t yv) const
virtual const Double_t * PID() const
const Float_t kAlmost0
void GetHelixParameters(Double_t h[6], Double_t b) const
static Double_t BetheBlochGas(Double_t bg)
static void SetUseLogTermMS(Bool_t v=kTRUE)
virtual Int_t GetTrackParamTPCInner(AliExternalTrackParam &) const
Double_t GetSigmaTglSnp() const
static void g3helx3(Double_t qfield, Double_t step, Double_t vect[7])
void CopyFromVTrack(const AliVTrack *vTrack)
virtual Short_t Charge() const
Bool_t CorrectForMeanMaterialZA(Double_t xOverX0, Double_t xTimesRho, Double_t mass, Double_t zOverA=0.49848, Double_t density=2.33, Double_t exEnergy=173e-9, Double_t jp1=0.20, Double_t jp2=3.00, Bool_t anglecorr=kFALSE)
Bool_t bg
Definition: RunAnaESD.C:6
const Double_t kB2C
Definition: AliVParticle.h:25
Bool_t GetXatLabR(Double_t r, Double_t &x, Double_t bz, Int_t dir=0) const
Double_t GetSigned1Pt() const
Double_t GetYAtFast(Double_t x, Double_t b) const
virtual Double_t E() const
virtual Int_t GetTrackParamOp(AliExternalTrackParam &) const
Double_t GetSigmaY2() const
Double_t GetSigma1PtY() const
Bool_t ConstrainToVertex(const AliVVertex *vtx, Double_t b[3])
Double_t GetSigma1Pt2() const
virtual Int_t GetTrackParam(AliExternalTrackParam &) const
AliVConstructorReinitialisationFlag
Definition: AliVMisc.h:10
Double_t GetZAtFast(Double_t x, Double_t b) const
const Double_t kC9max
Double_t GetSigmaTglY() const
virtual Int_t GetTrackParamITSOut(AliExternalTrackParam &) const
virtual Bool_t Translate(Double_t *vTrasl, Double_t *covV)
const Double_t * GetCovariance() const
Bool_t PropagateBxByBz(Double_t alpha, Double_t x, Double_t b[3])
const Double_t kVeryBig
Bool_t GetPxPyPz(Double_t *p) const
virtual void AddTimeStep(Double_t)
Double_t GetSigma1PtZ() const
Double_t GetSigma1PtTgl() const
Bool_t PropagateParamOnlyBxByBzTo(Double_t xk, const Double_t b[3])
virtual Double_t M() const
TF1 * f
Definition: interpolTest.C:21
static Double_t GetMostProbablePt()
virtual void GetImpactParameters(Float_t &, Float_t &) const
Bool_t GetZAt(Double_t x, Double_t b, Double_t &z) const
const Double_t kC0max
Bool_t CorrectForMaterial(Double_t d, Double_t x0, Double_t mass, Double_t(*f)(Double_t)=AliExternalTrackParam::BetheBlochSolid)
Bool_t GetDistance(AliExternalTrackParam *param2, Double_t x, Double_t dist[3], Double_t b)
AliExternalTrackParam(AliVConstructorReinitialisationFlag f)
Bool_t CorrectForMeanMaterial(Double_t xOverX0, Double_t xTimesRho, Double_t mass, Bool_t anglecorr=kFALSE, Double_t(*f)(Double_t)=AliExternalTrackParam::BetheBlochSolid)
AliExternalTrackParam & operator=(const AliExternalTrackParam &trkPar)
Double_t GetPredictedChi2(const Double_t p[2], const Double_t cov[3]) const
Double_t GetSigmaTgl2() const
static void SetMostProbablePt(Double_t pt)
Double_t GetParameterAtRadius(Double_t r, Double_t bz, Int_t parType) const
virtual Double_t GetC(Double_t b) const
const Double_t kMostProbablePt
virtual Int_t GetTrackParamRefitted(AliExternalTrackParam &) const
void AddCovariance(const Double_t cov[15])
Bool_t PropagateToBxByBz(Double_t x, const Double_t b[3])
virtual void FillPolymarker(TPolyMarker3D *pol, Float_t magf, Float_t minR, Float_t maxR, Float_t stepR)
Double_t GetSigmaSnp2() const
virtual Int_t GetID() const
Double_t GetSignedPt() const
Double_t GetDCA(const AliExternalTrackParam *p, Double_t b, Double_t &xthis, Double_t &xp) const
Double_t GetSnpAt(Double_t x, Double_t b) const
Bool_t PropagateTo(Double_t p[3], Double_t covyz[3], Double_t covxyz[3], Double_t b)
Bool_t CorrectForMeanMaterialdEdx(Double_t xOverX0, Double_t xTimesRho, Double_t mass, Double_t dEdx, Bool_t anglecorr=kFALSE)
Double_t GetSigmaSnpZ() const
void SetParamOnly(double x, double alpha, const double param[5])
void GetDirection(Double_t d[3]) const
virtual Int_t GetTrackParamCp(AliExternalTrackParam &) const
static Double_t BetheBlochAleph(Double_t bg, Double_t kp1=0.76176e-1, Double_t kp2=10.632, Double_t kp3=0.13279e-4, Double_t kp4=1.8631, Double_t kp5=1.9479)
Double_t GetD(Double_t xv, Double_t yv, Double_t b) const
Bool_t GetXYZAt(Double_t x, Double_t b, Double_t r[3]) const
Bool_t GetYZAt(Double_t x, Double_t b, Double_t *yz) const
void ResetCovariance(Double_t s2)
const Double_t kC5max
Bool_t PxPyPz(Double_t p[3]) const