File ImpactPointEstimator.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

struct ImpactParametersAndSigma
#include <Acts/Vertexing/ImpactPointEstimator.hpp>

Public Members

double IPd0 = 0.
double IPz0 = 0.
double IPz0SinTheta = 0.
double PVsigmad0 = 0.
double PVsigmaz0 = 0.
double PVsigmaz0SinTheta = 0.
double sigmad0 = 0.
double sigmaz0 = 0.
double sigmaz0SinTheta = 0.
template<typename input_track_t, typename propagator_t, typename propagator_options_t = PropagatorOptions<>>
class ImpactPointEstimator
#include <Acts/Vertexing/ImpactPointEstimator.hpp>

Estimator for impact point calculations.

Public Functions

inline ImpactPointEstimator(const Config &cfg)

Constructor.

Parameters

cfg – Configuration object

Result<double> calculate3dDistance(const GeometryContext &gctx, const BoundTrackParameters &trkParams, const Vector3 &vtxPos, State &state) const

Calculates 3D distance between a track and a 3D point.

Parameters
  • gctx – The geometry context

  • trkParams – Track parameters

  • vtxPos – Position to calculate distance to

  • state – The state object

Returns

Distance

Result<BoundTrackParameters> estimate3DImpactParameters(const GeometryContext &gctx, const Acts::MagneticFieldContext &mctx, const BoundTrackParameters &trkParams, const Vector3 &vtxPos, State &state) const

Creates track parameters bound to plane at point of closest approach in 3d to given reference position.

The parameters and errors are defined on the plane intersecting the track at point of closest approach, with track orthogonal to the plane and center of the plane defined as the given reference point (vertex).

Parameters
  • gctx – The geometry context

  • mctx – The magnetic field context

  • trkParams – Track parameters

  • vtxPos – Reference position (vertex)

  • state – The state object

Returns

New track params

Result<ImpactParametersAndSigma> estimateImpactParameters(const BoundTrackParameters &track, const Vertex<input_track_t> &vtx, const GeometryContext &gctx, const MagneticFieldContext &mctx) const

Estimates the impact parameters and their errors of a given track w.r.t.

a vertex by propagating the trajectory state towards the vertex position.

Parameters
  • track – Track to estimate IP from

  • vtx – Vertex the track belongs to

  • gctx – The geometry context

  • mctx – The magnetic field context

Result<double> get3DLifetimeSignOfTrack(const BoundTrackParameters &track, const Vertex<input_track_t> &vtx, const Acts::Vector3 &direction, const GeometryContext &gctx, const MagneticFieldContext &mctx) const

Estimates the sign of the 3D lifetime of a given track w.r.t.

a vertex and a direction (e.g. a jet direction)

Parameters
  • track – Track to estimate the IP from

  • vtx – Vertex the track belongs to

  • direction – The direction

  • gctx – The geometry context

  • mctx – The magnetic field context

Returns

The value of the 3D lifetime

Result<double> get3dVertexCompatibility(const GeometryContext &gctx, const BoundTrackParameters *trkParams, const Vector3 &vertexPos) const

Estimates the compatibility of a track to a vertex position based on the 3d distance between the track and the vertex.

Parameters
  • gctx – The Geometry context

  • trkParams – Track parameters at point of closest approach in 3d as retrieved by estimate3DImpactParameters

  • vertexPos – The vertex position

Returns

The compatibility value

Result<std::pair<double, double>> getLifetimesSignOfTrack(const BoundTrackParameters &track, const Vertex<input_track_t> &vtx, const Acts::Vector3 &direction, const GeometryContext &gctx, const MagneticFieldContext &mctx) const

Estimates the sign of the 2D and Z lifetime of a given track w.r.t.

a vertex and a direction (e.g. a jet direction) by propagating the trajectory state towards the vertex position and computing the scalar product with the direction vector

Parameters
  • track – Track to estimate the IP from

  • vtx – Vertex the track belongs to

  • direction – The direction

  • gctx – The geometry context

  • mctx – The magnetic field context

Returns

A pair holding the sign for the 2D an Z lifetimes

Private Functions

Result<void> getDistanceAndMomentum(const GeometryContext &gctx, const BoundTrackParameters &trkParams, const Vector3 &vtxPos, Vector3 &deltaR, Vector3 &momDir, State &state) const

Helper function to calculate relative distance between track and vtxPos and the direction of the momentum.

Parameters
  • gctx – The geometry context

  • trkParams – Track parameters

  • vtxPos – The vertex position

  • deltaR – Relative position between track and vtxPos, to be determined by method

  • momDir – Momentum direction, to be determined by method

  • state – The state object

Result<double> performNewtonApproximation(const Vector3 &trkPos, const Vector3 &vtxPos, double phi, double theta, double r) const

Performs a Newton approximation to retrieve a point of closest approach in 3D to a reference position.

Parameters
  • trkPos – Initial position

  • vtxPos – Reference position

  • phi – Phi along the helix which will be changed by the Newton method

  • theta – Track theta

  • r – Helix radius

Returns

New phi value

Private Members

const Config m_cfg

Configuration object.

struct Config
#include <Acts/Vertexing/ImpactPointEstimator.hpp>

Public Functions

inline Config(std::shared_ptr<const MagneticFieldProvider> bIn, std::shared_ptr<const propagator_t> prop)

Config constructor if magnetic field is present.

Parameters
  • bIn – The magnetic field

  • prop – The propagator

inline Config(std::shared_ptr<propagator_t> prop)

Config constructor without B field -> uses NullBField provided)

Parameters

prop – The propagator

Public Members

std::shared_ptr<const MagneticFieldProvider> bField

Magnetic field.

int maxIterations = 20

Max. number of iterations in Newton method.

double maxRho = 1e+15

Maximum curvature value.

double minQoP = 1e-15

Minimum q/p value.

double precision = 1.e-10

Desired precision in deltaPhi in Newton method.

std::shared_ptr<const propagator_t> propagator

Propagator.

struct State
#include <Acts/Vertexing/ImpactPointEstimator.hpp>

State struct.

Public Functions

inline State(MagneticFieldProvider::Cache fieldCacheIn)

The state constructor.

Parameters

fieldCacheIn – The magnetic field cache

Public Members

MagneticFieldProvider::Cache fieldCache

Magnetic field cache.