LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
SurfYZPlane.h
Go to the documentation of this file.
1 
39 #ifndef SURFYZPLANE_H
40 #define SURFYZPLANE_H
41 
43 
44 namespace trkf {
45 
46  class SurfYZPlane : public SurfPlane {
47  public:
49  SurfYZPlane();
50 
52  SurfYZPlane(double x0, double y0, double z0, double phi);
53 
55  virtual ~SurfYZPlane();
56 
57  // Accessors.
58  double x0() const { return fX0; }
59  double y0() const { return fY0; }
60  double z0() const { return fZ0; }
61  double phi() const { return fPhi; }
62 
64  virtual Surface* clone() const;
65 
67  virtual bool isTrackValid(const TrackVector& vec) const;
68 
70  virtual void toLocal(const double xyz[3], double uvw[3]) const;
71 
73  virtual void toGlobal(const double uvw[3], double xyz[3]) const;
74 
76  virtual void getPosition(const TrackVector& vec, double xyz[3]) const;
77 
79  virtual void getMomentum(const TrackVector& vec,
80  double mom[3],
81  TrackDirection dir = UNKNOWN) const;
82 
84  virtual bool isParallel(const Surface& surf) const;
85 
87  virtual double distanceTo(const Surface& surf) const;
88 
90  virtual bool isEqual(const Surface& surf) const;
91 
93  virtual std::ostream& Print(std::ostream& out) const;
94 
95  private:
96  // Static attributes.
97 
98  static double fPhiTolerance;
99  static double fSepTolerance;
100 
101  // Attributes.
102 
103  double fX0;
104  double fY0;
105  double fZ0;
106  double fPhi;
107  };
108 }
109 
110 #endif
static double fSepTolerance
Separation tolerance for equal.
Definition: SurfYZPlane.h:99
TrackDirection
Track direction enum.
Definition: Surface.h:54
double fPhi
Rotation angle about x-axis.
Definition: SurfYZPlane.h:106
double z0() const
Z origin.
Definition: SurfYZPlane.h:60
double x0() const
X origin.
Definition: SurfYZPlane.h:58
static double fPhiTolerance
Phi tolerance for parallel.
Definition: SurfYZPlane.h:98
virtual ~SurfYZPlane()
Destructor.
Definition: SurfYZPlane.cxx:38
virtual bool isParallel(const Surface &surf) const
Test whether two surfaces are parallel, within tolerance.
virtual double distanceTo(const Surface &surf) const
Find perpendicular forward distance to a parallel surface.
virtual void getMomentum(const TrackVector &vec, double mom[3], TrackDirection dir=UNKNOWN) const
Get momentum vector of track.
double y0() const
Y origin.
Definition: SurfYZPlane.h:59
virtual bool isTrackValid(const TrackVector &vec) const
Surface-specific tests of validity of track parameters.
Definition: SurfYZPlane.cxx:47
KVector< 5 >::type TrackVector
Track state vector, dimension 5.
virtual void toLocal(const double xyz[3], double uvw[3]) const
Transform global to local coordinates.
Definition: SurfYZPlane.cxx:59
virtual std::ostream & Print(std::ostream &out) const
Printout.
virtual void toGlobal(const double uvw[3], double xyz[3]) const
Transform local to global coordinates.
Definition: SurfYZPlane.cxx:81
SurfYZPlane()
Default constructor.
Definition: SurfYZPlane.cxx:24
virtual bool isEqual(const Surface &surf) const
Test two surfaces for equality, within tolerance.
Base class for Kalman filter planar surfaces.
TDirectory * dir
Definition: macro.C:5
double phi() const
Rotation angle about x-axis.
Definition: SurfYZPlane.h:61
double fZ0
Z origin.
Definition: SurfYZPlane.h:105
virtual void getPosition(const TrackVector &vec, double xyz[3]) const
Get position of track.
virtual Surface * clone() const
Clone method.
Definition: SurfYZPlane.cxx:41
double fX0
X origin.
Definition: SurfYZPlane.h:103
double fY0
Y origin.
Definition: SurfYZPlane.h:104