1 #ifndef TRACKSTATEPROPAGATOR_H 2 #define TRACKSTATEPROPAGATOR_H 12 class DetectorProperties;
51 Comment(
"Minimum propagation step length guaranteed."),
56 Comment(
"Maximum propagation step length based on fraction of energy loss."),
61 Comment(
"Maximum number of iterations when applying material effects."),
66 Comment(
"Maximum delta ray energy for dE/dx."),
70 Name(
"wrongDirDistTolerance"),
71 Comment(
"Allowed propagation distance in the wrong direction."),
76 Comment(
"Propagate error on 1/p or not (in order to avoid infs, it should be set to false when 1/p not updated)."),
86 TrackStatePropagator(
double minStep,
double maxElossFrac,
int maxNit,
double tcut,
double wrongDirDistTolerance,
bool propPinvErr);
104 double distanceToPlane(
bool& success,
const Point_t& origpos,
const Vector_t& origdir,
const Plane& target)
const;
112 double perpDistanceToPlane(
bool& success,
const Point_t& origpos,
const Plane& target)
const;
120 std::pair<double, double> distancePairToPlane(
bool& success,
const Point_t& origpos,
const Vector_t& origdir,
const Plane& target)
const;
128 void apply_dedx(
double& pinv,
double dedx,
double e1,
double mass,
double s,
double& deriv)
const;
131 bool apply_mcs(
double dudw,
double dvdw,
double pinv,
double mass,
double s,
double range,
double p,
double e2,
bool flipSign,
SMatrixSym55& noise_matrix)
const;
Class for track parameters (and errors) defined on a recob::tracking::Plane.
double perpDistanceToPlane(bool &success, const TrackState &origin, const Plane &target) const
Distance of a TrackState (Point) to a Plane along the direction orthogonal to the Plane...
int fMaxNit
Maximum number of iterations.
cout<< "-> Edep in the target
const Vector_t & momentum() const
momentum of the track
recob::tracking::SMatrixSym55 SMatrixSym55
TrackStatePropagator(Parameters const &p)
Constructor from Parameters (fhicl::Table<Config>).
Class for propagation of a trkf::TrackState to a recob::tracking::Plane.
recob::tracking::Point_t Point_t
double fMinStep
Minimum propagation step length guaranteed.
const Point_t & position() const
position of the track
double fTcut
Maximum delta ray energy for dE/dx.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< Coord_t >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space. See recob::tracking::Coord_t for more details on the ...
PropDirection
Propagation direction enum.
recob::tracking::SVector6 SVector6
TrackState rotateToPlane(bool &success, const TrackState &origin, const Plane &target) const
Rotation of a TrackState to a Plane (zero distance propagation)
Point_t propagatedPosByDistance(const Point_t &origpos, const Vector_t &origdir, double distance) const
Quick accesss to the propagated position given a distance.
std::pair< double, double > distancePairToPlane(bool &success, const TrackState &origin, const Plane &target) const
Return both direction types in one go.
General LArSoft Utilities.
const detinfo::LArProperties * larprop
Class defining a plane for tracking. It provides various functionalities to convert track parameters ...
bool fPropPinvErr
Propagate error on 1/p or not (in order to avoid infs, it should be set to false when 1/p not updated...
double fWrongDirDistTolerance
Allowed propagation distance in the wrong direction.
double distanceToPlane(bool &success, const TrackState &origin, const Plane &target) const
Distance of a TrackState (Point and Vector) to a Plane, along the TrackState direction.
ROOT::Math::SVector< Double32_t, 6 > SVector6
const detinfo::DetectorProperties * detprop
double fMaxElossFrac
Maximum propagation step length based on fraction of energy loss.
recob::tracking::Plane Plane
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< Coord_t >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space. See recob::tracking::Coord_t for more detai...
recob::tracking::Vector_t Vector_t
constexpr Point origin()
Returns a origin position with a point of the specified type.
double getTcut() const
get Tcut parameter used in DetectorPropertiesService Eloss method