8#include <tracking/trackFindingCDC/findlets/minimal/TrackCreatorSingleSegments.h>
10#include <tracking/trackingUtilities/eventdata/tracks/CDCTrack.h>
11#include <tracking/trackingUtilities/eventdata/segments/CDCSegment2D.h>
12#include <tracking/trackingUtilities/eventdata/hits/CDCWireHit.h>
14#include <tracking/trackingUtilities/utilities/StringManipulation.h>
16#include <framework/core/ModuleParamList.templateDetails.h>
20using namespace TrackFindingCDC;
21using namespace TrackingUtilities;
30 return "Creates a track for each segments that is yet unused by any of the given tracks.";
35 moduleParamList->
addParameter(prefixed(prefix,
"MinimalHitsBySuperLayerId"),
37 "Map of super layer ids to minimum hit number, "
38 "for which left over segments shall be forwarded as tracks, "
39 "if the exceed the minimal hit requirement. Default empty.",
44 std::vector<CDCTrack>& tracks)
49 const bool toHits =
true;
51 segment.unsetAndForwardMaskedFlag(toHits);
54 for (
const CDCTrack& track : tracks) {
55 track.setAndForwardMaskedFlag();
59 segment.receiveMaskedFlag(toHits);
64 if (segment->hasMaskedFlag()) {
67 if (recoHit2D.getWireHit()->hasMaskedFlag()) ++nMasked;
73 if (nMasked > segment.size() * 0.2)
continue;
79 if (segment.getTrajectory2D().isFitted()) {
81 segment.setAndForwardMaskedFlag(toHits);
83 otherSegment.receiveMaskedFlag(toHits);
The Module parameter list class.
TrackCreatorSingleSegments()
Constructor setting up default parameters.
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(const std::vector< TrackingUtilities::CDCSegment2D > &segments, std::vector< TrackingUtilities::CDCTrack > &tracks) final
Main algorithm.
std::map< CDC::ISuperLayer, size_t > m_param_minimalHitsBySuperLayerId
Parameter: Map of super layer ids to minimum hit number for which left over segments shall be forward...
Class representing a two dimensional reconstructed hit in the central drift chamber.
A reconstructed sequence of two dimensional hits in one super layer.
Class representing a sequence of three dimensional reconstructed hits.
void addParameter(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.
signed short ISuperLayer
The type of the layer and superlayer ids.
Abstract base class for different kinds of events.