Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ActsExamples::HoughTransformSeeder Exception Referencefinal

Construct track seeds from space points. More...

#include <acts/blob/sPHENIX/Examples/Algorithms/TrackFinding/include/ActsExamples/TrackFinding/HoughTransformSeeder.hpp>

+ Inheritance diagram for ActsExamples::HoughTransformSeeder:
+ Collaboration diagram for ActsExamples::HoughTransformSeeder:

Classes

struct  Config
 

Public Member Functions

 HoughTransformSeeder (Config cfg, Acts::Logging::Level lvl)
 
ProcessCode execute (const AlgorithmContext &ctx) const final
 
const Configconfig () const
 Const access to the config.
 
double getMinX () const
 
double getMaxX () const
 
double getMinY () const
 
double getMaxY () const
 
unsigned getThreshold () const
 
std::vector< int > getSubRegions () const
 
double yToX (double y, double r, double phi) const
 
- Public Member Functions inherited from ActsExamples::IAlgorithm
 IAlgorithm (std::string name, Acts::Logging::Level level=Acts::Logging::INFO)
 
std::string name () const override
 The algorithm name.
 
ProcessCode internalExecute (const AlgorithmContext &context) final
 
ProcessCode initialize () override
 Initialize the algorithm.
 
ProcessCode finalize () override
 Finalize the algorithm.
 

Private Member Functions

const Acts::Loggerlogger () const
 
HoughHist createLayerHoughHist (unsigned layer, int subregion) const
 
HoughHist createHoughHist (int subregion) const
 
std::pair< unsigned, unsigned > yToXBins (size_t yBin_min, size_t yBin_max, double r, double phi, unsigned layer) const
 
unsigned getExtension (unsigned y, unsigned layer) const
 
bool passThreshold (HoughHist const &houghHist, unsigned x, unsigned y) const
 
void drawHoughHist (HoughHist const &houghHist, std::string const &name)
 
std::vector< std::vector< int > > getComboIndices (std::vector< size_t > &sizes) const
 
void addMeasurements (const AlgorithmContext &ctx) const
 
void addSpacePoints (const AlgorithmContext &ctx) const
 

Private Attributes

Config m_cfg
 
std::unique_ptr< const
Acts::Logger
m_logger
 
WriteDataHandle
< ProtoTrackContainer
m_outputProtoTracks
 
std::vector< std::unique_ptr
< ReadDataHandle
< SimSpacePointContainer > > > 
m_inputSpacePoints {}
 
ReadDataHandle
< MeasurementContainer
m_inputMeasurements
 
ReadDataHandle
< IndexSourceLinkContainer
m_inputSourceLinks
 
double m_step_x
 
double m_step_y
 
std::vector< doublem_bins_x
 
std::vector< doublem_bins_y
 

Additional Inherited Members

- Protected Member Functions inherited from ActsExamples::IAlgorithm
const Acts::Loggerlogger () const
 

Detailed Description

Construct track seeds from space points.

Definition at line 153 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 153 of file HoughTransformSeeder.hpp

Constructor & Destructor Documentation

ActsExamples::HoughTransformSeeder::HoughTransformSeeder ( Config  cfg,
Acts::Logging::Level  lvl 
)

Construct the seeding algorithm.

Parameters
cfgis the algorithm configuration
lvlis the logging level

Definition at line 40 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 40 of file HoughTransformSeeder.cpp

References ACTS_INFO, ACTS_WARNING, root_event_diff_np::cmp(), distance(), ActsExamples::DefaultHoughFunctions::fieldCorrectionDefault(), ActsExamples::HoughTransformSeeder::Config::fieldCorrector, ActsExamples::DefaultHoughFunctions::findLayerIDDefault(), ActsExamples::HoughTransformSeeder::Config::geometrySelection, ActsExamples::HoughTransformSeeder::Config::houghHistSize_x, ActsExamples::HoughTransformSeeder::Config::houghHistSize_y, i, ActsExamples::WriteDataHandle< T >::initialize(), ActsExamples::ReadDataHandle< T >::initialize(), ActsExamples::HoughTransformSeeder::Config::inputMeasurements, ActsExamples::HoughTransformSeeder::Config::inputSourceLinks, ActsExamples::HoughTransformSeeder::Config::inputSpacePoints, ActsExamples::DefaultHoughFunctions::inSliceDefault(), Acts::GeometryIdentifier::layer(), ActsExamples::HoughTransformSeeder::Config::layerIDFinder, m_bins_x, m_bins_y, m_cfg, m_inputMeasurements, m_inputSourceLinks, m_inputSpacePoints, m_outputProtoTracks, m_step_x, m_step_y, ActsExamples::HoughTransformSeeder::Config::outputProtoTracks, ActsExamples::HoughTransformSeeder::Config::outputSeeds, check_smearing_config::ref, ActsExamples::HoughTransformSeeder::Config::sliceTester, Acts::Experimental::detail::BlueprintHelper::sort(), to_string(), ActsExamples::HoughTransformSeeder::Config::trackingGeometry, physmon_ckf_tracking::u, unquant(), Acts::GeometryIdentifier::volume(), ActsExamples::HoughTransformSeeder::Config::xMax, ActsExamples::HoughTransformSeeder::Config::xMin, ActsExamples::HoughTransformSeeder::Config::yMax, and ActsExamples::HoughTransformSeeder::Config::yMin.

