![]() |
Belle II Software
release-05-02-19
|
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 invokation. | |
using | IOVectors = std::tuple< std::vector< AIOTypes >... > |
Vector types that should be served to apply on invokation. | |
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< CDCTrack > &axialTracks, const std::vector< const 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 | exposeParameters (ModuleParamList *moduleParamList __attribute__((unused)), const std::string &prefix __attribute__((unused))) |
Forward prefixed parameters of this findlet to the module parameter list. | |
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 | |
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< CDCTrack &, const CDCWireHit *const > |
Type of the base class. | |
Private Member Functions | |
void | doTracksMerging (std::vector< CDCTrack > &axialTracks, const std::vector< const CDCWireHit * > &allAxialWireHits) |
The track finding often finds two curling tracks, originating from the same particle. More... | |
Static Private Member Functions | |
template<class ACDCTracks > | |
static WithWeight< MayBePtr< CDCTrack > > | calculateBestTrackToMerge (CDCTrack &track, ACDCTracks &tracks) |
Searches for the best candidate to merge this track to. More... | |
static double | doTracksFitTogether (CDCTrack &track1, CDCTrack &track2) |
Fits the hit content of both tracks in a common fit repeated with an annealing schedule removing far away hits. More... | |
static void | removeStrangeHits (double factor, std::vector< const CDCWireHit * > &wireHits, CDCTrajectory2D &trajectory) |
Remove all hits that are further than factor * driftlength waay from the trajectory. More... | |
static void | mergeTracks (CDCTrack &track1, CDCTrack &track2, const std::vector< const CDCWireHit * > &allAxialWireHits) |
Function to merge two track candidates. More... | |
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 happend before. | |
bool | m_terminated = false |
Flag to keep track whether termination happend 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 40 of file AxialTrackMerger.h.
|
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 |
<tt>{nullptr,0}< |
Fits the hit content of both tracks in a common fit repeated with an annealing schedule removing far away hits.
Definition at line 109 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 70 of file AxialTrackMerger.cc.
|
staticprivate |
Function to merge two track candidates.
The hits of track2 are deleted and transfered to track1 and the track1 is resorted. The method also applys some postprocessing and splits the track1 in case it appears to contain two back-to-back arms,
Definition at line 196 of file AxialTrackMerger.cc.
|
staticprivate |
Remove all hits that are further than factor * driftlength waay from the trajectory.
factor | gives a number how far the hit is allowed to be. |
Definition at line 183 of file AxialTrackMerger.cc.