ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::Experimental::CompositeSpacePointLineSeeder Class Reference

Initial line parameters from a pattern recognition like the Hough transform are often not suitable for a line fit as the resolution of the hough bins usually exceeds the size of the straws. More...

#include <Acts/Seeding/CompositeSpacePointLineSeeder.hpp>

Classes

struct  Config
 Configuration of the cuts to sort out generated seeds with poor quality. More...
struct  SeedingState
 Central auxiliary struct to steer the seeding process. More...
struct  SegmentSeed
 Helper struct to pack the parameters and the associated measurements into a common object. More...
struct  TwoCircleTangentPars
 Helper struct describing the line parameters that are tangential to a pair of straw measurements. More...

Public Types

using CovIdx = detail::CompSpacePointAuxiliaries::ResidualIdx
 Use the assignment of the parameter indices from the CompSpacePointAuxiliaries.
using Line_t = std::pair<Vector, Vector>
 Abrivation of the straight line.
using ParIdx = detail::CompSpacePointAuxiliaries::FitParIndex
 Use the assignment of the parameter indices from the CompSpacePointAuxiliaries.
using SeedParam_t = std::array<double, toUnderlying(ParIdx::nPars)>
 Vector containing the 5 straight segment line parameters.
enum class  TangentAmbi : std::uint8_t { RR = 0 , RL = 1 , LR = 2 , LL = 3 }
 Enumeration to pick one of the four tangent lines to the straw circle pair. More...
using Vector = detail::CompSpacePointAuxiliaries::Vector
 Use the vector from the CompSpacePointAuxiliaires.

Public Member Functions

 CompositeSpacePointLineSeeder (const Config &cfg, std::unique_ptr< const Logger > logger=getDefaultLogger("CompositeSpacePointLineSeeder", Logging::Level::INFO))
 Class constructor.
const Configconfig () const
 Return the configuration object of the seeder.
template<CompositeSpacePointContainer UncalibCont_t, CompositeSpacePointContainer CalibCont_t, detail::CompSpacePointSeederDelegate< UncalibCont_t, CalibCont_t > Delegate_t>
std::optional< SegmentSeed< CalibCont_t > > nextSeed (const CalibrationContext &cctx, SeedingState< UncalibCont_t, CalibCont_t, Delegate_t > &state) const
 Main interface method provided by the SeederClass.

Static Public Member Functions

template<CompositeSpacePoint Sp_t>
static TwoCircleTangentPars constructTangentLine (const Sp_t &topHit, const Sp_t &bottomHit, const TangentAmbi ambi)
 Construct the line that is tangential to a pair of two straw circle measurements.
static TangentAmbi encodeAmbiguity (const int signTop, const int signBottom)
 Translate the combination of two drift signs into the proper tangent ambiguity enum value.
template<CompositeSpacePoint Spt_t>
static Vector makeDirection (const Spt_t &refHit, const double tanAngle)
 Creates the direction vector from the reference hit used to construct the tangent seed and the result on theta.
static std::string toString (const TangentAmbi ambi)
 Converts the line tangent ambiguity into a string.

Detailed Description

Initial line parameters from a pattern recognition like the Hough transform are often not suitable for a line fit as the resolution of the hough bins usually exceeds the size of the straws.

The CompositeSpacePointLineSeeder refines the parameters and the selected measurements such that both become candidates for a stright line fit. The user needs to split the straw measurements per logical straw layer. Further, the interface needs to provide some auxiliary methods to interact with an empty space point container & to calculate a calbrated candidate pull. From these ingredients, the CompositeSpacePointLineSeeder iterates from the outermost layers at both ends and tries to construct new candidates. Tangent lines are constructed to a pair of circles from each seeding layer and then straw measurements from the other layers are tried to be added onto the line. If the number of straws exceed the threshold, compatible strip measurements from each strip layer are added.

Member Typedef Documentation

◆ CovIdx

using Acts::Experimental::CompositeSpacePointLineSeeder::CovIdx = detail::CompSpacePointAuxiliaries::ResidualIdx

