83 #include "boost/optional.hpp" 95 Propagator(
double tcut,
bool doDedx,
const std::shared_ptr<const Interactor>& interactor);
113 const std::shared_ptr<const Surface>& psurf,
121 const std::shared_ptr<const Surface>& porient,
126 const std::shared_ptr<const Surface>& psurf,
134 const std::shared_ptr<const Surface>& psurf,
142 const std::shared_ptr<const Surface>& psurf,
150 const std::shared_ptr<const Surface>& psurf,
156 boost::optional<double>
dedx_prop(
double pinv,
double mass,
157 double s,
double* deriv=0)
const;
KSymMatrix< 5 >::type TrackError
Track error matrix, dimension 5x5.
boost::optional< double > dedx_prop(double pinv, double mass, double s, double *deriv=0) const
Method to calculate updated momentum due to dE/dx.
Base class for Kalman filter track interactor.
const std::shared_ptr< const Interactor > & getInteractor() const
double fTcut
Maximum delta ray energy for dE/dx.
virtual ~Propagator()
Destructor.
boost::optional< double > noise_prop(KETrack &tre, const std::shared_ptr< const Surface > &psurf, PropDirection dir, bool doDedx, KTrack *ref=0) const
Propagate with error and noise.
boost::optional< double > err_prop(KETrack &tre, const std::shared_ptr< const Surface > &psurf, PropDirection dir, bool doDedx, KTrack *ref=0, TrackMatrix *prop_matrix=0) const
Propagate with error, but without noise.
Propagator(double tcut, bool doDedx, const std::shared_ptr< const Interactor > &interactor)
Constructor.
boost::optional< double > vec_prop(KTrack &trk, const std::shared_ptr< const Surface > &psurf, PropDirection dir, bool doDedx, TrackMatrix *prop_matrix=0, TrackError *noise_matrix=0) const
Propagate without error (long distance).
Kalman filter linear algebra typedefs.
KMatrix< 5, 5 >::type TrackMatrix
General 5x5 matrix.
std::shared_ptr< const Interactor > fInteractor
Interactor (for calculating noise).
bool fDoDedx
Energy loss enable flag.
boost::optional< double > lin_prop(KTrack &trk, const std::shared_ptr< const Surface > &psurf, PropDirection dir, bool doDedx, KTrack *ref=0, TrackMatrix *prop_matrix=0, TrackError *noise_matrix=0) const
Linearized propagate without error.
virtual boost::optional< double > origin_vec_prop(KTrack &trk, const std::shared_ptr< const Surface > &porient, TrackMatrix *prop_matrix=0) const =0
Propagate without error to surface whose origin parameters coincide with track position.
Basic Kalman filter track class, with error.
virtual boost::optional< double > short_vec_prop(KTrack &trk, const std::shared_ptr< const Surface > &psurf, PropDirection dir, bool doDedx, TrackMatrix *prop_matrix=0, TrackError *noise_matrix=0) const =0
Propagate without error (short distance).
virtual Propagator * clone() const =0
Clone method.
PropDirection
Propagation direction enum.