10 #include <tracking/trackFindingCDC/findlets/minimal/TrackCreatorSingleSegments.h>
12 #include <tracking/trackFindingCDC/eventdata/tracks/CDCTrack.h>
13 #include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
14 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
16 #include <tracking/trackFindingCDC/utilities/StringManipulation.h>
18 #include <framework/core/ModuleParamList.templateDetails.h>
21 using namespace TrackFindingCDC;
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;
75 ISuperLayer iSuperLayer = segment.getISuperLayer();
79 if (segment.getTrajectory2D().isFitted()) {
81 segment.setAndForwardMaskedFlag(toHits);
83 otherSegment.receiveMaskedFlag(toHits);