Use the assignment of the parameter indices from the CompSpacePointAuxiliaries.

◆ Line_t

Abrivation of the straight line.

The first element is the reference position and the second element is the direction

◆ ParIdx

using Acts::Experimental::CompositeSpacePointLineSeeder::ParIdx = detail::CompSpacePointAuxiliaries::FitParIndex

Use the assignment of the parameter indices from the CompSpacePointAuxiliaries.

◆ SeedParam_t

Vector containing the 5 straight segment line parameters.

◆ Vector

using Acts::Experimental::CompositeSpacePointLineSeeder::Vector = detail::CompSpacePointAuxiliaries::Vector

Use the vector from the CompSpacePointAuxiliaires.

Member Enumeration Documentation

◆ TangentAmbi

Enumeration to pick one of the four tangent lines to the straw circle pair.

Enumerator
RR 
RL 
LR 
LL 

Constructor & Destructor Documentation

◆ CompositeSpacePointLineSeeder()

Acts::Experimental::CompositeSpacePointLineSeeder::CompositeSpacePointLineSeeder ( const Config & cfg,
std::unique_ptr< const Logger > logger = getDefaultLogger("CompositeSpacePointLineSeeder", Logging::Level::INFO) )
explicit

Class constructor.

Parameters
cfgReference to the seeder configuration object
loggerLogger object used for debug print out

Member Function Documentation

◆ config()

const Config & Acts::Experimental::CompositeSpacePointLineSeeder::config ( ) const

Return the configuration object of the seeder.

◆ constructTangentLine()

template<CompositeSpacePoint Sp_t>
TwoCircleTangentPars Acts::Experimental::CompositeSpacePointLineSeeder::constructTangentLine ( const Sp_t & topHit,
const Sp_t & bottomHit,
const TangentAmbi ambi )
static

Construct the line that is tangential to a pair of two straw circle measurements.

Parameters
topHitFirst straw hit
bottomHitSecond straw hit
ambiLeft right ambiguity of the bottom & top hit

◆ encodeAmbiguity()

TangentAmbi Acts::Experimental::CompositeSpacePointLineSeeder::encodeAmbiguity ( const int signTop,
const int signBottom )
static

Translate the combination of two drift signs into the proper tangent ambiguity enum value.

Parameters
signTopLeft/right sign of the top straw tube
signBottomLeft/right sign of the bottom straw tube

◆ makeDirection()

template<CompositeSpacePoint Spt_t>
Vector Acts::Experimental::CompositeSpacePointLineSeeder::makeDirection ( const Spt_t & refHit,
const double tanAngle )
static

Creates the direction vector from the reference hit used to construct the tangent seed and the result on theta.

Parameters
refHitReference hit to define the local axes (Bottom hit)
tanAngleTheta value from the TwoCircleTangentPars

◆ nextSeed()

template<CompositeSpacePointContainer UncalibCont_t, CompositeSpacePointContainer CalibCont_t, detail::CompSpacePointSeederDelegate< UncalibCont_t, CalibCont_t > Delegate_t>
std::optional< SegmentSeed< CalibCont_t > > Acts::Experimental::CompositeSpacePointLineSeeder::nextSeed ( const CalibrationContext & cctx,
SeedingState< UncalibCont_t, CalibCont_t, Delegate_t > & state ) const

Main interface method provided by the SeederClass.

The user instantiates a SeedingState object containing all the straw hit candidates from which the seed shall be constructed. Then, the nextSeed() returns the next best seed candidate which can then be fitted. The user continues to call the method until a nullopt is returned.

Parameters
cctxExperiment specific calibration context to be piped back to the caller such that the space points may be calibrated during the seeding process.
stateMutable reference to the SeedingState object from which all the segment seeds are constructed.

◆ toString()

std::string Acts::Experimental::CompositeSpacePointLineSeeder::toString ( const TangentAmbi ambi)
static

Converts the line tangent ambiguity into a string.