10 #include <tracking/trackFindingCDC/filters/axialSegmentPair/BasicAxialSegmentPairVarSet.h>
12 #include <tracking/trackFindingCDC/eventdata/tracks/CDCAxialSegmentPair.h>
13 #include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
14 #include <tracking/trackFindingCDC/eventdata/hits/CDCRecoHit2D.h>
15 #include <tracking/trackFindingCDC/eventdata/hits/CDCWireHit.h>
17 #include <tracking/trackFindingCDC/utilities/Functional.h>
20 using namespace TrackFindingCDC;
23 std::array<int, 8> getNHitsByILayer(
const CDCSegment2D& segment)
25 std::array<int, 8> result{};
26 for (
const CDCRecoHit2D& recoHit2D : segment) {
27 ++result[recoHit2D.getWireHit().getILayer()];
35 if (not ptrAxialSegmentPair)
return false;
39 const CDCSegment2D* ptrFromSegment = axialSegmentPair.getStartSegment();
40 const CDCSegment2D* ptrToSegment = axialSegmentPair.getEndSegment();
48 var<
named(
"from_size")>() = fromSegment.size();
49 var<
named(
"to_size")>() = toSegment.size();
51 std::array<int, 8> fromNHitsByILayer = getNHitsByILayer(fromSegment);
52 std::array<int, 8> toNHitsByILayer = getNHitsByILayer(toSegment);
54 var<
named(
"from_n_layers")>() = std::count_if(fromNHitsByILayer.begin(), fromNHitsByILayer.end(),
Id() > 0);;
55 var<
named(
"to_n_layers")>() = std::count_if(toNHitsByILayer.begin(), toNHitsByILayer.end(),
Id() > 0);