![]() |
PandaRoot
|
Detector plane genfit geometry class. More...
#include <GFDetPlane.h>
Public Member Functions | |
GFDetPlane (GFAbsFinitePlane *finite=nullptr) | |
GFDetPlane (const TVector3 &o, const TVector3 &u, const TVector3 &v, GFAbsFinitePlane *finite=nullptr) | |
GFDetPlane (const TVector3 &o, const TVector3 &n, GFAbsFinitePlane *finite=nullptr) | |
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=nullptr) |
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... | |
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 58 of file GFDetPlane.h.
GFDetPlane::GFDetPlane | ( | GFAbsFinitePlane * | finite = nullptr | ) |
GFDetPlane::GFDetPlane | ( | const TVector3 & | o, |
const TVector3 & | u, | ||
const TVector3 & | v, | ||
GFAbsFinitePlane * | finite = nullptr |
||
) |
GFDetPlane::GFDetPlane | ( | const TVector3 & | o, |
const TVector3 & | n, | ||
GFAbsFinitePlane * | finite = nullptr |
||
) |
|
virtual |
GFDetPlane::GFDetPlane | ( | const GFDetPlane & | ) |
TVector3 GFDetPlane::dist | ( | const TVector3 & | point | ) | const |
Referenced by setFinitePlane().
double GFDetPlane::distance | ( | TVector3 & | ) | const |
Referenced by setFinitePlane().
double GFDetPlane::distance | ( | double | , |
double | , | ||
double | |||
) | const |
void GFDetPlane::getGraphics | ( | double | mesh, |
double | length, | ||
TPolyMarker3D ** | pl, | ||
TPolyLine3D ** | plLine, | ||
TPolyLine3D ** | u, | ||
TPolyLine3D ** | v, | ||
TPolyLine3D ** | n = nullptr |
||
) |
for poor attempts of making an event display. There is a lot of room for improvements.
Referenced by setFinitePlane().
TVector3 GFDetPlane::getNormal | ( | ) | const |
Referenced by setFinitePlane().
|
inline |
Definition at line 68 of file GFDetPlane.h.
|
inline |
Definition at line 69 of file GFDetPlane.h.
|
inline |
|
inline |
intersect in the active area? C.f. GFAbsFinitePlane
Definition at line 121 of file GFDetPlane.h.
References inActive(), and straightLineToPlane().
Referenced by inActive().
|
inline |
inActive methods refer to finite plane. C.f. GFAbsFinitePlane
Definition at line 124 of file GFDetPlane.h.
References GFAbsFinitePlane::inActive().
|
inline |
inActive methods refer to finite plane. C.f. GFAbsFinitePlane
Definition at line 132 of file GFDetPlane.h.
References inActive().
Referenced by inActive().
TVector2 GFDetPlane::LabToPlane | ( | const TVector3 & | x | ) | const |
transform from Lab system into plane
Referenced by setFinitePlane().
GFDetPlane& GFDetPlane::operator= | ( | const GFDetPlane & | ) |
void GFDetPlane::Print | ( | ) | const |
Referenced by setFinitePlane().
TVector2 GFDetPlane::project | ( | const TVector3 & | x | ) | const |
projecting a direction onto the plane:
Referenced by setFinitePlane().
void GFDetPlane::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 loopers. This should be implemented for silicon detectors most importantly.
Definition at line 87 of file GFDetPlane.h.
References dist(), distance(), getGraphics(), getNormal(), LabToPlane(), operator!=, operator==, Print(), project(), setNormal(), straightLineToPlane(), and toLab().
void GFDetPlane::setNormal | ( | TVector3 | n | ) |
Referenced by setFinitePlane().
void GFDetPlane::setNormal | ( | double | , |
double | , | ||
double | |||
) |
void GFDetPlane::setNormal | ( | const double & | theta, |
const double & | phi | ||
) |
void GFDetPlane::setO | ( | const TVector3 & | o | ) |
Referenced by getV().
void GFDetPlane::setO | ( | double | , |
double | , | ||
double | |||
) |
void GFDetPlane::setON | ( | const TVector3 & | o, |
const TVector3 & | n | ||
) |
Referenced by getV().
void GFDetPlane::setU | ( | const TVector3 & | u | ) |
Referenced by getV().
void GFDetPlane::setU | ( | double | , |
double | , | ||
double | |||
) |
void GFDetPlane::setUV | ( | const TVector3 & | u, |
const TVector3 & | v | ||
) |
Referenced by getV().
void GFDetPlane::setV | ( | const TVector3 & | v | ) |
Referenced by getV().
void GFDetPlane::setV | ( | double | , |
double | , | ||
double | |||
) |
TVector2 GFDetPlane::straightLineToPlane | ( | const TVector3 & | point, |
const TVector3 & | dir | ||
) | const |
gives u,v coordinates of the intersection point of a straight line with plane
Referenced by inActive(), and setFinitePlane().
TVector3 GFDetPlane::toLab | ( | const TVector2 & | x | ) | const |
transform from plane coordinates to lab system
Referenced by setFinitePlane().
|
friend |
returns NOT ==
Referenced by setFinitePlane().
|
friend |
this operator is called very often in Kalman filtering. It checks equality of planes by comparing the 9 double values that define them.
Referenced by setFinitePlane().