Analysis Software
Documentation for sPHENIX simulation software
|
Detector plane. More...
#include <GenFit/blob/master/core/include/DetPlane.h>
Public Member Functions | |
DetPlane (AbsFinitePlane *finite=nullptr) | |
DetPlane (const TVector3 &o, const TVector3 &u, const TVector3 &v, AbsFinitePlane *finite=nullptr) | |
DetPlane (const TVector3 &o, const TVector3 &n, AbsFinitePlane *finite=nullptr) | |
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_ |
std::unique_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 59 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 59 of file DetPlane.h
genfit::DetPlane::DetPlane | ( | AbsFinitePlane * | finite = nullptr | ) |
Definition at line 32 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 32 of file DetPlane.cc
genfit::DetPlane::DetPlane | ( | const TVector3 & | o, |
const TVector3 & | u, | ||
const TVector3 & | v, | ||
AbsFinitePlane * | finite = nullptr |
||
) |
Definition at line 43 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 43 of file DetPlane.cc
References sane().
genfit::DetPlane::DetPlane | ( | const TVector3 & | o, |
const TVector3 & | n, | ||
AbsFinitePlane * | finite = nullptr |
||
) |
Definition at line 52 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 52 of file DetPlane.cc
References setNormal().
|
virtual |
Definition at line 61 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 61 of file DetPlane.cc
genfit::DetPlane::DetPlane | ( | const DetPlane & | rhs | ) |
Definition at line 66 of file DetPlane.cc.
View newest version in sPHENIX GitHub 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.
View newest version in sPHENIX GitHub at line 198 of file DetPlane.cc
References LabToPlane(), toLab(), and ambiguity_solver_full_chain::x.
double genfit::DetPlane::distance | ( | const TVector3 & | point | ) | const |
absolute distance from a point to the plane
Definition at line 267 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 267 of file DetPlane.cc
Referenced by genfit::RKTrackRep::Extrap().
Definition at line 274 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 274 of file DetPlane.cc
TVector3 genfit::DetPlane::getNormal | ( | ) | const |
Definition at line 156 of file DetPlane.cc.
View newest version in sPHENIX GitHub 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 83 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 83 of file DetPlane.h
References o_.
Referenced by genfit::RKTrackRep::Extrap().
|
inline |
Definition at line 84 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 84 of file DetPlane.h
References u_.
Referenced by genfit::RKTrackRep::calcForwardJacobianAndNoise().
|
inline |
Definition at line 85 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 85 of file DetPlane.h
References v_.
Referenced by genfit::RKTrackRep::calcForwardJacobianAndNoise().
|
inline |
Definition at line 169 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 169 of file DetPlane.h
References finitePlane_.
Referenced by genfit::RKTrackRep::estimateStep().
|
inline |
intersect in the active area? C.f. AbsFinitePlane
Definition at line 144 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 144 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 150 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 150 of file DetPlane.h
References finitePlane_, isInActive(), straightLineToPlane(), physmon_ckf_tracking::u, and testSigmaEff::v.
isInActive methods refer to finite plane. C.f. AbsFinitePlane
Definition at line 159 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 159 of file DetPlane.h
References finitePlane_.
|
inline |
isInActive methods refer to finite plane. C.f. AbsFinitePlane
Definition at line 165 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 165 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.
View newest version in sPHENIX GitHub at line 183 of file DetPlane.cc
Referenced by dist().
Definition at line 78 of file DetPlane.cc.
View newest version in sPHENIX GitHub 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.
View newest version in sPHENIX GitHub at line 219 of file DetPlane.cc
References finitePlane_, getNormal(), o_, genfit::printOut, u_, and v_.
Referenced by genfit::RKTrackRep::Extrap(), main(), 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.
View newest version in sPHENIX GitHub 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.
View newest version in sPHENIX GitHub 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.
View newest version in sPHENIX GitHub at line 319 of file DetPlane.cc
References getNormal(), sane(), u_, and v_.
Referenced by compareForthBackJacNoise().
|
private |
ensures orthonormal coordinates
Definition at line 204 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 204 of file DetPlane.cc
References assert, 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 | ||
) |
Definition at line 94 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 94 of file DetPlane.cc
References o_, sane(), physmon_ckf_tracking::u, u_, testSigmaEff::v, and 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 103 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 103 of file DetPlane.h
References finitePlane_.
void genfit::DetPlane::setNormal | ( | const TVector3 & | n | ) |
Definition at line 165 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 165 of file DetPlane.cc
Referenced by DetPlane(), setNormal(), and setON().
Definition at line 161 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 161 of file DetPlane.cc
References setNormal().
Definition at line 172 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 172 of file DetPlane.cc
References setNormal().
void genfit::DetPlane::setO | ( | const TVector3 & | o | ) |
Definition at line 105 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 105 of file DetPlane.cc
References o_.
Referenced by genfit::EventDisplay::makeLines().
Definition at line 110 of file DetPlane.cc.
View newest version in sPHENIX GitHub 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.
View newest version in sPHENIX GitHub 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.
View newest version in sPHENIX GitHub at line 115 of file DetPlane.cc
References sane(), physmon_ckf_tracking::u, and u_.
Definition at line 121 of file DetPlane.cc.
View newest version in sPHENIX GitHub 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.
View newest version in sPHENIX GitHub at line 143 of file DetPlane.cc
References sane(), physmon_ckf_tracking::u, u_, testSigmaEff::v, and v_.
void genfit::DetPlane::setV | ( | const TVector3 & | v | ) |
Definition at line 127 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 127 of file DetPlane.cc
References getNormal(), sane(), u_, testSigmaEff::v, and v_.
Definition at line 135 of file DetPlane.cc.
View newest version in sPHENIX GitHub 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.
View newest version in sPHENIX GitHub at line 282 of file DetPlane.cc
References E, getNormal(), o_, project(), and t.
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.
View newest version in sPHENIX GitHub at line 295 of file DetPlane.cc
References E, getNormal(), o_, t, u_, and v_.
void genfit::DetPlane::swap | ( | DetPlane & | other | ) |
Definition at line 84 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 84 of file DetPlane.cc
References finitePlane_, o_, swap(), u_, and v_.
Referenced by operator=().
TVector3 genfit::DetPlane::toLab | ( | const TVector2 & | x | ) | const |
transform from plane coordinates to lab system
Definition at line 189 of file DetPlane.cc.
View newest version in sPHENIX GitHub at line 189 of file DetPlane.cc
Referenced by dist().
returns NOT ==
Definition at line 262 of file DetPlane.cc.
View newest version in sPHENIX GitHub 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.
View newest version in sPHENIX GitHub at line 240 of file DetPlane.cc
|
private |
Definition at line 188 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 188 of file DetPlane.h
Referenced by DetPlane(), isFinite(), isInActive(), Print(), reset(), setFinitePlane(), and swap().
|
private |
Definition at line 184 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 184 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 185 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 185 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 186 of file DetPlane.h.
View newest version in sPHENIX GitHub at line 186 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().