24#ifndef genfit_StateOnPlane_h
25#define genfit_StateOnPlane_h
79 bool stopAtBoundary =
false,
80 bool calcJacobianNoise =
false) {
return rep_->extrapolateToPlane(*
this, plane, stopAtBoundary, calcJacobianNoise);}
82 const TVector3& lineDirection,
83 bool stopAtBoundary =
false,
84 bool calcJacobianNoise =
false) {
return rep_->extrapolateToLine(*
this, linePoint, lineDirection, stopAtBoundary, calcJacobianNoise);}
86 bool stopAtBoundary =
false,
87 bool calcJacobianNoise =
false) {
return rep_->extrapolateToPoint(*
this, point, stopAtBoundary, calcJacobianNoise);}
90 bool stopAtBoundary =
false,
91 bool calcJacobianNoise =
false) {
return rep_->extrapolateToPoint(*
this, point, G, stopAtBoundary, calcJacobianNoise);}
93 const TVector3& linePoint = TVector3(0.,0.,0.),
94 const TVector3& lineDirection = TVector3(0.,0.,1.),
95 bool stopAtBoundary =
false,
96 bool calcJacobianNoise =
false) {
return rep_->extrapolateToCylinder(*
this, radius, linePoint, lineDirection, stopAtBoundary, calcJacobianNoise);}
98 const TVector3& conePoint = TVector3(0.,0.,0.),
99 const TVector3& coneDirection = TVector3(0.,0.,1.),
100 bool stopAtBoundary =
false,
101 bool calcJacobianNoise =
false) {
return rep_->extrapolateToCone(*
this, openingAngle, conePoint, coneDirection, stopAtBoundary, calcJacobianNoise);}
103 const TVector3& point = TVector3(0.,0.,0.),
104 bool stopAtBoundary =
false,
105 bool calcJacobianNoise =
false) {
return rep_->extrapolateToSphere(*
this, radius, point, stopAtBoundary, calcJacobianNoise);}
107 bool stopAtBoundary =
false,
108 bool calcJacobianNoise =
false) {
return rep_->extrapolateBy(*
this, step, stopAtBoundary, calcJacobianNoise);}
110 bool stopAtBoundary =
false,
111 bool calcJacobianNoise =
false) {
return rep_->extrapolateToMeasurement(*
this, measurement, stopAtBoundary, calcJacobianNoise);}
117 void getPosMom(TVector3& pos, TVector3& mom)
const {
rep_->getPosMom(*
this, pos, mom);}
118 void getPosDir(TVector3& pos, TVector3& dir)
const {
rep_->getPosDir(*
this, pos, dir);}
127 void setPosMom(
const TVector3& pos,
const TVector3& mom) {
rep_->setPosMom(*
this, pos, mom);}
134 virtual void Print(Option_t* option =
"")
const;
159 if (rep !=
nullptr) {
167 assert(rep !=
nullptr);
174 assert(rep !=
nullptr);
Contains the measurement and covariance in raw detector coordinates.
Abstract base class for a track representation.
virtual unsigned int getDim() const =0
Get the dimension of the state vector used by the track representation.
A state with arbitrary dimension defined in a DetPlane.
void setPlane(const SharedPlanePtr &plane)
double extrapolateToCone(double openingAngle, const TVector3 &conePoint=TVector3(0., 0., 0.), const TVector3 &coneDirection=TVector3(0., 0., 1.), bool stopAtBoundary=false, bool calcJacobianNoise=false)
double extrapolateToLine(const TVector3 &linePoint, const TVector3 &lineDirection, bool stopAtBoundary=false, bool calcJacobianNoise=false)
void setPosMom(const TVectorD &state6)
double extrapolateBy(double step, bool stopAtBoundary=false, bool calcJacobianNoise=false)
double extrapolateToPoint(const TVector3 &point, const TMatrixDSym &G, bool stopAtBoundary=false, bool calcJacobianNoise=false)
void setChargeSign(double charge)
virtual StateOnPlane * clone() const
const TVectorD & getState() const
double extrapolateToCylinder(double radius, const TVector3 &linePoint=TVector3(0., 0., 0.), const TVector3 &lineDirection=TVector3(0., 0., 1.), bool stopAtBoundary=false, bool calcJacobianNoise=false)
double extrapolateToSphere(double radius, const TVector3 &point=TVector3(0., 0., 0.), bool stopAtBoundary=false, bool calcJacobianNoise=false)
double extrapolateToPlane(const SharedPlanePtr &plane, bool stopAtBoundary=false, bool calcJacobianNoise=false)
virtual void Print(Option_t *option="") const
SharedPlanePtr sharedPlane_
const AbsTrackRep * rep_
Shared ownership. '!' in order to silence ROOT, custom streamer writes and reads this.
double extrapolateToPoint(const TVector3 &point, bool stopAtBoundary=false, bool calcJacobianNoise=false)
void getPosDir(TVector3 &pos, TVector3 &dir) const
StateOnPlane(const genfit::StateOnPlane &)=default
TVectorD get6DState() const
StateOnPlane & operator=(StateOnPlane other)
void setPosMom(const TVector3 &pos, const TVector3 &mom)
void setAuxInfo(const TVectorD &auxInfo)
void swap(StateOnPlane &other)
void setTime(double time)
double extrapolateToMeasurement(const AbsMeasurement *measurement, bool stopAtBoundary=false, bool calcJacobianNoise=false)
void setState(const TVectorD &state)
void getPosMom(TVector3 &pos, TVector3 &mom) const
void setRep(const AbsTrackRep *rep)
void setStatePlane(const TVectorD &state, const SharedPlanePtr &plane)
const AbsTrackRep * getRep() const
const TVectorD & getAuxInfo() const
const SharedPlanePtr & getPlane() const
Defines for I/O streams used for error and debug printing.
std::shared_ptr< genfit::DetPlane > SharedPlanePtr
Shared Pointer to a DetPlane.