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

Implements an adaptive multi-vertex fitter as described in detail in Section 5.3.5 in: Ref. (1): CERN-THESIS-2010-027, Author: Piacquadio, Giacinto: Identification of b-jets and investigation of the discovery potential of a Higgs boson in the WH−−>lvbb¯ channel with the ATLAS experiment More...

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

+ Collaboration diagram for Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >:

Classes

struct  Config
 
struct  State
 The fitter state. More...
 

Public Types

using InputTrack_t = input_track_t
 
using Propagator_t = typename linearizer_t::Propagator_t
 
using Linearizer_t = linearizer_t
 

Public Member Functions

template<typename T = InputTrack_t, std::enable_if_t< std::is_same< T, BoundTrackParameters >::value, int > = 0>
 AdaptiveMultiVertexFitter (Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("AdaptiveMultiVertexFitter", Logging::INFO))
 Constructor used if InputTrack_t type == BoundTrackParameters.
 
 m_logger (std::move(logger))
 
 AdaptiveMultiVertexFitter (Config &cfg, std::function< BoundTrackParameters(InputTrack_t)> func, std::unique_ptr< const Logger > logger=getDefaultLogger("AdaptiveMultiVertexFitter", Logging::INFO))
 Constructor for user-defined InputTrack_t type != BoundTrackParameters.
 
Result< void > fit (State &state, const std::vector< Vertex< InputTrack_t > * > &verticesToFit, const Linearizer_t &linearizer, const VertexingOptions< InputTrack_t > &vertexingOptions) const
 Performs a simultaneous fit of all vertices in verticesToFit by invoking fitImpl.
 
Result< void > addVtxToFit (State &state, Vertex< InputTrack_t > &newVertex, const Linearizer_t &linearizer, const VertexingOptions< InputTrack_t > &vertexingOptions) const
 Adds a new vertex to an existing multi-vertex fit.
 

Private Types

using IPEstimator = ImpactPointEstimator< InputTrack_t, Propagator_t >
 

Private Member Functions

const Loggerlogger () const
 Private access to logging instance.
 
Result< void > fitImpl (State &state, const Linearizer_t &linearizer, const VertexingOptions< InputTrack_t > &vertexingOptions) const
 Performs a simultaneous fit of all vertices in state.vertexCollection.
 
bool isAlreadyInList (Vertex< InputTrack_t > *vtx, const std::vector< Vertex< InputTrack_t > * > &verticesVec) const
 Tests if vertex is already in list of vertices or not.
 
Result< void > prepareVertexForFit (State &state, Vertex< InputTrack_t > *vtx, const VertexingOptions< InputTrack_t > &vertexingOptions) const
 1) Calls ImpactPointEstimator::estimate3DImpactParameters for all tracks that are associated with vtx (i.e., all elements of the trackLinks vector in the VertexInfo of vtx). 2) Saves the 3D impact parameters in the VertexInfo of vtx.
 
Result< void > setAllVertexCompatibilities (State &state, Vertex< InputTrack_t > *currentVtx, const VertexingOptions< input_track_t > &vertexingOptions) const
 Sets the vertexCompatibility for all TrackAtVertex objects at the current vertex.
 
Result< void > setWeightsAndUpdate (State &state, const Linearizer_t &linearizer, const VertexingOptions< input_track_t > &vertexingOptions) const
 Sets weights to the track according to Eq.(5.46) in Ref.(1) and updates the vertices by calling the VertexUpdater.
 
std::vector< doublecollectTrackToVertexCompatibilities (State &state, const InputTrack_t *trk) const
 Collects the compatibility values of the track trk wrt to all of its associated vertices.
 
bool checkSmallShift (State &state) const
 Determines if any vertex position has shifted more than m_cfg.maxRelativeShift in the last iteration.
 
void doVertexSmoothing (State &state) const
 Updates tracks for current vertex with knowledge of current vertex position.
 

Private Attributes

const Config m_cfg
 Configuration object.
 
