![]() |
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>
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, 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().
Here is the caller graph for this function:
|
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().
Here is the caller graph for this function:
|
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().