LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
PropXYZPlane.h
Go to the documentation of this file.
1 
13 #ifndef PROPXYZPLANE_H
14 #define PROPXYZPLANE_H
15 
17 
18 namespace detinfo {
19  class DetectorPropertiesData;
20 }
21 
22 namespace trkf {
23 
24  class PropXYZPlane : public trkf::Propagator {
25  public:
27  PropXYZPlane(detinfo::DetectorPropertiesData const& detProp, double tcut, bool doDedx);
28 
29  Propagator* clone() const override { return new PropXYZPlane(*this); }
30 
32  std::optional<double> short_vec_prop(KTrack& trk,
33  const std::shared_ptr<const Surface>& surf,
35  bool doDedx,
36  TrackMatrix* prop_matrix = 0,
37  TrackError* noise_matrix = 0) const override;
38 
40  std::optional<double> origin_vec_prop(KTrack& trk,
41  const std::shared_ptr<const Surface>& porient,
42  TrackMatrix* prop_matrix = 0) const override;
43 
44  private:
53 
55 
56  bool transformYZLine(double phi1,
57  double theta2,
58  double phi2,
59  TrackVector& vec,
61  TrackMatrix* prop_matrix) const;
62 
64 
65  bool transformYZPlane(double phi1,
66  double theta2,
67  double phi2,
68  TrackVector& vec,
70  TrackMatrix* prop_matrix) const;
72 
73  bool transformXYZPlane(double theta1,
74  double phi1,
75  double theta2,
76  double phi2,
77  TrackVector& vec,
79  TrackMatrix* prop_matrix) const;
80  };
81 }
82 
83 #endif
TrackDirection
Track direction enum.
Definition: Surface.h:54
KSymMatrix< 5 >::type TrackError
Track error matrix, dimension 5x5.
Propagator * clone() const override
Clone method.
Definition: PropXYZPlane.h:29
KMatrix< 5, 5 >::type TrackMatrix
General 5x5 matrix.
Base class for Kalman filter track propagator.
KVector< 5 >::type TrackVector
Track state vector, dimension 5.
General LArSoft Utilities.
TDirectory * dir
Definition: macro.C:5
PropDirection
Propagation direction enum.
Definition: Propagator.h:94