Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
pandora::Helix Class Reference

Helix class. More...

#include "Helix.h"

Collaboration diagram for pandora::Helix:

Public Member Functions

 Helix (const float phi0, const float d0, const float z0, const float omega, const float tanlambda, const float bField)
 Constructor using canonical (LEP-wise) parameterisation.
 
 Helix (const CartesianVector &position, const CartesianVector &momentum, const float charge, const float bField)
 Constructor.
 
StatusCode GetPointInXY (const float x0, const float y0, const float ax, const float ay, const CartesianVector &referencePoint, CartesianVector &intersectionPoint) const
 Get helix intersection point with a plane parallel to z axis. The plane is defined by two coordinates in the plane (x0,y0) and a normal vector (ax,ay).
 
StatusCode GetPointInXY (const float x0, const float y0, const float ax, const float ay, const CartesianVector &referencePoint, CartesianVector &intersectionPoint, float &genericTime) const
 Get helix intersection point with a plane parallel to z axis. The plane is defined by two coordinates in the plane (x0,y0) and a normal vector (ax,ay).
 
StatusCode GetPointInZ (const float zPlane, const CartesianVector &referencePoint, CartesianVector &intersectionPoint) const
 Get helix intersection point with a plane perpendicular to z axis.
 
StatusCode GetPointInZ (const float zPlane, const CartesianVector &referencePoint, CartesianVector &intersectionPoint, float &genericTime) const
 Get helix intersection point with a plane perpendicular to z axis.
 
StatusCode GetPointOnCircle (const float radius, const CartesianVector &referencePoint, CartesianVector &intersectionPoint) const
 Get coordinates of helix intersection with cylinder, aligned along z-axis.
 
StatusCode GetPointOnCircle (const float radius, const CartesianVector &referencePoint, CartesianVector &intersectionPoint, float &genericTime) const
 Get coordinates of helix intersection with cylinder, aligned along z-axis.
 
StatusCode GetDistanceToPoint (const CartesianVector &point, CartesianVector &distance) const
 Get distance of the closest approach of helix to an arbitrary point in space.
 
StatusCode GetDistanceToPoint (const CartesianVector &point, CartesianVector &distance, float &genericTime) const
 Get distance of the closest approach of helix to an arbitrary point in space.
 
StatusCode GetDistanceToHelix (const Helix *const pHelix, CartesianVector &positionOfClosestApproach, CartesianVector &v0momentum, float &helixDistance) const
 Get distance between two helices.
 
CartesianVector GetExtrapolatedMomentum (const CartesianVector &position) const
 
const CartesianVectorGetMomentum () const
 Get momentum of particle at the point of closest approach to IP.
 
const CartesianVectorGetReferencePoint () const
 Get reference point of track.
 
float GetPhi0 () const
 Get phi angle of the momentum vector at the point of closest approach to IP.
 
float GetD0 () const
 Get z signed distance of closest approach to IP in the R-Phi plane.
 
float GetZ0 () const
 Get z coordinate of the point of closest approach to IP in the R-Phi plane.
 
float GetOmega () const
 Get signed curvature of the track.
 
float GetTanLambda () const
 Get tangent of dip angle of the track.
 
float GetPxy () const
 Get transverse momentum of the track.
 
float GetCharge () const
 Get charge.
 
float GetXCentre () const
 Get x coordinate of circumference.
 
float GetYCentre () const
 Get y coordinate of circumference.
 
float GetRadius () const
 Get radius of circumference.
 

Private Attributes

CartesianVector m_referencePoint
 The coordinates of the reference point.
 
CartesianVector m_momentum
 The momentum vector at reference point.
 
float m_phi0
 phi0 in canonical parameterization
 
float m_d0
 d0 in canonical parameterisation
 
float m_z0
 z0 in canonical parameterisation
 
float m_omega
 signed curvature in canonical parameterisation
 
float m_tanLambda
 tanLambda
 
float m_pxy
 The transverse momentum.
 
float m_charge
 The particle charge.
 
float m_xCentre
 The circle centre x coordinate.
 
float m_yCentre
 The circle centre y coordinate.
 
float m_radius
 The radius of circle in XY plane.
 
float m_phiRefPoint
 Phi w.r.t. (X0, Y0) of circle at reference point.
 
float m_phiAtPCA
 Phi w.r.t. (X0, Y0) of circle at point of closest approach.
 
float m_xAtPCA
 x coordinate at point of closest approach
 
float m_yAtPCA
 y coordinate at point of closest approach
 
float m_pxAtPCA
 Momentum x component at point of closest approach.
 
float m_pyAtPCA
 Momentum y component at point of closest approach.
 
float m_phiMomRefPoint
 Phi of Momentum vector at reference point.
 

Static Private Attributes

static const float FCT = 2.99792458E-4f
 
static const float TWO_PI = static_cast<float>(2. * std::acos(-1.0))
 
static const float HALF_PI = static_cast<float>(0.5 * std::acos(-1.0))
 

Detailed Description

Helix class.

Definition at line 21 of file Helix.h.

Constructor & Destructor Documentation

◆ Helix() [1/2]

pandora::Helix::Helix ( const float  phi0,
const float  d0,
const float  z0,
const float  omega,
const float  tanlambda,
const float  bField 
)

Constructor using canonical (LEP-wise) parameterisation.

Parameters
phi0phi angle of momentum vector at the point of closest approach to IP in R-Phi plane
d0signed distance of closest approach in R-Phi plane
z0z coordinate of the point of closest approach to IP in R-Phi plane
omegasigned curvature
tanLambdatangent of dip angle
bFieldmagnetic field (in Tesla)

Definition at line 24 of file Helix.cc.

Here is the call graph for this function:

◆ Helix() [2/2]

pandora::Helix::Helix ( const CartesianVector position,
const CartesianVector momentum,
const float  charge,
const float  bField 
)

Constructor.

Parameters
positionposition of the reference point
momentummomentum vector at the reference point
chargeparticle charge
bFieldmagnetic field (in Tesla)

Definition at line 57 of file Helix.cc.

Here is the call graph for this function:

Member Function Documentation

◆ GetCharge()

float pandora::Helix::GetCharge ( ) const
inline

Get charge.

Returns
the charge

Definition at line 363 of file Helix.h.

Here is the caller graph for this function:

◆ GetD0()

float pandora::Helix::GetD0 ( ) const
inline

Get z signed distance of closest approach to IP in the R-Phi plane.

Returns
the signed distance of closest approach

Definition at line 328 of file Helix.h.

◆ GetDistanceToHelix()

StatusCode pandora::Helix::GetDistanceToHelix ( const Helix *const  pHelix,
CartesianVector positionOfClosestApproach,
CartesianVector v0momentum,
float &  helixDistance 
) const

Get distance between two helices.

Parameters
pHelixaddress of a second helix
positionOfClosestApproachto receive position of the point of closest approach
v0momentumto receive the v0 momentum
helixDistanceto receive the distance between the two helices

Definition at line 349 of file Helix.cc.

Here is the call graph for this function:

◆ GetDistanceToPoint() [1/2]

StatusCode pandora::Helix::GetDistanceToPoint ( const CartesianVector point,
CartesianVector distance 
) const
inline

Get distance of the closest approach of helix to an arbitrary point in space.

Parameters
pointcoordinates of the specified point
distanceto receive a vector of distances from helix to point in the following projections: x component: distance in R-Phi plane y-component: distance along Z axis z-component: 3D distance magnitude

Definition at line 296 of file Helix.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetDistanceToPoint() [2/2]

StatusCode pandora::Helix::GetDistanceToPoint ( const CartesianVector point,
CartesianVector distance,
float &  genericTime 
) const

Get distance of the closest approach of helix to an arbitrary point in space.

Parameters
pointcoordinates of the specified point
distanceto receive a vector of distances from helix to point in the following projections: x component: distance in R-Phi plane y-component: distance along Z axis z-component: 3D distance magnitude
genericTimeto receive the generic time (helix length, from reference point to intersection, divided by particle momentum)

Definition at line 298 of file Helix.cc.

Here is the call graph for this function:

◆ GetExtrapolatedMomentum()

CartesianVector pandora::Helix::GetExtrapolatedMomentum ( const CartesianVector position) const
Parameters
Getextrapolated momentum at a specified position
positionthe specified position
Returns
the extrapolated momentum

Definition at line 522 of file Helix.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetMomentum()

const CartesianVector & pandora::Helix::GetMomentum ( ) const
inline

Get momentum of particle at the point of closest approach to IP.

Returns
the momentum of particle

Definition at line 304 of file Helix.h.

Here is the caller graph for this function:

◆ GetOmega()

float pandora::Helix::GetOmega ( ) const
inline

Get signed curvature of the track.

Returns
the signed curvature of the track

