Belle II Software development
TrackFinderSegmentTripleAutomaton Class Referenceabstract

Findlet implementing the track finding from segments using a cellular automaton over segment triples. More...

#include <TrackFinderSegmentTripleAutomaton.h>

Inheritance diagram for TrackFinderSegmentTripleAutomaton:
Findlet< const CDCSegment2D, CDCTrack > CompositeProcessingSignalListener ProcessingSignalListener

Public Types

using IOTypes = std::tuple< AIOTypes... >
 Types that should be served to apply on invocation.
 
using IOVectors = std::tuple< std::vector< AIOTypes >... >
 Vector types that should be served to apply on invocation.
 

Public Member Functions

 TrackFinderSegmentTripleAutomaton ()
 Constructor registering the subordinary findlets to the processing signal distribution machinery.
 
std::string getDescription () final
 Short description of the findlet.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters to a module.
 
void beginEvent () final
 Signal the beginning of a new event.
 
void apply (const std::vector< CDCSegment2D > &inputSegments, std::vector< CDCTrack > &tracks) final
 Generates the tracks.
 
virtual void apply (ToVector< AIOTypes > &... ioVectors)=0
 Main function executing the algorithm.
 
void initialize () override
 Receive and dispatch signal before the start of the event processing.
 
void beginRun () override
 Receive and dispatch signal for the beginning of a new run.
 
void endRun () override
 Receive and dispatch signal for the end of the run.
 
void terminate () override
 Receive and dispatch Signal for termination of the event processing.
 

Protected Types

using ToVector = typename ToVectorImpl< T >::Type
 Short hand for ToRangeImpl.
 

Protected Member Functions

void addProcessingSignalListener (ProcessingSignalListener *psl)
 Register a processing signal listener to be notified.
 
int getNProcessingSignalListener ()
 Get the number of currently registered listeners.
 

Private Types

using Super = Findlet< const CDCSegment2D, CDCTrack >
 Type of the base class.
 

Private Attributes

AxialSegmentPairCreator m_axialSegmentPairCreator
 Instance of the axial to axial segment pair creator.
 
SegmentTripleCreator m_segmentTripleCreator
 Instance of the segment triple creator.
 
WeightedRelationCreator< const CDCSegmentTriple, ChooseableSegmentTripleRelationFilterm_segmentTripleRelationCreator
 Instance of the segment triple relation creator.
 
TrackCreatorSegmentTripleAutomaton m_trackCreatorSegmentTripleAutomaton
 Instance of the cellular automaton creating creating tracks over segment triple.
 
TrackCreatorSingleSegments m_trackCreatorSingleSegments
 Creates tracks from left over segments.
 
TrackLinker m_trackLinker
 Findlet responsible for the linking of tracks.
 
TrackOrienter m_trackOrienter
 Fixes the direction of flight of tracks by a simple chooseable heuristic.
 
StoreVectorSwapper< CDCSegmentTriplem_segmentTripleSwapper {"CDCSegmentTripleVector"}
 Helper to swap the local segment triples out to the DataStore.
 
std::vector< CDCAxialSegmentPairm_axialSegmentPairs
 Memory for the axial to axial segment pairs.
 
std::vector< CDCSegmentTriplem_segmentTriples
 Memory for the segment triples.
 
std::vector< WeightedRelation< const CDCSegmentTriple > > m_segmentTripleRelations
 Memory for the segment triple relations.
 
std::vector< CDCTrackm_preLinkingTracks
 Memory for the tracks before linking was applied.
 
std::vector< CDCTrackm_orientedTracks
 Memory for the tracks after orientation was applied.
 
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
 References to subordinary signal processing listener contained in this findlet.
 
bool m_initialized = false
 Flag to keep track whether initialization happened before.
 
bool m_terminated = false
 Flag to keep track whether termination happened before.
 
std::string m_initializedAs
 Name of the type during initialisation.
 

Detailed Description

Findlet implementing the track finding from segments using a cellular automaton over segment triples.

Definition at line 37 of file TrackFinderSegmentTripleAutomaton.h.

Member Typedef Documentation

◆ IOTypes

using IOTypes = std::tuple<AIOTypes...>
inherited

Types that should be served to apply on invocation.

Definition at line 30 of file Findlet.h.

◆ IOVectors

using IOVectors = std::tuple< std::vector<AIOTypes>... >
inherited

Vector types that should be served to apply on invocation.

Definition at line 53 of file Findlet.h.

◆ Super

using Super = Findlet<const CDCSegment2D, CDCTrack>
private

