4#include "JGeometry3D/JVertex3D.hh"
5#include "JGeometry3D/JVersor3D.hh"
6#include "JGeometry3D/JAxis3D.hh"
7#include "JPhysics/JConstants.hh"
15namespace JPP {
using namespace JFIT; }
19 using JGEOMETRY3D::JVertex3D;
20 using JGEOMETRY3D::JVersor3D;
21 using JGEOMETRY3D::JAxis3D;
32 using JVertex3D::getZ;
33 using JVertex3D::getT;
62 void move(
const double step,
const double velocity)
65 __t += step / velocity;
75 void setZ(
const double z,
const double velocity)
89 const double dx = pos.getX() - this->getX();
90 const double dy = pos.getY() - this->getY();
114 inline double getT(
const JVector3D& pos)
const
118 const double dx = pos.getX() - this->getX();
119 const double dy = pos.getY() - this->getY();
120 const double dz = pos.getZ() - this->
getZ();
122 const double R = sqrt(dx*dx + dy*dy);
124 return this->
getT() + (dz + R * getKappaC()) * getInverseSpeedOfLight();
134 double getZ(
const JPosition3D& pos)
const
138 return pos.getZ() - this->
getDistance(pos) / getTanThetaC();
152 double dx = pos.getX() - this->getX();
153 double dy = pos.getY() - this->getY();
155 const double R = sqrt(dx*dx + dy*dy);
157 dx *= getSinThetaC() / R;
158 dy *= getSinThetaC() / R;
160 const double dz = getCosThetaC();
162 return JVersor3D(dx,dy,dz);
172 inline double getDot(
const JAxis3D& axis)
const
174 return getDirection(axis.getPosition()).getDot(axis.getDirection());
Data structure for fit of straight line paralel to z-axis.
static parameter_type pY()
double getDot(const JAxis3D &axis) const
Get cosine angle of impact of Cherenkov light on PMT.
JLine1Z()
Default constructor.
double getT(const JVector3D &pos) const
Get arrival time of Cherenkov light at given position.
double getZ(const JPosition3D &pos) const
Get point of emission of Cherenkov light along muon path.
double getDistanceSquared(const JVector3D &pos) const
Get distance squared.
static parameter_type pX()
double getDistance(const JVector3D &pos) const
Get distance.
JLine1Z(const JVector3D &pos, const double t)
Constructor.
double JLine1Z::* parameter_type
static parameter_type pT()
void setZ(const double z, const double velocity)
Set z-position of vertex.
void move(const double step, const double velocity)
Move vertex along this line with given velocity.
JVersor3D getDirection(const JVector3D &pos) const
Get photon direction of Cherenkov light on PMT.
Auxiliary classes and methods for linear and iterative data regression.