GENFIT
Rev:NoNumberAvailable
|
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: More... | |
TVector2 | LabToPlane (const TVector3 &x) const |
transform from Lab system into plane More... | |
TVector3 | toLab (const TVector2 &x) const |
transform from plane coordinates to lab system More... | |
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 More... | |
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 More... | |
void | Print (const Option_t *="") const |
double | distance (const TVector3 &point) const |
absolute distance from a point to the plane More... | |
double | distance (double, double, double) const |
bool | isInActive (const TVector3 &point, const TVector3 &dir) const |
intersect in the active area? C.f. AbsFinitePlane More... | |
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 More... | |
bool | isInActive (double u, double v) const |
isInActive methods refer to finite plane. C.f. AbsFinitePlane More... | |
bool | isInActive (const TVector2 &v) const |
isInActive methods refer to finite plane. C.f. AbsFinitePlane More... | |
bool | isFinite () const |
void | rotate (double angle) |
rotate u and v around normal. Angle is in rad. More for debugging than for actual use. More... | |
void | reset () |
delete finitePlane_ and set O, U, V to default values More... | |
Private Member Functions | |
void | sane () |
ensures orthonormal coordinates More... | |
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. More... | |
bool | operator!= (const DetPlane &lhs, const DetPlane &rhs) |
returns NOT == More... | |
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 32 of file DetPlane.cc.
genfit::DetPlane::DetPlane | ( | const TVector3 & | o, |
const TVector3 & | u, | ||
const TVector3 & | v, | ||
AbsFinitePlane * | finite = NULL |
||
) |
Definition at line 43 of file DetPlane.cc.
References sane().
genfit::DetPlane::DetPlane | ( | const TVector3 & | o, |
const TVector3 & | n, | ||
AbsFinitePlane * | finite = NULL |
||
) |
Definition at line 52 of file DetPlane.cc.
References setNormal().
|
virtual |
Definition at line 61 of file DetPlane.cc.
genfit::DetPlane::DetPlane | ( | const DetPlane & | rhs | ) |
Definition at line 66 of file DetPlane.cc.
References finitePlane_.
TVector3 genfit::DetPlane::dist | ( | const TVector3 & | point | ) | const |
Definition at line 198 of file DetPlane.cc.
References LabToPlane(), and toLab().
double genfit::DetPlane::distance | ( | const TVector3 & | point | ) | const |
absolute distance from a point to the plane
Definition at line 267 of file DetPlane.cc.
Referenced by genfit::RKTrackRep::Extrap().
double genfit::DetPlane::distance | ( | double | x, |
double | y, | ||
double | z | ||
) | const |
Definition at line 274 of file DetPlane.cc.
TVector3 genfit::DetPlane::getNormal | ( | ) | const |
Definition at line 156 of file DetPlane.cc.
Referenced by genfit::RKTrackRep::calcForwardJacobianAndNoise(), genfit::RKTrackRep::Extrap(), Print(), rotate(), sane(), setV(), and straightLineToPlane().
|
inline |
Definition at line 85 of file DetPlane.h.
References o_.
Referenced by genfit::RKTrackRep::Extrap().
|
inline |
Definition at line 86 of file DetPlane.h.
References u_.
Referenced by genfit::RKTrackRep::calcForwardJacobianAndNoise().
|
inline |
Definition at line 87 of file DetPlane.h.
References v_.
Referenced by genfit::RKTrackRep::calcForwardJacobianAndNoise().
|
inline |
Definition at line 171 of file DetPlane.h.
References finitePlane_.
Referenced by genfit::RKTrackRep::estimateStep().
|
inline |
intersect in the active area? C.f. AbsFinitePlane
Definition at line 146 of file DetPlane.h.
References finitePlane_, and straightLineToPlane().
Referenced by genfit::RKTrackRep::estimateStep(), genfit::RKTrackRep::Extrap(), and isInActive().
|
inline |
intersect in the active area? C.f. AbsFinitePlane
Definition at line 152 of file DetPlane.h.
References finitePlane_, isInActive(), and straightLineToPlane().
|
inline |
isInActive methods refer to finite plane. C.f. AbsFinitePlane
Definition at line 161 of file DetPlane.h.
References finitePlane_.
|
inline |
isInActive methods refer to finite plane. C.f. AbsFinitePlane
Definition at line 167 of file DetPlane.h.
References isInActive().
TVector2 genfit::DetPlane::LabToPlane | ( | const TVector3 & | x | ) | const |
transform from Lab system into plane
Definition at line 183 of file DetPlane.cc.
Referenced by dist().
Definition at line 78 of file DetPlane.cc.
References swap().
void genfit::DetPlane::Print | ( | const Option_t * | option = "" | ) | const |
Definition at line 219 of file DetPlane.cc.
References finitePlane_, getNormal(), o_, genfit::printOut, u_, and v_.
Referenced by genfit::RKTrackRep::Extrap(), and genfit::RKTrackRep::RKutta().
TVector2 genfit::DetPlane::project | ( | const TVector3 & | x | ) | const |
projecting a direction onto the plane:
Definition at line 177 of file DetPlane.cc.
Referenced by LabToPlane(), and straightLineToPlane().
void genfit::DetPlane::reset | ( | ) |
delete finitePlane_ and set O, U, V to default values
Definition at line 328 of file DetPlane.cc.
References finitePlane_, o_, u_, and v_.
void genfit::DetPlane::rotate | ( | double | angle | ) |
rotate u and v around normal. Angle is in rad. More for debugging than for actual use.
Definition at line 319 of file DetPlane.cc.
References getNormal(), sane(), u_, and v_.
|
private |
ensures orthonormal coordinates
Definition at line 204 of file DetPlane.cc.
References getNormal(), u_, and v_.
Referenced by DetPlane(), rotate(), set(), setU(), setUV(), and setV().
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.
References finitePlane_.
void genfit::DetPlane::setNormal | ( | const TVector3 & | n | ) |
Definition at line 165 of file DetPlane.cc.
Referenced by DetPlane(), genfit::RKTrackRep::extrapToPoint(), setNormal(), and setON().
void genfit::DetPlane::setNormal | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 161 of file DetPlane.cc.
References setNormal().
void genfit::DetPlane::setNormal | ( | const double & | theta, |
const double & | phi | ||
) |
Definition at line 172 of file DetPlane.cc.
References setNormal().
void genfit::DetPlane::setO | ( | const TVector3 & | o | ) |
Definition at line 105 of file DetPlane.cc.
References o_.
void genfit::DetPlane::setO | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 110 of file DetPlane.cc.
References o_.
void genfit::DetPlane::setON | ( | const TVector3 & | o, |
const TVector3 & | n | ||
) |
Definition at line 150 of file DetPlane.cc.
References o_, and setNormal().
void genfit::DetPlane::setU | ( | const TVector3 & | u | ) |
Definition at line 115 of file DetPlane.cc.
Referenced by genfit::RKTrackRep::extrapolateToLine().
void genfit::DetPlane::setU | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 121 of file DetPlane.cc.
void genfit::DetPlane::setUV | ( | const TVector3 & | u, |
const TVector3 & | v | ||
) |
Definition at line 143 of file DetPlane.cc.
void genfit::DetPlane::setV | ( | const TVector3 & | v | ) |
Definition at line 127 of file DetPlane.cc.
References getNormal(), sane(), u_, and v_.
void genfit::DetPlane::setV | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 135 of file DetPlane.cc.
References getNormal(), sane(), u_, and v_.
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 282 of file DetPlane.cc.
References getNormal(), o_, and project().
Referenced by isInActive().
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 295 of file DetPlane.cc.
References getNormal(), o_, u_, and v_.
void genfit::DetPlane::swap | ( | DetPlane & | other | ) |
Definition at line 84 of file DetPlane.cc.
References finitePlane_, o_, u_, and v_.
Referenced by operator=().
TVector3 genfit::DetPlane::toLab | ( | const TVector2 & | x | ) | const |
returns NOT ==
Definition at line 262 of file DetPlane.cc.
Checks equality of planes by comparing the 9 double values that define them.
Definition at line 240 of file DetPlane.cc.
|
private |
Definition at line 191 of file DetPlane.h.
Referenced by DetPlane(), isFinite(), isInActive(), Print(), reset(), setFinitePlane(), and swap().
|
private |
Definition at line 186 of file DetPlane.h.
Referenced by DetPlane(), distance(), getO(), LabToPlane(), genfit::operator==(), Print(), reset(), set(), setO(), setON(), straightLineToPlane(), swap(), and toLab().
|
private |
Definition at line 187 of file DetPlane.h.
Referenced by DetPlane(), distance(), getNormal(), getU(), genfit::operator==(), Print(), project(), reset(), rotate(), sane(), set(), setNormal(), setU(), setUV(), setV(), straightLineToPlane(), swap(), and toLab().
|
private |
Definition at line 188 of file DetPlane.h.
Referenced by DetPlane(), distance(), getNormal(), getV(), genfit::operator==(), Print(), project(), reset(), rotate(), sane(), set(), setNormal(), setUV(), setV(), straightLineToPlane(), swap(), and toLab().