Type of the base class.

Definition at line 41 of file TrackFinderSegmentTripleAutomaton.h.

◆ ToVector

using ToVector = typename ToVectorImpl<T>::Type
protectedinherited

Short hand for ToRangeImpl.

Definition at line 49 of file Findlet.h.

Constructor & Destructor Documentation

◆ TrackFinderSegmentTripleAutomaton()

Constructor registering the subordinary findlets to the processing signal distribution machinery.

Definition at line 15 of file TrackFinderSegmentTripleAutomaton.cc.

16{
25
26 m_axialSegmentPairs.reserve(75);
27 m_segmentTriples.reserve(100);
28 m_segmentTripleRelations.reserve(100);
29 m_preLinkingTracks.reserve(20);
30 m_orientedTracks.reserve(20);
31}
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
StoreVectorSwapper< CDCSegmentTriple > m_segmentTripleSwapper
Helper to swap the local segment triples out to the DataStore.
TrackOrienter m_trackOrienter
Fixes the direction of flight of tracks by a simple chooseable heuristic.
TrackCreatorSingleSegments m_trackCreatorSingleSegments
Creates tracks from left over segments.
TrackCreatorSegmentTripleAutomaton m_trackCreatorSegmentTripleAutomaton
Instance of the cellular automaton creating creating tracks over segment triple.
TrackLinker m_trackLinker
Findlet responsible for the linking of tracks.
AxialSegmentPairCreator m_axialSegmentPairCreator
Instance of the axial to axial segment pair creator.
SegmentTripleCreator m_segmentTripleCreator
Instance of the segment triple creator.
std::vector< CDCTrack > m_preLinkingTracks
Memory for the tracks before linking was applied.
std::vector< CDCAxialSegmentPair > m_axialSegmentPairs
Memory for the axial to axial segment pairs.
std::vector< WeightedRelation< const CDCSegmentTriple > > m_segmentTripleRelations
Memory for the segment triple relations.
WeightedRelationCreator< const CDCSegmentTriple, ChooseableSegmentTripleRelationFilter > m_segmentTripleRelationCreator
Instance of the segment triple relation creator.
std::vector< CDCSegmentTriple > m_segmentTriples
Memory for the segment triples.
std::vector< CDCTrack > m_orientedTracks
Memory for the tracks after orientation was applied.

Member Function Documentation

◆ addProcessingSignalListener()

void addProcessingSignalListener ( ProcessingSignalListener psl)
protectedinherited

Register a processing signal listener to be notified.

Definition at line 55 of file CompositeProcessingSignalListener.cc.

56{
58}
std::vector< ProcessingSignalListener * > m_subordinaryProcessingSignalListeners
References to subordinary signal processing listener contained in this findlet.

◆ apply()

void apply ( const std::vector< CDCSegment2D > &  inputSegments,
std::vector< CDCTrack > &  tracks 
)
final

Generates the tracks.

Definition at line 61 of file TrackFinderSegmentTripleAutomaton.cc.

63{
65
67
68 std::vector<const CDCSegmentTriple*> segmentTriplePtrs =
69 as_pointers<const CDCSegmentTriple>(m_segmentTriples);
71
73
77
78 // Put the segment triples on the DataStore
80}
void apply(const std::vector< CDCSegment2D > &inputSegments, std::vector< CDCAxialSegmentPair > &axialSegmentPairs) final
Main method constructing pairs in adjacent super layers.
void apply(const std::vector< CDCSegment2D > &inputSegments, const std::vector< CDCAxialSegmentPair > &inputAxialSegmentPairs, std::vector< CDCSegmentTriple > &segmentTriples) final
Main method constructing pairs in adjacent super layers.
void apply(const std::vector< CDCSegmentTriple > &inputSegmentTriples, const std::vector< WeightedRelation< const CDCSegmentTriple > > &inputSegmentTripleRelations, std::vector< CDCTrack > &outputTracks) final
Main function of the segment finding by the cellular automaton.
void apply(const std::vector< CDCSegment2D > &segments, std::vector< CDCTrack > &tracks) final
Main algorithm.
void apply(const std::vector< CDCTrack > &inputTracks, std::vector< CDCTrack > &outputTracks) final
Main algorithm.
Definition: TrackLinker.cc:34
void apply(const std::vector< CDCTrack > &inputTracks, std::vector< CDCTrack > &outputTracks) final
Main algorithm applying the adjustment of the orientation.

◆ beginEvent()

void beginEvent ( )
finalvirtual

Signal the beginning of a new event.

Reimplemented from ProcessingSignalListener.