std::function
< BoundTrackParameters(InputTrack_t)> 
m_extractParameters
 Function to extract track parameters, InputTrack_t objects are BoundTrackParameters by default, function to be overwritten to return BoundTrackParameters for other InputTrack_t objects.
 
std::unique_ptr< const Loggerm_logger
 Logging instance.
 

Detailed Description

template<typename input_track_t, typename linearizer_t>
class Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >

Implements an adaptive multi-vertex fitter as described in detail in Section 5.3.5 in: Ref. (1): CERN-THESIS-2010-027, Author: Piacquadio, Giacinto: Identification of b-jets and investigation of the discovery potential of a Higgs boson in the WH−−>lvbb¯ channel with the ATLAS experiment

Template Parameters
input_track_tTrack object type
linearizer_tTrack linearizer type

Definition at line 39 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 39 of file AdaptiveMultiVertexFitter.hpp

Member Typedef Documentation

template<typename input_track_t, typename linearizer_t>
using Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::InputTrack_t = input_track_t

Definition at line 44 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 44 of file AdaptiveMultiVertexFitter.hpp

template<typename input_track_t, typename linearizer_t>
using Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::IPEstimator = ImpactPointEstimator<InputTrack_t, Propagator_t>
private

Definition at line 49 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 49 of file AdaptiveMultiVertexFitter.hpp

template<typename input_track_t, typename linearizer_t>
using Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::Linearizer_t = linearizer_t

Definition at line 46 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 46 of file AdaptiveMultiVertexFitter.hpp

template<typename input_track_t, typename linearizer_t>
using Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::Propagator_t = typename linearizer_t::Propagator_t

Definition at line 45 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 45 of file AdaptiveMultiVertexFitter.hpp

Constructor & Destructor Documentation

template<typename input_track_t, typename linearizer_t>
template<typename T = InputTrack_t, std::enable_if_t< std::is_same< T, BoundTrackParameters >::value, int > = 0>
Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::AdaptiveMultiVertexFitter ( Config cfg,
std::unique_ptr< const Logger logger = getDefaultLogger("AdaptiveMultiVertexFitter< input_track_t, linearizer_t >",                                                 Logging::INFO) 
)
inline

Constructor used if InputTrack_t type == BoundTrackParameters.

Parameters
cfgConfiguration object
loggerThe logging instance

Definition at line 150 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 150 of file AdaptiveMultiVertexFitter.hpp

template<typename input_track_t, typename linearizer_t>
Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::AdaptiveMultiVertexFitter ( Config cfg,
std::function< BoundTrackParameters(InputTrack_t)>  func,
std::unique_ptr< const Logger logger = getDefaultLogger("AdaptiveMultiVertexFitter< input_track_t, linearizer_t >", Logging::INFO) 
)
inline

Constructor for user-defined InputTrack_t type != BoundTrackParameters.

Parameters
cfgConfiguration object
funcFunction extracting BoundTrackParameters from InputTrack_t object
loggerThe logging instance

Definition at line 165 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 165 of file AdaptiveMultiVertexFitter.hpp

Member Function Documentation

template<typename input_track_t , typename linearizer_t >
Acts::Result< void > Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::addVtxToFit ( State state,
Vertex< InputTrack_t > &  newVertex,
const Linearizer_t linearizer,
const VertexingOptions< InputTrack_t > &  vertexingOptions 
) const

Adds a new vertex to an existing multi-vertex fit.

  1. The 3D impact parameters are calculated for all tracks associated with newVertex.
  2. A list of all vertices that are connected with newVertex via shared tracks is created. It also considers indirect connections (e.g., vertex A which shares a track with vertex B which, in turn, shares a track with newVertex).
  3. The multivertex fit is performed for all vertices on said list.
Parameters
stateFitter state
newVertexVertex to be added to fit
linearizerTrack linearizer
vertexingOptionsVertexing options
Returns
Result<void> object

Definition at line 119 of file AdaptiveMultiVertexFitter.ipp.

View newest version in sPHENIX GitHub at line 119 of file AdaptiveMultiVertexFitter.ipp

References parse_cmake_options::begin, end, it, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::trackToVerticesMultiMap, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vertexCollection, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vtxInfoMap.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

