EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
genfit::DetPlane Class Reference

Detector plane. More...

#include <fun4all_GenFit/blob/master/core/include/DetPlane.h>

+ Inheritance diagram for genfit::DetPlane:
+ Collaboration diagram for genfit::DetPlane:

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 &)
 
DetPlaneoperator= (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< AbsFinitePlanefinitePlane_
 

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 ==
 

Detailed Description

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

Constructor & Destructor Documentation

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

References o_, u_, and v_.

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().

+ Here is the call graph for this function:

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().

+ Here is the call graph for this function:

genfit::DetPlane::~DetPlane ( )
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_.

Member Function Documentation

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 x.

+ Here is the call graph for this function:

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

References o_, u_, and v_.

Referenced by genfit::RKTrackRep::Extrap().

+ Here is the caller graph for this function:

double genfit::DetPlane::distance ( double  x,
double  y,
double  z 
) const

Definition at line 274 of file DetPlane.cc.

View newest version in sPHENIX GitHub at line 274 of file DetPlane.cc

References o_, u_, and v_.

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

References u_, and v_.

Referenced by genfit::RKTrackRep::calcForwardJacobianAndNoise(), genfit::RKTrackRep::Extrap(), Print(), rotate(), sane(), setV(), and straightLineToPlane().

+ Here is the caller graph for this function:

const TVector3& genfit::DetPlane::getO ( ) const
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().

+ Here is the caller graph for this function:

const TVector3& genfit::DetPlane::getU ( ) const
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().

+ Here is the caller graph for this function:

const TVector3& genfit::DetPlane::getV ( ) const
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().

+ Here is the caller graph for this function:

bool genfit::DetPlane::isFinite ( ) const
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().

+ Here is the caller graph for this function:

bool genfit::DetPlane::isInActive ( const TVector3 &  point,
const TVector3 &  dir 
) const
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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool genfit::DetPlane::isInActive ( const double &  posX,
const double &  posY,
const double &  posZ,
const double &  dirX,
const double &  dirY,
const double &  dirZ 
) const
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(), Acts::UnitConstants::u, and v.

+ Here is the call graph for this function:

bool genfit::DetPlane::isInActive ( double  u,
double  v 
) const
inline

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_.

bool genfit::DetPlane::isInActive ( const TVector2 &  v) const
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().

+ Here is the call graph for this function:

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

References o_, and project().

Referenced by dist().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

DetPlane & genfit::DetPlane::operator= ( DetPlane  other)

Definition at line 78 of file DetPlane.cc.

View newest version in sPHENIX GitHub at line 78 of file DetPlane.cc

References swap().

+ Here is the call graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

References u_, and v_.

Referenced by LabToPlane(), and straightLineToPlane().

+ Here is the caller graph for this function:

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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void genfit::DetPlane::sane ( )
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 getNormal(), u_, and v_.

Referenced by DetPlane(), rotate(), set(), setU(), setUV(), and setV().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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(), Acts::UnitConstants::u, u_, v, and v_.

+ Here is the call graph for this function:

void genfit::DetPlane::setFinitePlane ( AbsFinitePlane finite)
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

References u_, and v_.

Referenced by DetPlane(), setNormal(), and setON().

+ Here is the caller graph for this function:

void genfit::DetPlane::setNormal ( double  X,
double  Y,
double  Z 
)

Definition at line 161 of file DetPlane.cc.

View newest version in sPHENIX GitHub at line 161 of file DetPlane.cc

References setNormal().

+ Here is the call graph for this function:

void genfit::DetPlane::setNormal ( const double &  theta,
const double &  phi 
)

Definition at line 172 of file DetPlane.cc.

View newest version in sPHENIX GitHub at line 172 of file DetPlane.cc

References setNormal().

+ Here is the call graph for this function:

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().

+ Here is the caller graph for this function:

void genfit::DetPlane::setO ( double  X,
double  Y,
double  Z 
)

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().

+ Here is the call graph for this function:

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(), Acts::UnitConstants::u, and u_.

+ Here is the call graph for this function:

void genfit::DetPlane::setU ( double  X,
double  Y,
double  Z 
)

Definition at line 121 of file DetPlane.cc.

View newest version in sPHENIX GitHub at line 121 of file DetPlane.cc

References sane(), and u_.

+ Here is the call graph for this function:

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(), Acts::UnitConstants::u, u_, v, and v_.

+ Here is the call graph for this function:

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_, v, and v_.

+ Here is the call graph for this function:

void genfit::DetPlane::setV ( double  X,
double  Y,
double  Z 
)

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_.

+ Here is the call graph for this function:

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 getNormal(), o_, project(), and t.

Referenced by isInActive().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 getNormal(), o_, t, u_, and v_.

+ Here is the call graph for this function:

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_, boost::swap(), u_, and v_.

Referenced by operator=().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

References d, o_, u_, and v_.

Referenced by dist().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

bool operator!= ( const DetPlane lhs,
const DetPlane rhs 
)
friend

returns NOT ==

Definition at line 262 of file DetPlane.cc.

View newest version in sPHENIX GitHub at line 262 of file DetPlane.cc

bool operator== ( const DetPlane lhs,
const DetPlane rhs 
)
friend

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

Member Data Documentation

std::unique_ptr<AbsFinitePlane> genfit::DetPlane::finitePlane_
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().

TVector3 genfit::DetPlane::o_
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().

TVector3 genfit::DetPlane::u_
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().

TVector3 genfit::DetPlane::v_
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().


The documentation for this class was generated from the following files: