1 #ifndef GARCONTENT_HELIX_H 2 #define GARCONTENT_HELIX_H 1 4 #include "Objects/CartesianVector.h" 6 #include "Pandora/StatusCodes.h" 27 Helix(
const float phi0,
const float d0,
const float x0,
const float omega,
const float tanlambda,
const float bField);
37 Helix(
const pandora::CartesianVector &
position,
const pandora::CartesianVector &
momentum,
const float charge,
const float bField);
50 pandora::StatusCode
GetPointInZY(
const float z0,
const float y0,
const float az,
const float ay,
const pandora::CartesianVector &referencePoint,
51 pandora::CartesianVector &intersectionPoint)
const;
65 pandora::StatusCode
GetPointInZY(
const float z0,
const float y0,
const float az,
const float ay,
const pandora::CartesianVector &referencePoint,
66 pandora::CartesianVector &intersectionPoint,
float &genericTime)
const;
75 pandora::StatusCode
GetPointInX(
const float xPlane,
const pandora::CartesianVector &referencePoint, pandora::CartesianVector &intersectionPoint)
const;
85 pandora::StatusCode
GetPointInX(
const float xPlane,
const pandora::CartesianVector &referencePoint, pandora::CartesianVector &intersectionPoint,
86 float &genericTime)
const;
95 pandora::StatusCode
GetPointOnCircle(
const float radius,
const pandora::CartesianVector &referencePoint, pandora::CartesianVector &intersectionPoint)
const;
105 pandora::StatusCode
GetPointOnCircle(
const float radius,
const pandora::CartesianVector &referencePoint, pandora::CartesianVector &intersectionPoint,
106 float &genericTime)
const;
129 pandora::StatusCode
GetDistanceToPoint(
const pandora::CartesianVector &point, pandora::CartesianVector &distance,
float &genericTime)
const;
139 pandora::StatusCode
GetDistanceToHelix(
const Helix *
const pHelix, pandora::CartesianVector &positionOfClosestApproach, pandora::CartesianVector &v0momentum,
140 float &helixDistance)
const;
156 const pandora::CartesianVector &
GetMomentum()
const;
264 inline pandora::StatusCode
Helix::GetPointInZY(
const float z0,
const float y0,
const float az,
const float ay,
const pandora::CartesianVector &referencePoint,
265 pandora::CartesianVector &intersectionPoint)
const 268 return this->
GetPointInZY(z0, y0, az, ay, referencePoint, intersectionPoint, genericTime);
273 inline pandora::StatusCode
Helix::GetPointInX(
const float xPlane,
const pandora::CartesianVector &referencePoint, pandora::CartesianVector &intersectionPoint)
const 276 return this->
GetPointInX(xPlane, referencePoint, intersectionPoint, genericTime);
281 inline pandora::StatusCode
Helix::GetPointOnCircle(
const float radius,
const pandora::CartesianVector &referencePoint, pandora::CartesianVector &intersectionPoint)
const 284 return this->
GetPointOnCircle(radius, referencePoint, intersectionPoint, genericTime);
384 #endif // #ifndef GARCONTENT_HELIX_H pandora::CartesianVector m_momentum
The momentum vector at reference point.
pandora::StatusCode GetPointInX(const float xPlane, const pandora::CartesianVector &referencePoint, pandora::CartesianVector &intersectionPoint) const
Get helix intersection point with a plane perpendicular to x axis.
float m_zCentre
The circle centre z coordinate.
float m_phiMomRefPoint
Phi of Momentum vector at reference point.
pandora::StatusCode GetDistanceToHelix(const Helix *const pHelix, pandora::CartesianVector &positionOfClosestApproach, pandora::CartesianVector &v0momentum, float &helixDistance) const
Get distance between two helices.
float m_yCentre
The circle centre y coordinate.
float m_phi0
phi0 in canonical parameterization
float GetPzy() const
Get transverse momentum of the track.
float m_charge
The particle charge.
float GetPhi0() const
Get phi angle of the momentum vector at the point of closest approach to IP.
float m_radius
The radius of circle in ZY plane.
float m_pyAtPCA
Momentum y component at point of closest approach.
pandora::StatusCode GetPointOnCircle(const float radius, const pandora::CartesianVector &referencePoint, pandora::CartesianVector &intersectionPoint) const
Get coordinates of helix intersection with cylinder, aligned along z-axis.
float GetX0() const
Get x coordinate of the point of closest approach to IP in the R-Phi plane.
const pandora::CartesianVector & GetMomentum() const
Get momentum of particle at the point of closest approach to IP.
static const float TWO_PI
pandora::CartesianVector m_referencePoint
The coordinates of the reference point.
float GetRadius() const
Get radius of circumference.
float m_x0
x0 in canonical parameterisation
float GetOmega() const
Get signed curvature of the track.
const pandora::CartesianVector & GetReferencePoint() const
Get reference point of track.
float m_zAtPCA
z coordinate at point of closest approach
float GetTanLambda() const
Get tangent of dip angle of the track.
double distance(double x1, double y1, double z1, double x2, double y2, double z2)
float m_pzy
The transverse momentum.
float GetYCentre() const
Get y coordinate of circumference.
float m_pzAtPCA
Momentum z component at point of closest approach.
float GetCharge() const
Get charge.
pandora::CartesianVector GetExtrapolatedMomentum(const pandora::CartesianVector &position) const
float m_omega
signed curvature in canonical parameterisation
float GetZCentre() const
Get z coordinate of circumference.
float GetD0() const
Get x signed distance of closest approach to IP in the R-Phi plane.
pandora::StatusCode GetPointInZY(const float z0, const float y0, const float az, const float ay, const pandora::CartesianVector &referencePoint, pandora::CartesianVector &intersectionPoint) const
Get helix intersection point with a plane parallel to x axis. The plane is defined by two coordinates...
float m_tanLambda
tanLambda
float m_phiRefPoint
Phi w.r.t. (Z0, Y0) of circle at reference point.
float m_yAtPCA
y coordinate at point of closest approach
def momentum(x1, x2, x3, scale=1.)
static const float HALF_PI
float m_d0
d0 in canonical parameterisation
float m_phiAtPCA
Phi w.r.t. (Z0, Y0) of circle at point of closest approach.
pandora::StatusCode GetDistanceToPoint(const pandora::CartesianVector &point, pandora::CartesianVector &distance) const
Get distance of the closest approach of helix to an arbitrary point in space.
Helix(const float phi0, const float d0, const float x0, const float omega, const float tanlambda, const float bField)
Constructor using canonical (LEP-wise) parameterisation.