PropAny.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 ///
3 /// \file PropAny.h
4 ///
5 /// \brief Propagate between any two surfaces.
6 ///
7 /// \author H. Greenlee
8 ///
9 /// Class for propagating between any two surfaces. This propagator
10 /// tests the type of the destination surface, and calls the
11 /// propagator.
12 ///
13 ////////////////////////////////////////////////////////////////////////
14 
15 #ifndef PROPANY_H
16 #define PROPANY_H
17 
22 
23 namespace trkf {
24 
25  class PropAny : public trkf::Propagator {
26  public:
27  /// Constructor.
28  PropAny(detinfo::DetectorPropertiesData const& detProp, double tcut, bool doDedx);
29 
30  Propagator*
31  clone() const override
32  {
33  return new PropAny(*this);
34  }
35 
36  /// Propagate without error.
37  std::optional<double> short_vec_prop(KTrack& trk,
38  const std::shared_ptr<const Surface>& surf,
40  bool doDedx,
41  TrackMatrix* prop_matrix = 0,
42  TrackError* noise_matrix = 0) const override;
43 
44  /// Propagate without error to surface whose origin parameters coincide with track position.
45  virtual std::optional<double> origin_vec_prop(KTrack& trk,
46  const std::shared_ptr<const Surface>& porient,
47  TrackMatrix* prop_matrix = 0) const override;
48 
49  private:
50  /// Underlying propagators.
51 
55  };
56 }
57 
58 #endif
Propagate to PropYZPlane surface.
virtual std::optional< double > origin_vec_prop(KTrack &trk, const std::shared_ptr< const Surface > &porient, TrackMatrix *prop_matrix=0) const override
Propagate without error to surface whose origin parameters coincide with track position.
Definition: PropAny.cxx:96
KSymMatrix< 5 >::type TrackError
Track error matrix, dimension 5x5.
PropYZPlane fPropYZPlane
Definition: PropAny.h:53
string dir
PropYZLine fPropYZLine
Underlying propagators.
Definition: PropAny.h:52
Propagate to SurfYZLine surface.
Propagate to SurfXYZPlane surface.
Propagator * clone() const override
Clone method.
Definition: PropAny.h:31
Base class for Kalman filter track propagator.
PropXYZPlane fPropXYZPlane
Definition: PropAny.h:54
std::optional< double > short_vec_prop(KTrack &trk, const std::shared_ptr< const Surface > &surf, Propagator::PropDirection dir, bool doDedx, TrackMatrix *prop_matrix=0, TrackError *noise_matrix=0) const override
Propagate without error.
Definition: PropAny.cxx:55
KMatrix< 5, 5 >::type TrackMatrix
General 5x5 matrix.
PropAny(detinfo::DetectorPropertiesData const &detProp, double tcut, bool doDedx)
Constructor.
Definition: PropAny.cxx:27
PropDirection
Propagation direction enum.
Definition: Propagator.h:94