9#include "TrkFitter/TrkHelixRep.h"
10#include "MdcGeom/BesAngle.h"
11#include "MdcGeom/Constants.h"
12#include "PatBField/BField.h"
13#include "ProxyDict/IfdIntKey.h"
14#include "TrkBase/TrkExchangePar.h"
15#include "TrkBase/TrkRecoTrk.h"
16#include "TrkBase/TrkSimpTraj.h"
29 int nact,
int nsv,
int ndc,
double chi2,
double stFndRng,
31 :
TrkSimpleRep( trk, hypo, nact, nsv, ndc, chi2, stFndRng, endFndRng )
32 , _traj( inPar.params(), inPar.covariance() ) {}
54 HepVector outPar = _traj.parameters()->parameter();
60 ostr <<
"TrkHelixRep "
63 <<
" d0: " << _traj.
d0() <<
" z0: " << _traj.
z0() <<
" ct: " << _traj.
tanDip()
84 bool exclude )
const {
86 static HepVector derivs;
90 if ( errCode.
failure() )
return false;
93 HepSymMatrix c = _traj.parameters()->covariance().similarityT( derivs );
94 double tErr2 = c( 1, 1 );
97 double e2 = rms * rms + ( h->
isActive() ? -1 : 1 ) * tErr2;
98 if (
e2 < 0 )
return false;
99 residErr = sqrt(
e2 );
106 HepSymMatrix
w = _traj.parameters()->covariance();
109 if ( ier != 0 )
return false;
110 HepVector p0 = _traj.parameters()->parameter();
111 HepVector
p1 =
w * p0;
112 p1 -= deltaChi * derivs;
113 for (
unsigned i = 0; i < p0.num_row(); ++i )
114 for (
unsigned j = 0; j < i + 1; ++j )
115 {
w.fast( i + 1, j + 1 ) -= derivs[i] * derivs[j]; }
117 if ( ier != 0 )
return false;
119 residErr = h->
hitRms() * sqrt(
w( 1, 1 ) + 1 );
**********INTEGER nmxhep !maximum number of particles DOUBLE PRECISION vhep INTEGER jdahep COMMON hepevt $ !serial number $ !number of particles $ !status code $ !particle ident KF $ !parent particles $ !childreen particles $ !four momentum
virtual TrkDifTraj & traj()
virtual void print(std::ostream &ostr) const
const IfdKey & myKey() const
virtual bool resid(const TrkHitOnTrk *h, double &residual, double &residErr, bool exclude) const
virtual TrkHelixRep * clone(TrkRecoTrk *newTrack) const
virtual TrkExchangePar helix(double fltLen) const
virtual TrkSimpTraj & simpTraj()
virtual TrkHelixRep * cloneNewHypo(PdtPid::PidType hypo)
TrkHelixRep(const TrkExchangePar &inPar, TrkRecoTrk *myTrack, PdtPid::PidType hypo, const TrkHotList *=0)
virtual void printAll(std::ostream &ostr) const
const TrkRep * getParentRep() const
TrkErrCode getFitStuff(HepVector &derivs, double &deltaChi) const
TrkRecoTrk * parentTrack()
virtual PdtPid::PidType particleType() const
virtual double pt(double fltL=0.) const
virtual int charge() const
TrkSimpleRep(const TrkHotList *, TrkRecoTrk *, PdtPid::PidType)