SND@LHC Software
|
Detector plane. More...
#include <DetPlane.h>
Public Member Functions | |
DetPlane (AbsFinitePlane *finite=NULL) | |
DetPlane (const TVector3 &o, const TVector3 &u, const TVector3 &v, AbsFinitePlane *finite=NULL) | |
DetPlane (const TVector3 &o, const TVector3 &n, AbsFinitePlane *finite=NULL) | |
virtual | ~DetPlane () |
DetPlane (const DetPlane &) | |
DetPlane & | operator= (DetPlane) |
void | swap (DetPlane &other) |
const TVector3 & | getO () const |
const TVector3 & | getU () const |
const TVector3 & | getV () const |
void | set (const TVector3 &o, const TVector3 &u, const TVector3 &v) |
void | setO (const TVector3 &o) |
void | setO (double, double, double) |
void | setU (const TVector3 &u) |
void | setU (double, double, double) |
void | setV (const TVector3 &v) |
void | setV (double, double, double) |
void | setUV (const TVector3 &u, const TVector3 &v) |
void | setON (const TVector3 &o, const TVector3 &n) |
void | setFinitePlane (AbsFinitePlane *finite) |
TVector3 | getNormal () const |
void | setNormal (const TVector3 &n) |
void | setNormal (double, double, double) |
void | setNormal (const double &theta, const double &phi) |
TVector2 | project (const TVector3 &x) const |
projecting a direction onto the plane: | |
TVector2 | LabToPlane (const TVector3 &x) const |
transform from Lab system into plane | |
TVector3 | toLab (const TVector2 &x) const |
transform from plane coordinates to lab system | |
TVector3 | dist (const TVector3 &point) const |
TVector2 | straightLineToPlane (const TVector3 &point, const TVector3 &dir) const |
gives u,v coordinates of the intersection point of a straight line with plane | |
void | straightLineToPlane (const double &posX, const double &posY, const double &posZ, const double &dirX, const double &dirY, const double &dirZ, double &u, double &v) const |
gives u,v coordinates of the intersection point of a straight line with plane | |
void | Print (const Option_t *="") const |
double | distance (const TVector3 &point) const |
absolute distance from a point to the plane | |
double | distance (double, double, double) const |
bool | isInActive (const TVector3 &point, const TVector3 &dir) const |
intersect in the active area? C.f. AbsFinitePlane | |
bool | isInActive (const double &posX, const double &posY, const double &posZ, const double &dirX, const double &dirY, const double &dirZ) const |
intersect in the active area? C.f. AbsFinitePlane | |
bool | isInActive (double u, double v) const |
isInActive methods refer to finite plane. C.f. AbsFinitePlane | |
bool | isInActive (const TVector2 &v) const |
isInActive methods refer to finite plane. C.f. AbsFinitePlane | |
bool | isFinite () const |
void | rotate (double angle) |
rotate u and v around normal. Angle is in rad. More for debugging than for actual use. | |
void | reset () |
delete finitePlane_ and set O, U, V to default values | |
Private Member Functions | |
void | sane () |
ensures orthonormal coordinates | |
Private Attributes | |
TVector3 | o_ |
TVector3 | u_ |
TVector3 | v_ |
boost::scoped_ptr< AbsFinitePlane > | finitePlane_ |
Friends | |
bool | operator== (const DetPlane &lhs, const DetPlane &rhs) |
Checks equality of planes by comparing the 9 double values that define them. | |
bool | operator!= (const DetPlane &lhs, const DetPlane &rhs) |
returns NOT == | |
Detector plane.
A detector plane is the principle object to define coordinate systems for track fitting in genfit. Since a particle trajectory is a one-dimensional object (regardless of any specific parameterization) positions with respect to the track are always measured in a plane.
Which plane is chosen depends on the type of detector. Fixed plane detectors have their detector plane defined by their mechanical setup. While wire chambers or time projection chambers might want to define a detector plane more flexibly.
This class parameterizes a plane in terms of an origin vector o and two plane-spanning directions u and v.
Definition at line 61 of file DetPlane.h.
genfit::DetPlane::DetPlane | ( | AbsFinitePlane * | finite = NULL | ) |
Definition at line 33 of file DetPlane.cc.
genfit::DetPlane::DetPlane | ( | const TVector3 & | o, |
const TVector3 & | u, | ||
const TVector3 & | v, | ||
AbsFinitePlane * | finite = NULL |
||
) |
Definition at line 44 of file DetPlane.cc.
genfit::DetPlane::DetPlane | ( | const TVector3 & | o, |
const TVector3 & | n, | ||
AbsFinitePlane * | finite = NULL |
||
) |
Definition at line 53 of file DetPlane.cc.
|
virtual |
Definition at line 62 of file DetPlane.cc.
genfit::DetPlane::DetPlane | ( | const DetPlane & | rhs | ) |
Definition at line 67 of file DetPlane.cc.
TVector3 genfit::DetPlane::dist | ( | const TVector3 & | point | ) | const |
Definition at line 199 of file DetPlane.cc.
double genfit::DetPlane::distance | ( | const TVector3 & | point | ) | const |
absolute distance from a point to the plane
Definition at line 268 of file DetPlane.cc.
double genfit::DetPlane::distance | ( | double | x, |
double | y, | ||
double | z | ||
) | const |
TVector3 genfit::DetPlane::getNormal | ( | ) | const |
Definition at line 157 of file DetPlane.cc.
|
inline |
Definition at line 85 of file DetPlane.h.
|
inline |
Definition at line 86 of file DetPlane.h.
|
inline |
Definition at line 87 of file DetPlane.h.
|
inline |
Definition at line 171 of file DetPlane.h.
|
inline |
intersect in the active area? C.f. AbsFinitePlane
Definition at line 152 of file DetPlane.h.
|
inline |
isInActive methods refer to finite plane. C.f. AbsFinitePlane
Definition at line 167 of file DetPlane.h.
|
inline |
intersect in the active area? C.f. AbsFinitePlane
Definition at line 146 of file DetPlane.h.
|
inline |
isInActive methods refer to finite plane. C.f. AbsFinitePlane
Definition at line 161 of file DetPlane.h.
TVector2 genfit::DetPlane::LabToPlane | ( | const TVector3 & | x | ) | const |
transform from Lab system into plane
Definition at line 184 of file DetPlane.cc.
Definition at line 79 of file DetPlane.cc.
void genfit::DetPlane::Print | ( | const Option_t * | option = "" | ) | const |
Definition at line 220 of file DetPlane.cc.
TVector2 genfit::DetPlane::project | ( | const TVector3 & | x | ) | const |
projecting a direction onto the plane:
Definition at line 178 of file DetPlane.cc.
void genfit::DetPlane::reset | ( | ) |
delete finitePlane_ and set O, U, V to default values
Definition at line 329 of file DetPlane.cc.
void genfit::DetPlane::rotate | ( | double | angle | ) |
|
private |
ensures orthonormal coordinates
Definition at line 205 of file DetPlane.cc.
void genfit::DetPlane::set | ( | const TVector3 & | o, |
const TVector3 & | u, | ||
const TVector3 & | v | ||
) |
|
inline |
Optionally, set the finite plane definition. This is most important for avoiding fake intersection points in fitting of curlers. This should be implemented for silicon detectors most importantly.
Definition at line 105 of file DetPlane.h.
void genfit::DetPlane::setNormal | ( | const double & | theta, |
const double & | phi | ||
) |
Definition at line 173 of file DetPlane.cc.
void genfit::DetPlane::setNormal | ( | const TVector3 & | n | ) |
Definition at line 166 of file DetPlane.cc.
void genfit::DetPlane::setNormal | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 162 of file DetPlane.cc.
void genfit::DetPlane::setO | ( | const TVector3 & | o | ) |
Definition at line 106 of file DetPlane.cc.
void genfit::DetPlane::setO | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 111 of file DetPlane.cc.
void genfit::DetPlane::setON | ( | const TVector3 & | o, |
const TVector3 & | n | ||
) |
Definition at line 151 of file DetPlane.cc.
void genfit::DetPlane::setU | ( | const TVector3 & | u | ) |
Definition at line 116 of file DetPlane.cc.
void genfit::DetPlane::setU | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 122 of file DetPlane.cc.
void genfit::DetPlane::setUV | ( | const TVector3 & | u, |
const TVector3 & | v | ||
) |
void genfit::DetPlane::setV | ( | const TVector3 & | v | ) |
void genfit::DetPlane::setV | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
void genfit::DetPlane::straightLineToPlane | ( | const double & | posX, |
const double & | posY, | ||
const double & | posZ, | ||
const double & | dirX, | ||
const double & | dirY, | ||
const double & | dirZ, | ||
double & | u, | ||
double & | v | ||
) | const |
gives u,v coordinates of the intersection point of a straight line with plane
Definition at line 296 of file DetPlane.cc.
TVector2 genfit::DetPlane::straightLineToPlane | ( | const TVector3 & | point, |
const TVector3 & | dir | ||
) | const |
gives u,v coordinates of the intersection point of a straight line with plane
Definition at line 283 of file DetPlane.cc.
void genfit::DetPlane::swap | ( | DetPlane & | other | ) |
Definition at line 85 of file DetPlane.cc.
TVector3 genfit::DetPlane::toLab | ( | const TVector2 & | x | ) | const |
transform from plane coordinates to lab system
Definition at line 190 of file DetPlane.cc.
Checks equality of planes by comparing the 9 double values that define them.
Definition at line 241 of file DetPlane.cc.
|
private |
Definition at line 191 of file DetPlane.h.
|
private |
Definition at line 186 of file DetPlane.h.
|
private |
Definition at line 187 of file DetPlane.h.
|
private |
Definition at line 188 of file DetPlane.h.