24 #ifndef genfit_StateOnPlane_h
25 #define genfit_StateOnPlane_h
75 bool stopAtBoundary =
false,
76 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToPlane(*
this, plane, stopAtBoundary, calcJacobianNoise);}
78 const TVector3& lineDirection,
79 bool stopAtBoundary =
false,
80 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToLine(*
this, linePoint, lineDirection, stopAtBoundary, calcJacobianNoise);}
82 bool stopAtBoundary =
false,
83 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToPoint(*
this, point, stopAtBoundary, calcJacobianNoise);}
86 bool stopAtBoundary =
false,
87 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToPoint(*
this, point, G, stopAtBoundary, calcJacobianNoise);}
89 const TVector3& linePoint = TVector3(0.,0.,0.),
90 const TVector3& lineDirection = TVector3(0.,0.,1.),
91 bool stopAtBoundary =
false,
92 bool calcJacobianNoise =
false) {
return rep_->
extrapolateToCylinder(*
this, radius, linePoint, lineDirection, stopAtBoundary, calcJacobianNoise);}
94 const TVector3&
point = TVector3(0.,0.,0.),
95 bool stopAtBoundary =
false,
98 bool stopAtBoundary =
false,
99 bool calcJacobianNoise =
false) {
return rep_->
extrapolateBy(*
this, step, stopAtBoundary, calcJacobianNoise);}
101 bool stopAtBoundary =
false,
125 virtual void Print(Option_t* option =
"")
const;
148 state_(0), auxInfo_(0), sharedPlane_(), rep_(rep)
156 state_(state), auxInfo_(0), sharedPlane_(plane), rep_(rep)
163 state_(state), auxInfo_(auxInfo), sharedPlane_(plane), rep_(rep)
186 #endif // genfit_StateOnPlane_h
virtual void setTime(StateOnPlane &state, double time) const =0
Set time at which the state was defined.
int getPDG() const
Get the pdg code.
double extrapolateToCylinder(double radius, const TVector3 &linePoint=TVector3(0., 0., 0.), const TVector3 &lineDirection=TVector3(0., 0., 1.), bool stopAtBoundary=false, bool calcJacobianNoise=false)
boost::shared_ptr< genfit::DetPlane > SharedPlanePtr
Shared Pointer to a DetPlane.
double extrapolateToMeasurement(StateOnPlane &state, const AbsMeasurement *measurement, bool stopAtBoundary=false, bool calcJacobianNoise=false) const
extrapolate to an AbsMeasurement
double extrapolateToPlane(const SharedPlanePtr &plane, bool stopAtBoundary=false, bool calcJacobianNoise=false)
TVectorD get6DState() const
double extrapolateBy(double step, 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 unsigned int getDim() const =0
Get the dimension of the state vector used by the track representation.
void setChargeSign(double charge)
virtual TVectorD get6DState(const StateOnPlane &state) const
Get the 6D state vector (x, y, z, p_x, p_y, p_z).
StateOnPlane & operator=(StateOnPlane other)
virtual double getMomMag(const StateOnPlane &state) const =0
get the magnitude of the momentum in GeV.
Abstract base class for a track representation.
StateOnPlane(const AbsTrackRep *rep=NULL)
virtual double getQop(const StateOnPlane &state) const =0
Get charge over momentum.
double extrapolateToMeasurement(const AbsMeasurement *measurement, bool stopAtBoundary=false, bool calcJacobianNoise=false)
void setState(const TVectorD &state)
void getPosDir(const StateOnPlane &state, TVector3 &pos, TVector3 &dir) const
Get cartesian position and direction vector of a state.
const TVectorD & getAuxInfo() const
void setStatePlane(const TVectorD &state, const SharedPlanePtr &plane)
virtual double getTime(const StateOnPlane &) const =0
Get the time corresponding to the StateOnPlane. Extrapolation.
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...
void setPosMom(const TVector3 &pos, const TVector3 &mom)
virtual void setChargeSign(StateOnPlane &state, double charge) const =0
Set the sign of the charge according to charge.
A state with arbitrary dimension defined in a DetPlane.
void getPosDir(TVector3 &pos, TVector3 &dir) const
const AbsTrackRep * rep_
Shared ownership. '!' in order to silence ROOT, custom streamer writes and reads this.
void swap(StateOnPlane &other)
double extrapolateToPoint(const TVector3 &point, const TMatrixDSym &G, bool stopAtBoundary=false, bool calcJacobianNoise=false)
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)
virtual void Print(Option_t *option="") const
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...
virtual TVector3 getPos(const StateOnPlane &state) const =0
Get the cartesian position of a state.
void setPlane(const SharedPlanePtr &plane)
double extrapolateToLine(const TVector3 &linePoint, const TVector3 &lineDirection, bool stopAtBoundary=false, bool calcJacobianNoise=false)
const AbsTrackRep * getRep() const
virtual TVector3 getMom(const StateOnPlane &state) const =0
Get the cartesian momentum vector of a state.
void getPosMom(TVector3 &pos, TVector3 &mom) const
virtual void getPosMom(const StateOnPlane &state, TVector3 &pos, TVector3 &mom) const =0
Get cartesian position and momentum vector of a state.
void setRep(const AbsTrackRep *rep)
Contains the measurement and covariance in raw detector coordinates.
double getMass(const StateOnPlane &state) const
Get tha particle mass in GeV/c^2.
void setTime(double time)
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 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...
void setAuxInfo(const TVectorD &auxInfo)
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.
virtual void setQop(StateOnPlane &state, double qop) const =0
Set charge/momentum.
const TVectorD & getState() const
TVector3 getDir(const StateOnPlane &state) const
Get the direction vector of a state.
const SharedPlanePtr & getPlane() const
double extrapolateToPoint(const TVector3 &point, bool stopAtBoundary=false, bool calcJacobianNoise=false)
virtual void setPosMom(StateOnPlane &state, const TVector3 &pos, const TVector3 &mom) const =0
Set position and momentum of state.
SharedPlanePtr sharedPlane_