24 #ifndef genfit_StateOnPlane_h
25 #define genfit_StateOnPlane_h
76 bool stopAtBoundary =
false,
77 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToPlane(*
this, plane, stopAtBoundary, calcJacobianNoise);}
79 const TVector3& lineDirection,
80 bool stopAtBoundary =
false,
81 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToLine(*
this, linePoint, lineDirection, stopAtBoundary, calcJacobianNoise);}
83 bool stopAtBoundary =
false,
84 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToPoint(*
this, point, stopAtBoundary, calcJacobianNoise);}
87 bool stopAtBoundary =
false,
88 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToPoint(*
this, point, G, stopAtBoundary, calcJacobianNoise);}
90 const TVector3& linePoint = TVector3(0.,0.,0.),
91 const TVector3& lineDirection = TVector3(0.,0.,1.),
92 bool stopAtBoundary =
false,
93 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToCylinder(*
this, radius, linePoint, lineDirection, stopAtBoundary, calcJacobianNoise);}
95 const TVector3& conePoint = TVector3(0.,0.,0.),
96 const TVector3& coneDirection = TVector3(0.,0.,1.),
97 bool stopAtBoundary =
false,
98 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToCone(*
this, openingAngle, conePoint, coneDirection, stopAtBoundary, calcJacobianNoise);}
100 const TVector3& point = TVector3(0.,0.,0.),
101 bool stopAtBoundary =
false,
102 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToSphere(*
this, radius, point, stopAtBoundary, calcJacobianNoise);}
104 bool stopAtBoundary =
false,
105 bool calcJacobianNoise =
false) {
return rep_->
extrapolateBy(*
this, step, stopAtBoundary, calcJacobianNoise);}
107 bool stopAtBoundary =
false,
131 virtual void Print(Option_t* option =
"")
const;
154 state_(0), auxInfo_(0), sharedPlane_(), rep_(rep)
162 state_(state), auxInfo_(0), sharedPlane_(plane), rep_(rep)
169 state_(state), auxInfo_(auxInfo), sharedPlane_(plane), rep_(rep)
192 #endif // genfit_StateOnPlane_h
TVector3 getDir(const StateOnPlane &state) const
Get the direction vector of a state.
void setPosMom(const TVector3 &pos, const TVector3 &mom)
const AbsTrackRep * getRep() const
Contains the measurement and covariance in raw detector coordinates.
void setState(const TVectorD &state)
void setStatePlane(const TVectorD &state, const SharedPlanePtr &plane)
virtual double extrapolateToPoint(StateOnPlane &state, const TVector3 &point, bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0
Extrapolates the state to the POCA to a point, and returns the extrapolation length and...
boost::shared_ptr< genfit::DetPlane > SharedPlanePtr
Shared Pointer to a DetPlane.
virtual double extrapolateToCone(StateOnPlane &state, double radius, const TVector3 &linePoint=TVector3(0., 0., 0.), const TVector3 &lineDirection=TVector3(0., 0., 1.), bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0
Extrapolates the state to the cone surface, and returns the extrapolation length and, via reference, the extrapolated state.
double getMass(const StateOnPlane &state) const
Get tha particle mass in GeV/c^2.
double extrapolateToMeasurement(StateOnPlane &state, const AbsMeasurement *measurement, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
extrapolate to an AbsMeasurement
virtual TVector3 getMom(const StateOnPlane &state) const =0
Get the cartesian momentum vector of a state.
const TVectorD & getState() const
virtual double extrapolateToCylinder(StateOnPlane &state, double radius, const TVector3 &linePoint=TVector3(0., 0., 0.), const TVector3 &lineDirection=TVector3(0., 0., 1.), bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0
Extrapolates the state to the cylinder surface, and returns the extrapolation length and...
double extrapolateToLine(const TVector3 &linePoint, const TVector3 &lineDirection, bool stopAtBoundary=false, bool calcJacobianNoise=false)
StateOnPlane & operator=(StateOnPlane other)
virtual void Print(Option_t *option="") const
virtual double extrapolateToPlane(StateOnPlane &state, const genfit::SharedPlanePtr &plane, bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0
Extrapolates the state to plane, and returns the extrapolation length and, via reference, the extrapolated state.
double extrapolateToPoint(const TVector3 &point, bool stopAtBoundary=false, bool calcJacobianNoise=false)
const TVectorD & getAuxInfo() const
void setAuxInfo(const TVectorD &auxInfo)
void setPlane(const SharedPlanePtr &plane)
virtual void setPosMom(StateOnPlane &state, const TVector3 &pos, const TVector3 &mom) const =0
Set position and momentum of state.
void getPosDir(const StateOnPlane &state, TVector3 &pos, TVector3 &dir) const
Get cartesian position and direction vector of a state.
virtual double getTime(const StateOnPlane &) const =0
Get the time corresponding to the StateOnPlane. Extrapolation.
double extrapolateBy(double step, bool stopAtBoundary=false, bool calcJacobianNoise=false)
StateOnPlane(const AbsTrackRep *rep=NULL)
virtual double extrapolateBy(StateOnPlane &state, double step, bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0
Extrapolates the state by step (cm) and returns the extrapolation length and, via reference...
double extrapolateToMeasurement(const AbsMeasurement *measurement, bool stopAtBoundary=false, bool calcJacobianNoise=false)
void setRep(const AbsTrackRep *rep)
double extrapolateToPoint(const TVector3 &point, const TMatrixDSym &G, bool stopAtBoundary=false, bool calcJacobianNoise=false)
virtual TVectorD get6DState(const StateOnPlane &state) const
Get the 6D state vector (x, y, z, p_x, p_y, p_z).
virtual TVector3 getPos(const StateOnPlane &state) const =0
Get the cartesian position of a state.
virtual void setTime(StateOnPlane &state, double time) const =0
Set time at which the state was defined.
void swap(StateOnPlane &other)
const AbsTrackRep * rep_
Shared ownership. '!' in order to silence ROOT, custom streamer writes and reads this.
void setChargeSign(double charge)
virtual void setQop(StateOnPlane &state, double qop) const =0
Set charge/momentum.
Abstract base class for a track representation.
virtual void getPosMom(const StateOnPlane &state, TVector3 &pos, TVector3 &mom) const =0
Get cartesian position and momentum vector of a state.
void getPosMom(TVector3 &pos, TVector3 &mom) const
TVectorD get6DState() const
virtual StateOnPlane * clone() const
double extrapolateToCone(double openingAngle, const TVector3 &conePoint=TVector3(0., 0., 0.), const TVector3 &coneDirection=TVector3(0., 0., 1.), bool stopAtBoundary=false, bool calcJacobianNoise=false)
void setTime(double time)
void getPosDir(TVector3 &pos, TVector3 &dir) const
double extrapolateToPlane(const SharedPlanePtr &plane, bool stopAtBoundary=false, bool calcJacobianNoise=false)
const SharedPlanePtr & getPlane() const
A state with arbitrary dimension defined in a DetPlane.
virtual double extrapolateToLine(StateOnPlane &state, const TVector3 &linePoint, const TVector3 &lineDirection, bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0
Extrapolates the state to the POCA to a line, and returns the extrapolation length and...
virtual double getMomMag(const StateOnPlane &state) const =0
get the magnitude of the momentum in GeV.
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)
virtual double extrapolateToSphere(StateOnPlane &state, double radius, const TVector3 &point=TVector3(0., 0., 0.), bool stopAtBoundary=false, bool calcJacobianNoise=false) const =0
Extrapolates the state to the sphere surface, and returns the extrapolation length and...
virtual double getQop(const StateOnPlane &state) const =0
Get charge over momentum.
virtual double getCharge(const StateOnPlane &state) const =0
Get the (fitted) charge of a state. This is not always equal the pdg charge (e.g. if the charge sign ...
void setPosMom(const TVectorD &state6)
int getPDG() const
Get the pdg code.
SharedPlanePtr sharedPlane_
virtual void setChargeSign(StateOnPlane &state, double charge) const =0
Set the sign of the charge according to charge.
Defines for I/O streams used for error and debug printing.
virtual unsigned int getDim() const =0
Get the dimension of the state vector used by the track representation.