template<typename input_track_t , typename linearizer_t >
bool Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::checkSmallShift ( State state) const
private

Determines if any vertex position has shifted more than m_cfg.maxRelativeShift in the last iteration.

Parameters
stateFitter state
Returns
False if at least one shift was larger than maxRelativeShift

Definition at line 342 of file AdaptiveMultiVertexFitter.ipp.

View newest version in sPHENIX GitHub at line 342 of file AdaptiveMultiVertexFitter.ipp

References m_cfg(), Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vertexCollection, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vtxInfoMap.

+ Here is the call graph for this function:

template<typename input_track_t , typename linearizer_t >
std::vector< double > Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::collectTrackToVertexCompatibilities ( State state,
const InputTrack_t trk 
) const
private

Collects the compatibility values of the track trk wrt to all of its associated vertices.

Parameters
stateFitter state
trkTrack
Returns
Vector of compatibility values

Definition at line 316 of file AdaptiveMultiVertexFitter.ipp.

View newest version in sPHENIX GitHub at line 316 of file AdaptiveMultiVertexFitter.ipp

References parse_cmake_options::begin, distance(), end, it, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::tracksAtVerticesMap, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::trackToVerticesMultiMap.

+ Here is the call graph for this function:

template<typename input_track_t , typename linearizer_t >
void Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::doVertexSmoothing ( State state) const
private

Updates tracks for current vertex with knowledge of current vertex position.

Parameters
stateFitter state

Definition at line 357 of file AdaptiveMultiVertexFitter.ipp.

View newest version in sPHENIX GitHub at line 357 of file AdaptiveMultiVertexFitter.ipp

References m_cfg(), Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::tracksAtVerticesMap, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vertexCollection, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vtxInfoMap.

+ Here is the call graph for this function:

template<typename input_track_t , typename linearizer_t >
Acts::Result< void > Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::fit ( State state,
const std::vector< Vertex< InputTrack_t > * > &  verticesToFit,
const Linearizer_t linearizer,
const VertexingOptions< InputTrack_t > &  vertexingOptions 
) const

Performs a simultaneous fit of all vertices in verticesToFit by invoking fitImpl.

Parameters
stateFitter state
verticesToFitVector containing all vertices to be fitted
linearizerTrack linearizer
vertexingOptionsVertexing options
Returns
Result<void> object

Definition at line 15 of file AdaptiveMultiVertexFitter.ipp.

View newest version in sPHENIX GitHub at line 15 of file AdaptiveMultiVertexFitter.ipp

References Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vertexCollection.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

template<typename input_track_t , typename linearizer_t >
Acts::Result< void > Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::fitImpl ( State state,
const Linearizer_t linearizer,
const VertexingOptions< InputTrack_t > &  vertexingOptions 
) const
private

Performs a simultaneous fit of all vertices in state.vertexCollection.

Parameters
stateFitter state
linearizerTrack linearizer
vertexingOptionsVertexing options
Returns
Result<void> object

Definition at line 34 of file AdaptiveMultiVertexFitter.ipp.

View newest version in sPHENIX GitHub at line 34 of file AdaptiveMultiVertexFitter.ipp

References Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::annealingState, Acts::AnnealingUtility::State::equilibriumReached, Acts::Vertex< input_track_t >::fitQuality(), Acts::Vertex< input_track_t >::fullCovariance(), Acts::Vertex< input_track_t >::fullPosition(), Acts::VertexInfo< input_track_t >::linPoint, m_cfg(), nIter, Acts::VertexInfo< input_track_t >::oldPosition, Acts::VertexInfo< input_track_t >::relinearize, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vertexCollection, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vtxInfoMap.

+ Here is the call graph for this function:

template<typename input_track_t , typename linearizer_t >
bool Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::isAlreadyInList ( Vertex< InputTrack_t > *  vtx,
const std::vector< Vertex< InputTrack_t > * > &  verticesVec 
) const
private

Tests if vertex is already in list of vertices or not.

Parameters
vtxVertex to test
verticesVecVector of vertices to search
Returns
True if vtx is already in verticesVec

