Analysis Software
Documentation for sPHENIX simulation software
|
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>
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 Logger & | logger () 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< double > | collectTrackToVertexCompatibilities (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 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 == BoundTrackParameters.
cfg | Configuration object |
logger | The logging instance |
Definition at line 150 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 150 of file AdaptiveMultiVertexFitter.hpp
|
inline |
Constructor for user-defined InputTrack_t type != BoundTrackParameters.
cfg | Configuration object |
func | Function extracting BoundTrackParameters from InputTrack_t object |
logger | The logging instance |
Definition at line 165 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 165 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 a new vertex to an existing multi-vertex fit.
state | Fitter state |
newVertex | Vertex to be added to fit |
linearizer | Track linearizer |
vertexingOptions | Vertexing options |
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().
|
private |
Determines if any vertex position has shifted more than m_cfg.maxRelativeShift in the last iteration.
state | Fitter state |
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.
|
private |
Collects the compatibility values of the track trk
wrt to all of its associated vertices.
state | Fitter state |
trk | Track |
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.
|
private |
Updates tracks for current vertex with knowledge of current vertex position.
state | Fitter 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.
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
.
state | Fitter state |
verticesToFit | Vector containing all vertices to be fitted |
linearizer | 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 |
Performs a simultaneous fit of all vertices in state.vertexCollection.
state | Fitter state |
linearizer | 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::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.
|
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 188 of file AdaptiveMultiVertexFitter.ipp.
View newest version in sPHENIX GitHub at line 188 of file AdaptiveMultiVertexFitter.ipp
References ActsExamples::HepMC3Event::vertices().
|
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.
|
inline |
Definition at line 156 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 156 of file AdaptiveMultiVertexFitter.hpp
|
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.
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.
|
private |
Sets the vertexCompatibility for all TrackAtVertex objects at the current vertex.
state | Fitter state |
currentVtx | Current vertex |
vertexingOptions | Vertexing 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.
|
private |
Sets weights to the track according to Eq.(5.46) in Ref.(1) and updates the vertices by calling the VertexUpdater.
state | Fitter state |
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::AdaptiveMultiVertexFitter< input_track_t, linearizer_t >::State::linearizerState, 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 >::relinearize, 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 209 of file AdaptiveMultiVertexFitter.hpp.
View newest version in sPHENIX GitHub at line 209 of file AdaptiveMultiVertexFitter.hpp
|
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
|
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().