LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
SurfXYZPlane.h
Go to the documentation of this file.
1 
76 #ifndef SURFXYZPLANE_H
77 #define SURFXYZPLANE_H
78 
80 
81 namespace trkf {
82 
83  class SurfXYZPlane : public SurfPlane
84  {
85  public:
86 
88  SurfXYZPlane();
89 
91  SurfXYZPlane(double x0, double y0, double z0, double phi, double theta);
92 
94  SurfXYZPlane(double x0, double y0, double z0,
95  double nx, double ny, double nz);
96 
98  virtual ~SurfXYZPlane();
99 
100  // Accessors.
101  double x0() const {return fX0;}
102  double y0() const {return fY0;}
103  double z0() const {return fZ0;}
104  double phi() const {return fPhi;}
105  double theta() const {return fTheta;}
106 
108  virtual Surface* clone() const;
109 
111  virtual bool isTrackValid(const TrackVector& vec) const;
112 
114  virtual void toLocal(const double xyz[3], double uvw[3]) const;
115 
117  virtual void toGlobal(const double uvw[3], double xyz[3]) const;
118 
120  virtual void getPosition(const TrackVector& vec, double xyz[3]) const;
121 
123  virtual void getMomentum(const TrackVector& vec, double mom[3],
124  TrackDirection dir=UNKNOWN) const;
125 
127  virtual bool isParallel(const Surface& surf) const;
128 
130  virtual double distanceTo(const Surface& surf) const;
131 
133  virtual bool isEqual(const Surface& surf) const;
134 
136  virtual std::ostream& Print(std::ostream& out) const;
137 
138  private:
139 
140  // Static attributes.
141 
142  static double fPhiTolerance;
143  static double fThetaTolerance;
144  static double fSepTolerance;
145 
146  // Attributes.
147 
148  double fX0;
149  double fY0;
150  double fZ0;
151  double fPhi;
152  double fTheta;
153  };
154 }
155 
156 #endif
virtual void getPosition(const TrackVector &vec, double xyz[3]) const
Get position of track.
TrackDirection
Track direction enum.
Definition: Surface.h:56
virtual bool isEqual(const Surface &surf) const
Test two surfaces for equality, within tolerance.
double y0() const
Y origin.
Definition: SurfXYZPlane.h:102
virtual std::ostream & Print(std::ostream &out) const
Printout.
static double fPhiTolerance
Phi tolerance for parallel.
Definition: SurfXYZPlane.h:142
virtual bool isParallel(const Surface &surf) const
Test whether two surfaces are parallel, within tolerance.
static double fSepTolerance
Separation tolerance for equal.
Definition: SurfXYZPlane.h:144
virtual bool isTrackValid(const TrackVector &vec) const
Surface-specific tests of validity of track parameters.
virtual double distanceTo(const Surface &surf) const
Find perpendicular forward distance to a parallel surface.
double fX0
X origin.
Definition: SurfXYZPlane.h:148
double phi() const
Rot. angle about x-axis (wire angle).
Definition: SurfXYZPlane.h:104
double x0() const
X origin.
Definition: SurfXYZPlane.h:101
virtual void toLocal(const double xyz[3], double uvw[3]) const
Transform global to local coordinates.
SurfXYZPlane()
Default constructor.
KVector< 5 >::type TrackVector
Track state vector, dimension 5.
double theta() const
Rot. angle about y&#39;-axis (projected Lorentz angle).
Definition: SurfXYZPlane.h:105
virtual void toGlobal(const double uvw[3], double xyz[3]) const
Transform local to global coordinates.
double fY0
Y origin.
Definition: SurfXYZPlane.h:149
Base class for Kalman filter planar surfaces.
TDirectory * dir
Definition: macro.C:5
double fTheta
Rotation angle about y&#39;-axis (projected Lorentz angle).
Definition: SurfXYZPlane.h:152
static double fThetaTolerance
Theta tolerance for parallel.
Definition: SurfXYZPlane.h:143
double z0() const
Z origin.
Definition: SurfXYZPlane.h:103
virtual ~SurfXYZPlane()
Destructor.
double fPhi
Rotation angle about x-axis (wire angle).
Definition: SurfXYZPlane.h:151
virtual void getMomentum(const TrackVector &vec, double mom[3], TrackDirection dir=UNKNOWN) const
Get momentum vector of track.
virtual Surface * clone() const
Clone method.
double fZ0
Z origin.
Definition: SurfXYZPlane.h:150