Definition at line 188 of file AdaptiveMultiVertexFitter.ipp.

View newest version in sPHENIX GitHub at line 188 of file AdaptiveMultiVertexFitter.ipp

References ActsExamples::HepMC3Event::vertices().

+ Here is the call graph for this function:

template<typename input_track_t, typename linearizer_t>
const Logger& Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::logger ( ) const
inlineprivate

Private access to logging instance.

Definition at line 220 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 220 of file AdaptiveMultiVertexFitter.hpp

References Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::m_logger.

template<typename input_track_t, typename linearizer_t>
Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::m_logger ( std::  movelogger)
inline

Definition at line 156 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 156 of file AdaptiveMultiVertexFitter.hpp

template<typename input_track_t , typename linearizer_t >
Acts::Result< void > Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::prepareVertexForFit ( State state,
Vertex< InputTrack_t > *  vtx,
const VertexingOptions< InputTrack_t > &  vertexingOptions 
) const
private

1) Calls ImpactPointEstimator::estimate3DImpactParameters for all tracks that are associated with vtx (i.e., all elements of the trackLinks vector in the VertexInfo of vtx). 2) Saves the 3D impact parameters in the VertexInfo of vtx.

Parameters
stateVertex fitter state
vtxVertex object
vertexingOptionsVertexing options

Definition at line 195 of file AdaptiveMultiVertexFitter.ipp.

View newest version in sPHENIX GitHub at line 195 of file AdaptiveMultiVertexFitter.ipp

References Acts::VertexingOptions< input_track_t >::geoContext, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::ipState, m_cfg(), Acts::VertexingOptions< input_track_t >::magFieldContext, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vtxInfoMap.

+ Here is the call graph for this function:

template<typename input_track_t , typename linearizer_t >
Acts::Result< void > Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::setAllVertexCompatibilities ( State state,
Vertex< InputTrack_t > *  currentVtx,
const VertexingOptions< input_track_t > &  vertexingOptions 
) const
private

Sets the vertexCompatibility for all TrackAtVertex objects at the current vertex.

Parameters
stateFitter state
currentVtxCurrent vertex
vertexingOptionsVertexing options

Definition at line 220 of file AdaptiveMultiVertexFitter.ipp.

View newest version in sPHENIX GitHub at line 220 of file AdaptiveMultiVertexFitter.ipp

References Acts::VertexingOptions< input_track_t >::geoContext, Acts::VertexInfo< input_track_t >::impactParams3D, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::ipState, Acts::VertexInfo< input_track_t >::linPoint, m_cfg(), Acts::VertexingOptions< input_track_t >::magFieldContext, Acts::VertexInfo< input_track_t >::oldPosition, position, Acts::VertexInfo< input_track_t >::trackLinks, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::tracksAtVerticesMap, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vtxInfoMap.

+ Here is the call graph for this function:

template<typename input_track_t , typename linearizer_t >
Acts::Result< void > Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::setWeightsAndUpdate ( State state,
const Linearizer_t linearizer,
const VertexingOptions< input_track_t > &  vertexingOptions 
) const
private

Member Data Documentation

template<typename input_track_t, typename linearizer_t>
const Config Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::m_cfg
private

Configuration object.

Definition at line 209 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 209 of file AdaptiveMultiVertexFitter.hpp

template<typename input_track_t, typename linearizer_t>
std::function<BoundTrackParameters(InputTrack_t)> Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::m_extractParameters
private

Function to extract track parameters, InputTrack_t objects are BoundTrackParameters by default, function to be overwritten to return BoundTrackParameters for other InputTrack_t objects.

Definition at line 214 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 214 of file AdaptiveMultiVertexFitter.hpp

template<typename input_track_t, typename linearizer_t>
std::unique_ptr<const Logger> Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::m_logger
private

Logging instance.

Definition at line 217 of file AdaptiveMultiVertexFitter.hpp.

View newest version in sPHENIX GitHub at line 217 of file AdaptiveMultiVertexFitter.hpp

Referenced by Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::logger().


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