Definition at line 342 of file Helix.h.

◆ GetPhi0()

float pandora::Helix::GetPhi0 ( ) const
inline

Get phi angle of the momentum vector at the point of closest approach to IP.

Returns
the phi angle of the momentum vector

Definition at line 318 of file Helix.h.

◆ GetPointInXY() [1/2]

StatusCode pandora::Helix::GetPointInXY ( const float  x0,
const float  y0,
const float  ax,
const float  ay,
const CartesianVector referencePoint,
CartesianVector intersectionPoint 
) const
inline

Get helix intersection point with a plane parallel to z axis. The plane is defined by two coordinates in the plane (x0,y0) and a normal vector (ax,ay).

Parameters
x0x coordinate in the specified plane
y0y coordinate in the specified plane
axx component of vector normal to specified plane
ayy component of vector normal to specified plane
referencePointthe reference point of the helix
intersectionPointto receive the coordinates of the intersection point

Definition at line 271 of file Helix.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetPointInXY() [2/2]

StatusCode pandora::Helix::GetPointInXY ( const float  x0,
const float  y0,
const float  ax,
const float  ay,
const CartesianVector referencePoint,
CartesianVector intersectionPoint,
float &  genericTime 
) const

Get helix intersection point with a plane parallel to z axis. The plane is defined by two coordinates in the plane (x0,y0) and a normal vector (ax,ay).

Parameters
x0x coordinate in the specified plane
y0y coordinate in the specified plane
axx component of vector normal to specified plane
ayy component of vector normal to specified plane
referencePointthe reference point of the helix
intersectionPointto receive the coordinates of the intersection point
genericTimeto receive the generic time (helix length, from reference point to intersection, divided by particle momentum)

Definition at line 132 of file Helix.cc.

Here is the call graph for this function:

◆ GetPointInZ() [1/2]

StatusCode pandora::Helix::GetPointInZ ( const float  zPlane,
const CartesianVector referencePoint,
CartesianVector intersectionPoint 
) const
inline

Get helix intersection point with a plane perpendicular to z axis.

Parameters
zPlanethe z coordinate for the specified plane
referencePointthe reference point of the helix
intersectionPointto receive the coordinates of the intersection point

Definition at line 280 of file Helix.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetPointInZ() [2/2]

StatusCode pandora::Helix::GetPointInZ ( const float  zPlane,
const CartesianVector referencePoint,
CartesianVector intersectionPoint,
float &  genericTime 
) const

Get helix intersection point with a plane perpendicular to z axis.

Parameters
zPlanethe z coordinate for the specified plane
referencePointthe reference point of the helix
intersectionPointto receive the coordinates of the intersection point
genericTimeto receive the generic time (helix length, from reference point to intersection, divided by particle momentum)

Definition at line 204 of file Helix.cc.

Here is the call graph for this function:

◆ GetPointOnCircle() [1/2]

StatusCode pandora::Helix::GetPointOnCircle ( const float  radius,
const CartesianVector referencePoint,
CartesianVector intersectionPoint 
) const
inline

Get coordinates of helix intersection with cylinder, aligned along z-axis.

Parameters
radiusthe radius of the cylinder
referencePointthe reference point of the helix
intersectionPointto receive the coordinates of the intersection point

Definition at line 288 of file Helix.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetPointOnCircle() [2/2]

StatusCode pandora::Helix::GetPointOnCircle ( const float  radius,
const CartesianVector referencePoint,
CartesianVector intersectionPoint,
float &  genericTime 
) const

Get coordinates of helix intersection with cylinder, aligned along z-axis.

Parameters
radiusthe radius of the cylinder
referencePointthe reference point of the helix
intersectionPointto receive the coordinates of the intersection point
genericTimeto receive the generic time (helix length, from reference point to intersection, divided by particle momentum)

Definition at line 222 of file Helix.cc.

Here is the call graph for this function:

◆ GetPxy()

float pandora::Helix::GetPxy ( ) const
inline

Get transverse momentum of the track.

Returns
the transverse momentum of the track

Definition at line 356 of file Helix.h.

Here is the caller graph for this function:

◆ GetRadius()

float pandora::Helix::GetRadius ( ) const
inline

Get radius of circumference.

Returns
the radius of circumference

Definition at line 384 of file Helix.h.

Here is the caller graph for this function:

◆ GetReferencePoint()

const CartesianVector & pandora::Helix::GetReferencePoint ( ) const
inline

Get reference point of track.

Returns
the reference point of track

