#include <SurfXYZPlane.h>
Public Member Functions | |
SurfXYZPlane () | |
Default constructor. More... | |
SurfXYZPlane (double x0, double y0, double z0, double phi, double theta) | |
Initializing constructor (angles). More... | |
SurfXYZPlane (double x0, double y0, double z0, double nx, double ny, double nz) | |
Initializing constructor (normal vector). More... | |
virtual | ~SurfXYZPlane () |
Destructor. More... | |
double | x0 () const |
X origin. More... | |
double | y0 () const |
Y origin. More... | |
double | z0 () const |
Z origin. More... | |
double | phi () const |
Rot. angle about x-axis (wire angle). More... | |
double | theta () const |
Rot. angle about y'-axis (projected Lorentz angle). 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 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 forward 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... | |
Public Member Functions inherited from trkf::SurfPlane | |
SurfPlane () | |
Default constructor. More... | |
virtual | ~SurfPlane () |
Destructor. 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... | |
Public Member Functions inherited from trkf::Surface | |
Surface () | |
Default constructor. More... | |
virtual | ~Surface () |
Destructor. More... | |
virtual TrackVector | getDiff (const TrackVector &vec1, const TrackVector &vec2) const |
Calculate difference of two track parameter vectors. 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 (wire angle). More... | |
double | fTheta |
Rotation angle about y'-axis (projected Lorentz angle). More... | |
Static Private Attributes | |
static double | fPhiTolerance = 1.e-10 |
Phi tolerance for parallel. More... | |
static double | fThetaTolerance = 1.e-10 |
Theta tolerance for parallel. More... | |
static double | fSepTolerance = 1.e-6 |
Separation tolerance for equal. More... | |
Additional Inherited Members | |
Public Types inherited from trkf::Surface | |
enum | TrackDirection { FORWARD, BACKWARD, UNKNOWN } |
Track direction enum. More... | |
Definition at line 83 of file SurfXYZPlane.h.
trkf::SurfXYZPlane::SurfXYZPlane | ( | ) |
Default constructor.
Definition at line 25 of file SurfXYZPlane.cxx.
trkf::SurfXYZPlane::SurfXYZPlane | ( | double | x0, |
double | y0, | ||
double | z0, | ||
double | phi, | ||
double | theta | ||
) |
Initializing constructor (angles).
Initializing constructor.
Arguments:
x0, y0, z0 - Global coordinates of local origin. phi - Rotation angle about x-axis (wire angle). theta - Rotation angle about y'-axis (projected Lorentz angle).
Definition at line 41 of file SurfXYZPlane.cxx.
trkf::SurfXYZPlane::SurfXYZPlane | ( | double | x0, |
double | y0, | ||
double | z0, | ||
double | nx, | ||
double | ny, | ||
double | nz | ||
) |
Initializing constructor (normal vector).
Initializing constructor (normal vector).
Arguments:
x0, y0, z0 - Global coordinates of local origin. nx, ny, nz - Normal vector in global coordinate system.
Definition at line 56 of file SurfXYZPlane.cxx.
|
virtual |
|
virtual |
|
virtual |
Find perpendicular forward distance to a parallel surface.
Find perpendicular forward distance to a parallel surface.
Throw an exception if the other surface is not parallel.
Assuming the other surface is parallel, the distance is simply the w-coordinate of the other surface, and is signed.
Arguments:
surf - Other surface.
Returned value: Distance.
Implements trkf::Surface.
Definition at line 253 of file SurfXYZPlane.cxx.
|
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.
Implements trkf::Surface.
Definition at line 167 of file SurfXYZPlane.cxx.
|
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 144 of file SurfXYZPlane.cxx.
Test two surfaces for equality, within tolerance.
Test two surfaces for equality, within tolerance. Here equal is defined as parallel and having zero separation, within tolerance. Note that this definition of equality allows the two surfaces to have different origins.
Arguments:
surf - Other surface.
Returned values: true if equal.
Implements trkf::Surface.
Definition at line 286 of file SurfXYZPlane.cxx.
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 SurfXYZPlane.
Arguments:
surf - Other surface.
Returned value: true if parallel.
Implements trkf::Surface.
Definition at line 220 of file SurfXYZPlane.cxx.
|
virtual |
Surface-specific tests of validity of track parameters.
Implements trkf::Surface.
Definition at line 84 of file SurfXYZPlane.cxx.
|
inline |
Rot. angle about x-axis (wire angle).
Definition at line 104 of file SurfXYZPlane.h.
|
virtual |
Printout.
Implements trkf::Surface.
Definition at line 303 of file SurfXYZPlane.cxx.
|
inline |
Rot. angle about y'-axis (projected Lorentz angle).
Definition at line 105 of file SurfXYZPlane.h.
|
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 120 of file SurfXYZPlane.cxx.
|
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 96 of file SurfXYZPlane.cxx.
|
inline |
X origin.
Definition at line 101 of file SurfXYZPlane.h.
|
inline |
Y origin.
Definition at line 102 of file SurfXYZPlane.h.
|
inline |
Z origin.
Definition at line 103 of file SurfXYZPlane.h.
|
private |
Rotation angle about x-axis (wire angle).
Definition at line 151 of file SurfXYZPlane.h.
|
staticprivate |
Phi tolerance for parallel.
Definition at line 142 of file SurfXYZPlane.h.
|
staticprivate |
Separation tolerance for equal.
Definition at line 144 of file SurfXYZPlane.h.
|
private |
Rotation angle about y'-axis (projected Lorentz angle).
Definition at line 152 of file SurfXYZPlane.h.
|
staticprivate |
Theta tolerance for parallel.
Definition at line 143 of file SurfXYZPlane.h.
|
private |
X origin.
Definition at line 148 of file SurfXYZPlane.h.
|
private |
Y origin.
Definition at line 149 of file SurfXYZPlane.h.
|
private |
Z origin.
Definition at line 150 of file SurfXYZPlane.h.