EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
|
Implements an iterative vertex finder. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp>
Classes | |
struct | Config |
struct | NeedsRemovedTracks |
struct | NeedsRemovedTracks< T, decltype((void) T::tracksToRemove, 0)> |
struct | State |
for fulfilling interface More... | |
Public Member Functions | |
template<typename T = InputTrack_t, std::enable_if_t< std::is_same< T, BoundTrackParameters >::value, int > = 0> | |
AdaptiveMultiVertexFinder (Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("AdaptiveMultiVertexFinder", Logging::INFO)) | |
Constructor used if InputTrack_t type == BoundTrackParameters. | |
m_logger (std::move(logger)) | |
AdaptiveMultiVertexFinder (Config &cfg, std::function< BoundTrackParameters(InputTrack_t)> func, std::unique_ptr< const Logger > logger=getDefaultLogger("AdaptiveMultiVertexFinder", Logging::INFO)) | |
Constructor for user-defined InputTrack_t type != BoundTrackParameters. | |
Result< std::vector< Vertex < InputTrack_t > > > | find (const std::vector< const InputTrack_t * > &allTracks, const VertexingOptions< InputTrack_t > &vertexingOptions, State &state) const |
Function that performs the adaptive multi-vertex finding. | |
Private Types | |
using | Propagator_t = typename vfitter_t::Propagator_t |
using | InputTrack_t = typename vfitter_t::InputTrack_t |
using | Linearizer_t = typename vfitter_t::Linearizer_t |
using | FitterState_t = typename vfitter_t::State |
using | SeedFinderState_t = typename sfinder_t::State |
Private Member Functions | |
const Logger & | logger () const |
Private access to logging instance. | |
Result< Vertex< InputTrack_t > > | doSeeding (const std::vector< const InputTrack_t * > &trackVector, Vertex< InputTrack_t > ¤tConstraint, const VertexingOptions< InputTrack_t > &vertexingOptions, SeedFinderState_t &seedFinderState, const std::vector< const InputTrack_t * > &removedSeedTracks) const |
Calls the seed finder and sets constraints on the found seed vertex if desired. | |
void | setConstraintAfterSeeding (Vertex< InputTrack_t > ¤tConstraint, const Vertex< InputTrack_t > &seedVertex) const |
Sets constraint vertex after seeding. | |
Result< double > | getIPSignificance (const InputTrack_t *track, const Vertex< InputTrack_t > &vtx, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
Calculates the IP significance of a track to a given vertex. | |
Result< void > | addCompatibleTracksToVertex (const std::vector< const InputTrack_t * > &tracks, Vertex< InputTrack_t > &vtx, FitterState_t &fitterState, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
Adds compatible track to vertex candidate. | |
Result< bool > | canRecoverFromNoCompatibleTracks (const std::vector< const InputTrack_t * > &allTracks, const std::vector< const InputTrack_t * > &seedTracks, Vertex< InputTrack_t > &vtx, const Vertex< InputTrack_t > ¤tConstraint, FitterState_t &fitterState, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
Method that tries to recover from cases where no tracks were added to the vertex candidate after seeding. | |
Result< bool > | canPrepareVertexForFit (const std::vector< const InputTrack_t * > &allTracks, const std::vector< const InputTrack_t * > &seedTracks, Vertex< InputTrack_t > &vtx, const Vertex< InputTrack_t > ¤tConstraint, FitterState_t &fitterState, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
Method that tries to prepare the vertex for the fit. | |
std::pair< int, bool > | checkVertexAndCompatibleTracks (Vertex< InputTrack_t > &vtx, const std::vector< const InputTrack_t * > &seedTracks, FitterState_t &fitterState) const |
Method that checks if vertex is a good vertex and if compatible tracks are available. | |
void | removeCompatibleTracksFromSeedTracks (Vertex< InputTrack_t > &vtx, std::vector< const InputTrack_t * > &seedTracks, FitterState_t &fitterState, std::vector< const InputTrack_t * > &removedSeedTracks) const |
Method that removes all tracks that are compatible with current vertex from seedTracks. | |
bool | removeTrackIfIncompatible (Vertex< InputTrack_t > &vtx, std::vector< const InputTrack_t * > &seedTracks, FitterState_t &fitterState, std::vector< const InputTrack_t * > &removedSeedTracks, const GeometryContext &geoCtx) const |
Method that tries to remove an incompatible track from seed tracks after removing a compatible track failed. | |
bool | keepNewVertex (Vertex< InputTrack_t > &vtx, const std::vector< Vertex< InputTrack_t > * > &allVertices, FitterState_t &fitterState) const |
Method that evaluates if the new vertex candidate should be kept, i.e. saved, or not. | |
bool | isMergedVertex (const Vertex< InputTrack_t > &vtx, const std::vector< Vertex< InputTrack_t > * > &allVertices) const |
Method that evaluates if the new vertex candidate is merged with one of the previously found vertices. | |
Result< void > | deleteLastVertex (Vertex< InputTrack_t > &vtx, std::vector< std::unique_ptr< Vertex< InputTrack_t >>> &allVertices, std::vector< Vertex< InputTrack_t > * > &allVerticesPtr, FitterState_t &fitterState, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
Method that deletes last vertex from list of all vertices and refits all vertices afterwards. | |
Result< std::vector< Vertex < InputTrack_t > > > | getVertexOutputList (const std::vector< Vertex< InputTrack_t > * > &allVerticesPtr, FitterState_t &fitterState) const |
Prepares the output vector of vertices. | |
Private Attributes | |
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: TODO
Definition at line 35 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 35 of file AdaptiveMultiVertexFinder.hpp
|
private |
Definition at line 39 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 39 of file AdaptiveMultiVertexFinder.hpp
|
private |
Definition at line 37 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 37 of file AdaptiveMultiVertexFinder.hpp
|
private |
Definition at line 38 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 38 of file AdaptiveMultiVertexFinder.hpp
|
private |
Definition at line 36 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 36 of file AdaptiveMultiVertexFinder.hpp
|
private |
Definition at line 40 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 40 of file AdaptiveMultiVertexFinder.hpp
|
inline |
Constructor used if InputTrack_t type == BoundTrackParameters.
cfg | Configuration object |
logger | The logging instance |
Definition at line 170 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 170 of file AdaptiveMultiVertexFinder.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 185 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 185 of file AdaptiveMultiVertexFinder.hpp
|
private |
Adds compatible track to vertex candidate.
tracks | The tracks | |
vtx | The vertex candidate | |
[out] | fitterState | The vertex fitter state |
vertexingOptions | Vertexing options |
Definition at line 222 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 222 of file AdaptiveMultiVertexFinder.ipp
References kdfinder::abs(), Acts::eZ, pos(), and vtx().
|
private |
Method that tries to prepare the vertex for the fit.
allTracks | The tracks to be considered (either origTrack or seedTracks) | |
seedTracks | The seed tracks | |
[out] | vtx | The vertex candidate |
currentConstraint | Vertex constraint | |
[out] | fitterState | The vertex fitter state |
vertexingOptions | Vertexing options |
Definition at line 313 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 313 of file AdaptiveMultiVertexFinder.ipp
References vtx().
|
private |
Method that tries to recover from cases where no tracks were added to the vertex candidate after seeding.
allTracks | The tracks to be considered (either origTrack or seedTracks) | |
seedTracks | The seed tracks | |
[out] | vtx | The vertex candidate |
currentConstraint | Vertex constraint | |
[out] | fitterState | The vertex fitter state |
vertexingOptions | Vertexing options |
return True if recovery was successful, false otherwise
Definition at line 254 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 254 of file AdaptiveMultiVertexFinder.ipp
References kdfinder::abs(), ACTS_DEBUG, Acts::eZ, max, pos(), and vtx().
|
private |
Method that checks if vertex is a good vertex and if compatible tracks are available.
vtx | The vertex candidate |
seedTracks | The seed tracks |
fitterState | The vertex fitter state |
Definition at line 345 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 345 of file AdaptiveMultiVertexFinder.ipp
References ACTS_DEBUG, and vtx().
|
private |
Method that deletes last vertex from list of all vertices and refits all vertices afterwards.
vtx | The last added vertex which will be removed |
allVertices | Vector containing the unique_ptr to vertices |
allVerticesPtr | Vector containing the actual addresses |
fitterState | The current vertex fitter state |
vertexingOptions | Vertexing options |
Definition at line 540 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 540 of file AdaptiveMultiVertexFinder.ipp
References vtx().
|
private |
Calls the seed finder and sets constraints on the found seed vertex if desired.
trackVector | All tracks to be used for seeding |
currentConstraint | Vertex constraint |
vertexingOptions | Vertexing options |
seedFinderState | The seed finder state |
removedSeedTracks | Seed track that have been removed from seed track collection in last iteration |
Definition at line 136 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 136 of file AdaptiveMultiVertexFinder.ipp
References Acts::VertexingOptions< input_track_t >::vertexConstraint.
auto Acts::AdaptiveMultiVertexFinder< vfitter_t, sfinder_t >::find | ( | const std::vector< const InputTrack_t * > & | allTracks, |
const VertexingOptions< InputTrack_t > & | vertexingOptions, | ||
State & | state | ||
) | const |
Function that performs the adaptive multi-vertex finding.
allTracks | Input track collection |
vertexingOptions | Vertexing options |
state | State for fulfilling interfaces |
Definition at line 12 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 12 of file AdaptiveMultiVertexFinder.ipp
References ACTS_DEBUG, Acts::Vertex< input_track_t >::fullPosition(), Acts::VertexingOptions< input_track_t >::geoContext, Acts::VertexingOptions< input_track_t >::magFieldContext, Acts::Vertex< input_track_t >::position(), and Acts::VertexingOptions< input_track_t >::vertexConstraint.
|
private |
Calculates the IP significance of a track to a given vertex.
track | The track |
vtx | The vertex |
vertexingOptions | Vertexing options |
Definition at line 188 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 188 of file AdaptiveMultiVertexFinder.ipp
References Acts::ImpactParametersAndSigma::IPd0, Acts::ImpactParametersAndSigma::IPz0, Acts::Vertex< input_track_t >::setFullCovariance(), Acts::ImpactParametersAndSigma::sigmad0, Acts::ImpactParametersAndSigma::sigmaz0, and vtx().
|
private |
Prepares the output vector of vertices.
allVerticesPtr | Vector of pointers to vertices |
fitterState | The vertex fitter state |
Definition at line 564 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 564 of file AdaptiveMultiVertexFinder.ipp
References vtx().
|
private |
Method that evaluates if the new vertex candidate is merged with one of the previously found vertices.
vtx | The vertex candidate |
allVertices | All so far found vertices |
Definition at line 497 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 497 of file AdaptiveMultiVertexFinder.ipp
References kdfinder::abs(), Acts::eZ, Acts::Vertex< input_track_t >::fullCovariance(), and Acts::Vertex< input_track_t >::fullPosition().
|
private |
Method that evaluates if the new vertex candidate should be kept, i.e. saved, or not.
vtx | The vertex candidate |
allVertices | All so far found vertices |
fitterState | The vertex fitter state |
Definition at line 468 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 468 of file AdaptiveMultiVertexFinder.ipp
References vtx().
|
inlineprivate |
Private access to logging instance.
Definition at line 221 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 221 of file AdaptiveMultiVertexFinder.hpp
References Acts::AdaptiveMultiVertexFinder< vfitter_t, sfinder_t >::m_logger.
|
inline |
Definition at line 176 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 176 of file AdaptiveMultiVertexFinder.hpp
|
private |
Method that removes all tracks that are compatible with current vertex from seedTracks.
vtx | The vertex candidate | |
[out] | seedTracks | The seed tracks |
fitterState | The vertex fitter state | |
[out] | removedSeedTracks | Collection of seed track that will be removed |
Definition at line 385 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 385 of file AdaptiveMultiVertexFinder.ipp
References vtx().
|
private |
Method that tries to remove an incompatible track from seed tracks after removing a compatible track failed.
vtx | The vertex candidate | |
[out] | seedTracks | The seed tracks |
fitterState | The vertex fitter state | |
[out] | removedSeedTracks | Collection of seed track that will be removed |
[in] | geoCtx | The geometry context to access global positions |
Definition at line 411 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 411 of file AdaptiveMultiVertexFinder.ipp
References kdfinder::abs(), ACTS_DEBUG, Acts::eZ, Acts::Test::geoCtx, max, pos(), and vtx().
|
private |
Sets constraint vertex after seeding.
Definition at line 167 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 167 of file AdaptiveMultiVertexFinder.ipp
References ACTS_WARNING.
|
private |
Configuration object.
Definition at line 208 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 208 of file AdaptiveMultiVertexFinder.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.
InputTrack_t | object to extract track parameters from |
Definition at line 215 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 215 of file AdaptiveMultiVertexFinder.hpp
|
private |
Logging instance.
Definition at line 218 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 218 of file AdaptiveMultiVertexFinder.hpp
Referenced by Acts::AdaptiveMultiVertexFinder< vfitter_t, sfinder_t >::logger().