Analysis Software
Documentation for sPHENIX simulation software
|
Implements an iterative vertex finder. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Vertexing/IterativeVertexFinder.hpp>
Classes | |
struct | Config |
Configuration struct. More... | |
struct | State |
State struct. More... | |
Public Types | |
using | InputTrack_t = typename vfitter_t::InputTrack_t |
using | IPEstimator = ImpactPointEstimator< InputTrack_t, Propagator_t > |
Public Member Functions | |
template<typename T = InputTrack_t, std::enable_if_t< std::is_same< T, BoundTrackParameters >::value, int > = 0> | |
IterativeVertexFinder (Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("IterativeVertexFinder", Logging::INFO)) | |
Constructor used if InputTrack_t type == BoundTrackParameters. | |
m_logger (std::move(logger)) | |
IterativeVertexFinder (Config &cfg, std::function< BoundTrackParameters(InputTrack_t)> func, std::unique_ptr< const Logger > logger=getDefaultLogger("IterativeVertexFinder", Logging::INFO)) | |
Constructor for user-defined InputTrack_t type =! BoundTrackParameters. | |
Result< std::vector< Vertex < InputTrack_t > > > | find (const std::vector< const InputTrack_t * > &trackVector, const VertexingOptions< InputTrack_t > &vertexingOptions, State &state) const |
Finds vertices corresponding to input trackVector. | |
Private Types | |
using | Propagator_t = typename vfitter_t::Propagator_t |
using | Linearizer_t = typename vfitter_t::Linearizer_t |
Private Member Functions | |
const Logger & | logger () const |
Private access to logging instance. | |
Result< Vertex< InputTrack_t > > | getVertexSeed (const std::vector< const InputTrack_t * > &seedTracks, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
Method that calls seed finder to retrieve a vertex seed. | |
void | removeTracks (const std::vector< const InputTrack_t * > &tracksToRemove, std::vector< const InputTrack_t * > &seedTracks) const |
Removes all tracks in tracksToRemove from seedTracks. | |
Result< double > | getCompatibility (const BoundTrackParameters ¶ms, const Vertex< InputTrack_t > &vertex, const Surface &perigeeSurface, const VertexingOptions< InputTrack_t > &vertexingOptions, State &state) const |
Function for calculating how compatible a given track is to a given vertex. | |
Result< void > | removeUsedCompatibleTracks (Vertex< InputTrack_t > &vertex, std::vector< const InputTrack_t * > &tracksToFit, std::vector< const InputTrack_t * > &seedTracks, const VertexingOptions< InputTrack_t > &vertexingOptions, State &state) const |
Function that removes used tracks compatible with current vertex (vertex ) from tracksToFit and seedTracks as well as outliers from vertex.tracksAtVertex. | |
Result< void > | fillTracksToFit (const std::vector< const InputTrack_t * > &seedTracks, const Vertex< InputTrack_t > &seedVertex, std::vector< const InputTrack_t * > &tracksToFitOut, std::vector< const InputTrack_t * > &tracksToFitSplitVertexOut, const VertexingOptions< InputTrack_t > &vertexingOptions, State &state) const |
Function that fills vector with tracks compatible with seed vertex. | |
Result< bool > | reassignTracksToNewVertex (std::vector< Vertex< InputTrack_t >> &vertexCollection, Vertex< InputTrack_t > ¤tVertex, std::vector< const InputTrack_t * > &tracksToFit, std::vector< const InputTrack_t * > &seedTracks, const std::vector< const InputTrack_t * > &origTracks, const VertexingOptions< InputTrack_t > &vertexingOptions, State &state) const |
Function that reassigns tracks from other vertices to the current vertex if they are more compatible. | |
int | countSignificantTracks (const Vertex< InputTrack_t > &vtx) const |
Counts all tracks that are significant for a vertex. | |
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 iterative vertex finder.
Brief description of the algorithm implemented: Iterative vertex finder which iteratively finds and fits vertices:
seedTracks
, which is the same as the input track list to the finder at the very first iteration) is used to retrieve a single vertex seed using the ZScanVertexFinder.removeUsedCompatibleTracks
method is called, which removes all used tracks that are compatible with the fitted vertex from tracksToFit
and seedTracks
. It also removes outliers tracks from tracksAtVertex if not compatible.Definition at line 60 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 60 of file IterativeVertexFinder.hpp
using Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::InputTrack_t = typename vfitter_t::InputTrack_t |
Definition at line 67 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 67 of file IterativeVertexFinder.hpp
using Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::IPEstimator = ImpactPointEstimator<InputTrack_t, Propagator_t> |
Definition at line 68 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 68 of file IterativeVertexFinder.hpp
|
private |
Definition at line 64 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 64 of file IterativeVertexFinder.hpp
|
private |
Definition at line 63 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 63 of file IterativeVertexFinder.hpp
|
inline |
Constructor used if InputTrack_t type == BoundTrackParameters.
cfg | Configuration object |
logger | The logging instance |
Definition at line 145 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 145 of file IterativeVertexFinder.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 159 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 159 of file IterativeVertexFinder.hpp
|
private |
Counts all tracks that are significant for a vertex.
vtx | The vertex |
Definition at line 561 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 561 of file IterativeVertexFinder.ipp
References m_cfg(), and Acts::Vertex< input_track_t >::tracks().
|
private |
Function that fills vector with tracks compatible with seed vertex.
seedTracks | List of all available tracks used for seeding |
seedVertex | Seed vertex |
tracksToFitOut | Tracks to fit |
tracksToFitSplitVertexOut | Tracks to fit to split vertex |
vertexingOptions | Vertexing options |
state | The state object |
Definition at line 350 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 350 of file IterativeVertexFinder.ipp
References ACTS_WARNING, test_fpe::count, Acts::GenericBoundTrackParameters< particle_hypothesis_t >::covariance(), Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::VertexingOptions< input_track_t >::geoContext, Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::State::ipState, m_cfg(), and Acts::Vertex< input_track_t >::position().
auto Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::find | ( | const std::vector< const InputTrack_t * > & | trackVector, |
const VertexingOptions< InputTrack_t > & | vertexingOptions, | ||
State & | state | ||
) | const |
Finds vertices corresponding to input trackVector.
trackVector | Input tracks |
vertexingOptions | Vertexing options |
state | State for fulfilling interfaces |
Do seeding
End seeding Now take only tracks compatible with current seed
Begin vertex fit
End vertex fit
Definition at line 10 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 10 of file IterativeVertexFinder.ipp
References ACTS_DEBUG, eZ, Acts::Vertex< input_track_t >::fitQuality(), m_cfg(), testing::internal::move(), and filter::state.
Referenced by ActsExamples::IterativeVertexFinderAlgorithm::execute().
|
private |
Function for calculating how compatible a given track is to a given vertex.
params | Track parameters |
vertex | The vertex |
perigeeSurface | The perigee surface at vertex position |
vertexingOptions | Vertexing options |
state | The state object |
Definition at line 218 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 218 of file IterativeVertexFinder.ipp
References Acts::Vertex< input_track_t >::fullCovariance(), Acts::Vertex< input_track_t >::fullPosition(), Acts::VertexingOptions< input_track_t >::geoContext, Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::State::linearizerState, m_cfg(), Acts::VertexingOptions< input_track_t >::magFieldContext, and testing::internal::move().
|
private |
Method that calls seed finder to retrieve a vertex seed.
seedTracks | Seeding tracks |
vertexingOptions | Vertexing options |
Definition at line 159 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 159 of file IterativeVertexFinder.ipp
References ACTS_DEBUG, Acts::eX, Acts::eY, eZ, and m_cfg().
|
inlineprivate |
Private access to logging instance.
Definition at line 192 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 192 of file IterativeVertexFinder.hpp
References Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::m_logger.
|
inline |
Definition at line 150 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 150 of file IterativeVertexFinder.hpp
|
private |
Function that reassigns tracks from other vertices to the current vertex if they are more compatible.
vertexCollection | Collection of vertices |
currentVertex | Current vertex to assign tracks to |
tracksToFit | Tracks to fit vector |
seedTracks | Seed tracks vector |
origTracks | Vector of original track objects |
vertexingOptions | Vertexing options |
state | The state object |
Definition at line 425 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 425 of file IterativeVertexFinder.ipp
References ACTS_DEBUG, Acts::Vertex< input_track_t >::fitQuality(), Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::State::fitterState, Acts::Vertex< input_track_t >::fullPosition(), m_cfg(), testing::internal::move(), position, and Acts::VertexingOptions< input_track_t >::useConstraintInFit.
|
private |
Removes all tracks in tracksToRemove from seedTracks.
tracksToRemove | Tracks to be removed from seedTracks |
seedTracks | List to remove tracks from |
Definition at line 196 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 196 of file IterativeVertexFinder.ipp
References ACTS_WARNING.
|
private |
Function that removes used tracks compatible with current vertex (vertex
) from tracksToFit
and seedTracks
as well as outliers from vertex.tracksAtVertex.
vertex | Current vertex |
tracksToFit | Tracks used to fit vertex |
seedTracks | Tracks used for vertex seeding |
vertexingOptions | Vertexing options |
state | The state object |
Definition at line 256 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 256 of file IterativeVertexFinder.ipp
References ACTS_DEBUG, ACTS_WARNING, Acts::Vertex< input_track_t >::fullPosition(), m_cfg(), position, Acts::Vertex< input_track_t >::setTracksAtVertex(), and Acts::Vertex< input_track_t >::tracks().
|
private |
Configuration object.
Definition at line 181 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 181 of file IterativeVertexFinder.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 186 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 186 of file IterativeVertexFinder.hpp
|
private |
Logging instance.
Definition at line 189 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 189 of file IterativeVertexFinder.hpp
Referenced by Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::logger().