+ Here is the call graph for this function:

Member Function Documentation

void ActsExamples::HoughTransformSeeder::addMeasurements ( const AlgorithmContext ctx) const
private
void ActsExamples::HoughTransformSeeder::addSpacePoints ( const AlgorithmContext ctx) const
private

Definition at line 467 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 467 of file HoughTransformSeeder.cpp

References ACTS_DEBUG, ActsExamples::houghMeasurementStructs, m_cfg(), ActsTests::PropagationDatasets::phi, physmon_track_finding_ttbar::r, ActsExamples::SP, and physmon_track_finding_ttbar::z.

+ Here is the call graph for this function:

const Config& ActsExamples::HoughTransformSeeder::config ( ) const
inline

Const access to the config.

Definition at line 253 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 253 of file HoughTransformSeeder.hpp

References m_cfg.

ActsExamples::HoughHist ActsExamples::HoughTransformSeeder::createHoughHist ( int  subregion) const
private

Definition at line 257 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 257 of file HoughTransformSeeder.cpp

References i, m_cfg(), ambiguity_solver_full_chain::x, and y.

+ Here is the call graph for this function:

ActsExamples::HoughHist ActsExamples::HoughTransformSeeder::createLayerHoughHist ( unsigned  layer,
int  subregion 
) const
private

Definition at line 222 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 222 of file HoughTransformSeeder.cpp

References ActsExamples::houghMeasurementStructs, index, ActsExamples::HoughMeasurementStruct::layer, m_cfg(), ActsExamples::HoughMeasurementStruct::phi, ActsExamples::HoughMeasurementStruct::radius, value, ambiguity_solver_full_chain::x, y, y_, and ActsExamples::HoughMeasurementStruct::z.

+ Here is the call graph for this function:

void ActsExamples::HoughTransformSeeder::drawHoughHist ( HoughHist const &  houghHist,
std::string const &  name 
)
private
ActsExamples::ProcessCode ActsExamples::HoughTransformSeeder::execute ( const AlgorithmContext ctx) const
finalvirtual

Run the seeding algorithm.

Parameters
txtis the algorithm context with event information
Returns
a process code indication success or failure

Implements ActsExamples::IAlgorithm.

Definition at line 159 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 159 of file HoughTransformSeeder.cpp

References ACTS_DEBUG, Acts::enumerate(), ActsExamples::houghMeasurementStructs, index, ActsExamples::HoughMeasurementStruct::indices, ActsExamples::HoughMeasurementStruct::layer, layer, m_cfg(), SUCCESS, ambiguity_solver_full_chain::x, and y.

+ Here is the call graph for this function:

std::vector< std::vector< int > > ActsExamples::HoughTransformSeeder::getComboIndices ( std::vector< size_t > &  sizes) const
private

Given a list of sizes (of arrays), generates a list of all combinations of indices to index one element from each array.

For example, given [2 3], generates [(0 0) (1 0) (0 1) (1 1) (0 2) (1 2)].

This basically amounts to a positional number system of where each digit has its own base. The number of digits is sizes.size(), and the base of digit i is sizes[i]. Then all combinations can be uniquely represented just by counting from [0, nCombs).

For a decimal number like 1357, you get the thousands digit with n / 1000 = n / (10 * 10 * 10). So here, you get the 0th digit with n / (base_1 * base_2 * base_3);

Definition at line 436 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 436 of file HoughTransformSeeder.cpp

References i, and index.

unsigned ActsExamples::HoughTransformSeeder::getExtension ( unsigned  y,
unsigned  layer 
) const
private

Definition at line 401 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 401 of file HoughTransformSeeder.cpp

References layer, and m_cfg().

+ Here is the call graph for this function:

double ActsExamples::HoughTransformSeeder::getMaxX ( ) const
inline

Definition at line 256 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 256 of file HoughTransformSeeder.hpp

References m_cfg, and ActsExamples::HoughTransformSeeder::Config::xMax.

double ActsExamples::HoughTransformSeeder::getMaxY ( ) const
inline

Definition at line 258 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 258 of file HoughTransformSeeder.hpp

References m_cfg, and ActsExamples::HoughTransformSeeder::Config::yMax.

double ActsExamples::HoughTransformSeeder::getMinX ( ) const
inline

Definition at line 255 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 255 of file HoughTransformSeeder.hpp

References m_cfg, and ActsExamples::HoughTransformSeeder::Config::xMin.

