18 #ifndef StExtGeometry_hh
19 #define StExtGeometry_hh
22 #include "StThreeVectorF.hh"
23 #include "StPhysicalHelixD.hh"
24 #include "THelixTrack.h"
33 const char *name()
const;
38 double curvature()
const;
40 double tanDip()
const;
43 double length()
const;
51 const float*
params()
const;
52 const float* errMatrix()
const;
56 void setName(
const char *name);
57 void set(
double rXY,
const double pars[6],
const double errs[15]);
58 void setLength(
double len);
59 void setCurve (
double cur);
65 enum {kPhi,kZ,kPsi,kPti,kTan,kCurv,kLen};
69 ,kPhiPsi, kZPsi, kPsiPsi
70 ,kPhiPti, kZPti, kPsiPti, kPtiPti
71 ,kPhiTan, kZTan, kPsiTan, kPtiTan, kTanTan};
92 inline const char* StExtGeometry::name()
const {
return mName;}
93 inline int StExtGeometry::charge()
const {
return (mPti>0)? -1:1;}
94 inline double StExtGeometry::rxy()
const {
return mRxy;}
95 inline double StExtGeometry::phi()
const {
return mPhi ;}
96 inline double StExtGeometry::z()
const {
return mZ ;}
97 inline double StExtGeometry::curvature()
const {
return mCurv;}
98 inline double StExtGeometry::psi()
const {
return mPsi ;}
99 inline double StExtGeometry::tanDip()
const {
return mTan ;}
100 inline double StExtGeometry::pt()
const {
return 1./fabs(mPti);}
101 inline double StExtGeometry::hz()
const {
return mCurv/mPti;}
102 inline double StExtGeometry::length()
const {
return mLen;}
103 inline double StExtGeometry::curve()
const {
return mCurv;}
104 inline const float* StExtGeometry::params()
const {
return &mPhi;}
105 inline const float* StExtGeometry::errMatrix()
const {
return mG;}
106 inline void StExtGeometry::setLength(
double len){mLen = len;}
107 inline void StExtGeometry::setCurve (
double cur){mCurv = cur;}
108 inline const StExtGeometry* StExtGeometry::next()
const {
return mNext;}