PandaRoot
GFDetPlane Class Reference

Detector plane genfit geometry class. More...

#include <GFDetPlane.h>

Inheritance diagram for GFDetPlane:

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 &)
 
GFDetPlaneoperator= (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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ GFDetPlane() [1/4]

GFDetPlane::GFDetPlane ( GFAbsFinitePlane finite = nullptr)

◆ GFDetPlane() [2/4]

GFDetPlane::GFDetPlane ( const TVector3 &  o,
const TVector3 &  u,
const TVector3 &  v,
GFAbsFinitePlane finite = nullptr 
)

◆ GFDetPlane() [3/4]

GFDetPlane::GFDetPlane ( const TVector3 &  o,
const TVector3 &  n,
GFAbsFinitePlane finite = nullptr 
)

◆ ~GFDetPlane()

virtual GFDetPlane::~GFDetPlane ( )
virtual

◆ GFDetPlane() [4/4]

GFDetPlane::GFDetPlane ( const GFDetPlane )

Member Function Documentation

◆ dist()

TVector3 GFDetPlane::dist ( const TVector3 &  point) const

Referenced by setFinitePlane().

◆ distance() [1/2]

double GFDetPlane::distance ( TVector3 &  ) const

Referenced by setFinitePlane().

◆ distance() [2/2]

double GFDetPlane::distance ( double  ,
double  ,
double   
) const

◆ getGraphics()

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

◆ getNormal()

TVector3 GFDetPlane::getNormal ( ) const

Referenced by setFinitePlane().

◆ getO()

TVector3 GFDetPlane::getO ( ) const
inline

Definition at line 68 of file GFDetPlane.h.

68 { return fO; }

◆ getU()

TVector3 GFDetPlane::getU ( ) const
inline

Definition at line 69 of file GFDetPlane.h.

69 { return fU; }

◆ getV()

TVector3 GFDetPlane::getV ( ) const
inline

Definition at line 70 of file GFDetPlane.h.

References setO(), setON(), setU(), setUV(), setV(), and v.

70 { return fV; }

◆ inActive() [1/3]

bool GFDetPlane::inActive ( const TVector3 &  point,
const TVector3 &  dir 
) const
inline

intersect in the active area? C.f. GFAbsFinitePlane

Definition at line 121 of file GFDetPlane.h.

References inActive(), and straightLineToPlane().

Referenced by inActive().

121 { return this->inActive(this->straightLineToPlane(point, dir)); }
TVector2 straightLineToPlane(const TVector3 &point, const TVector3 &dir) const
gives u,v coordinates of the intersection point of a straight line with plane
bool inActive(const TVector3 &point, const TVector3 &dir) const
intersect in the active area? C.f. GFAbsFinitePlane
Definition: GFDetPlane.h:121

◆ inActive() [2/3]

bool GFDetPlane::inActive ( double  u,
double  v 
) const
inline

inActive methods refer to finite plane. C.f. GFAbsFinitePlane

Definition at line 124 of file GFDetPlane.h.

References GFAbsFinitePlane::inActive().

125  {
126  if (fFinitePlane == nullptr)
127  return true;
128  return fFinitePlane->inActive(u, v);
129  }
__m128 v
Definition: P4_F32vec4.h:3
virtual bool inActive(const double &u, const double &v) const =0

◆ inActive() [3/3]

bool GFDetPlane::inActive ( const TVector2 &  v) const
inline

inActive methods refer to finite plane. C.f. GFAbsFinitePlane

Definition at line 132 of file GFDetPlane.h.

References inActive().

Referenced by inActive().

132 { return inActive(v.X(), v.Y()); }
__m128 v
Definition: P4_F32vec4.h:3
bool inActive(const TVector3 &point, const TVector3 &dir) const
intersect in the active area? C.f. GFAbsFinitePlane
Definition: GFDetPlane.h:121

◆ LabToPlane()

TVector2 GFDetPlane::LabToPlane ( const TVector3 &  x) const

transform from Lab system into plane

Referenced by setFinitePlane().

◆ operator=()

GFDetPlane& GFDetPlane::operator= ( const GFDetPlane )

◆ Print()

void GFDetPlane::Print ( ) const

Referenced by setFinitePlane().

◆ project()

TVector2 GFDetPlane::project ( const TVector3 &  x) const

projecting a direction onto the plane:

Referenced by setFinitePlane().

◆ set()

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

◆ setFinitePlane()

void GFDetPlane::setFinitePlane ( GFAbsFinitePlane finite)
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().

87 { fFinitePlane = finite; }

◆ setNormal() [1/3]

void GFDetPlane::setNormal ( TVector3  n)

Referenced by setFinitePlane().

◆ setNormal() [2/3]

void GFDetPlane::setNormal ( double  ,
double  ,
double   
)

◆ setNormal() [3/3]

void GFDetPlane::setNormal ( const double &  theta,
const double &  phi 
)

◆ setO() [1/2]

void GFDetPlane::setO ( const TVector3 &  o)

Referenced by getV().

◆ setO() [2/2]

void GFDetPlane::setO ( double  ,
double  ,
double   
)

◆ setON()

void GFDetPlane::setON ( const TVector3 &  o,
const TVector3 &  n 
)

Referenced by getV().

◆ setU() [1/2]

void GFDetPlane::setU ( const TVector3 &  u)

Referenced by getV().

◆ setU() [2/2]

void GFDetPlane::setU ( double  ,
double  ,
double   
)

◆ setUV()

void GFDetPlane::setUV ( const TVector3 &  u,
const TVector3 &  v 
)

Referenced by getV().

◆ setV() [1/2]

void GFDetPlane::setV ( const TVector3 &  v)

Referenced by getV().

◆ setV() [2/2]

void GFDetPlane::setV ( double  ,
double  ,
double   
)

◆ straightLineToPlane()

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

◆ toLab()

TVector3 GFDetPlane::toLab ( const TVector2 &  x) const

transform from plane coordinates to lab system

Referenced by setFinitePlane().

Friends And Related Function Documentation

◆ operator!=

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

returns NOT ==

Referenced by setFinitePlane().

◆ operator==

bool operator== ( const GFDetPlane lhs,
const GFDetPlane rhs 
)
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().


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