Belle II Software development
TrackFinderSegmentPairAutomaton Class Referenceabstract

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

#include <TrackFinderSegmentPairAutomaton.h>

Inheritance diagram for TrackFinderSegmentPairAutomaton:
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

 TrackFinderSegmentPairAutomaton ()
 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 from segments.
 
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

SegmentPairCreator m_segmentPairCreator
 Findlet responsible for the creation of segment pairs.
 
WeightedRelationCreator< const CDCSegmentPair, ChooseableSegmentPairRelationFilterm_segmentPairRelationCreator
 Findlet responsible for the creation of segment pairs relations of the CA.
 
TrackCreatorSegmentPairAutomaton m_trackCreatorSegmentPairAutomaton
 Reference to the relation filter to be used to construct the segment pair network.
 
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< CDCSegmentPairm_segmentPairSwapper {"CDCSegmentPairVector"}
 Puts the internal segment pairs on the DataStore.
 
std::vector< CDCSegmentPairm_segmentPairs
 Memory for the axial stereo segment pairs.
 
std::vector< WeightedRelation< const CDCSegmentPair > > m_segmentPairRelations
 Memory for the axial stereo segment pair 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 pairs.

Definition at line 33 of file TrackFinderSegmentPairAutomaton.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 37 of file TrackFinderSegmentPairAutomaton.h.

◆ ToVector

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

Short hand for ToRangeImpl.

Definition at line 49 of file Findlet.h.

Constructor & Destructor Documentation

◆ TrackFinderSegmentPairAutomaton()

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

Definition at line 18 of file TrackFinderSegmentPairAutomaton.cc.

19{
27
28 ModuleParamList moduleParamList;
29 const std::string prefix = "";
30 this->exposeParameters(&moduleParamList, prefix);
31 moduleParamList.getParameter<int>("SegmentPairRelationOnlyBest").setDefaultValue(1);
32
33 m_segmentPairs.reserve(100);
34 m_segmentPairRelations.reserve(100);
35 m_preLinkingTracks.reserve(20);
36 m_orientedTracks.reserve(20);
37}
The Module parameter list class.
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
TrackOrienter m_trackOrienter
Fixes the direction of flight of tracks by a simple chooseable heuristic.
StoreVectorSwapper< CDCSegmentPair > m_segmentPairSwapper
Puts the internal segment pairs on the DataStore.
WeightedRelationCreator< const CDCSegmentPair, ChooseableSegmentPairRelationFilter > m_segmentPairRelationCreator
Findlet responsible for the creation of segment pairs relations of the CA.
TrackCreatorSingleSegments m_trackCreatorSingleSegments
Creates tracks from left over segments.
TrackLinker m_trackLinker
Findlet responsible for the linking of tracks.
std::vector< WeightedRelation< const CDCSegmentPair > > m_segmentPairRelations
Memory for the axial stereo segment pair relations.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
SegmentPairCreator m_segmentPairCreator
Findlet responsible for the creation of segment pairs.
std::vector< CDCTrack > m_preLinkingTracks
Memory for the tracks before linking was applied.
TrackCreatorSegmentPairAutomaton m_trackCreatorSegmentPairAutomaton
Reference to the relation filter to be used to construct the segment pair network.
std::vector< CDCSegmentPair > m_segmentPairs
Memory for the axial stereo segment pairs.
std::vector< CDCTrack > m_orientedTracks
Memory for the tracks after orientation was applied.
ModuleParam< T > & getParameter(const std::string &name) const
Returns a reference to a parameter.

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 from segments.

Definition at line 65 of file TrackFinderSegmentPairAutomaton.cc.

