File HelicalTrackLinearizer.hpp
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
-
template<typename propagator_t, typename propagator_options_t = PropagatorOptions<>>
class HelicalTrackLinearizer - #include <Acts/Vertexing/HelicalTrackLinearizer.hpp>
Linearizes the track parameters at the PCA to a user-provided point (linPoint).
The track parameters are written as a function of the global PCA position and the momentum of the particle at the PCA. The linearization then reads (see Eq. 5.7 in Ref. (1)):
q = A (r - r_0) + B (p - p_0) + c,
where q are the Perigee parameters wrt linPoint, {r_0} r is the {initial} 4D PCA position, {p_0} p is the {initial} momentum (phi, theta, q/p) at the PCA, and c is the constant term of the expansion. A and B are matrices of derivatives, denoted hereafter as “positionJacobian” and “momentumJacobian” respectively.
This class computes A and B using the analytic formulae of Ref. (1).
Ref. (1) - CERN-THESIS-2010-027, Giacinto Piacquadio (Freiburg U.)
- Template Parameters
propagator_t – Propagator type
propagator_options_t – Propagator options type
Public Types
-
using Propagator_t = propagator_t
Public Functions
-
inline HelicalTrackLinearizer(const Config &config, std::unique_ptr<const Logger> _logger = getDefaultLogger("HelTrkLinProp", Logging::INFO))
Constructor.
- Parameters
config – Configuration object
_logger – a logger instance
-
Result<LinearizedTrack> linearizeTrack(const BoundTrackParameters ¶ms, double linPointTime, const Surface &perigeeSurface, const Acts::GeometryContext &gctx, const Acts::MagneticFieldContext &mctx, State &state) const
Function that linearizes BoundTrackParameters at the PCA to a given Perigee surface.
Note
Transverse plane of the Perigee corresponding to
linPoint
is parallel to the global x-y plane- Parameters
params – Parameters to linearize
linPointTime – Time associated to the linearization point
perigeeSurface – Perigee surface belonging to
linPoint
gctx – Geometry context
mctx – Magnetic field context
state – Linearizer state object
- Returns
Linearized track
-
struct Config
- #include <Acts/Vertexing/HelicalTrackLinearizer.hpp>
Configuration struct.
Public Functions
@ Config constructor if magnetic field is present
- Parameters
bIn – The magnetic field
prop – The propagator
Config constructor without B field -> uses NullBField.
- Parameters
prop – The propagator
Public Members
-
std::shared_ptr<const MagneticFieldProvider> bField
-
double minQoP = 1e-15
-
std::shared_ptr<const Propagator_t> propagator
-
ActsScalar targetTolerance = 1e-12
Tolerance determining how close we need to get to the Perigee surface to reach it during propagation.
-
struct State
- #include <Acts/Vertexing/HelicalTrackLinearizer.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.
-
inline State(MagneticFieldProvider::Cache fieldCacheIn)
-
template<typename propagator_t, typename propagator_options_t = PropagatorOptions<>>