GENFIT  Rev:NoNumberAvailable
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
genfit::DetPlane Class Reference

Detector plane. More...

#include <DetPlane.h>

Inheritance diagram for genfit::DetPlane:
Inheritance graph
Collaboration diagram for genfit::DetPlane:
Collaboration graph

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 &)
 
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: 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< AbsFinitePlanefinitePlane_
 

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

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 61 of file DetPlane.h.

Constructor & Destructor Documentation

◆ DetPlane() [1/4]

genfit::DetPlane::DetPlane ( AbsFinitePlane finite = NULL)

Definition at line 32 of file DetPlane.cc.

References o_, u_, and v_.

◆ DetPlane() [2/4]

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

◆ DetPlane() [3/4]

genfit::DetPlane::DetPlane ( const TVector3 &  o,
const TVector3 &  n,
AbsFinitePlane finite = NULL 
)

Definition at line 52 of file DetPlane.cc.

References setNormal().

◆ ~DetPlane()

genfit::DetPlane::~DetPlane ( )
virtual

Definition at line 61 of file DetPlane.cc.

◆ DetPlane() [4/4]

genfit::DetPlane::DetPlane ( const DetPlane rhs)

Definition at line 66 of file DetPlane.cc.

References finitePlane_.

Member Function Documentation

◆ dist()

TVector3 genfit::DetPlane::dist ( const TVector3 &  point) const

Definition at line 198 of file DetPlane.cc.

References LabToPlane(), and toLab().

◆ distance() [1/2]

double genfit::DetPlane::distance ( const TVector3 &  point) const

absolute distance from a point to the plane

Definition at line 267 of file DetPlane.cc.

References o_, u_, and v_.

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

◆ distance() [2/2]

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

Definition at line 274 of file DetPlane.cc.

References o_, u_, and v_.

◆ getNormal()

TVector3 genfit::DetPlane::getNormal ( ) const

◆ getO()

const TVector3& genfit::DetPlane::getO ( ) const
inline

Definition at line 85 of file DetPlane.h.

References o_.

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

◆ getU()

const TVector3& genfit::DetPlane::getU ( ) const
inline

Definition at line 86 of file DetPlane.h.

References u_.

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

◆ getV()

const TVector3& genfit::DetPlane::getV ( ) const
inline

Definition at line 87 of file DetPlane.h.

References v_.

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

◆ isFinite()

bool genfit::DetPlane::isFinite ( ) const
inline

Definition at line 171 of file DetPlane.h.

References finitePlane_.

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

◆ isInActive() [1/4]

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 152 of file DetPlane.h.

References finitePlane_, isInActive(), and straightLineToPlane().

◆ isInActive() [2/4]

bool genfit::DetPlane::isInActive ( const TVector2 &  v) const
inline

isInActive methods refer to finite plane. C.f. AbsFinitePlane

Definition at line 167 of file DetPlane.h.

References isInActive().

◆ isInActive() [3/4]

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

◆ isInActive() [4/4]

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

isInActive methods refer to finite plane. C.f. AbsFinitePlane

Definition at line 161 of file DetPlane.h.

References finitePlane_.

◆ LabToPlane()

TVector2 genfit::DetPlane::LabToPlane ( const TVector3 &  x) const

transform from Lab system into plane

Definition at line 183 of file DetPlane.cc.

References o_, and project().

Referenced by dist().

◆ operator=()

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

Definition at line 78 of file DetPlane.cc.

References swap().

◆ Print()

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

◆ project()

TVector2 genfit::DetPlane::project ( const TVector3 &  x) const

projecting a direction onto the plane:

Definition at line 177 of file DetPlane.cc.

References u_, and v_.

Referenced by LabToPlane(), and straightLineToPlane().

◆ reset()

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

◆ rotate()

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

◆ sane()

void genfit::DetPlane::sane ( )
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().

◆ set()

void genfit::DetPlane::set ( const TVector3 &  o,
const TVector3 &  u,
const TVector3 &  v 
)

Definition at line 94 of file DetPlane.cc.

References o_, sane(), u_, and v_.

◆ setFinitePlane()

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 105 of file DetPlane.h.

References finitePlane_.

◆ setNormal() [1/3]

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

Definition at line 172 of file DetPlane.cc.

References setNormal().

◆ setNormal() [2/3]

void genfit::DetPlane::setNormal ( const TVector3 &  n)

Definition at line 165 of file DetPlane.cc.

References u_, and v_.

Referenced by DetPlane(), genfit::RKTrackRep::extrapToPoint(), setNormal(), and setON().

◆ setNormal() [3/3]

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

Definition at line 161 of file DetPlane.cc.

References setNormal().

◆ setO() [1/2]

void genfit::DetPlane::setO ( const TVector3 &  o)

Definition at line 105 of file DetPlane.cc.

References o_.

◆ setO() [2/2]

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

Definition at line 110 of file DetPlane.cc.

References o_.

◆ setON()

void genfit::DetPlane::setON ( const TVector3 &  o,
const TVector3 &  n 
)

Definition at line 150 of file DetPlane.cc.

References o_, and setNormal().

◆ setU() [1/2]

void genfit::DetPlane::setU ( const TVector3 &  u)

Definition at line 115 of file DetPlane.cc.

References sane(), and u_.

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

◆ setU() [2/2]

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

Definition at line 121 of file DetPlane.cc.

References sane(), and u_.

◆ setUV()

void genfit::DetPlane::setUV ( const TVector3 &  u,
const TVector3 &  v 
)

Definition at line 143 of file DetPlane.cc.

References sane(), u_, and v_.

◆ setV() [1/2]

void genfit::DetPlane::setV ( const TVector3 &  v)

Definition at line 127 of file DetPlane.cc.

References getNormal(), sane(), u_, and v_.

◆ setV() [2/2]

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

Definition at line 135 of file DetPlane.cc.

References getNormal(), sane(), u_, and v_.

◆ straightLineToPlane() [1/2]

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

◆ straightLineToPlane() [2/2]

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

◆ swap()

void genfit::DetPlane::swap ( DetPlane other)

Definition at line 84 of file DetPlane.cc.

References finitePlane_, o_, u_, and v_.

Referenced by operator=().

◆ toLab()

TVector3 genfit::DetPlane::toLab ( const TVector2 &  x) const

transform from plane coordinates to lab system

Definition at line 189 of file DetPlane.cc.

References o_, u_, and v_.

Referenced by dist().

Friends And Related Function Documentation

◆ operator!=

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

returns NOT ==

Definition at line 262 of file DetPlane.cc.

◆ operator==

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.

Member Data Documentation

◆ finitePlane_

boost::scoped_ptr<AbsFinitePlane> genfit::DetPlane::finitePlane_
private

Definition at line 191 of file DetPlane.h.

Referenced by DetPlane(), isFinite(), isInActive(), Print(), reset(), setFinitePlane(), and swap().

◆ o_

TVector3 genfit::DetPlane::o_
private

◆ u_

TVector3 genfit::DetPlane::u_
private

◆ v_

TVector3 genfit::DetPlane::v_
private

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