double ActsExamples::HoughTransformSeeder::getMinY ( ) const
inline

Definition at line 257 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 257 of file HoughTransformSeeder.hpp

References m_cfg, and ActsExamples::HoughTransformSeeder::Config::yMin.

std::vector<int> ActsExamples::HoughTransformSeeder::getSubRegions ( ) const
inline

Definition at line 263 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 263 of file HoughTransformSeeder.hpp

References m_cfg, and ActsExamples::HoughTransformSeeder::Config::subRegions.

unsigned ActsExamples::HoughTransformSeeder::getThreshold ( ) const
inline

Definition at line 259 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 259 of file HoughTransformSeeder.hpp

References m_cfg, and ActsExamples::HoughTransformSeeder::Config::threshold.

const Acts::Logger& ActsExamples::HoughTransformSeeder::logger ( ) const
inlineprivate

Definition at line 271 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 271 of file HoughTransformSeeder.hpp

References m_logger.

bool ActsExamples::HoughTransformSeeder::passThreshold ( HoughHist const &  houghHist,
unsigned  x,
unsigned  y 
) const
private

Definition at line 278 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 278 of file HoughTransformSeeder.cpp

References i, j, m_cfg(), vector2D< T >::size(), width, and ambiguity_solver_full_chain::x.

+ Here is the call graph for this function:

double ActsExamples::HoughTransformSeeder::yToX ( double  y,
double  r,
double  phi 
) const

Definition at line 350 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 350 of file HoughTransformSeeder.cpp

References m_cfg(), m_cfg, ActsTests::PropagationDatasets::phi, value, and ambiguity_solver_full_chain::x.

+ Here is the call graph for this function:

std::pair< unsigned, unsigned > ActsExamples::HoughTransformSeeder::yToXBins ( size_t  yBin_min,
size_t  yBin_max,
double  r,
double  phi,
unsigned  layer 
) const
private

Definition at line 366 of file HoughTransformSeeder.cpp.

View newest version in sPHENIX GitHub at line 366 of file HoughTransformSeeder.cpp

References m_cfg(), quant(), and swap().

+ Here is the call graph for this function:

Member Data Documentation

std::vector<double> ActsExamples::HoughTransformSeeder::m_bins_x
private

Bin boundaries, where m_bins_x[i] is the lower bound of bin i. These are calculated from m_xMin/m_xMax

Definition at line 291 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 291 of file HoughTransformSeeder.hpp

Referenced by HoughTransformSeeder().

std::vector<double> ActsExamples::HoughTransformSeeder::m_bins_y
private

Definition at line 292 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 292 of file HoughTransformSeeder.hpp

Referenced by HoughTransformSeeder().

Config ActsExamples::HoughTransformSeeder::m_cfg
private

Definition at line 269 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 269 of file HoughTransformSeeder.hpp

Referenced by config(), getMaxX(), getMaxY(), getMinX(), getMinY(), getSubRegions(), getThreshold(), HoughTransformSeeder(), and yToX().

ReadDataHandle<MeasurementContainer> ActsExamples::HoughTransformSeeder::m_inputMeasurements
private
Initial value:
{this,
"InputMeasurements"}

Definition at line 278 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 278 of file HoughTransformSeeder.hpp

Referenced by HoughTransformSeeder().

ReadDataHandle<IndexSourceLinkContainer> ActsExamples::HoughTransformSeeder::m_inputSourceLinks
private
Initial value:
{
this, "InputSourceLinks"}

Definition at line 281 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 281 of file HoughTransformSeeder.hpp

Referenced by HoughTransformSeeder().

std::vector<std::unique_ptr<ReadDataHandle<SimSpacePointContainer> > > ActsExamples::HoughTransformSeeder::m_inputSpacePoints {}
private

Definition at line 276 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 276 of file HoughTransformSeeder.hpp

Referenced by HoughTransformSeeder().

std::unique_ptr<const Acts::Logger> ActsExamples::HoughTransformSeeder::m_logger
private

Definition at line 270 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 270 of file HoughTransformSeeder.hpp

Referenced by logger().

WriteDataHandle<ProtoTrackContainer> ActsExamples::HoughTransformSeeder::m_outputProtoTracks
private
Initial value:
{this,
"OutputProtoTracks"}

Definition at line 273 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 273 of file HoughTransformSeeder.hpp

Referenced by HoughTransformSeeder().

double ActsExamples::HoughTransformSeeder::m_step_x
private

Convenience

Definition at line 287 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 287 of file HoughTransformSeeder.hpp

Referenced by HoughTransformSeeder().

double ActsExamples::HoughTransformSeeder::m_step_y
private

Definition at line 288 of file HoughTransformSeeder.hpp.

View newest version in sPHENIX GitHub at line 288 of file HoughTransformSeeder.hpp

Referenced by HoughTransformSeeder().


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