LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
PropYZPlane.h
Go to the documentation of this file.
1 
13 #ifndef PROPYZPLANE_H
14 #define PROPYZPLANE_H
15 
17 
18 namespace detinfo {
19  class DetectorPropertiesData;
20 }
21 
22 namespace trkf {
23 
24  class PropYZPlane : public trkf::Propagator {
25  public:
26  PropYZPlane(detinfo::DetectorPropertiesData const& detProp, double tcut, bool doDedx);
27 
29  Propagator* clone() const override { return new PropYZPlane(*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 phi2,
58  TrackVector& vec,
60  TrackMatrix* prop_matrix) const;
61 
63 
64  bool transformYZPlane(double phi1,
65  double phi2,
66  TrackVector& vec,
68  TrackMatrix* prop_matrix) const;
70 
71  bool transformXYZPlane(double theta1,
72  double phi1,
73  double phi2,
74  TrackVector& vec,
76  TrackMatrix* prop_matrix) const;
77  };
78 }
79 
80 #endif
TrackDirection
Track direction enum.
Definition: Surface.h:54
KSymMatrix< 5 >::type TrackError
Track error matrix, dimension 5x5.
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
Propagator * clone() const override
Clone method.
Definition: PropYZPlane.h:29
PropDirection
Propagation direction enum.
Definition: Propagator.h:94