ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
Implements an iterative vertex finder. More...
#include <acts/blob/master/Core/include/Acts/Vertexing/IterativeVertexFinder.hpp>
Classes | |
struct | Config |
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, BoundParameters >::value, int > = 0> | |
IterativeVertexFinder (Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("IterativeVertexFinder", Logging::INFO)) | |
Constructor used if InputTrack_t type == BoundParameters. | |
m_logger (std::move(logger)) | |
IterativeVertexFinder (Config &cfg, std::function< BoundParameters(InputTrack_t)> func, std::unique_ptr< const Logger > logger=getDefaultLogger("IterativeVertexFinder", Logging::INFO)) | |
Constructor for user-defined InputTrack_t type =! BoundParameters. | |
Result< std::vector< Vertex < InputTrack_t > > > | find (const std::vector< const InputTrack_t * > &trackVector, const VertexingOptions< InputTrack_t > &vertexingOptions) 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 | removeAllTracks (const std::vector< const InputTrack_t * > &perigeesToFit, std::vector< const InputTrack_t * > &seedTracks) const |
Removes all tracks in perigeesToFit from seedTracks. | |
Result< double > | getCompatibility (const BoundParameters ¶ms, const Vertex< InputTrack_t > &vertex, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
Function for calculating how compatible a given track is to a given vertex. | |
Result< void > | removeUsedCompatibleTracks (Vertex< InputTrack_t > &myVertex, std::vector< const InputTrack_t * > &perigeesToFit, std::vector< const InputTrack_t * > &seedTracks, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
Function that removes used tracks compatible with current vertex (myVertex ) from perigeesToFit and seedTracks as well as outliers from myVertex.tracksAtVertex. | |
Result< void > | fillPerigeesToFit (const std::vector< const InputTrack_t * > &perigeeList, const Vertex< InputTrack_t > &seedVertex, std::vector< const InputTrack_t * > &perigeesToFitOut, std::vector< const InputTrack_t * > &perigeesToFitSplitVertexOut, const VertexingOptions< InputTrack_t > &vertexingOptions) 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 * > &perigeesToFit, std::vector< const InputTrack_t * > &seedTracks, const std::vector< const InputTrack_t * > &origTracks, const VertexingOptions< InputTrack_t > &vertexingOptions) 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< 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 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 perigeesToFit
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 == BoundParameters.
cfg | Configuration object |
logger | The logging instance |
Definition at line 116 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 116 of file IterativeVertexFinder.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 128 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 128 of file IterativeVertexFinder.hpp
|
private |
Counts all tracks that are significant for a vertex.
vtx | The vertex |
weightThreshold | Threshold to count all tracks with weights > weightThreshold |
Definition at line 519 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 519 of file IterativeVertexFinder.ipp
References Acts::Vertex< input_track_t >::tracks().
|
private |
Function that fills vector with tracks compatible with seed vertex.
perigeeList | List of all available tracks used for seeding |
seedVertex | Seed vertex |
perigeesToFitOut | Perigees to fit |
perigeesToFitSplitVertexOut | Perigees to fit split vertex |
vertexingOptions | Vertexing options |
Definition at line 327 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 327 of file IterativeVertexFinder.ipp
References ACTS_WARNING, Acts::SingleTrackParameters< ChargePolicy >::covariance(), Acts::eLOC_D0, Acts::eLOC_Z0, error, Acts::VertexingOptions< input_track_t >::geoContext, 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 | ||
) | const |
Finds vertices corresponding to input trackVector.
trackVector | Input tracks |
vertexingOptions | Vertexing options |
Begin 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, and Acts::Vertex< input_track_t >::fitQuality().
|
private |
Function for calculating how compatible a given track is to a given vertex.
params | Track parameters |
vertex | The vertex |
vertexingOptions | Vertexing options |
Definition at line 199 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 199 of file IterativeVertexFinder.ipp
References Acts::Vertex< input_track_t >::fullCovariance(), Acts::Vertex< input_track_t >::fullPosition(), Acts::VertexingOptions< input_track_t >::geoContext, and Acts::VertexingOptions< input_track_t >::magFieldContext.
|
private |
Method that calls seed finder to retrieve a vertex seed.
seedTracks | Seeding tracks |
vertexingOptions | Vertexing options |
Definition at line 150 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 150 of file IterativeVertexFinder.ipp
References ACTS_DEBUG, Acts::eX, Acts::eY, Acts::eZ, Acts::Vertex< input_track_t >::fullPosition(), and Acts::Vertex< input_track_t >::time().
|
inlineprivate |
Private access to logging instance.
Definition at line 161 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 161 of file IterativeVertexFinder.hpp
References Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::m_logger.
|
inline |
Definition at line 121 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 121 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 |
perigeesToFit | Perigees to fit vector |
seedTracks | Seed tracks vector |
origTracks | Vector of original track objects |
vertexingOptions | Vertexing options |
Definition at line 395 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 395 of file IterativeVertexFinder.ipp
References ACTS_DEBUG, and Acts::Vertex< input_track_t >::fitQuality().
|
private |
Removes all tracks in perigeesToFit from seedTracks.
perigeesToFit | Tracks to be removed from seedTracks |
seedTracks | List to remove tracks from |
Definition at line 177 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 177 of file IterativeVertexFinder.ipp
References ACTS_WARNING.
|
private |
Function that removes used tracks compatible with current vertex (myVertex
) from perigeesToFit
and seedTracks
as well as outliers from myVertex.tracksAtVertex.
myVertex | Current vertex |
perigeesToFit | Tracks used to fit myVertex |
seedTracks | Tracks used for vertex seeding |
vertexingOptions | Vertexing options |
Definition at line 234 of file IterativeVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 234 of file IterativeVertexFinder.ipp
References ACTS_DEBUG, ACTS_WARNING, Acts::Vertex< input_track_t >::setTracksAtVertex(), and Acts::Vertex< input_track_t >::tracks().
|
private |
Configuration object.
Definition at line 148 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 148 of file IterativeVertexFinder.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 155 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 155 of file IterativeVertexFinder.hpp
|
private |
Logging instance.
Definition at line 158 of file IterativeVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 158 of file IterativeVertexFinder.hpp
Referenced by Acts::IterativeVertexFinder< vfitter_t, sfinder_t >::logger().