67{
69
70 std::vector<const CDCSegmentPair*> segmentPairPtrs =
71 as_pointers<const CDCSegmentPair>(m_segmentPairs);
73
75
77
80
81 // Put the segment pairs on the DataStore
83}
void apply(const std::vector< CDCSegment2D > &inputSegments, std::vector< CDCSegmentPair > &segmentPairs) final
Main method constructing pairs in adjacent super layers.
void apply(const std::vector< CDCSegmentPair > &inputSegmentPairs, const std::vector< WeightedRelation< const CDCSegmentPair > > &inputSegmentPairRelations, 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 56 of file TrackFinderSegmentPairAutomaton.cc.

57{
58 m_segmentPairs.clear();
60 m_preLinkingTracks.clear();
61 m_orientedTracks.clear();
63}
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 44 of file TrackFinderSegmentPairAutomaton.cc.

46{
47 m_segmentPairCreator.exposeParameters(moduleParamList, prefixed(prefix, "SegmentPair"));
48 m_segmentPairRelationCreator.exposeParameters(moduleParamList, prefixed(prefix, "SegmentPairRelation"));
49 m_trackCreatorSegmentPairAutomaton.exposeParameters(moduleParamList, prefixed(prefix, "SegmentPairRelation"));
50 m_trackCreatorSingleSegments.exposeParameters(moduleParamList, prefix);
51 m_trackLinker.exposeParameters(moduleParamList, prefixed(prefix, "TrackRelation"));
52 m_trackOrienter.exposeParameters(moduleParamList, prefix);
53 m_segmentPairSwapper.exposeParameters(moduleParamList, prefix);
54}
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 39 of file TrackFinderSegmentPairAutomaton.cc.

40{
41 return "Generates tracks from segments using a cellular automaton built from segment pairs.";
42}

◆ 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_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 89 of file TrackFinderSegmentPairAutomaton.h.

◆ m_preLinkingTracks

std::vector<CDCTrack> m_preLinkingTracks
private

Memory for the tracks before linking was applied.

Definition at line 86 of file TrackFinderSegmentPairAutomaton.h.

◆ m_segmentPairCreator

SegmentPairCreator m_segmentPairCreator
private

Findlet responsible for the creation of segment pairs.

Definition at line 58 of file TrackFinderSegmentPairAutomaton.h.

◆ m_segmentPairRelationCreator

WeightedRelationCreator<const CDCSegmentPair, ChooseableSegmentPairRelationFilter> m_segmentPairRelationCreator
private

Findlet responsible for the creation of segment pairs relations of the CA.

Definition at line 61 of file TrackFinderSegmentPairAutomaton.h.

◆ m_segmentPairRelations

std::vector<WeightedRelation<const CDCSegmentPair> > m_segmentPairRelations
private

Memory for the axial stereo segment pair relations.

Definition at line 83 of file TrackFinderSegmentPairAutomaton.h.

◆ m_segmentPairs

std::vector<CDCSegmentPair> m_segmentPairs
private

Memory for the axial stereo segment pairs.

Definition at line 80 of file TrackFinderSegmentPairAutomaton.h.

◆ m_segmentPairSwapper

StoreVectorSwapper<CDCSegmentPair> m_segmentPairSwapper {"CDCSegmentPairVector"}
private

Puts the internal segment pairs on the DataStore.

Definition at line 76 of file TrackFinderSegmentPairAutomaton.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_trackCreatorSegmentPairAutomaton

TrackCreatorSegmentPairAutomaton m_trackCreatorSegmentPairAutomaton
private

Reference to the relation filter to be used to construct the segment pair network.

Definition at line 64 of file TrackFinderSegmentPairAutomaton.h.

◆ m_trackCreatorSingleSegments

TrackCreatorSingleSegments m_trackCreatorSingleSegments
private

Creates tracks from left over segments.

Definition at line 67 of file TrackFinderSegmentPairAutomaton.h.

◆ m_trackLinker

TrackLinker m_trackLinker
private

Findlet responsible for the linking of tracks.

Definition at line 70 of file TrackFinderSegmentPairAutomaton.h.

◆ m_trackOrienter

TrackOrienter m_trackOrienter
private

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

Definition at line 73 of file TrackFinderSegmentPairAutomaton.h.


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