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>
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().
|
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().
|
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.
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().
|
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().
|
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().
|
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.
|
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().