Definition at line 51 of file TrackFinderSegmentTripleAutomaton.cc.

52{
53 m_axialSegmentPairs.clear();
54 m_segmentTriples.clear();
56 m_preLinkingTracks.clear();
57 m_orientedTracks.clear();
59}
void beginEvent() override
Receive and dispatch signal for the start of a new event.

◆ beginRun()

void beginRun ( )
overridevirtualinherited

Receive and dispatch signal for the beginning of a new run.

Reimplemented from ProcessingSignalListener.

Reimplemented in LayerRelationFilter< AFilter >, FourHitFilter, QualityIndicatorFilter, ThreeHitFilter, TwoHitVirtualIPFilter, TwoHitVirtualIPQIFilter, RecoTrackStorer, ROIFinder, SpacePointLoaderAndPreparer, and TrackCandidateResultRefiner.

Definition at line 23 of file CompositeProcessingSignalListener.cc.

24{
27 psl->beginRun();
28 }
29}
Interface for an algorithm part that needs to receive the module processing signals.
virtual void beginRun()
Receive signal for the beginning of a new run.

◆ endRun()

void endRun ( )
overridevirtualinherited

Receive and dispatch signal for the end of the run.

Reimplemented from ProcessingSignalListener.

Definition at line 39 of file CompositeProcessingSignalListener.cc.

40{
42 psl->endRun();
43 }
45}
virtual void endRun()
Receive signal for the end of the run.

◆ exposeParameters()

void exposeParameters ( ModuleParamList moduleParamList,
const std::string &  prefix 
)
finalvirtual

Expose the parameters to a module.

Reimplemented from Findlet< const CDCSegment2D, CDCTrack >.

Definition at line 38 of file TrackFinderSegmentTripleAutomaton.cc.

40{
41 m_axialSegmentPairCreator.exposeParameters(moduleParamList, prefixed(prefix, "axialSegmentPair"));
42 m_segmentTripleCreator.exposeParameters(moduleParamList, prefixed(prefix, "segmentTriple"));
43 m_segmentTripleRelationCreator.exposeParameters(moduleParamList, prefixed(prefix, "segmentTripleRelation"));
44 m_trackCreatorSegmentTripleAutomaton.exposeParameters(moduleParamList, prefixed(prefix, "segmentTripleRelation"));
45 m_trackCreatorSingleSegments.exposeParameters(moduleParamList, prefix);
46 m_trackLinker.exposeParameters(moduleParamList, prefixed(prefix, "TrackRelation"));
47 m_trackOrienter.exposeParameters(moduleParamList, prefix);
48 m_segmentTripleSwapper.exposeParameters(moduleParamList, prefix);
49}
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
Definition: TrackLinker.cc:28
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.

◆ getDescription()

std::string getDescription ( )
finalvirtual

Short description of the findlet.

Reimplemented from Findlet< const CDCSegment2D, CDCTrack >.

Definition at line 33 of file TrackFinderSegmentTripleAutomaton.cc.

34{
35 return "Generates tracks from segments using a cellular automaton built from segment triples.";
36}

◆ getNProcessingSignalListener()

int getNProcessingSignalListener ( )
protectedinherited

Get the number of currently registered listeners.

Definition at line 60 of file CompositeProcessingSignalListener.cc.

61{
63}

◆ initialize()

void initialize ( )
overridevirtualinherited

Receive and dispatch signal before the start of the event processing.

Reimplemented from ProcessingSignalListener.

Reimplemented in UnionVarSet< AObject >, UnionVarSet< Object >, VariadicUnionVarSet< AVarSets >, ResultStorer< Belle2::CKFToPXDResult >, ResultStorer< Belle2::CKFToSVDResult >, BaseEventTimeExtractor< RecoTrack * >, BaseEventTimeExtractor< TrackFindingCDC::CDCWireHit & >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::HyperHough >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::QuadraticLegendre >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::Z0TanLambdaLegendre >, OnVarSet< Filter< ATruthVarSet::Object > >, OnVarSet< Filter< AVarSet::Object > >, OnVarSet< BaseFacetFilter >, OnVarSet< BaseFacetRelationFilter >, OnVarSet< BaseAxialSegmentPairFilter >, OnVarSet< BaseSegmentRelationFilter >, OnVarSet< BaseTrackRelationFilter >, OnVarSet< BaseSegmentPairRelationFilter >, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, StoreArrayLoader< const Belle2::SpacePoint >, StoreArrayLoader< DataStoreInputTypeRefType >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCFacet >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCWireHit, true >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCSegment2D >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCTrack >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCSegmentPair >, StoreVectorSwapper< Belle2::TrackFindingCDC::CDCSegmentTriple >, RelationVarSet< ABaseVarSet >, QualityIndicatorFilter, TwoHitVirtualIPQIFilter, MultiHoughSpaceFastInterceptFinder, RawTrackCandCleaner< AHit >, RawTrackCandCleaner< Belle2::vxdHoughTracking::VXDHoughState >, RecoTrackStorer, ROIFinder, SingleHoughSpaceFastInterceptFinder, SpacePointLoaderAndPreparer, TrackCandidateOverlapResolver, and TrackCandidateResultRefiner.

