12#include "TrkFitter/TrkDifLineTraj.h"
15#include "MdcGeom/BesAngle.h"
16#include "TrkFitter/TrkDifLineTraj.h"
17#include "TrkBase/TrkExchangePar.h"
18#include "TrkBase/TrkVisitor.h"
19#include "MdcRecoUtil/DifNumber.h"
20#include "MdcRecoUtil/DifPoint.h"
21#include "MdcRecoUtil/DifVector.h"
23using CLHEP::Hep3Vector;
26 double lowlim,
double hilim,
const HepPoint3D& refpoint) :
32 double lowlim,
double hilim,
const HepPoint3D& refpoint) :
33 TrkSimpTraj(HepVector(NLINPRM,1),HepSymMatrix(NLINPRM,1), lowlim,hilim,refpoint)
37 HepVector subvect(NLINPRM,1);
38 HepSymMatrix submat(NLINPRM,1);
40 subvect[d0Ind] = inpar.
d0();
41 subvect[phi0Ind] = inpar.
phi0();
42 subvect[z0Ind] = inpar.
z0();
43 subvect[tanDipInd] = inpar.
tanDip();
61 h.lowRange(),h.hiRange(),h.referencePoint())
87TrkDifLineTraj::x(
const double& f )
const
94TrkDifLineTraj::y(
const double& f )
const
101TrkDifLineTraj::z(
const double& f )
const
121 return Hep3Vector (
cos(
phi0()) * cdip,
129 return Hep3Vector(0.0, 0.0, 0.0);
146 Hep3Vector& delDir)
const
188 DifNumber cdip = 1. / sqrt(1. + tanDipDf*tanDipDf);
189 DifNumber xx = -d0Df * sphi0 + flt * cphi0 * cdip + px;
190 DifNumber yy = d0Df * cphi0 + flt * sphi0 * cdip + py;
191 DifNumber zz = z0Df + flt * tanDipDf * cdip + pz;
222 HepMatrix ddflct(nLinPrm(),1);
228 ddflct[tanDipIndex()][0] = 1.0/(cosd*cosd);
229 ddflct[d0Index()][0] = 0.0;
230 ddflct[phi0Index()][0] = 0.0;
231 ddflct[z0Index()][0] = -fltlen/cosd;;
234 ddflct[tanDipIndex()][0] = 0;
235 ddflct[d0Index()][0] = -fltlen;
236 ddflct[phi0Index()][0] = 1.0/cosd;
237 ddflct[z0Index()][0] = -(
tanDip()/cosd)*
d0();
252 HepMatrix ddflct(nLinPrm(),1);
258 ddflct[tanDipIndex()][0] = 0.0;
259 ddflct[d0Index()][0] = 0.0;
260 ddflct[phi0Index()][0] = 0.0;
261 ddflct[z0Index()][0] = 1.0/cosd;
264 ddflct[tanDipIndex()][0] = 0;
265 ddflct[d0Index()][0] = 1.0;
266 ddflct[phi0Index()][0] = 0.0;
267 ddflct[z0Index()][0] = 0.0;
282 return HepMatrix(nLinPrm(),1, 0);
287 const HepVector& oldvec,
const HepSymMatrix& oldcov,
288 HepVector& newvec,HepSymMatrix& newcov,
292 std::cout<<
"ErrMsg(fatal)" <<
"TrkDifLineTraj::paramFunc() is not implemented!" << std::endl;
300 for (
unsigned iparam = 0; iparam <
NLINPRM; iparam++) {
305 flags[iparam] =
true;
310 flags[iparam] =
false;
313 flags[iparam] =
false;
double sin(const BesAngle a)
double cos(const BesAngle a)
************Class m_ypar INTEGER m_KeyWgt INTEGER m_nphot INTEGER m_KeyGPS INTEGER m_IsBeamPolarized INTEGER m_EvtGenInterface DOUBLE PRECISION m_Emin DOUBLE PRECISION m_sphot DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_q2 DOUBLE PRECISION m_PolBeam2 DOUBLE PRECISION m_xErrPb *COMMON c_KK2f $ !CMS energy average $ !Spin Polarization vector first beam $ !Spin Polarization vector second beam $ !Beam energy spread[GeV] $ !minimum hadronization energy[GeV] $ !input parameters
HepGeom::Point3D< double > HepPoint3D
void setIndepPar(const DifIndepPar *par)
void cosAndSin(DifNumber &c, DifNumber &s) const
Trajectory & operator=(const Trajectory &)
virtual void getInfo(double fltLen, HepPoint3D &pos, Hep3Vector &dir) const
virtual void visitAccept(TrkVisitor *vis) const
virtual Hep3Vector direction(double fltLen) const
virtual double distTo1stError(double flt, double tol, int pathDir) const
TrkDifLineTraj(const HepVector &, const HepSymMatrix &, double lowlim=-99999., double hilim=99999., const HepPoint3D &refpoint=_theOrigin)
TrkDifLineTraj * clone() const
virtual Hep3Vector delDirect(double) const
virtual void getDFInfo(double fltLen, DifPoint &, DifVector &dir, DifVector &delDir) const
void invertParams(TrkParams *params, std::vector< bool > &flags) const
virtual double distTo2ndError(double flt, double tol, int pathDir) const
HepMatrix derivDeflect(double fltlen, deflectDirection) const
TrkDifLineTraj & operator=(const TrkDifLineTraj &)
HepMatrix derivDisplace(double fltlen, deflectDirection) const
virtual double curvature(double fltLen) const
virtual HepPoint3D position(double fltLen) const
HepMatrix derivPFract(double fltlen) const
const HepSymMatrix & covariance() const
const HepPoint3D & referencePoint() const
virtual void trkVisitLineTraj(const TrkDifLineTraj *)=0