Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t > Class Template Reference

#include <acts/blob/sPHENIX/Core/include/Acts/Vertexing/NumericalTrackLinearizer.hpp>

+ Collaboration diagram for Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t >:

Classes

struct  Config
 Configuration struct. More...
 
struct  State
 State struct. More...
 

Public Types

using Propagator_t = propagator_t
 

Public Member Functions

 NumericalTrackLinearizer (const Config &config, std::unique_ptr< const Logger > _logger=getDefaultLogger("NumTrkLinProp", Logging::INFO))
 Constructor.
 

Private Member Functions

const Loggerlogger () const
 

Private Attributes

const Config m_cfg
 
std::unique_ptr< const Loggerm_logger
 

Detailed Description

template<typename propagator_t, typename propagator_options_t = PropagatorOptions<>>
class Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t >

Linearizes the track parameters at the PCA to a user-provided point (linPoint). The track parameters are written as a function of the global 4D PCA position and the momentum of the particle at the PCA (i.e., (phi, theta, q/p)). 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 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. Note that, unlike in Ref. (1), we add the time to the parametrization, which adds a row and a column to A and a row to B.

This class computes A and B by wiggling one of the 7 parameters at the PCA and computing the new PCA wrt linPoint. The derivatives wrt the k-th parameter pk are then calculated via

(q(p1, p2, ..., pk+delta, ... p7) - q(p1, p2, ..., pk, ... p7))/delta,

where q(p1, p2, ..., pk+delta, ... p7) are the new Perigee parameters (corresponding to the new PCA to linPoint). Note that p1 corresponds to the x-position of the PCA, p2 corresponds to the y-position of the PCA, etc.

Note
Connection to RiddersPropagator: The RiddersPropagator does a very similar thing to what this class does, but it wiggles BoundTrackParameters (FreeTrackParameters could also be used if Propagator.hpp and Propagator.ipp were adapted to accommodate them). Here, we wiggle neither BoundTrackParameters nor FreeTrackParameters, but rather the parameters described above.

Ref.(1) - CERN-THESIS-2010-027, Giacinto Piacquadio (Freiburg U.)

Template Parameters
propagator_tPropagator type
propagator_options_tPropagator options type

Definition at line 63 of file NumericalTrackLinearizer.hpp.

View newest version in sPHENIX GitHub at line 63 of file NumericalTrackLinearizer.hpp

Member Typedef Documentation

template<typename propagator_t , typename propagator_options_t = PropagatorOptions<>>
using Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t >::Propagator_t = propagator_t

Definition at line 65 of file NumericalTrackLinearizer.hpp.

View newest version in sPHENIX GitHub at line 65 of file NumericalTrackLinearizer.hpp

Constructor & Destructor Documentation

template<typename propagator_t , typename propagator_options_t = PropagatorOptions<>>
Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t >::NumericalTrackLinearizer ( const Config config,
std::unique_ptr< const Logger _logger = getDefaultLogger("NumTrkLinProp", Logging::INFO) 
)
inline

Constructor.

Parameters
configConfiguration object
_loggerLogger instance

Definition at line 110 of file NumericalTrackLinearizer.hpp.

View newest version in sPHENIX GitHub at line 110 of file NumericalTrackLinearizer.hpp

Member Function Documentation

template<typename propagator_t , typename propagator_options_t = PropagatorOptions<>>
const Logger& Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t >::logger ( ) const
inlineprivate

Definition at line 139 of file NumericalTrackLinearizer.hpp.

View newest version in sPHENIX GitHub at line 139 of file NumericalTrackLinearizer.hpp

References Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t >::m_logger.

Member Data Documentation

template<typename propagator_t , typename propagator_options_t = PropagatorOptions<>>
const Config Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t >::m_cfg
private
Initial value:
{}
Result<LinearizedTrack> linearizeTrack(const BoundTrackParameters& params,
double linPointTime,
const Surface& perigeeSurface,
State& ) const

Definition at line 113 of file NumericalTrackLinearizer.hpp.

View newest version in sPHENIX GitHub at line 113 of file NumericalTrackLinearizer.hpp

template<typename propagator_t , typename propagator_options_t = PropagatorOptions<>>
std::unique_ptr<const Logger> Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t >::m_logger
private

Definition at line 137 of file NumericalTrackLinearizer.hpp.

View newest version in sPHENIX GitHub at line 137 of file NumericalTrackLinearizer.hpp

Referenced by Acts::NumericalTrackLinearizer< propagator_t, propagator_options_t >::logger().


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