Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::SingleSeedVertexFinder< spacepoint_t > Class Template Reference

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 Configconfig () 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::Vector3findVertex (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< TripletfindTriplets (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 Loggerlogger () 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 Loggerm_logger
 Logging instance.
 

Detailed Description

template<typename spacepoint_t>
class Acts::SingleSeedVertexFinder< spacepoint_t >

Implements the vertex finder based on the track seeds 0. Assumes there is only 1 vertex and that it has a high multiplicity.

  1. Sorts out all the input spacepoints based on their distance to the z-axis
  2. Create seeds from 3 spacepoints with a small deviation from a straigh line
  3. Find a point with a minimal distance from either planes (minimalizeWRT="planes") or rays (minimalizeWRT="rays") defined by the seeds
  4. Returns the point position as the vertex

Definition at line 36 of file SingleSeedVertexFinder.hpp.

View newest version in sPHENIX GitHub at line 36 of file SingleSeedVertexFinder.hpp

Constructor & Destructor Documentation

template<typename spacepoint_t>
Acts::SingleSeedVertexFinder< spacepoint_t >::SingleSeedVertexFinder ( const Config cfg,
std::unique_ptr< const Logger lgr = getDefaultLogger(                             "SingleSeedVertexFinder< spacepoint_t >", Logging::INFO) 
)
template<typename spacepoint_t>
Acts::SingleSeedVertexFinder< spacepoint_t >::~SingleSeedVertexFinder ( )
default

Destructor.

Member Function Documentation

template<typename spacepoint_t>
const Config& Acts::SingleSeedVertexFinder< spacepoint_t >::config ( ) const
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.

template<typename spacepoint_t>
Acts::Vector3 Acts::SingleSeedVertexFinder< spacepoint_t >::findClosestPointFromPlanes ( const std::vector< Triplet > &  triplets) const
private

Find a point (=the vertex) that has minimum chi^2 with respect to all planes defined by the triplets.

Parameters
tripletsVector of all valid triplets
Returns
Position {x,y,z} of the vertex

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:

template<typename spacepoint_t>
Acts::Vector3 Acts::SingleSeedVertexFinder< spacepoint_t >::findClosestPointFromRays ( const std::vector< Triplet > &  triplets) const
private

Find a point (=the vertex) that has minimum chi^2 with respect to all rays fitted through the triplets.

Parameters
tripletsVector of all valid triplets
Returns
Position {x,y,z} of the vertex

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:

template<typename spacepoint_t >
std::vector< typename Acts::SingleSeedVertexFinder< spacepoint_t >::Triplet > Acts::SingleSeedVertexFinder< spacepoint_t >::findTriplets ( const Acts::SingleSeedVertexFinder< spacepoint_t >::SortedSpacepoints sortedSpacepoints) const
private

Makes triplets from the provided vectors of near, middle, and far spacepoints; for each slice of phi; and for each slice of z.

Parameters
sortedSpacepointsStruct of the sorted spacepointss
Returns
Vector of valid triplets

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:

template<typename spacepoint_t >
Acts::Result< Acts::Vector3 > Acts::SingleSeedVertexFinder< spacepoint_t >::findVertex ( const std::vector< spacepoint_t > &  spacepoints) const

Finds the vertex based on the provided spacepoints.

Parameters
spacepointsVector of the input spacepoints; they do not need to be sorted anyhow
Returns
Position of the vertex

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:

template<typename spacepoint_t>
const Logger& Acts::SingleSeedVertexFinder< spacepoint_t >::logger ( ) const
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.

template<typename spacepoint_t>
std::pair< Acts::Vector3, Acts::ActsScalar > Acts::SingleSeedVertexFinder< spacepoint_t >::makePlaneFromTriplet ( const Triplet triplet)
staticprivate

Calculates equation of the plane (alpha*x + beta*y + gamma*z + delta = 0), given the three points.

Parameters
tripletA single triplet (with 3 spacepoints)
Returns
A pair of {{alpha,beta,gamma},delta}

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.

template<typename spacepoint_t>
Acts::Ray3D Acts::SingleSeedVertexFinder< spacepoint_t >::makeRayFromTriplet ( const Triplet triplet)
staticprivate

Calculates parameters of the ray (starting point + direction), given the three points.

Parameters
tripletA single triplet (with 3 spacepoints)
Returns
A ray of {starting_point, direction}

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:

template<typename spacepoint_t >
Acts::SingleSeedVertexFinder< spacepoint_t >::SortedSpacepoints Acts::SingleSeedVertexFinder< spacepoint_t >::sortSpacepoints ( const std::vector< spacepoint_t > &  spacepoints) const
private

Sorts spacepoints into a separate vectors for near, middle, and far spacepoints; for each slice of phi; and for each slice of z.

Parameters
spacepointsVector of the input spacepoints;
Returns
Struct of the sorted 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:

template<typename spacepoint_t>
bool Acts::SingleSeedVertexFinder< spacepoint_t >::tripletValidationAndUpdate ( Triplet triplet) const
private

Validate the triplet based on "maxXYdeviation", "maxXYZdeviation", "maxZPosition", and "maxRPosition".

Parameters
tripletA single triplet to be validated
Returns
True if the deviations and fitted ray are within the configured ranges If "minimalizeWRT"=="rays", then the fitted ray is also saved to the triplet for later

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:

Member Data Documentation

template<typename spacepoint_t>
Config Acts::SingleSeedVertexFinder< spacepoint_t >::m_cfg
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().

template<typename spacepoint_t>
std::unique_ptr<const Logger> Acts::SingleSeedVertexFinder< spacepoint_t >::m_logger
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().


The documentation for this class was generated from the following files: