LArSoft  v06_85_00
Liquid Argon Software toolkit - http://larsoft.org/
SurfYZLine.h
Go to the documentation of this file.
1 
71 #ifndef SURFYZLINE_H
72 #define SURFYZLINE_H
73 
75 
76 namespace trkf {
77 
78  class SurfYZLine : public SurfLine
79  {
80  public:
81 
83  SurfYZLine();
84 
86  SurfYZLine(double x0, double y0, double z0, double phi);
87 
89  virtual ~SurfYZLine();
90 
91  // Accessors.
92  double x0() const {return fX0;}
93  double y0() const {return fY0;}
94  double z0() const {return fZ0;}
95  double phi() const {return fPhi;}
96 
98  virtual Surface* clone() const;
99 
101  virtual bool isTrackValid(const TrackVector& vec) const;
102 
104  virtual void toLocal(const double xyz[3], double uvw[3]) const;
105 
107  virtual void toGlobal(const double uvw[3], double xyz[3]) const;
108 
110  virtual TrackVector getDiff(const TrackVector& vec1, const TrackVector& vec2) const;
111 
113  virtual void getPosition(const TrackVector& vec, double xyz[3]) const;
114 
116  virtual void getMomentum(const TrackVector& vec, double mom[3],
117  TrackDirection dir=UNKNOWN) const;
118 
120  virtual bool isParallel(const Surface& surf) const;
121 
123  virtual double distanceTo(const Surface& surf) const;
124 
126  virtual bool isEqual(const Surface& surf) const;
127 
129  virtual std::ostream& Print(std::ostream& out) const;
130 
131  private:
132 
133  // Static attributes.
134 
135  static double fPhiTolerance;
136  static double fSepTolerance;
137 
138  // Attributes.
139 
140  double fX0;
141  double fY0;
142  double fZ0;
143  double fPhi;
144  };
145 }
146 
147 #endif
TrackDirection
Track direction enum.
Definition: Surface.h:56
virtual void toGlobal(const double uvw[3], double xyz[3]) const
Transform local to global coordinates.
Definition: SurfYZLine.cxx:93
virtual bool isEqual(const Surface &surf) const
Test two surfaces for equality, within tolerance.
Definition: SurfYZLine.cxx:270
virtual void toLocal(const double xyz[3], double uvw[3]) const
Transform global to local coordinates.
Definition: SurfYZLine.cxx:71
virtual bool isTrackValid(const TrackVector &vec) const
Surface-specific tests of validity of track parameters.
Definition: SurfYZLine.cxx:57
virtual void getMomentum(const TrackVector &vec, double mom[3], TrackDirection dir=UNKNOWN) const
Get momentum vector of track.
Definition: SurfYZLine.cxx:161
virtual bool isParallel(const Surface &surf) const
Test whether two surfaces are parallel, within tolerance.
Definition: SurfYZLine.cxx:208
double fX0
X origin.
Definition: SurfYZLine.h:140
virtual double distanceTo(const Surface &surf) const
Find perpendicular distance to a parallel surface.
Definition: SurfYZLine.cxx:237
virtual ~SurfYZLine()
Destructor.
Definition: SurfYZLine.cxx:47
static double fPhiTolerance
Phi tolerance for parallel.
Definition: SurfYZLine.h:135
virtual std::ostream & Print(std::ostream &out) const
Printout.
Definition: SurfYZLine.cxx:295
KVector< 5 >::type TrackVector
Track state vector, dimension 5.
double z0() const
Z origin.
Definition: SurfYZLine.h:94
static double fSepTolerance
Separation tolerance for equal.
Definition: SurfYZLine.h:136
double x0() const
X origin.
Definition: SurfYZLine.h:92
TDirectory * dir
Definition: macro.C:5
double fZ0
Z origin.
Definition: SurfYZLine.h:142
Base class for Kalman filter line surfaces.
double fY0
Y origin.
Definition: SurfYZLine.h:141
virtual TrackVector getDiff(const TrackVector &vec1, const TrackVector &vec2) const
Calculate difference of two track parameter vectors.
Definition: SurfYZLine.cxx:117
double phi() const
Rotation angle about x-axis.
Definition: SurfYZLine.h:95
double y0() const
Y origin.
Definition: SurfYZLine.h:93
double fPhi
Rotation angle about x-axis.
Definition: SurfYZLine.h:143
virtual Surface * clone() const
Clone method.
Definition: SurfYZLine.cxx:51
virtual void getPosition(const TrackVector &vec, double xyz[3]) const
Get position of track.
Definition: SurfYZLine.cxx:134
SurfYZLine()
Default constructor.
Definition: SurfYZLine.cxx:25