LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
PropYZLine.h
Go to the documentation of this file.
1 
13 #ifndef PROPYZLINE_H
14 #define PROPYZLINE_H
15 
17 
18 namespace detinfo {
19  class DetectorPropertiesData;
20 }
21 
22 namespace trkf {
23 
24  class PropYZLine : public trkf::Propagator {
25  public:
26  PropYZLine(detinfo::DetectorPropertiesData const& detProp, double tcut, bool doDedx);
27 
28  Propagator* clone() const override { return new PropYZLine(*this); }
29 
31  std::optional<double> short_vec_prop(KTrack& trk,
32  const std::shared_ptr<const Surface>& surf,
34  bool doDedx,
35  TrackMatrix* prop_matrix = 0,
36  TrackError* noise_matrix = 0) const override;
37 
39  std::optional<double> origin_vec_prop(KTrack& trk,
40  const std::shared_ptr<const Surface>& porient,
41  TrackMatrix* prop_matrix = 0) const override;
42 
43  private:
52 
54 
55  bool transformYZLine(double phi1,
56  double phi2,
57  TrackVector& vec,
59  TrackMatrix* prop_matrix) const;
60 
62 
63  bool transformYZPlane(double phi1,
64  double phi2,
65  TrackVector& vec,
67  TrackMatrix* prop_matrix) const;
69 
70  bool transformXYZPlane(double theta1,
71  double phi1,
72  double phi2,
73  TrackVector& vec,
75  TrackMatrix* prop_matrix) const;
76  };
77 }
78 
79 #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.
Propagator * clone() const override
Clone method.
Definition: PropYZLine.h:28
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