FairRoot/PandaRoot
|
Detector plane genfit geometry class. More...
#include <GFDetPlane.h>
Public Member Functions | |
GFDetPlane (GFAbsFinitePlane *finite=NULL) | |
GFDetPlane (const TVector3 &o, const TVector3 &u, const TVector3 &v, GFAbsFinitePlane *finite=NULL) | |
GFDetPlane (const TVector3 &o, const TVector3 &n, GFAbsFinitePlane *finite=NULL) | |
virtual | ~GFDetPlane () |
GFDetPlane (const GFDetPlane &) | |
GFDetPlane & | operator= (const GFDetPlane &) |
TVector3 | getO () const |
TVector3 | getU () 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 (GFAbsFinitePlane *finite) |
TVector3 | getNormal () const |
void | setNormal (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 | Print () const |
void | getGraphics (double mesh, double length, TPolyMarker3D **pl, TPolyLine3D **plLine, TPolyLine3D **u, TPolyLine3D **v, TPolyLine3D **n=NULL) |
for poor attempts of making an event display. There is a lot of room for improvements. More... | |
double | distance (TVector3 &) const |
double | distance (double, double, double) const |
bool | inActive (const TVector3 &point, const TVector3 &dir) const |
intersect in the active area? C.f. GFAbsFinitePlane More... | |
bool | inActive (double u, double v) const |
inActive methods refer to finite plane. C.f. GFAbsFinitePlane More... | |
bool | inActive (const TVector2 &v) const |
inActive methods refer to finite plane. C.f. GFAbsFinitePlane More... | |
Private Member Functions | |
void | sane () |
Private Attributes | |
TVector3 | fO |
TVector3 | fU |
TVector3 | fV |
GFAbsFinitePlane * | fFinitePlane |
Friends | |
bool | operator== (const GFDetPlane &lhs, const GFDetPlane &rhs) |
bool | operator!= (const GFDetPlane &lhs, const GFDetPlane &rhs) |
returns NOT == More... | |
Detector plane genfit geometry class.
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 repect to the track are always meassured in a plane.
Which plane is choosen 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 59 of file GFDetPlane.h.
GFDetPlane::GFDetPlane | ( | GFAbsFinitePlane * | finite = NULL | ) |
GFDetPlane::GFDetPlane | ( | const TVector3 & | o, |
const TVector3 & | u, | ||
const TVector3 & | v, | ||
GFAbsFinitePlane * | finite = NULL |
||
) |
Definition at line 29 of file GFDetPlane.cxx.
GFDetPlane::GFDetPlane | ( | const TVector3 & | o, |
const TVector3 & | n, | ||
GFAbsFinitePlane * | finite = NULL |
||
) |
|
virtual |
GFDetPlane::GFDetPlane | ( | const GFDetPlane & | rhs | ) |
Definition at line 58 of file GFDetPlane.cxx.
References GFAbsFinitePlane::clone(), fFinitePlane, fO, fU, and fV.
TVector3 GFDetPlane::dist | ( | const TVector3 & | point | ) | const |
Definition at line 207 of file GFDetPlane.cxx.
References LabToPlane(), p, toLab(), and x.
Referenced by GFWirepointHitPolicy::detPlane(), GFWireHitPolicy::detPlane(), RKTrackRep::Extrap(), GeaneTrackRep::extrapolate(), and GeaneTrackRep::extrapolateToPoint().
double GFDetPlane::distance | ( | TVector3 & | v | ) | const |
Definition at line 343 of file GFDetPlane.cxx.
References fO, fU, fV, s, and t.
Referenced by RKTrackRep::Extrap(), and RKTrackRep::RKutta().
double GFDetPlane::distance | ( | double | x, |
double | y, | ||
double | z | ||
) | const |
void GFDetPlane::getGraphics | ( | double | mesh, |
double | length, | ||
TPolyMarker3D ** | pl, | ||
TPolyLine3D ** | plLine, | ||
TPolyLine3D ** | u, | ||
TPolyLine3D ** | v, | ||
TPolyLine3D ** | n = NULL |
||
) |
for poor attempts of making an event display. There is a lot of room for improvements.
Definition at line 283 of file GFDetPlane.cxx.
References fO, fU, fV, getNormal(), i, and vec.
TVector3 GFDetPlane::getNormal | ( | ) | const |
Definition at line 138 of file GFDetPlane.cxx.
Referenced by RKTrackRep::extrapolate(), GenfitTrack2PndTrack(), getGraphics(), GeaneTrackRep::getMom(), RKTrackRep::getMom(), GeaneTrackRep::getPosMom(), RKTrackRep::getPosMom(), GeaneTrackRep::getPosMomCov(), Print(), RKTrackRep::RKutta(), sane(), and straightLineToPlane().
|
inline |
Definition at line 75 of file GFDetPlane.h.
References fO.
Referenced by GeaneTrackRep::extrapolate(), RKTrackRep::extrapolate(), GeaneTrackRep::extrapolateToLine(), RKTrackRep::extrapolateToLine(), GeaneTrackRep::extrapolateToPoint(), RKTrackRep::extrapolateToPoint(), GeaneTrackRep::GeaneTrackRep(), GenfitTrack2PndTrack(), GeaneTrackRep::getPocaOnLine(), GeaneTrackRep::getPos(), RKTrackRep::getPos(), GeaneTrackRep::getPosMom(), RKTrackRep::getPosMom(), GeaneTrackRep::getPosMomCov(), RKTrackRep::getPosMomCov(), GFSpacepointHitPolicy::hitCoord(), RKTrackRep::RKTrackRep(), RKTrackRep::RKutta(), and RKTrackRep::stepalong().
|
inline |
Definition at line 76 of file GFDetPlane.h.
References fU.
Referenced by GeaneTrackRep::extrapolate(), RKTrackRep::extrapolate(), GeaneTrackRep::extrapolateToLine(), RKTrackRep::extrapolateToLine(), GeaneTrackRep::extrapolateToPoint(), RKTrackRep::extrapolateToPoint(), GeaneTrackRep::GeaneTrackRep(), GenfitTrack2PndTrack(), GeaneTrackRep::getMom(), RKTrackRep::getMom(), GeaneTrackRep::getPocaOnLine(), GeaneTrackRep::getPos(), RKTrackRep::getPos(), GeaneTrackRep::getPosMom(), RKTrackRep::getPosMom(), GeaneTrackRep::getPosMomCov(), RKTrackRep::getPosMomCov(), GFSpacepointHitPolicy::hitCoord(), GFSpacepointHitPolicy::hitCov(), RKTrackRep::RKTrackRep(), and RKTrackRep::stepalong().
|
inline |
Definition at line 77 of file GFDetPlane.h.
References fV.
Referenced by GFWirepointHitPolicy::checkPlane(), GFWireHitPolicy::checkPlane(), GeaneTrackRep::extrapolate(), RKTrackRep::extrapolate(), GeaneTrackRep::extrapolateToLine(), RKTrackRep::extrapolateToLine(), GeaneTrackRep::extrapolateToPoint(), RKTrackRep::extrapolateToPoint(), GeaneTrackRep::GeaneTrackRep(), GenfitTrack2PndTrack(), GeaneTrackRep::getMom(), RKTrackRep::getMom(), GeaneTrackRep::getPocaOnLine(), GeaneTrackRep::getPos(), RKTrackRep::getPos(), GeaneTrackRep::getPosMom(), RKTrackRep::getPosMom(), GeaneTrackRep::getPosMomCov(), RKTrackRep::getPosMomCov(), GFSpacepointHitPolicy::hitCoord(), GFSpacepointHitPolicy::hitCov(), RKTrackRep::RKTrackRep(), and RKTrackRep::stepalong().
|
inline |
intersect in the active area? C.f. GFAbsFinitePlane
Definition at line 132 of file GFDetPlane.h.
References straightLineToPlane().
Referenced by RKTrackRep::Extrap(), inActive(), and RKTrackRep::RKutta().
|
inline |
inActive methods refer to finite plane. C.f. GFAbsFinitePlane
Definition at line 137 of file GFDetPlane.h.
References fFinitePlane, and GFAbsFinitePlane::inActive().
|
inline |
inActive methods refer to finite plane. C.f. GFAbsFinitePlane
Definition at line 143 of file GFDetPlane.h.
References inActive().
TVector2 GFDetPlane::LabToPlane | ( | const TVector3 & | x | ) | const |
transform from Lab system into plane
Definition at line 189 of file GFDetPlane.cxx.
References d, fO, and project().
Referenced by dist().
GFDetPlane & GFDetPlane::operator= | ( | const GFDetPlane & | rhs | ) |
Definition at line 65 of file GFDetPlane.cxx.
References GFAbsFinitePlane::clone(), fFinitePlane, fO, fU, and fV.
void GFDetPlane::Print | ( | ) | const |
Definition at line 238 of file GFDetPlane.cxx.
References fFinitePlane, fO, fU, fV, getNormal(), and GFAbsFinitePlane::Print().
Referenced by GFBookkeeping::Print(), and GFAbsTrackRep::Print().
TVector2 GFDetPlane::project | ( | const TVector3 & | x | ) | const |
projecting a direction onto the plane:
Definition at line 181 of file GFDetPlane.cxx.
References Double_t, fU, fV, and x.
Referenced by LabToPlane(), and straightLineToPlane().
|
private |
Definition at line 217 of file GFDetPlane.cxx.
References fU, fV, getNormal(), n, Pi, and v.
Referenced by GFDetPlane(), set(), setO(), setU(), setUV(), and setV().
void GFDetPlane::set | ( | const TVector3 & | o, |
const TVector3 & | u, | ||
const TVector3 & | v | ||
) |
Definition at line 83 of file GFDetPlane.cxx.
References fO, fU, fV, sane(), and v.
Referenced by GFAbsTrackRep::reset().
|
inline |
Optionally, set the finite plane definition. This is most important for avoiding fake intersection points in fitting of loopers. This should be implemented for silicon detectors most importantly.
Definition at line 96 of file GFDetPlane.h.
References fFinitePlane.
void GFDetPlane::setNormal | ( | TVector3 | n | ) |
Definition at line 156 of file GFDetPlane.cxx.
References fabs(), fU, and fV.
Referenced by GFSpacepointHitPolicy::detPlane(), GFDetPlane(), RKTrackRep::RKTrackRep(), setNormal(), setON(), and trackProximity().
void GFDetPlane::setNormal | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
void GFDetPlane::setNormal | ( | const double & | theta, |
const double & | phi | ||
) |
Definition at line 175 of file GFDetPlane.cxx.
References CAMath::Cos(), n, setNormal(), and CAMath::Sin().
void GFDetPlane::setO | ( | const TVector3 & | o | ) |
Definition at line 92 of file GFDetPlane.cxx.
Referenced by GFSpacepointHitPolicy::detPlane(), RKTrackRep::extrapolateToLine(), RKTrackRep::RKTrackRep(), and trackProximity().
void GFDetPlane::setO | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 98 of file GFDetPlane.cxx.
void GFDetPlane::setON | ( | const TVector3 & | o, |
const TVector3 & | n | ||
) |
Definition at line 145 of file GFDetPlane.cxx.
References fO, and setNormal().
Referenced by RKTrackRep::extrapolateToPoint(), and RKTrackRep::stepalong().
void GFDetPlane::setU | ( | const TVector3 & | u | ) |
void GFDetPlane::setU | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 111 of file GFDetPlane.cxx.
void GFDetPlane::setUV | ( | const TVector3 & | u, |
const TVector3 & | v | ||
) |
void GFDetPlane::setV | ( | const TVector3 & | v | ) |
void GFDetPlane::setV | ( | double | X, |
double | Y, | ||
double | Z | ||
) |
Definition at line 124 of file GFDetPlane.cxx.
TVector2 GFDetPlane::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 357 of file GFDetPlane.cxx.
References fabs(), fO, getNormal(), point, project(), and t.
Referenced by inActive().
TVector3 GFDetPlane::toLab | ( | const TVector2 & | x | ) | const |
transform from plane coordinates to lab system
Definition at line 196 of file GFDetPlane.cxx.
Referenced by dist().
|
friend |
|
friend |
this operator is called very often in Kalman filtering. It checks equality of planes by comparing the 9 double values that define them.
Definition at line 259 of file GFDetPlane.cxx.
|
private |
Definition at line 156 of file GFDetPlane.h.
Referenced by GFDetPlane(), inActive(), operator=(), Print(), setFinitePlane(), and ~GFDetPlane().
|
private |
Definition at line 151 of file GFDetPlane.h.
Referenced by distance(), getGraphics(), getO(), GFDetPlane(), LabToPlane(), operator=(), operator==(), Print(), set(), setO(), setON(), straightLineToPlane(), and toLab().
|
private |
Definition at line 153 of file GFDetPlane.h.
Referenced by distance(), getGraphics(), getNormal(), getU(), GFDetPlane(), operator=(), operator==(), Print(), project(), sane(), set(), setNormal(), setU(), setUV(), and toLab().
|
private |
Definition at line 154 of file GFDetPlane.h.
Referenced by distance(), getGraphics(), getNormal(), getV(), GFDetPlane(), operator=(), operator==(), Print(), project(), sane(), set(), setNormal(), setUV(), setV(), and toLab().