Definition at line 15 of file CompositeProcessingSignalListener.cc.

16{
19 psl->initialize();
20 }
21}
virtual void initialize()
Receive signal before the start of the event processing.

◆ terminate()

void terminate ( )
overridevirtualinherited

Receive and dispatch Signal for termination of the event processing.

Reimplemented from ProcessingSignalListener.

Reimplemented in StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::HyperHough >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::QuadraticLegendre >, and StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::Z0TanLambdaLegendre >.

Definition at line 47 of file CompositeProcessingSignalListener.cc.

48{
50 psl->terminate();
51 }
53}
virtual void terminate()
Receive Signal for termination of the event processing.

Member Data Documentation

◆ m_axialSegmentPairCreator

AxialSegmentPairCreator m_axialSegmentPairCreator
private

Instance of the axial to axial segment pair creator.

Definition at line 62 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_axialSegmentPairs

std::vector<CDCAxialSegmentPair> m_axialSegmentPairs
private

Memory for the axial to axial segment pairs.

Definition at line 87 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_initialized

bool m_initialized = false
privateinherited

Flag to keep track whether initialization happened before.

Definition at line 52 of file ProcessingSignalListener.h.

◆ m_initializedAs

std::string m_initializedAs
privateinherited

Name of the type during initialisation.

Definition at line 58 of file ProcessingSignalListener.h.

◆ m_orientedTracks

std::vector<CDCTrack> m_orientedTracks
private

Memory for the tracks after orientation was applied.

Definition at line 99 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_preLinkingTracks

std::vector<CDCTrack> m_preLinkingTracks
private

Memory for the tracks before linking was applied.

Definition at line 96 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_segmentTripleCreator

SegmentTripleCreator m_segmentTripleCreator
private

Instance of the segment triple creator.

Definition at line 65 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_segmentTripleRelationCreator

WeightedRelationCreator<const CDCSegmentTriple, ChooseableSegmentTripleRelationFilter> m_segmentTripleRelationCreator
private

Instance of the segment triple relation creator.

Definition at line 68 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_segmentTripleRelations

std::vector<WeightedRelation<const CDCSegmentTriple> > m_segmentTripleRelations
private

Memory for the segment triple relations.

Definition at line 93 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_segmentTriples

std::vector<CDCSegmentTriple> m_segmentTriples
private

Memory for the segment triples.

Definition at line 90 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_segmentTripleSwapper

StoreVectorSwapper<CDCSegmentTriple> m_segmentTripleSwapper {"CDCSegmentTripleVector"}
private

Helper to swap the local segment triples out to the DataStore.

Definition at line 83 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_subordinaryProcessingSignalListeners

std::vector<ProcessingSignalListener*> m_subordinaryProcessingSignalListeners
privateinherited

References to subordinary signal processing listener contained in this findlet.

Definition at line 52 of file CompositeProcessingSignalListener.h.

◆ m_terminated

bool m_terminated = false
privateinherited

Flag to keep track whether termination happened before.

Definition at line 55 of file ProcessingSignalListener.h.

◆ m_trackCreatorSegmentTripleAutomaton

TrackCreatorSegmentTripleAutomaton m_trackCreatorSegmentTripleAutomaton
private

Instance of the cellular automaton creating creating tracks over segment triple.

Definition at line 71 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_trackCreatorSingleSegments

TrackCreatorSingleSegments m_trackCreatorSingleSegments
private

Creates tracks from left over segments.

Definition at line 74 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_trackLinker

TrackLinker m_trackLinker
private

Findlet responsible for the linking of tracks.

Definition at line 77 of file TrackFinderSegmentTripleAutomaton.h.

◆ m_trackOrienter

TrackOrienter m_trackOrienter
private

Fixes the direction of flight of tracks by a simple chooseable heuristic.

Definition at line 80 of file TrackFinderSegmentTripleAutomaton.h.


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