LArSoft  v07_13_02
Liquid Argon Software toolkit - http://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  {
48  public:
49 
51  SurfYZPlane();
52 
54  SurfYZPlane(double x0, double y0, double z0, double phi);
55 
57  virtual ~SurfYZPlane();
58 
59  // Accessors.
60  double x0() const {return fX0;}
61  double y0() const {return fY0;}
62  double z0() const {return fZ0;}
63  double phi() const {return fPhi;}
64 
66  virtual Surface* clone() const;
67 
69  virtual bool isTrackValid(const TrackVector& vec) const;
70 
72  virtual void toLocal(const double xyz[3], double uvw[3]) const;
73 
75  virtual void toGlobal(const double uvw[3], double xyz[3]) const;
76 
78  virtual void getPosition(const TrackVector& vec, double xyz[3]) const;
79 
81  virtual void getMomentum(const TrackVector& vec, double mom[3],
82  TrackDirection dir=UNKNOWN) const;
83 
85  virtual bool isParallel(const Surface& surf) const;
86 
88  virtual double distanceTo(const Surface& surf) const;
89 
91  virtual bool isEqual(const Surface& surf) const;
92 
94  virtual std::ostream& Print(std::ostream& out) const;
95 
96  private:
97 
98  // Static attributes.
99 
100  static double fPhiTolerance;
101  static double fSepTolerance;
102 
103  // Attributes.
104 
105  double fX0;
106  double fY0;
107  double fZ0;
108  double fPhi;
109  };
110 }
111 
112 #endif
static double fSepTolerance
Separation tolerance for equal.
Definition: SurfYZPlane.h:101
TrackDirection
Track direction enum.
Definition: Surface.h:56
double fPhi
Rotation angle about x-axis.
Definition: SurfYZPlane.h:108
double z0() const
Z origin.
Definition: SurfYZPlane.h:62
double x0() const
X origin.
Definition: SurfYZPlane.h:60
static double fPhiTolerance
Phi tolerance for parallel.
Definition: SurfYZPlane.h:100
virtual ~SurfYZPlane()
Destructor.
Definition: SurfYZPlane.cxx:46
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:61
virtual bool isTrackValid(const TrackVector &vec) const
Surface-specific tests of validity of track parameters.
Definition: SurfYZPlane.cxx:56
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:68
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:90
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:63
double fZ0
Z origin.
Definition: SurfYZPlane.h:107
virtual void getPosition(const TrackVector &vec, double xyz[3]) const
Get position of track.
virtual Surface * clone() const
Clone method.
Definition: SurfYZPlane.cxx:50
double fX0
X origin.
Definition: SurfYZPlane.h:105
double fY0
Y origin.
Definition: SurfYZPlane.h:106