![]() |
Analysis Software
Documentation for sPHENIX simulation software
|
Implements the vertex finder based on the track seeds 0. Assumes there is only 1 vertex and that it has a high multiplicity. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Vertexing/SingleSeedVertexFinder.hpp>
Collaboration diagram for Acts::SingleSeedVertexFinder< spacepoint_t >:Classes | |
| struct | Config |
| Configuration struct. More... | |
| struct | SortedSpacepoints |
| Struct to store sorted spacepoints for each layer (near, middle, and far), for each slice of phi, and for each slice of z. More... | |
| struct | Triplet |
| Struct to store spacepoint combinations from near, middle, and far parts of the detector. Also stores straight line fit through the spacepoints in case minimalizeWRT=="rays", so it's not fitted twice. More... | |
Public Member Functions | |
| const Config & | config () const |
| Const access to the config. | |
| SingleSeedVertexFinder (const Config &cfg, std::unique_ptr< const Logger > lgr=getDefaultLogger("SingleSeedVertexFinder", Logging::INFO)) | |
| Constructor. | |
| ~SingleSeedVertexFinder ()=default | |
| Destructor. | |
| Acts::Result< Acts::Vector3 > | findVertex (const std::vector< spacepoint_t > &spacepoints) const |
| Finds the vertex based on the provided spacepoints. | |
Private Member Functions | |
| Acts::SingleSeedVertexFinder < spacepoint_t > ::SortedSpacepoints | sortSpacepoints (const std::vector< spacepoint_t > &spacepoints) const |
| Sorts spacepoints into a separate vectors for near, middle, and far spacepoints; for each slice of phi; and for each slice of z. | |
| std::vector< Triplet > | findTriplets (const Acts::SingleSeedVertexFinder< spacepoint_t >::SortedSpacepoints &sortedSpacepoints) const |
| Makes triplets from the provided vectors of near, middle, and far spacepoints; for each slice of phi; and for each slice of z. | |
| bool | tripletValidationAndUpdate (Triplet &triplet) const |
| Validate the triplet based on "maxXYdeviation", "maxXYZdeviation", "maxZPosition", and "maxRPosition". | |
| Acts::Vector3 | findClosestPointFromPlanes (const std::vector< Triplet > &triplets) const |
| Find a point (=the vertex) that has minimum chi^2 with respect to all planes defined by the triplets. | |
| Acts::Vector3 | findClosestPointFromRays (const std::vector< Triplet > &triplets) const |
| Find a point (=the vertex) that has minimum chi^2 with respect to all rays fitted through the triplets. | |
| const Logger & | logger () const |
| Private access to logging instance. | |
Static Private Member Functions | |
| static std::pair < Acts::Vector3, Acts::ActsScalar > | makePlaneFromTriplet (const Triplet &triplet) |
| Calculates equation of the plane (alpha*x + beta*y + gamma*z + delta = 0), given the three points. | |
| static Acts::Ray3D | makeRayFromTriplet (const Triplet &triplet) |
| Calculates parameters of the ray (starting point + direction), given the three points. | |
Private Attributes | |
| Config | m_cfg |
| Configuration instance. | |
| std::unique_ptr< const Logger > | m_logger |
| Logging instance. | |
Implements the vertex finder based on the track seeds 0. Assumes there is only 1 vertex and that it has a high multiplicity.
Definition at line 36 of file SingleSeedVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 36 of file SingleSeedVertexFinder.hpp
| Acts::SingleSeedVertexFinder< spacepoint_t >::SingleSeedVertexFinder | ( | const Config & | cfg, |
| std::unique_ptr< const Logger > | lgr = getDefaultLogger( "SingleSeedVertexFinder< spacepoint_t >", Logging::INFO) |
||
| ) |
Constructor.
| cfg | Configuration object |
| lgr | Logging instance |
Definition at line 15 of file SingleSeedVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 15 of file SingleSeedVertexFinder.ipp
References ACTS_ERROR, ACTS_INFO, Acts::SingleSeedVertexFinder< spacepoint_t >::Config::minimalizeWRT, Acts::SingleSeedVertexFinder< spacepoint_t >::Config::numPhiSlices, Acts::SingleSeedVertexFinder< spacepoint_t >::Config::removeFraction, Acts::SingleSeedVertexFinder< spacepoint_t >::Config::useFracPhiSlices, and Acts::SingleSeedVertexFinder< spacepoint_t >::Config::useFracZSlices.
|
default |
Destructor.
|
inline |
Const access to the config.
Definition at line 97 of file SingleSeedVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 97 of file SingleSeedVertexFinder.hpp
References Acts::SingleSeedVertexFinder< spacepoint_t >::m_cfg.
|
private |
Find a point (=the vertex) that has minimum chi^2 with respect to all planes defined by the triplets.
| triplets | Vector of all valid triplets |
Definition at line 407 of file SingleSeedVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 407 of file SingleSeedVertexFinder.ipp
References A, physmon_vertexing::delta, distance(), check_smearing_config::lhs, m_cfg(), makePlaneFromTriplet(), check_smearing_config::rhs, and Acts::Experimental::detail::BlueprintHelper::sort().
Here is the call graph for this function:
|
private |
Find a point (=the vertex) that has minimum chi^2 with respect to all rays fitted through the triplets.
| triplets | Vector of all valid triplets |
Definition at line 513 of file SingleSeedVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 513 of file SingleSeedVertexFinder.ipp
References A, Acts::VectorHelpers::cross(), distance(), check_smearing_config::lhs, m_cfg(), check_smearing_config::rhs, and Acts::Experimental::detail::BlueprintHelper::sort().
Here is the call graph for this function:
|
private |
Makes triplets from the provided vectors of near, middle, and far spacepoints; for each slice of phi; and for each slice of z.
| sortedSpacepoints | Struct of the sorted spacepointss |
Definition at line 129 of file SingleSeedVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 129 of file SingleSeedVertexFinder.ipp
References ACTS_WARNING, Acts::detail::difference_periodic(), Acts::SingleSeedVertexFinder< spacepoint_t >::SortedSpacepoints::getSP(), m_cfg(), and Acts::IntegrationTest::R.
Here is the call graph for this function:| Acts::Result< Acts::Vector3 > Acts::SingleSeedVertexFinder< spacepoint_t >::findVertex | ( | const std::vector< spacepoint_t > & | spacepoints | ) | const |
Finds the vertex based on the provided spacepoints.
| spacepoints | Vector of the input spacepoints; they do not need to be sorted anyhow |
Definition at line 46 of file SingleSeedVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 46 of file SingleSeedVertexFinder.ipp
References ACTS_ERROR, Acts::Cuda::Details::findTriplets(), and m_cfg().
Referenced by BOOST_AUTO_TEST_CASE(), and ActsExamples::SingleSeedVertexFinderAlgorithm::execute().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprivate |
Private access to logging instance.
Definition at line 214 of file SingleSeedVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 214 of file SingleSeedVertexFinder.hpp
References Acts::SingleSeedVertexFinder< spacepoint_t >::m_logger.
|
staticprivate |
Calculates equation of the plane (alpha*x + beta*y + gamma*z + delta = 0), given the three points.
| triplet | A single triplet (with 3 spacepoints) |
Definition at line 388 of file SingleSeedVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 388 of file SingleSeedVertexFinder.ipp
References KFPMath::a, Acts::SingleSeedVertexFinder< spacepoint_t >::Triplet::b, KFPMath::b, Acts::SingleSeedVertexFinder< spacepoint_t >::Triplet::c, Acts::PhysicalConstants::c, and physmon_vertexing::delta.
|
staticprivate |
Calculates parameters of the ray (starting point + direction), given the three points.
| triplet | A single triplet (with 3 spacepoints) |
Definition at line 492 of file SingleSeedVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 492 of file SingleSeedVertexFinder.ipp
References Acts::SingleSeedVertexFinder< spacepoint_t >::Triplet::b, Acts::SingleSeedVertexFinder< spacepoint_t >::Triplet::c, Acts::Test::cov, and mean().
Here is the call graph for this function:
|
private |
Sorts spacepoints into a separate vectors for near, middle, and far spacepoints; for each slice of phi; and for each slice of z.
| spacepoints | Vector of the input spacepoints; |
Definition at line 79 of file SingleSeedVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 79 of file SingleSeedVertexFinder.ipp
References Acts::SingleSeedVertexFinder< spacepoint_t >::SortedSpacepoints::addSP(), m_cfg(), ActsTests::PropagationDatasets::phi, and Acts::detail::radian_pos().
Here is the call graph for this function:
|
private |
Validate the triplet based on "maxXYdeviation", "maxXYZdeviation", "maxZPosition", and "maxRPosition".
| triplet | A single triplet to be validated |
Definition at line 324 of file SingleSeedVertexFinder.ipp.
View newest version in sPHENIX GitHub at line 324 of file SingleSeedVertexFinder.ipp
References Acts::SingleSeedVertexFinder< spacepoint_t >::Triplet::b, Acts::SingleSeedVertexFinder< spacepoint_t >::Triplet::c, Acts::detail::difference_periodic(), Acts::Ray< value_t, DIM >::dir(), dist(), m_cfg(), norm, Acts::Ray< value_t, DIM >::origin(), Acts::SingleSeedVertexFinder< spacepoint_t >::Triplet::ray, and ActsTests::PropagationDatasets::theta.
Here is the call graph for this function:
|
private |
Configuration instance.
Definition at line 165 of file SingleSeedVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 165 of file SingleSeedVertexFinder.hpp
Referenced by Acts::SingleSeedVertexFinder< spacepoint_t >::config().
|
private |
Logging instance.
Definition at line 211 of file SingleSeedVertexFinder.hpp.
View newest version in sPHENIX GitHub at line 211 of file SingleSeedVertexFinder.hpp
Referenced by Acts::SingleSeedVertexFinder< spacepoint_t >::logger().