57 #ifndef StDcaGenFit_hh
58 #define StDcaGenFit_hh
62 enum {kNMaxPars = 6, kNMaxErrs= (kNMaxPars*(kNMaxPars+1))/2};
63 enum {kNMinPars = 5, kNMinErrs= (kNMinPars*(kNMinPars+1))/2};
64 enum {kNBigPars = 7, kNBigErrs= (kNBigPars*(kNBigPars+1))/2};
110 operator const double* ()
const {
return &mqPinv;}
111 void SetPars(
double qpinv,
double uc,
double vc,
double u,
double v,
int sig=1);
128 operator const double* ()
const {
return &qPqP;}
129 operator double* () {
return &qPqP;}
141 qPU, UcU, VcU, NcU, UU,
142 qPV, UcV, VcV, NcV, UV, VV;
148 GFull(){mBigPars.ResizeTo(kNBigPars);}
149 void SetMag (
const double h[3]);
150 void SetGlob (
const double pos[3],
const double uvn[3][3]);
151 void SetPars(
double qpinv,
double uc,
double vc,
double u,
double v,
int sig=1);
152 void SetPars(
const double pars[5] ,
int sig);
153 void SetPars(
int icharge,
const TVector3 pos,
const TVector3 mom);
154 TVectorD GetPars(
int* iSig=0)
const;
157 void SetBigPars(
int icharge,
const TVector3 pos,
const TVector3 mom);
158 const TVectorD &GetBigPars()
const {
return mBigPars;};
159 const double *GetBigErrs()
const {
return mBigErrs;};
161 void SetErrs(
const double emx[15]);
162 TVector3 Pos()
const;
163 TVector3 Dir()
const;
164 TVector3 Mom()
const {
return Dir()*(1./fabs(Pinv()));}
173 const double *BigErrs()
const {
return mBigErrs;}
174 const double *XtdPars()
const {
return mPars; }
175 const double *XtdErrs()
const {
return mErrs; }
178 static void TestConvertErrs();
180 TVectorD BigVal()
const ;
181 double BigDer(
int ib,
int iu);
194 double mBigErrs[kNBigErrs];
204 Int_t charge()
const {
return (
mPti>0)? -1:1;}
205 double impact()
const {
return mImp;}
206 double curvature()
const {
return mCurv;}
207 double psi()
const {
return mPsi ;}
208 double dipAngle()
const {
return atan(
mTan);}
209 double tanDip()
const {
return mTan ;}
210 double pt()
const {
return 1./fabs(
mPti);}
211 double z()
const {
return mZ ;}
213 TVector3 origin()
const;
214 TVector3 momentum()
const;
216 const float* errMatrix()
const {
return &
mImpImp;}
217 virtual void Print(
const char *option =
"")
const;
221 void set(
const float pars[6],
const float errs[15]);
222 void set(
const double pars[6],
const double errs[15]);
244 float mPsiImp, mPsiZ, mPsiPsi;
245 float mPtiImp, mPtiZ, mPtiPsi, mPtiPti;
246 float mTanImp, mTanZ, mTanPsi, mTanPti, mTanTan;
float mPsi
Psi angle of the track.
float mZ
Z-coordinate of this track (reference plane)
float mPti
signed invert pt [sign = sign(-qB)]
float mTan
tangent of the track momentum dip angle
float mCurv
signed curvature