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/AdaptiveMultiVertexFinder.hpp>
Classes | |
struct | Config |
Public Member Functions | |
template<typename T = InputTrack_t, std::enable_if_t< std::is_same< T, BoundParameters >::value, int > = 0> | |
AdaptiveMultiVertexFinder (Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("AdaptiveMultiVertexFinder", Logging::INFO)) | |
Constructor used if InputTrack_t type == BoundParameters. | |
m_logger (std::move(logger)) | |
AdaptiveMultiVertexFinder (Config &cfg, std::function< BoundParameters(InputTrack_t)> func, std::unique_ptr< const Logger > logger=getDefaultLogger("AdaptiveMultiVertexFinder", Logging::INFO)) | |
Constructor for user-defined InputTrack_t type != BoundParameters. | |
Result< std::vector< Vertex < InputTrack_t > > > | find (const std::vector< const InputTrack_t * > &allTracks, const VertexingOptions< InputTrack_t > &vertexingOptions) 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 |
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) const |
Calls the seed finder and sets constraints on the found seed vertex if desired. | |
double | estimateDeltaZ (const BoundParameters &track, const Vector3D &vtxPos) const |
Estimates delta Z between a track and a vertex position. | |
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) const |
Method that removes all tracks that are compatible with current vertex from seedTracks. | |
bool | canRemoveNonCompatibleTrackFromSeedTracks (Vertex< InputTrack_t > &vtx, std::vector< const InputTrack_t * > &seedTracks, FitterState_t &fitterState) const |
Method that tries to remove a non-compatible 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, FitterState_t &oldFitterState, const VertexingOptions< InputTrack_t > &vertexingOptions) const |
Method that deletes last vertex from list of all vertices and either refits all vertices afterwards (if refitAfterBadVertex) of reverts to the old state of the vertex fitter before the bad vertex was added to the fit (if not refitAfterBadVertex). | |
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< 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: 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
|
inline |
Constructor used if InputTrack_t type == BoundParameters.
cfg | Configuration object |
logger | The logging instance |
Definition at line 165 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 165 of file AdaptiveMultiVertexFinder.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 178 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 178 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 217 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 217 of file AdaptiveMultiVertexFinder.ipp
References kdfinder::abs().
|
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 305 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 305 of file AdaptiveMultiVertexFinder.ipp
|
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 246 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 246 of file AdaptiveMultiVertexFinder.ipp
References kdfinder::abs(), ACTS_DEBUG, Acts::eZ, and max.
|
private |
Method that tries to remove a non-compatible track from seed tracks after removing a compatible track failed.
vtx | The vertex candidate | |
[out] | seedTracks | The seed tracks |
fitterState | The vertex fitter state |
Definition at line 401 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 401 of file AdaptiveMultiVertexFinder.ipp
References kdfinder::abs(), ACTS_DEBUG, Acts::eZ, and max.
|
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 337 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 337 of file AdaptiveMultiVertexFinder.ipp
References ACTS_DEBUG.
|
private |
Method that deletes last vertex from list of all vertices and either refits all vertices afterwards (if refitAfterBadVertex) of reverts to the old state of the vertex fitter before the bad vertex was added to the fit (if not refitAfterBadVertex).
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 |
oldFitterState | The old vertex fitter state |
vertexingOptions | Vertexing options |
Definition at line 524 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 524 of file AdaptiveMultiVertexFinder.ipp
|
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 |
Definition at line 130 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 130 of file AdaptiveMultiVertexFinder.ipp
References ACTS_WARNING, Acts::Vertex< input_track_t >::fullCovariance(), Acts::Vertex< input_track_t >::fullPosition(), and Acts::VertexingOptions< input_track_t >::vertexConstraint.
|
private |
Estimates delta Z between a track and a vertex position.
track | The track |
vtxPos | The vertex position |
Definition at line 166 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 166 of file AdaptiveMultiVertexFinder.ipp
References Acts::ePHI, Acts::eTHETA, Acts::eX, Acts::eY, Acts::eZ, phi, track, X, and Y.
auto Acts::AdaptiveMultiVertexFinder< vfitter_t, sfinder_t >::find | ( | const std::vector< const InputTrack_t * > & | allTracks, |
const VertexingOptions< InputTrack_t > & | vertexingOptions | ||
) | const |
Function that performs the adaptive multi-vertex finding.
allTracks | Input track collection |
vertexingOptions | Vertexing options |
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(), G4Analysis::make_unique(), and Acts::Vertex< input_track_t >::position().
|
private |
Calculates the IP significance of a track to a given vertex.
track | The track |
vtx | The vertex |
vertexingOptions | Vertexing options |
Definition at line 183 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 183 of file AdaptiveMultiVertexFinder.ipp
References Acts::ImpactParametersAndSigma::IPd0, Acts::ImpactParametersAndSigma::IPz0, Acts::Vertex< input_track_t >::setFullCovariance(), Acts::ImpactParametersAndSigma::sigmad0, Acts::ImpactParametersAndSigma::sigmaz0, and track.
|
private |
Prepares the output vector of vertices.
allVerticesPtr | Vector of pointers to vertices |
fitterState | The vertex fitter state |
Definition at line 563 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 563 of file AdaptiveMultiVertexFinder.ipp
|
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 481 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 481 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 452 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 452 of file AdaptiveMultiVertexFinder.ipp
|
inlineprivate |
Private access to logging instance.
Definition at line 213 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 213 of file AdaptiveMultiVertexFinder.hpp
References Acts::AdaptiveMultiVertexFinder< vfitter_t, sfinder_t >::m_logger.
|
inline |
Definition at line 171 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 171 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 |
Definition at line 377 of file AdaptiveMultiVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 377 of file AdaptiveMultiVertexFinder.ipp
|
private |
Configuration object.
Definition at line 200 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 200 of file AdaptiveMultiVertexFinder.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 207 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 207 of file AdaptiveMultiVertexFinder.hpp
|
private |
Logging instance.
Definition at line 210 of file AdaptiveMultiVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 210 of file AdaptiveMultiVertexFinder.hpp
Referenced by Acts::AdaptiveMultiVertexFinder< vfitter_t, sfinder_t >::logger().