ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
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/master/Core/include/Acts/Vertexing/AdaptiveMultiVertexFitter.hpp>
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, BoundParameters >::value, int > = 0> | |
AdaptiveMultiVertexFitter (Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("AdaptiveMultiVertexFitter", Logging::INFO)) | |
Constructor used if InputTrack_t type == BoundParameters. | |
m_logger (std::move(logger)) | |
AdaptiveMultiVertexFitter (Config &cfg, std::function< BoundParameters(InputTrack_t)> func, std::unique_ptr< const Logger > logger=getDefaultLogger("AdaptiveMultiVertexFitter", Logging::INFO)) | |
Constructor for user-defined InputTrack_t type != BoundParameters. | |
Result< void > | fit (State &state, const std::vector< Vertex< InputTrack_t > * > &verticesToFit, const Linearizer_t &linearizer, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
The actual fit function, 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 new vertex to an existing multi-vertex fit and fits everything together (by invoking the fit_impl method): | |
Private Types | |
using | IPEstimator = ImpactPointEstimator< InputTrack_t, Propagator_t > |
Private Member Functions | |
const Logger & | logger () const |
Private access to logging instance. | |
Result< void > | fitImpl (State &state, const Linearizer_t &linearizer, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
The actual fit function, 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 |
Prepares vertex object for the actual fit, i.e. all TrackAtVertex objects at current vertex will obtain ip3dParams from ImpactPointEstimator::estimate3DImpactParameters in order to later faster estimate compatibilities of track with different vertices. | |
Result< void > | setAllVertexCompatibilities (State &state, Vertex< InputTrack_t > *currentVtx, const VertexingOptions< input_track_t > &vertexingOptions) const |
Sets vertexCompatibility for all TrackAtVertex objects at 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< double > | collectTrackToVertexCompatibilities (State &state, const InputTrack_t *trk) const |
Collects all compatibility values of the track trk at all vertices it is currently attached to and outputs these values in a vector. | |
bool | checkSmallShift (State &state) const |
Determines if vertex position has shifted more than m_cfg.maxRelativeShift in last iteration. | |
void | doVertexSmoothing (State &state, const GeometryContext &geoContext) const |
Updates tracks for current vertex with knowledge of current vertex position. | |
Private Attributes | |
const Config | m_cfg |
Configuration object. | |
std::function< BoundParameters(InputTrack_t)> | m_extractParameters |
Function to extract track parameters, InputTrack_t objects are BoundParameters by default, function to be overwritten to return BoundParameters for other InputTrack_t objects. | |
std::unique_ptr< const Logger > | m_logger |
Logging instance. | |
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
input_track_t | Track object type |
linearizer_t | Track linearizer type |
Definition at line 39 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 39 of file AdaptiveMultiVertexFitter.hpp
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
|
private |
Definition at line 49 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 49 of file AdaptiveMultiVertexFitter.hpp
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
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
|
inline |
Constructor used if InputTrack_t type == BoundParameters.
cfg | Configuration object |
logger | The logging instance |
Definition at line 136 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 136 of file AdaptiveMultiVertexFitter.hpp
|
inline |
Constructor for user-defined InputTrack_t type != BoundParameters.
cfg | Configuration object |
func | Function extracting BoundParameters from InputTrack_t object |
logger | The logging instance |
Definition at line 149 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 149 of file AdaptiveMultiVertexFitter.hpp
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 new vertex to an existing multi-vertex fit and fits everything together (by invoking the fit_impl method):
This has the advantage that only vertices that are affected by adding the new vertex are refitted.
Note: newVertex has to be properly initialized (seed vertex, constraint vertex, list of MAV)
state | The state object |
newVertex | New vertex to be added to fit |
linearizer | The track linearizer |
vertexingOptions | Vertexing options |
Definition at line 123 of file AdaptiveMultiVertexFitter.ipp.
View newest version in sPHENIX GitHub at line 123 of file AdaptiveMultiVertexFitter.ipp
References 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().
|
private |
Determines if vertex position has shifted more than m_cfg.maxRelativeShift in last iteration.
state | The state object |
Definition at line 326 of file AdaptiveMultiVertexFitter.ipp.
View newest version in sPHENIX GitHub at line 326 of file AdaptiveMultiVertexFitter.ipp
References Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vertexCollection, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vtxInfoMap.
|
private |
Collects all compatibility values of the track trk
at all vertices it is currently attached to and outputs these values in a vector.
state | The state object |
trk | The track |
Definition at line 309 of file AdaptiveMultiVertexFitter.ipp.
View newest version in sPHENIX GitHub at line 309 of file AdaptiveMultiVertexFitter.ipp
References Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::tracksAtVerticesMap, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::trackToVerticesMultiMap, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vertexCollection.
|
private |
Updates tracks for current vertex with knowledge of current vertex position.
state | The state object |
geoContext | The geometry context |
Definition at line 342 of file AdaptiveMultiVertexFitter.ipp.
View newest version in sPHENIX GitHub at line 342 of file AdaptiveMultiVertexFitter.ipp
References Acts::Test::geoContext, 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.
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 |
The actual fit function, performs a simultaneous fit of all vertices in verticesToFit
by invoking fitImpl
state | The state object |
verticesToFit | Vector containing all vertices to be fitted |
linearizer | The track linearizer |
vertexingOptions | Vertexing options |
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().
|
private |
The actual fit function, performs a simultaneous fit of all vertices in state.vertexCollection.
state | The state object |
linearizer | The track linearizer |
vertexingOptions | Vertexing options |
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::VertexingOptions< input_track_t >::geoContext, Acts::Test::geoContext, Acts::VertexInfo< input_track_t >::linPoint, Acts::VertexInfo< input_track_t >::oldPosition, Acts::VertexInfo< input_track_t >::relinearize, State, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vertexCollection, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vtxInfoMap, and weight.
|
private |
Tests if vertex is already in list of vertices or not.
vtx | Vertex to test |
verticesVec | Vector of vertices to search |
Definition at line 191 of file AdaptiveMultiVertexFitter.ipp.
View newest version in sPHENIX GitHub at line 191 of file AdaptiveMultiVertexFitter.ipp
|
inlineprivate |
Private access to logging instance.
Definition at line 215 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 215 of file AdaptiveMultiVertexFitter.hpp
References Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::m_logger.
|
inline |
Definition at line 142 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 142 of file AdaptiveMultiVertexFitter.hpp
|
private |
Prepares vertex object for the actual fit, i.e. all TrackAtVertex objects at current vertex will obtain ip3dParams
from ImpactPointEstimator::estimate3DImpactParameters in order to later faster estimate compatibilities of track with different vertices.
vtx | The vertex object |
vertexingOptions | Vertexing options |
Definition at line 200 of file AdaptiveMultiVertexFitter.ipp.
View newest version in sPHENIX GitHub at line 200 of file AdaptiveMultiVertexFitter.ipp
References Acts::VertexingOptions< input_track_t >::geoContext, Acts::VertexingOptions< input_track_t >::magFieldContext, and Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::vtxInfoMap.
|
private |
Sets vertexCompatibility for all TrackAtVertex objects at current vertex.
state | The state object |
currentVtx | Current vertex |
vertexingOptions | Vertexing options |
Definition at line 225 of file AdaptiveMultiVertexFitter.ipp.
View newest version in sPHENIX GitHub at line 225 of file AdaptiveMultiVertexFitter.ipp
References Acts::VertexingOptions< input_track_t >::geoContext, Acts::VertexInfo< input_track_t >::ip3dParams, Acts::VertexInfo< input_track_t >::linPoint, 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.
|
private |
Sets weights to the track according to Eq.(5.46) in Ref.(1) and updates the vertices by calling the VertexUpdater.
state | The state object |
linearizer | The track linearizer |
vertexingOptions | Vertexing options |
Definition at line 263 of file AdaptiveMultiVertexFitter.ipp.
View newest version in sPHENIX GitHub at line 263 of file AdaptiveMultiVertexFitter.ipp
References ACTS_VERBOSE, Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::annealingState, Acts::VertexingOptions< input_track_t >::geoContext, Acts::VertexingOptions< input_track_t >::magFieldContext, Acts::VertexInfo< input_track_t >::trackLinks, 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.
|
private |
Configuration object.
Definition at line 202 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 202 of file AdaptiveMultiVertexFitter.hpp
|
private |
Function to extract track parameters, InputTrack_t objects are BoundParameters by default, function to be overwritten to return BoundParameters for other InputTrack_t objects.
InputTrack_t | object to extract track parameters from |
Definition at line 209 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 209 of file AdaptiveMultiVertexFitter.hpp
|
private |
Logging instance.
Definition at line 212 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 212 of file AdaptiveMultiVertexFitter.hpp
Referenced by Acts::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::logger().