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...
|
| 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.
|
|
| 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.
|
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.
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
-
| cctx | Experiment specific calibration context to be piped back to the caller such that the space points may be calibrated during the seeding process. |
| state | Mutable reference to the SeedingState object from which all the segment seeds are constructed. |