LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
PropXYZPlane.h
Go to the documentation of this file.
1 
13 #ifndef PROPXYZPLANE_H
14 #define PROPXYZPLANE_H
15 
17 
18 namespace trkf {
19 
21  {
22  public:
23 
25  PropXYZPlane(double tcut, bool doDedx);
26 
28  virtual ~PropXYZPlane();
29 
30  // Overrides.
31 
33  Propagator* clone() const {return new PropXYZPlane(*this);}
34 
36  boost::optional<double> short_vec_prop(KTrack& trk,
37  const std::shared_ptr<const Surface>& surf,
39  bool doDedx,
40  TrackMatrix* prop_matrix = 0,
41  TrackError* noise_matrix = 0) const;
42 
44  virtual boost::optional<double> origin_vec_prop(KTrack& trk,
45  const std::shared_ptr<const Surface>& porient,
46  TrackMatrix* prop_matrix = 0) const;
47 
48  private:
49 
58 
60 
61  bool transformYZLine(double phi1,
62  double theta2, double phi2,
63  TrackVector& vec,
65  TrackMatrix* prop_matrix) const;
66 
68 
69  bool transformYZPlane(double phi1,
70  double theta2, double phi2,
71  TrackVector& vec,
73  TrackMatrix* prop_matrix) const;
75 
76  bool transformXYZPlane(double theta1, double phi1,
77  double theta2, double phi2,
78  TrackVector& vec,
80  TrackMatrix* prop_matrix) const;
81  };
82 }
83 
84 #endif
TrackDirection
Track direction enum.
Definition: Surface.h:56
KSymMatrix< 5 >::type TrackError
Track error matrix, dimension 5x5.
boost::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
Propagate without error.
Propagator * clone() const
Clone method.
Definition: PropXYZPlane.h:33
virtual ~PropXYZPlane()
Destructor.
bool transformXYZPlane(double theta1, double phi1, double theta2, double phi2, TrackVector &vec, Surface::TrackDirection &dir, TrackMatrix *prop_matrix) const
Transform xyz plane -> xyz plane.
Base class for Kalman filter track propagator.
KVector< 5 >::type TrackVector
Track state vector, dimension 5.
bool transformYZLine(double phi1, double theta2, double phi2, TrackVector &vec, Surface::TrackDirection &dir, TrackMatrix *prop_matrix) const
Transform yz line -> xyz plane.
virtual boost::optional< double > origin_vec_prop(KTrack &trk, const std::shared_ptr< const Surface > &porient, TrackMatrix *prop_matrix=0) const
Propagate without error to surface whose origin parameters coincide with track position.
TDirectory * dir
Definition: macro.C:5
KMatrix< 5, 5 >::type TrackMatrix
General 5x5 matrix.
bool transformYZPlane(double phi1, double theta2, double phi2, TrackVector &vec, Surface::TrackDirection &dir, TrackMatrix *prop_matrix) const
Transform yz plane -> xyz plane.
PropXYZPlane(double tcut, bool doDedx)
Constructor.
PropDirection
Propagation direction enum.
Definition: Propagator.h:92