 |
Belle II Software
release-05-01-25
|
11 #include <tracking/trackFindingCDC/findlets/combined/AxialTrackFinderLegendre.h>
13 #include <tracking/trackFindingCDC/processing/AxialTrackUtil.h>
15 #include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
16 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
18 #include <tracking/trackFindingCDC/utilities/StringManipulation.h>
21 using namespace TrackFindingCDC;
34 return "Performs the pattern recognition in the CDC with the legendre hough finder";
38 const std::string& prefix)
46 std::vector<CDCTrack>& tracks)
48 B2DEBUG(100,
"********** CDCTrackingModule ************");
51 std::vector<const CDCWireHit*> axialWireHits;
52 axialWireHits.reserve(wireHits.size());
54 wireHit->unsetTemporaryFlags();
55 wireHit->unsetMaskedFlag();
56 if (not wireHit.isAxial())
continue;
57 if (wireHit->hasBackgroundFlag())
continue;
58 axialWireHits.emplace_back(&wireHit);
76 for (
int iPass = 0; iPass < 20; ++iPass) {
77 int nCandsAdded = tracks.size();
85 nCandsAdded = tracks.size() - nCandsAdded;
87 if (iPass == 19) B2WARNING(
"Reached maximal number of legendre search passes");
88 if (nCandsAdded == 0)
break;
AxialTrackHitMigrator m_axialTrackHitMigrator
Findlet to exchange hits between tracks based on their proximity to the respective trajectory.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
std::string getDescription() final
Short description of the findlet.
AxialTrackFinderLegendre()
Constructor.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void apply(const std::vector< const CDCWireHit * > &axialWireHits, std::vector< CDCTrack > &tracks) final
Execute one pass over a quad tree.
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
void apply(const std::vector< const CDCWireHit * > &axialWireHits, std::vector< CDCTrack > &axialTracks) final
Do the hit migration.
Abstract base class for different kinds of events.
AxialTrackCreatorHitLegendre m_nonCurlersWithIncreasingThresholdAxialTrackCreatorHitLegendre
Findlet for the non-curler with increased threshold legendre pass.
AxialTrackCreatorHitLegendre m_fullRangeAxialTrackCreatorHitLegendre
Findlet for the full range legendre pass.
AxialTrackMerger m_axialTrackMerger
Findlet to merge the tracks after the legendre finder.
AxialTrackCreatorHitLegendre m_nonCurlerAxialTrackCreatorHitLegendre
Findlet for the non-curler legendre pass.
Class representing a hit wire in the central drift chamber.
The Module parameter list class.
static void deleteShortTracks(std::vector< CDCTrack > &axialTracks, double minimal_size=5)
Remove tracks that are shorter than the given number of hits.
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.
void apply(const std::vector< CDCWireHit > &wireHits, std::vector< CDCTrack > &tracks)
Main method to apply the track finding.