10#include <tracking/trackingUtilities/findlets/base/Findlet.h>
12#include <tracking/trackingUtilities/numerics/WithWeight.h>
13#include <tracking/trackingUtilities/utilities/MayBePtr.h>
24 namespace TrackingUtilities {
30 namespace TrackFindingCDC {
67 template <class ACDCTracks>
69 TrackingUtilities::CDCTrack& track, ACDCTracks& tracks);
76 static
double doTracksFitTogether(TrackingUtilities::CDCTrack& track1, TrackingUtilities::CDCTrack& track2);
87 TrackingUtilities::CDCTrajectory2D& trajectory);
95 static
void mergeTracks(TrackingUtilities::CDCTrack& track1,
96 TrackingUtilities::CDCTrack& track2,
The Module parameter list class.
Findlet implementing the merging of axial tracks found in the legendre tree search.
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.
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.
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.
TrackingUtilities::Findlet< TrackingUtilities::CDCTrack &, const TrackingUtilities::CDCWireHit *const > Super
Type of the base class.
std::string getDescription() final
Short description of the findlet.
static void mergeTracks(TrackingUtilities::CDCTrack &track1, TrackingUtilities::CDCTrack &track2, const std::vector< const TrackingUtilities::CDCWireHit * > &allAxialWireHits)
Function to merge two track candidates.
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 ...
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) final
Expose the parameters to a module.
static TrackingUtilities::WithWeight< TrackingUtilities::MayBePtr< TrackingUtilities::CDCTrack > > calculateBestTrackToMerge(TrackingUtilities::CDCTrack &track, ACDCTracks &tracks)
Searches for the best candidate to merge this track to.
double m_param_minFitProb
Parameter : Minimal fit probability of the common fit of two tracks to be eligible for merging.
Class representing a sequence of three dimensional reconstructed hits.
Particle trajectory as it is seen in xy projection represented as a circle.
Class representing a hit wire in the central drift chamber.
Interface for a minimal algorithm part that wants to expose some parameters to a module.
Abstract base class for different kinds of events.