LArSoft  v09_90_00
Liquid Argon Software toolkit - https://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  public:
81  SurfYZLine();
82 
84  SurfYZLine(double x0, double y0, double z0, double phi);
85 
87  virtual ~SurfYZLine();
88 
89  // Accessors.
90  double x0() const { return fX0; }
91  double y0() const { return fY0; }
92  double z0() const { return fZ0; }
93  double phi() const { return fPhi; }
94 
96  virtual Surface* clone() const;
97 
99  virtual bool isTrackValid(const TrackVector& vec) const;
100 
102  virtual void toLocal(const double xyz[3], double uvw[3]) const;
103 
105  virtual void toGlobal(const double uvw[3], double xyz[3]) const;
106 
108  virtual TrackVector getDiff(const TrackVector& vec1, const TrackVector& vec2) const;
109 
111  virtual void getPosition(const TrackVector& vec, double xyz[3]) const;
112 
114  virtual void getMomentum(const TrackVector& vec,
115  double mom[3],
116  TrackDirection dir = UNKNOWN) const;
117 
119  virtual bool isParallel(const Surface& surf) const;
120 
122  virtual double distanceTo(const Surface& surf) const;
123 
125  virtual bool isEqual(const Surface& surf) const;
126 
128  virtual std::ostream& Print(std::ostream& out) const;
129 
130  private:
131  // Static attributes.
132 
133  static double fPhiTolerance;
134  static double fSepTolerance;
135 
136  // Attributes.
137 
138  double fX0;
139  double fY0;
140  double fZ0;
141  double fPhi;
142  };
143 }
144 
145 #endif
TrackDirection
Track direction enum.
Definition: Surface.h:54
virtual void toGlobal(const double uvw[3], double xyz[3]) const
Transform local to global coordinates.
Definition: SurfYZLine.cxx:84
virtual bool isEqual(const Surface &surf) const
Test two surfaces for equality, within tolerance.
Definition: SurfYZLine.cxx:259
virtual void toLocal(const double xyz[3], double uvw[3]) const
Transform global to local coordinates.
Definition: SurfYZLine.cxx:62
virtual bool isTrackValid(const TrackVector &vec) const
Surface-specific tests of validity of track parameters.
Definition: SurfYZLine.cxx:48
virtual void getMomentum(const TrackVector &vec, double mom[3], TrackDirection dir=UNKNOWN) const
Get momentum vector of track.
Definition: SurfYZLine.cxx:152
virtual bool isParallel(const Surface &surf) const
Test whether two surfaces are parallel, within tolerance.
Definition: SurfYZLine.cxx:198
double fX0
X origin.
Definition: SurfYZLine.h:138
virtual double distanceTo(const Surface &surf) const
Find perpendicular distance to a parallel surface.
Definition: SurfYZLine.cxx:226
virtual ~SurfYZLine()
Destructor.
Definition: SurfYZLine.cxx:39
static double fPhiTolerance
Phi tolerance for parallel.
Definition: SurfYZLine.h:133
virtual std::ostream & Print(std::ostream &out) const
Printout.
Definition: SurfYZLine.cxx:282
KVector< 5 >::type TrackVector
Track state vector, dimension 5.
double z0() const
Z origin.
Definition: SurfYZLine.h:92
static double fSepTolerance
Separation tolerance for equal.
Definition: SurfYZLine.h:134
double x0() const
X origin.
Definition: SurfYZLine.h:90
TDirectory * dir
Definition: macro.C:5
double fZ0
Z origin.
Definition: SurfYZLine.h:140
Base class for Kalman filter line surfaces.
double fY0
Y origin.
Definition: SurfYZLine.h:139
virtual TrackVector getDiff(const TrackVector &vec1, const TrackVector &vec2) const
Calculate difference of two track parameter vectors.
Definition: SurfYZLine.cxx:108
double phi() const
Rotation angle about x-axis.
Definition: SurfYZLine.h:93
double y0() const
Y origin.
Definition: SurfYZLine.h:91
double fPhi
Rotation angle about x-axis.
Definition: SurfYZLine.h:141
virtual Surface * clone() const
Clone method.
Definition: SurfYZLine.cxx:42
virtual void getPosition(const TrackVector &vec, double xyz[3]) const
Get position of track.
Definition: SurfYZLine.cxx:125
SurfYZLine()
Default constructor.
Definition: SurfYZLine.cxx:25