Belle II Software development
|
A matcher algorithm for using a stereo quad tree for matching rl tagged wire hits to tracks. More...
#include <StereoHitTrackQuadTreeMatcher.h>
Public Types | |
using | WeightedRelationItem = WeightedRelation< CDCTrack, const CDCRLWireHit > |
Shortcut class name for a weighted relation between a collector item and a collection item. | |
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 | |
void | exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override |
Expose the parameters to the module. | |
void | initialize () override |
Initialize the filter and the quad tree. | |
void | terminate () override |
Terminate the filter and the quad tree. | |
void | apply (std::vector< CDCTrack > &collectorItems, const std::vector< CDCRLWireHit > &collectionItems, std::vector< WeightedRelationItem > &weightedRelations) override |
Main function: create weighted relations between collectors and collection items using the implemented functionality overridden in a derived class. | |
virtual void | apply (ToVector< AIOTypes > &... ioVectors)=0 |
Main function executing the algorithm. | |
virtual std::string | getDescription () |
Brief description of the purpose of the concrete findlet. | |
void | beginRun () override |
Receive and dispatch signal for the beginning of a new run. | |
void | beginEvent () override |
Receive and dispatch signal for the start of a new event. | |
void | endRun () override |
Receive and dispatch signal for the end of the run. | |
Protected Types | |
template<class T > | |
using | ToVector = typename ToVectorImpl< T >::Type |
Short hand for ToRangeImpl. | |
Protected Member Functions | |
virtual void | match (CDCTrack &collectorItem, const std::vector< CDCRLWireHit > &collectionItems, std::vector< WeightedRelationItem > &relationsForCollector) |
Override this function to implement your own matching algorithm between one collector and many collection items. | |
virtual Weight | match (CDCTrack &collectorItem, const CDCRLWireHit &collectionItem) |
Override this function to implement your own matching algorithm between one collector and one collection items. | |
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 = MatcherInterface< CDCTrack, CDCRLWireHit > |
The parent class. | |
Private Member Functions | |
void | match (CDCTrack &track, const std::vector< CDCRLWireHit > &rlWireHits, std::vector< Super::WeightedRelationItem > &relationsForCollector) override |
Create a QuadTree and fill with each unused stereo hit (to be exact: twice for each stereo hit - right and left). | |
void | writeDebugInformation () |
Use the writeDebugInformation function of the quad tree to write the tree into a root file with a ascending number. | |
Private Attributes | |
bool | m_param_checkForB2BTracks = true |
Parameters Set to false to skip the B2B check (good for curlers). | |
double | m_param_checkForInWireBoundsFactor = 1.0 |
Set to false to skip the in-wire-bound check (good for second stage). | |
unsigned int | m_param_quadTreeLevel = 7 |
Maximum level of the quad tree search. | |
unsigned int | m_param_minimumNumberOfHits = 5 |
Minimal number of hits a quad tree node must have to be called a found bin. | |
bool | m_param_writeDebugInformation = false |
Set to true to output debug information. | |
unsigned int | m_numberOfPassedDebugCalls = 0 |
Store the number of passed calls to the debug function. | |
AQuadTree | m_quadTreeInstance |
Quad tree instance. | |
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. | |
A matcher algorithm for using a stereo quad tree for matching rl tagged wire hits to tracks.
Definition at line 25 of file StereoHitTrackQuadTreeMatcher.h.
|
inherited |
|
inherited |
|
private |
The parent class.
Definition at line 28 of file StereoHitTrackQuadTreeMatcher.h.
|
protectedinherited |
|
inherited |
Shortcut class name for a weighted relation between a collector item and a collection item.
Definition at line 46 of file MatcherInterface.h.
|
protectedinherited |
Register a processing signal listener to be notified.
Definition at line 55 of file CompositeProcessingSignalListener.cc.
|
inlineoverrideinherited |
Main function: create weighted relations between collectors and collection items using the implemented functionality overridden in a derived class.
Definition at line 52 of file MatcherInterface.h.
|
overridevirtualinherited |
Receive and dispatch signal for the start of a new event.
Reimplemented from ProcessingSignalListener.
Reimplemented in SpacePointTagger< Belle2::CKFToPXDResult, Belle2::PXDCluster >, SpacePointTagger< Belle2::CKFToSVDResult, Belle2::SVDCluster >, BaseEventTimeExtractor< RecoTrack * >, BaseEventTimeExtractor< TrackFindingCDC::CDCWireHit & >, SharingHitsMatcher< Belle2::TrackFindingCDC::CDCTrack, Belle2::TrackFindingCDC::CDCSegment2D >, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, 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 >, RecoTrackStorer, ROIFinder, and SVDHoughTracking.
Definition at line 31 of file CompositeProcessingSignalListener.cc.
|
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.
|
overridevirtualinherited |
Receive and dispatch signal for the end of the run.
Reimplemented from ProcessingSignalListener.
Definition at line 39 of file CompositeProcessingSignalListener.cc.
|
overridevirtual |
Expose the parameters to the module.
Reimplemented from Findlet< AIOTypes >.
Definition at line 32 of file StereoHitTrackQuadTreeMatcher.cc.
|
inlinevirtualinherited |
Brief description of the purpose of the concrete findlet.
Reimplemented in CosmicsTrackMergerFindlet, CDCTrackingEventLevelMdstInfoFillerFromHitsFindlet, CDCTrackingEventLevelMdstInfoFillerFromSegmentsFindlet, AxialStraightTrackFinder, AxialTrackFinderHough, AxialTrackFinderLegendre, ClusterPreparer, MonopoleAxialTrackFinderLegendre, MonopoleStereoHitFinder, MonopoleStereoHitFinderQuadratic, SegmentFinderFacetAutomaton, SegmentTrackCombiner, StereoHitFinder, TrackFinderSegmentPairAutomaton, TrackFinderSegmentTripleAutomaton, TrackQualityEstimator, WireHitPreparer, AsicBackgroundLibraryCreator, TrackFinderCosmics, AsicBackgroundDetector, AxialSegmentPairCreator, AxialStraightTrackCreator, AxialTrackCreatorHitHough, AxialTrackCreatorHitLegendre, AxialTrackCreatorMCTruth, AxialTrackCreatorSegmentHough, AxialTrackHitMigrator, AxialTrackMerger, CDCMCCloneLookUpFiller, ClusterBackgroundDetector, ClusterCreator< AWireHitRelationFilter >, ClusterRefiner< AWireHitRelationFilter >, ClusterRefiner< BridgingWireHitRelationFilter >, ClusterRefiner< Belle2::TrackFindingCDC::BridgingWireHitRelationFilter >, FacetCreator, HitReclaimer, RLTaggedWireHitCreator, SegmentAliasResolver, SegmentCreatorFacetAutomaton, SegmentCreatorMCTruth, SegmentLinker, SegmentOrienter, SegmentPairCreator, SegmentRejecter, SegmentTripleCreator, SuperClusterCreator, TrackCombiner, TrackCreatorSegmentPairAutomaton, TrackCreatorSegmentTripleAutomaton, TrackCreatorSingleSegments, TrackExporter, TrackFlightTimeAdjuster, TrackInspector, TrackLinker, TrackNormalizer, TrackOrienter, TrackRejecter, TrackSZFitter, WeightedRelationCreator< AObject, ARelationFilter >, WeightedRelationCreator< const Belle2::TrackFindingCDC::WithAutomatonCell, Belle2::PhiRecoTrackRelationFilter >, WeightedRelationCreator< const Belle2::TrackFindingCDC::CDCFacet, Belle2::TrackFindingCDC::ChooseableFilter >, WeightedRelationCreator< const Belle2::TrackFindingCDC::CDCSegment2D, Belle2::TrackFindingCDC::ChooseableFilter >, WeightedRelationCreator< const Belle2::TrackFindingCDC::CDCSegmentPair, Belle2::TrackFindingCDC::ChooseableFilter >, WeightedRelationCreator< const Belle2::TrackFindingCDC::CDCSegmentTriple, Belle2::TrackFindingCDC::ChooseableFilter >, WeightedRelationCreator< const Belle2::TrackFindingCDC::CDCTrack, Belle2::TrackFindingCDC::ChooseableFilter >, WireHitBackgroundBlocker, WireHitBackgroundDetector, WireHitCreator, WireHitMCMultiLoopBlocker, StoreArrayLoader< IOType >, StoreArrayLoader< const Belle2::SpacePoint >, StoreArrayLoader< DataStoreInputTypeRefType >, StoreVectorSwapper< IOType, a_alwaysWrite >, 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 >, TrackFinder, TrackFinderAutomaton, SegmentFitter, SegmentTrackAdderWithNormalization, TrackQualityAsserter, HitBasedT0Extractor, and FindletStoreArrayInput< TWrappedFindlet >.
Definition at line 60 of file Findlet.h.
|
protectedinherited |
Get the number of currently registered listeners.
Definition at line 60 of file CompositeProcessingSignalListener.cc.
|
overridevirtual |
Initialize the filter and the quad tree.
Reimplemented from ProcessingSignalListener.
Definition at line 64 of file StereoHitTrackQuadTreeMatcher.cc.
|
inlineprotectedvirtualinherited |
Override this function to implement your own matching algorithm between one collector and one collection items.
If you override this function, you just have to return a weight - the rest of the logic is handled by the MatcherInterface class.
Definition at line 82 of file MatcherInterface.h.
|
inlineprotectedvirtualinherited |
Override this function to implement your own matching algorithm between one collector and many collection items.
A reason to override this instead of the other match function could be, if you want to apply some sort of caching for each collector item.
Definition at line 68 of file MatcherInterface.h.
|
overrideprivate |
Create a QuadTree and fill with each unused stereo hit (to be exact: twice for each stereo hit - right and left).
The QuadTree has two dimensions: inverse slope in z-direction and z0. Each bin with a high number of items (= stereo hits) in it is stored. Later, the one node with the highest number of items in it is taken and each hit is assigned to the track.
Definition at line 82 of file StereoHitTrackQuadTreeMatcher.cc.
|
overridevirtual |
Terminate the filter and the quad tree.
Reimplemented from ProcessingSignalListener.
Definition at line 74 of file StereoHitTrackQuadTreeMatcher.cc.
|
private |
Use the writeDebugInformation function of the quad tree to write the tree into a root file with a ascending number.
Definition at line 228 of file StereoHitTrackQuadTreeMatcher.cc.
|
privateinherited |
Flag to keep track whether initialization happened before.
Definition at line 52 of file ProcessingSignalListener.h.
|
privateinherited |
Name of the type during initialisation.
Definition at line 58 of file ProcessingSignalListener.h.
|
private |
Store the number of passed calls to the debug function.
Definition at line 66 of file StereoHitTrackQuadTreeMatcher.h.
|
private |
Parameters Set to false to skip the B2B check (good for curlers).
Definition at line 55 of file StereoHitTrackQuadTreeMatcher.h.
|
private |
Set to false to skip the in-wire-bound check (good for second stage).
Definition at line 57 of file StereoHitTrackQuadTreeMatcher.h.
|
private |
Minimal number of hits a quad tree node must have to be called a found bin.
Definition at line 61 of file StereoHitTrackQuadTreeMatcher.h.
|
private |
Maximum level of the quad tree search.
Definition at line 59 of file StereoHitTrackQuadTreeMatcher.h.
|
private |
Set to true to output debug information.
Definition at line 63 of file StereoHitTrackQuadTreeMatcher.h.
|
private |
Quad tree instance.
Definition at line 69 of file StereoHitTrackQuadTreeMatcher.h.
|
privateinherited |
References to subordinary signal processing listener contained in this findlet.
Definition at line 52 of file CompositeProcessingSignalListener.h.
|
privateinherited |
Flag to keep track whether termination happened before.
Definition at line 55 of file ProcessingSignalListener.h.