16#include "CLHEP/Vector/ThreeVector.h"
17#include "CLHEP/Matrix/Vector.h"
18#include "CLHEP/Geometry/Point3D.h"
26 const Trajectory& traj2,
double f2,
double prec)
30 if (
status().failure())
return;
31 calcDist(traj1,traj2);
41 if (
status().failure())
return;
58 static Hep3Vector dirTem2;
69 if (
status().success() != 3) {
72 _doca = delta * between;
74 _doca = (delta - delta.
dot(dir1) * dir1).length();
75 if (dir1.dot(dir2) > 0.) _doca.
flipsign();
105 Hep3Vector fudgeVec(0., 0.1 *
precision(), 0.0);
107 fudgeVec = Hep3Vector(0.1 *
precision(), 0., 0.);
109 posPoint += fudgeVec;
110 delta = posTraj - posPoint;
EvtVector3R cross(const EvtVector3R &p1, const EvtVector3R &p2)
DifNumber dot(const DifVector &v) const
virtual void getInfo(double fltLen, HepPoint3D &pos, Hep3Vector &direction) const =0
TrkDifPoca(const TrkDifTraj &traj1, double flt1, const Trajectory &traj2, double flt2, double precision=1.e-5)
virtual void getDFInfo2(double fltLen, DifPoint &pos, DifVector &direction) const
void setSuccess(int i, const char *str=0)
void setFailure(int i, const char *str=0)
const TrkErrCode & status() const
void minimize(const Trajectory &traj1, double f1, const Trajectory &traj2, double f2)