![]() |
Belle II Software development
|
Findlet implementing the merging of axial tracks found in the legendre tree search. More...
#include <AxialTrackMerger.h>
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 | |
| 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 | apply (std::vector< TrackingUtilities::CDCTrack > &axialTracks, const std::vector< const TrackingUtilities::CDCWireHit * > &axialWireHits) final |
| Merge tracks together. Allows for axial hits to be added as it may see fit. | |
| template<class ACDCTracks> | |
| WithWeight< MayBePtr< CDCTrack > > | calculateBestTrackToMerge (CDCTrack &track, ACDCTracks &tracks) |
| Determine the best track for merging with the candidate track. | |
| 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 | 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. | |
| void | terminate () override |
| Receive and dispatch Signal for termination of the event processing. | |
Protected Types | |
| template<class T> | |
| 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 = TrackingUtilities::Findlet<TrackingUtilities::CDCTrack&, const TrackingUtilities::CDCWireHit* const> |
| Type of the base class. | |
Private Member Functions | |
| void | doTracksMerging (std::vector< TrackingUtilities::CDCTrack > &axialTracks, const std::vector< const TrackingUtilities::CDCWireHit * > &allAxialWireHits) |
| The track finding often finds two curling tracks, originating from the same particle. | |
Static Private Member Functions | |
| template<class ACDCTracks> | |
| static TrackingUtilities::WithWeight< TrackingUtilities::MayBePtr< TrackingUtilities::CDCTrack > > | calculateBestTrackToMerge (TrackingUtilities::CDCTrack &track, ACDCTracks &tracks) |
| Searches for the best candidate to merge this track to. | |
| static double | doTracksFitTogether (TrackingUtilities::CDCTrack &track1, TrackingUtilities::CDCTrack &track2) |
| Fits the hit content of both tracks in a common fit repeated with an annealing schedule removing far away hits. | |
| static void | removeStrangeHits (double factor, std::vector< const TrackingUtilities::CDCWireHit * > &wireHits, TrackingUtilities::CDCTrajectory2D &trajectory) |
| Remove all hits that are further than factor * driftlength away from the trajectory. | |
| static void | mergeTracks (TrackingUtilities::CDCTrack &track1, TrackingUtilities::CDCTrack &track2, const std::vector< const TrackingUtilities::CDCWireHit * > &allAxialWireHits) |
| Function to merge two track candidates. | |
Private Attributes | |
| double | m_param_minFitProb = 0.85 |
| Parameter : Minimal fit probability of the common fit of two tracks to be eligible for merging. | |
| 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. | |
Findlet implementing the merging of axial tracks found in the legendre tree search.
Definition at line 33 of file AxialTrackMerger.h.
|
inherited |
|
inherited |
|
private |
Type of the base class.
Definition at line 38 of file AxialTrackMerger.h.
|
protectedinherited |
|
protectedinherited |
Register a processing signal listener to be notified.
Definition at line 55 of file CompositeProcessingSignalListener.cc.
|
final |
Merge tracks together. Allows for axial hits to be added as it may see fit.
Definition at line 42 of file AxialTrackMerger.cc.
|
overridevirtualinherited |
Receive and dispatch signal for the start of a new event.
Reimplemented from ProcessingSignalListener.
Reimplemented in DATCONFPGAFindlet, SpacePointTagger< AResult, ACluster >, SpacePointTagger< Belle2::CKFToPXDResult, Belle2::PXDCluster >, SpacePointTagger< Belle2::CKFToSVDResult, Belle2::SVDCluster >, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, MonopoleStereoHitFinder, MonopoleStereoHitFinderQuadratic, SegmentCreatorMCTruth, SegmentFinderFacetAutomaton, SegmentTrackCombiner, SegmentTrackTruthVarSet, StereoHitFinder, StereoHitTruthVarSet, TrackFinderAutomaton, TrackFinderSegmentPairAutomaton, TrackFinderSegmentTripleAutomaton, TruthAxialSegmentPairVarSet, TruthSegmentVarSet, TruthTrackVarSet, WireHitMCMultiLoopBlocker, FindletStoreArrayInput< TWrappedFindlet >, SharingHitsMatcher< ACollectorItem, ACollectionItem >, SharingHitsMatcher< Belle2::TrackingUtilities::CDCTrack, Belle2::TrackingUtilities::CDCSegment2D >, StoreVectorSwapper< IOType, a_alwaysWrite >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCFacet >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegment2D >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegmentPair >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegmentTriple >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCTrack >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCWireHit, true >, 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 DATCONSVDClusterizer, LayerPXDRelationFilter< AFilter, APrefilter >, LayerPXDRelationFilter< TrackingUtilities::ChooseableFilter< PXDPairFilterFactory > >, LayerPXDRelationFilter< TrackingUtilities::ChooseableFilter< PXDPairFilterFactory > >, LayerSVDRelationFilter< AFilter, APrefilter >, LayerSVDRelationFilter< TrackingUtilities::ChooseableFilter< SVDPairFilterFactory > >, LayerSVDRelationFilter< TrackingUtilities::ChooseableFilter< SVDPairFilterFactory > >, SectorMapBasedSVDPairFilter, SimplePXDStateFilter, SimpleSVDStateFilter, CutsFromDBWireHitFilter, WireHitCreator, MVA< Filter< AVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, FourHitFilter, LayerRelationFilter< AFilter >, LayerRelationFilter< TrackingUtilities::ChooseableFilter< RelationFilterFactory > >, LayerRelationFilter< TrackingUtilities::ChooseableFilter< RelationFilterFactory > >, QualityIndicatorFilter, RecoTrackStorer, ROIFinder, SpacePointLoaderAndPreparer, ThreeHitFilter, TrackCandidateResultRefiner, TwoHitVirtualIPFilter, and TwoHitVirtualIPQIFilter.
Definition at line 23 of file CompositeProcessingSignalListener.cc.
| WithWeight< MayBePtr< CDCTrack > > calculateBestTrackToMerge | ( | CDCTrack & | track, |
| ACDCTracks & | tracks ) |
Determine the best track for merging with the candidate track.
Definition at line 90 of file AxialTrackMerger.cc.
|
staticprivate |
Searches for the best candidate to merge this track to.
| track | track for which we try to find merging partner |
| tracks | search range of tracks |
| {nullptr,0} | in case no match was found |
|
staticprivate |
Fits the hit content of both tracks in a common fit repeated with an annealing schedule removing far away hits.
Definition at line 108 of file AxialTrackMerger.cc.
|
private |
The track finding often finds two curling tracks, originating from the same particle.
This function merges them.
Definition at line 69 of file AxialTrackMerger.cc.
|
overridevirtualinherited |
Receive and dispatch signal for the end of the run.
Reimplemented from ProcessingSignalListener.
Definition at line 39 of file CompositeProcessingSignalListener.cc.
|
finalvirtual |
Expose the parameters to a module.
Reimplemented from CompositeProcessingSignalListener.
Definition at line 33 of file AxialTrackMerger.cc.
|
finalvirtual |
Short description of the findlet.
Reimplemented from Findlet< AIOTypes >.
Definition at line 28 of file AxialTrackMerger.cc.
|
protectedinherited |
Get the number of currently registered listeners.
Definition at line 60 of file CompositeProcessingSignalListener.cc.
|
overridevirtualinherited |
Receive and dispatch signal before the start of the event processing.
Reimplemented from ProcessingSignalListener.
Reimplemented in CosmicsTrackMergerFindlet, DATCONSVDClusterizer, DATCONSVDClusterLoaderAndPreparer, FastInterceptFinder2DFPGA, HitBasedT0Extractor, LayerPXDRelationFilter< AFilter, APrefilter >, LayerPXDRelationFilter< TrackingUtilities::ChooseableFilter< PXDPairFilterFactory > >, LayerPXDRelationFilter< TrackingUtilities::ChooseableFilter< PXDPairFilterFactory > >, NonIPCrossingStateFilter< AllPXDStateFilter >, NonIPCrossingStateFilter< AllPXDStateFilter >, NonIPCrossingStateFilter< AllSVDStateFilter >, NonIPCrossingStateFilter< AllSVDStateFilter >, PXDResultVarSet, RelationApplier, RelationFromSVDTracksCreator, ResultStorer< AResult >, ResultStorer< Belle2::CKFToPXDResult >, ResultStorer< Belle2::CKFToSVDResult >, ROICalculator, StoreArrayMerger, SVDResultVarSet, SVDShaperDigitConverter, ToPXDExtrapolator, CutsFromDBWireHitFilter, HitReclaimer, MCFacetRelationFilter, MCSegmentPairRelationFilter, MCSegmentTripleFilter, MCSegmentTripleRelationFilter, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseAxialSegmentPairFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseFacetRelationFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentPairRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentRelationFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseSegmentTripleRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, MCSymmetric< BaseTrackRelationFilter >, SegmentAliasResolver, SegmentCreatorMCTruth, SegmentFitter, SegmentOrienter, SegmentTrackTruthVarSet, StereoHitTrackQuadTreeMatcher< AQuadTree >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::HyperHough< std::pair< TrackingUtilities::CDCRecoHit3D, const TrackingUtilities::CDCRLWireHit * >, FirstOfPairInBox< HitInHyperBox >, 4, 3, 2 > >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::QuadraticLegendre< std::pair< TrackingUtilities::CDCRecoHit3D, const TrackingUtilities::CDCRLWireHit * >, FirstOfPairInBox< HitInQuadraticBox >, 2, 2 > >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::Z0TanLambdaLegendre< std::pair< TrackingUtilities::CDCRecoHit3D, const TrackingUtilities::CDCRLWireHit * >, FirstOfPairInBox< HitInZ0TanLambdaBox >, 2, 2 > >, StereoHitTruthVarSet, TrackExporter, TrackOrienter, TrackQualityEstimator, TruthAxialSegmentPairVarSet, TruthSegmentVarSet, TruthTrackVarSet, WireHitCreator, WireHitMCMultiLoopBlocker, FilterVarSet< AFilter >, MVA< Filter< AVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, MVA< Filter< typename AVarSet::Object > >, OnVarSet< Filter< ATruthVarSet::Object > >, OnVarSet< Filter< AVarSet::Object > >, OnVarSet< Filter< PXDResultVarSet::Object > >, OnVarSet< Filter< SVDResultVarSet::Object > >, OnVarSet< Filter< typename AVarSet::Object > >, OnVarSet< Filter< typename AVarSet::Object > >, Recording< Filter< AVarSet::Object > >, Recording< Filter< typename AVarSet::Object > >, Recording< Filter< typename AVarSet::Object > >, RelationVarSet< ABaseVarSet >, StoreArrayLoader< IOType >, StoreArrayLoader< const Belle2::SpacePoint >, StoreArrayLoader< DataStoreInputTypeRefType >, StoreVectorSwapper< IOType, a_alwaysWrite >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCFacet >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegment2D >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegmentPair >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCSegmentTriple >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCTrack >, StoreVectorSwapper< Belle2::TrackingUtilities::CDCWireHit, true >, UnionVarSet< AObject >, UnionVarSet< Object >, VariadicUnionVarSet< AVarSets >, VariadicUnionVarSet< BasicAxialSegmentPairVarSet, FitlessAxialSegmentPairVarSet, FitAxialSegmentPairVarSet >, VariadicUnionVarSet< BasicAxialSegmentPairVarSet, FitlessAxialSegmentPairVarSet, FitAxialSegmentPairVarSet >, VariadicUnionVarSet< BasicAxialSegmentPairVarSet, HitGapAxialSegmentPairVarSet >, VariadicUnionVarSet< BasicAxialSegmentPairVarSet, HitGapAxialSegmentPairVarSet >, VariadicUnionVarSet< BasicFacetVarSet, TrackingUtilities::FilterVarSet< Chi2FacetFilter > >, VariadicUnionVarSet< BasicFacetVarSet, TrackingUtilities::FilterVarSet< Chi2FacetFilter > >, VariadicUnionVarSet< BasicSegmentPairRelationVarSet, FitSegmentPairRelationVarSet >, VariadicUnionVarSet< BasicSegmentPairRelationVarSet, FitSegmentPairRelationVarSet >, VariadicUnionVarSet< BasicSegmentPairVarSet, FitlessSegmentPairVarSet, FitSegmentPairVarSet >, VariadicUnionVarSet< BasicSegmentPairVarSet, FitlessSegmentPairVarSet, FitSegmentPairVarSet >, VariadicUnionVarSet< BasicSegmentPairVarSet, SkimmedHitGapSegmentPairVarSet >, VariadicUnionVarSet< BasicSegmentPairVarSet, SkimmedHitGapSegmentPairVarSet >, VariadicUnionVarSet< BasicSegmentRelationVarSet, FitlessSegmentRelationVarSet, FitSegmentRelationVarSet >, VariadicUnionVarSet< BasicSegmentRelationVarSet, FitlessSegmentRelationVarSet, FitSegmentRelationVarSet >, VariadicUnionVarSet< BasicSegmentRelationVarSet, HitGapSegmentRelationVarSet >, VariadicUnionVarSet< BasicSegmentRelationVarSet, HitGapSegmentRelationVarSet >, VariadicUnionVarSet< BasicTrackRelationVarSet, FitTrackRelationVarSet >, VariadicUnionVarSet< BasicTrackRelationVarSet, FitTrackRelationVarSet >, VariadicUnionVarSet< BasicTrackRelationVarSet, HitGapTrackRelationVarSet >, VariadicUnionVarSet< BasicTrackRelationVarSet, HitGapTrackRelationVarSet >, TrackLoader, MultiHoughSpaceFastInterceptFinder, QualityIndicatorFilter, RawTrackCandCleaner< AHit >, RawTrackCandCleaner< Belle2::vxdHoughTracking::VXDHoughState >, RecoTrackStorer, ROIFinder, SingleHoughSpaceFastInterceptFinder, SpacePointLoaderAndPreparer, TrackCandidateOverlapResolver, TrackCandidateResultRefiner, and TwoHitVirtualIPQIFilter.
Definition at line 15 of file CompositeProcessingSignalListener.cc.
|
staticprivate |
Function to merge two track candidates.
The hits of track2 are deleted and transferred to track1 and the track1 is resorted. The method also applies some post processing and splits the track1 in case it appears to contain two back-to-back arms,
Definition at line 190 of file AxialTrackMerger.cc.
|
staticprivate |
Remove all hits that are further than factor * driftlength away from the trajectory.
| factor | gives a number how far the hit is allowed to be. |
| wireHits | the wirehits that should be considered |
| trajectory | the reference trajectory |
Definition at line 177 of file AxialTrackMerger.cc.
|
overridevirtualinherited |
Receive and dispatch Signal for termination of the event processing.
Reimplemented from ProcessingSignalListener.
Reimplemented in StereoHitTrackQuadTreeMatcher< AQuadTree >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::HyperHough< std::pair< TrackingUtilities::CDCRecoHit3D, const TrackingUtilities::CDCRLWireHit * >, FirstOfPairInBox< HitInHyperBox >, 4, 3, 2 > >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::QuadraticLegendre< std::pair< TrackingUtilities::CDCRecoHit3D, const TrackingUtilities::CDCRLWireHit * >, FirstOfPairInBox< HitInQuadraticBox >, 2, 2 > >, StereoHitTrackQuadTreeMatcher< Belle2::TrackFindingCDC::Z0TanLambdaLegendre< std::pair< TrackingUtilities::CDCRecoHit3D, const TrackingUtilities::CDCRLWireHit * >, FirstOfPairInBox< HitInZ0TanLambdaBox >, 2, 2 > >, Recording< Filter< AVarSet::Object > >, Recording< Filter< typename AVarSet::Object > >, and Recording< Filter< typename AVarSet::Object > >.
Definition at line 47 of file CompositeProcessingSignalListener.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 |
Parameter : Minimal fit probability of the common fit of two tracks to be eligible for merging.
Definition at line 101 of file AxialTrackMerger.h.
|
privateinherited |
References to subordinary signal processing listener contained in this findlet.
Definition at line 60 of file CompositeProcessingSignalListener.h.
|
privateinherited |
Flag to keep track whether termination happened before.
Definition at line 55 of file ProcessingSignalListener.h.