LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#include "SurfYZLine.h"
Public Types | |
enum | TrackDirection { FORWARD, BACKWARD, UNKNOWN } |
Track direction enum. More... | |
Public Member Functions | |
SurfYZLine () | |
Default constructor. More... | |
SurfYZLine (double x0, double y0, double z0, double phi) | |
Initializing constructor. More... | |
virtual | ~SurfYZLine () |
Destructor. More... | |
double | x0 () const |
X origin. More... | |
double | y0 () const |
Y origin. More... | |
double | z0 () const |
Z origin. More... | |
double | phi () const |
Rotation angle about x-axis. More... | |
virtual Surface * | clone () const |
Clone method. More... | |
virtual bool | isTrackValid (const TrackVector &vec) const |
Surface-specific tests of validity of track parameters. More... | |
virtual void | toLocal (const double xyz[3], double uvw[3]) const |
Transform global to local coordinates. More... | |
virtual void | toGlobal (const double uvw[3], double xyz[3]) const |
Transform local to global coordinates. More... | |
virtual TrackVector | getDiff (const TrackVector &vec1, const TrackVector &vec2) const |
Calculate difference of two track parameter vectors. More... | |
virtual void | getPosition (const TrackVector &vec, double xyz[3]) const |
Get position of track. More... | |
virtual void | getMomentum (const TrackVector &vec, double mom[3], TrackDirection dir=UNKNOWN) const |
Get momentum vector of track. More... | |
virtual bool | isParallel (const Surface &surf) const |
Test whether two surfaces are parallel, within tolerance. More... | |
virtual double | distanceTo (const Surface &surf) const |
Find perpendicular distance to a parallel surface. More... | |
virtual bool | isEqual (const Surface &surf) const |
Test two surfaces for equality, within tolerance. More... | |
virtual std::ostream & | Print (std::ostream &out) const |
Printout. More... | |
double | PointingError (const TrackVector &vec, const TrackError &err) const |
Get pointing error of track. More... | |
void | getStartingError (TrackError &err) const |
Get starting error matrix for Kalman filter. More... | |
virtual TrackDirection | getDirection (const TrackVector &, TrackDirection dir=UNKNOWN) const |
Get direction of track (default UNKNOWN). More... | |
Private Attributes | |
double | fX0 |
X origin. More... | |
double | fY0 |
Y origin. More... | |
double | fZ0 |
Z origin. More... | |
double | fPhi |
Rotation angle about x-axis. More... | |
Static Private Attributes | |
static double | fPhiTolerance = 1.e-10 |
Phi tolerance for parallel. More... | |
static double | fSepTolerance = 1.e-6 |
Separation tolerance for equal. More... | |
Definition at line 78 of file SurfYZLine.h.
|
inherited |
Track direction enum.
Enumerator | |
---|---|
FORWARD | |
BACKWARD | |
UNKNOWN |
trkf::SurfYZLine::SurfYZLine | ( | ) |
Default constructor.
Definition at line 25 of file SurfYZLine.cxx.
Referenced by clone(), and trkf::SurfWireLine::SurfWireLine().
trkf::SurfYZLine::SurfYZLine | ( | double | x0, |
double | y0, | ||
double | z0, | ||
double | phi | ||
) |
Initializing constructor.
Initializing constructor.
Arguments:
x0, y0, z0 - Global coordinates of local origin. phi - Rotation angle about x-axis.
Definition at line 34 of file SurfYZLine.cxx.
|
virtual |
|
virtual |
Clone method.
Implements trkf::Surface.
Definition at line 42 of file SurfYZLine.cxx.
References SurfYZLine().
Referenced by phi().
|
virtual |
Find perpendicular distance to a parallel surface.
Find perpendicular distance to a parallel surface.
Throw an exception if the other surface is not parallel.
Arguments:
surf - Other surface.
Returned value: Distance.
Implements trkf::Surface.
Definition at line 226 of file SurfYZLine.cxx.
References isParallel(), trkf::Surface::toGlobal(), and toLocal().
Referenced by phi().
|
virtual |
Calculate difference of two track parameter vectors.
Calculate difference of two track parameter vectors, taking into account phi wrap.
Arguments:
vec1 - First vector. vec2 - Second vector.
Returns: vec1 - vec2
Reimplemented from trkf::Surface.
Definition at line 108 of file SurfYZLine.cxx.
Referenced by phi().
|
inlinevirtualinherited |
Get direction of track (default UNKNOWN).
Definition at line 83 of file Surface.h.
References dir, trkf::Surface::distanceTo(), trkf::Surface::getMomentum(), trkf::Surface::getStartingError(), trkf::Surface::isEqual(), trkf::Surface::isParallel(), trkf::operator<<(), trkf::Surface::PointingError(), and trkf::Surface::Print().
Referenced by trkf::SurfYZPlane::getMomentum(), and trkf::SurfXYZPlane::getMomentum().
|
virtual |
Get momentum vector of track.
Get momentum vector of track.
Arguments:
vec - Track state vector. mom - Momentum vector in global coordinate system. dir - Track direction (ignored).
Implements trkf::Surface.
Definition at line 152 of file SurfYZLine.cxx.
References util::abs(), e, fPhi, and phi().
Referenced by phi().
|
virtual |
Get position of track.
Get position of track.
Arguments:
vec - Track state vector. xyz - Position in global coordinate system.
Implements trkf::Surface.
Definition at line 125 of file SurfYZLine.cxx.
References phi(), and toGlobal().
Referenced by phi().
|
virtualinherited |
Get starting error matrix for Kalman filter.
Get starting error matrix for Kalman filter.
Arguments:
err - Error matrix.
Implements trkf::Surface.
Definition at line 90 of file SurfLine.cxx.
|
virtual |
Test two surfaces for equality, within tolerance.
Test two surfaces for equality, within tolerance. Here equal is defined as having all surface parameters the same, not just having the surfaces coincide spatially, so that the local coordinate systems are the same between the two surfaces.
Arguments:
surf - Other surface.
Returned values: true if equal.
Implements trkf::Surface.
Definition at line 259 of file SurfYZLine.cxx.
References util::abs(), fPhi, fPhiTolerance, fSepTolerance, fX0, fY0, fZ0, phi(), x0(), y0(), and z0().
Referenced by trkf::KHitWireLine::KHitWireLine(), and phi().
|
virtual |
Test whether two surfaces are parallel, within tolerance.
Test whether two surfaces are parallel, within tolerance. This method will only return true if the other surface is a SurfYZLine.
Arguments:
surf - Other surface.
Returned value: true if parallel.
Implements trkf::Surface.
Definition at line 198 of file SurfYZLine.cxx.
References util::abs(), fPhi, fPhiTolerance, and phi().
Referenced by distanceTo(), and phi().
|
virtual |
Surface-specific tests of validity of track parameters.
Implements trkf::Surface.
Definition at line 48 of file SurfYZLine.cxx.
References util::abs().
Referenced by phi().
|
inline |
Rotation angle about x-axis.
Definition at line 93 of file SurfYZLine.h.
References clone(), dir, distanceTo(), fPhi, getDiff(), getMomentum(), getPosition(), isEqual(), isParallel(), isTrackValid(), Print(), toGlobal(), toLocal(), and trkf::Surface::UNKNOWN.
Referenced by getMomentum(), getPosition(), isEqual(), isParallel(), trkf::PropYZLine::origin_vec_prop(), trkf::PropYZLine::short_vec_prop(), and trkf::SurfWireLine::SurfWireLine().
|
virtualinherited |
Get pointing error of track.
Get pointing error of track.
Arguments:
vec - Track parameters. err - Track error matrix.
Returns: Pointing error.
This method calculates the track pointing error based on the slope track paramers and errors (parameters 2 and 3).
Implements trkf::Surface.
Definition at line 34 of file SurfLine.cxx.
|
virtual |
Printout.
Implements trkf::Surface.
Definition at line 282 of file SurfYZLine.cxx.
References fPhi, fX0, fY0, and fZ0.
Referenced by phi().
|
virtual |
Transform local to global coordinates.
Transform local to global coordinates.
Arguments:
uvw - Cartesian coordinates in local coordinate system. xyz - Cartesian coordinates in global coordinate system.
Implements trkf::Surface.
Definition at line 84 of file SurfYZLine.cxx.
References fPhi, fX0, fY0, and fZ0.
Referenced by getPosition(), and phi().
|
virtual |
Transform global to local coordinates.
Transform global to local coordinates.
Arguments:
xyz - Cartesian coordinates in global coordinate system. uvw - Cartesian coordinates in local coordinate system.
Implements trkf::Surface.
Definition at line 62 of file SurfYZLine.cxx.
References fPhi, fX0, fY0, and fZ0.
Referenced by distanceTo(), and phi().
|
inline |
X origin.
Definition at line 90 of file SurfYZLine.h.
References fX0.
Referenced by isEqual(), and trkf::PropYZLine::short_vec_prop().
|
inline |
Y origin.
Definition at line 91 of file SurfYZLine.h.
References fY0.
Referenced by isEqual(), and trkf::PropYZLine::short_vec_prop().
|
inline |
Z origin.
Definition at line 92 of file SurfYZLine.h.
References fZ0.
Referenced by isEqual(), and trkf::PropYZLine::short_vec_prop().
|
private |
Rotation angle about x-axis.
Definition at line 141 of file SurfYZLine.h.
Referenced by getMomentum(), isEqual(), isParallel(), phi(), Print(), toGlobal(), and toLocal().
|
staticprivate |
Phi tolerance for parallel.
Definition at line 133 of file SurfYZLine.h.
Referenced by isEqual(), and isParallel().
|
staticprivate |
Separation tolerance for equal.
Definition at line 134 of file SurfYZLine.h.
Referenced by isEqual().
|
private |
X origin.
Definition at line 138 of file SurfYZLine.h.
Referenced by isEqual(), Print(), toGlobal(), toLocal(), and x0().
|
private |
Y origin.
Definition at line 139 of file SurfYZLine.h.
Referenced by isEqual(), Print(), toGlobal(), toLocal(), and y0().
|
private |
Z origin.
Definition at line 140 of file SurfYZLine.h.
Referenced by isEqual(), Print(), toGlobal(), toLocal(), and z0().