4#include "MdcGeom/Constants.h"
5#include "MdcGeom/BesAngle.h"
6#include "CLHEP/Geometry/Point3D.h"
7#include "CLHEP/Vector/ThreeVector.h"
8#include "CLHEP/Matrix/SymMatrix.h"
9#include "TrkBase/NeutTraj.h"
10#include "TrkBase/TrkVisitor.h"
11#include "MdcRecoUtil/DifNumber.h"
12#include "MdcRecoUtil/DifPoint.h"
13#include "MdcRecoUtil/DifVector.h"
24 n.lowRange(),
n.hiRange())
39 for(
int iend=0;iend<2;iend++)
52NeutTraj::x(
const double& f )
const {
54 return cosDip()*f*
cos(phi0()) - d0()*
sin(phi0());
59NeutTraj::y(
const double& f )
const {
61 return cosDip()*f*
sin(phi0()) + d0()*
cos(phi0());
66NeutTraj::z(
const double& f)
const {
68 return (z0() + f*sinDip());
75 double cdip = cosDip();
76 double sphi0 =
sin(phi0());
77 double cphi0 =
cos(phi0());
79 return HepPoint3D(cdip * f * cphi0 - d0()*sphi0,
80 cdip * f * sphi0 + d0()*cphi0,
81 z0() + f * tanDip() * cdip);
88 return Hep3Vector (
cos(phi0())*cosDip(),
sin(phi0())*cosDip(),
95 return Hep3Vector(0.0, 0.0, 0.0);
114 Hep3Vector& delDir)
const
163 DifNumber x = cDip*s0Df*cosPhi0 - d0Df*sinPhi0;
164 DifNumber y = cDip*s0Df*sinPhi0 + d0Df*cosPhi0;
167 dir =
DifVector( cosPhi0*cDip, sinPhi0*cDip, sDip );
186 double tand = tanDip();
187 double cosd = cosDip();
227 double cosd = cosDip();
277NeutTraj::phi0()
const
284 const HepVector& oldvec,
const HepSymMatrix& oldcov,
285 HepVector& newvec,HepSymMatrix& newcov,
290 HepVector parvec(oldvec);
294 double delx = newpoint.x()-oldpoint.x();
295 double dely = newpoint.y()-oldpoint.y();
296 double delz = newpoint.z()-oldpoint.z();
300 double perp = delx*sin0-dely*cos0;
301 double para = delx*cos0+dely*sin0;
328 (delx/cos0)*(1.+(sin0/cos0));
333 newcov = oldcov.similarity(covrot);
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
HepMatrix derivDeflect(double fltlen, deflectDirection) const
virtual Hep3Vector delDirect(double) const
virtual double distTo1stError(double s, double tol, int pathDir) const
HepMatrix derivDisplace(double fltlen, deflectDirection idir) const
virtual void visitAccept(TrkVisitor *vis) const
void getDFInfo(double fltLen, DifPoint &, DifVector &dir, DifVector &delDir) const
HepMatrix derivPFract(double fltlen) const
NeutTraj & operator=(const NeutTraj &)
virtual double distTo2ndError(double s, double tol, int pathDir) const
virtual HepPoint3D position(double fltLen) const
void invertParams(TrkParams *newparams, std::vector< bool > &flags) const
virtual Hep3Vector direction(double fltLen) const
NeutTraj(const NeutParams &, double lowlim=-99999., double hilim=99999., const HepPoint3D &refpoint=_theOrigin)
void getInfo(double fltLen, HepPoint3D &pos, Hep3Vector &dir) const
virtual void trkVisitNeutTraj(const NeutTraj *)=0
double precision pisqo6 parameter(pi=3.14159265358979d0, pisq=pi *pi, pisqo6=pisq/6d0) double precision zip