1 #ifndef TRACKSTATEPROPAGATOR_H
2 #define TRACKSTATEPROPAGATOR_H
4 #include "fhiclcpp/types/Atom.h"
5 #include "fhiclcpp/types/Table.h"
13 class DetectorPropertiesData;
49 Comment(
"Minimum propagation step length guaranteed."),
53 Comment(
"Maximum propagation step length based on fraction of energy loss."),
57 Comment(
"Maximum number of iterations when applying material effects."),
59 fhicl::Atom<double>
tcut{
Name(
"tcut"),
Comment(
"Maximum delta ray energy for dE/dx."), 10.};
61 Name(
"wrongDirDistTolerance"),
62 Comment(
"Allowed propagation distance in the wrong direction."),
66 Comment(
"Propagate error on 1/p or not (in order to avoid infs, it should be set to false "
67 "when 1/p not updated)."),
80 double wrongDirDistTolerance,
89 p().wrongDirDistTolerance(),
114 return origpos + distance * origdir;
122 const Plane& target)
const;
145 const Plane& target)
const;
146 std::pair<double, double>
160 double& deriv)
const;
187 double& dw2dw1)
const;
Class for track parameters (and errors) defined on a recob::tracking::Plane.
double perpDistanceToPlane(bool &success, const TrackState &origin, const Plane &target) const
int fMaxNit
Maximum number of iterations.
fhicl::Atom< bool > propPinvErr
BEGIN_PROLOG true icarus_rawdigitfilter FilterTools FilterPlane1 Plane
fhicl::Atom< double > wrongDirDistTolerance
recob::tracking::Point_t Point_t
recob::tracking::Vector_t Vector_t
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.
fhicl::Atom< double > minStep
TrackState propagateToPlane(bool &success, const detinfo::DetectorPropertiesData &detProp, const TrackState &origin, const Plane &target, bool dodedx, bool domcs, PropDirection dir=FORWARD) const
Main function for propagation of a TrackState to a Plane.
double distanceToPlane(bool &success, const Point_t &origpos, const Vector_t &origdir, const Plane &target) const
Distance of a TrackState (Point and Vector) to a Plane, along the TrackState direction.
bool apply_mcs(detinfo::DetectorPropertiesData const &detProp, double dudw, double dvdw, double pinv, double mass, double s, double range, double p, double e2, bool flipSign, SMatrixSym55 &noise_matrix) const
Apply multiple coulomb scattering.
recob::tracking::Point_t Point_t
double fMinStep
Minimum propagation step length guaranteed.
void apply_dedx(double &pinv, detinfo::DetectorPropertiesData const &detProp, double dedx, double e1, double mass, double s, double &deriv) const
Apply energy loss.
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 ...
double distance(geo::Point_t const &point, CathodeDesc_t const &cathode)
Returns the distance of a point from the cathode.
PropDirection
Propagation direction enum.
recob::tracking::SVector6 SVector6
TrackStatePropagator(double minStep, double maxElossFrac, int maxNit, double tcut, double wrongDirDistTolerance, bool propPinvErr)
Constructor from parameter values.
TrackState rotateToPlane(bool &success, const TrackState &origin, const Plane &target) const
Rotation of a TrackState to a Plane (zero distance propagation)
fhicl::Table< Config > Parameters
Point_t propagatedPosByDistance(const Point_t &origpos, const Vector_t &origdir, double distance) const
Quick accesss to the propagated position given a distance.
double perpDistanceToPlane(bool &success, const Point_t &origpos, const Plane &target) const
Distance of a TrackState (Point) to a Plane along the direction orthogonal to the Plane...
BEGIN_PROLOG vertical distance to the surface Name
std::pair< double, double > distancePairToPlane(bool &success, const TrackState &origin, const Plane &target) const
std::pair< double, double > distancePairToPlane(bool &success, const Point_t &origpos, const Vector_t &origdir, const Plane &target) const
Return both direction types in one go.
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...
fhicl::Atom< double > tcut
double fWrongDirDistTolerance
Allowed propagation distance in the wrong direction.
then echo File list $list not found else cat $list while read file do echo $file sed s
double distanceToPlane(bool &success, const TrackState &origin, const Plane &target) const
fhicl::Atom< int > maxNit
ROOT::Math::SVector< Double32_t, 6 > SVector6
double fMaxElossFrac
Maximum propagation step length based on fraction of energy loss.
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
fhicl::Atom< double > maxElossFrac
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