Definition at line 311 of file Helix.h.

Here is the caller graph for this function:

◆ GetTanLambda()

float pandora::Helix::GetTanLambda ( ) const
inline

Get tangent of dip angle of the track.

Returns
the tangent of dip angle of the track

Definition at line 349 of file Helix.h.

◆ GetXCentre()

float pandora::Helix::GetXCentre ( ) const
inline

Get x coordinate of circumference.

Returns
the x coordinate of circumference

Definition at line 370 of file Helix.h.

Here is the caller graph for this function:

◆ GetYCentre()

float pandora::Helix::GetYCentre ( ) const
inline

Get y coordinate of circumference.

Returns
the y coordinate of circumference

Definition at line 377 of file Helix.h.

Here is the caller graph for this function:

◆ GetZ0()

float pandora::Helix::GetZ0 ( ) const
inline

Get z coordinate of the point of closest approach to IP in the R-Phi plane.

Returns
the z coordinate of the point of closest approach

Definition at line 335 of file Helix.h.

Member Data Documentation

◆ FCT

const float pandora::Helix::FCT = 2.99792458E-4f
staticprivate

Definition at line 243 of file Helix.h.

◆ HALF_PI

const float pandora::Helix::HALF_PI = static_cast<float>(0.5 * std::acos(-1.0))
staticprivate

Definition at line 245 of file Helix.h.

◆ m_charge

float pandora::Helix::m_charge
private

The particle charge.

Definition at line 256 of file Helix.h.

◆ m_d0

float pandora::Helix::m_d0
private

d0 in canonical parameterisation

Definition at line 251 of file Helix.h.

◆ m_momentum

CartesianVector pandora::Helix::m_momentum
private

The momentum vector at reference point.

Definition at line 248 of file Helix.h.

◆ m_omega

float pandora::Helix::m_omega
private

signed curvature in canonical parameterisation

Definition at line 253 of file Helix.h.

◆ m_phi0

float pandora::Helix::m_phi0
private

phi0 in canonical parameterization

Definition at line 250 of file Helix.h.

◆ m_phiAtPCA

float pandora::Helix::m_phiAtPCA
private

Phi w.r.t. (X0, Y0) of circle at point of closest approach.

Definition at line 261 of file Helix.h.

◆ m_phiMomRefPoint

float pandora::Helix::m_phiMomRefPoint
private

Phi of Momentum vector at reference point.

Definition at line 266 of file Helix.h.

◆ m_phiRefPoint

float pandora::Helix::m_phiRefPoint
private

Phi w.r.t. (X0, Y0) of circle at reference point.

Definition at line 260 of file Helix.h.

◆ m_pxAtPCA

float pandora::Helix::m_pxAtPCA
private

Momentum x component at point of closest approach.

Definition at line 264 of file Helix.h.

◆ m_pxy

float pandora::Helix::m_pxy
private

The transverse momentum.

Definition at line 255 of file Helix.h.

◆ m_pyAtPCA

float pandora::Helix::m_pyAtPCA
private

Momentum y component at point of closest approach.

Definition at line 265 of file Helix.h.

◆ m_radius

float pandora::Helix::m_radius
private

The radius of circle in XY plane.

Definition at line 259 of file Helix.h.

◆ m_referencePoint

CartesianVector pandora::Helix::m_referencePoint
private

The coordinates of the reference point.

Definition at line 247 of file Helix.h.

◆ m_tanLambda

float pandora::Helix::m_tanLambda
private

tanLambda

Definition at line 254 of file Helix.h.

◆ m_xAtPCA

float pandora::Helix::m_xAtPCA
private

x coordinate at point of closest approach

Definition at line 262 of file Helix.h.

◆ m_xCentre

float pandora::Helix::m_xCentre
private

The circle centre x coordinate.

Definition at line 257 of file Helix.h.

◆ m_yAtPCA

float pandora::Helix::m_yAtPCA
private

y coordinate at point of closest approach

Definition at line 263 of file Helix.h.

◆ m_yCentre

float pandora::Helix::m_yCentre
private

The circle centre y coordinate.

Definition at line 258 of file Helix.h.

◆ m_z0

float pandora::Helix::m_z0
private

z0 in canonical parameterisation

Definition at line 252 of file Helix.h.

◆ TWO_PI

const float pandora::Helix::TWO_PI = static_cast<float>(2. * std::acos(-1.0))
staticprivate

Definition at line 244 of file Helix.h.


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