8#include <tracking/trackFindingCDC/filters/segmentTripleRelation/BaseSegmentTripleRelationFilter.h>
10#include <tracking/trackFindingCDC/eventdata/tracks/CDCSegmentTriple.h>
12#include <tracking/trackFindingCDC/filters/base/RelationFilter.icc.h>
14#include <tracking/trackFindingCDC/utilities/VectorRange.h>
15#include <tracking/trackFindingCDC/utilities/Functional.h>
22using namespace TrackFindingCDC;
32 const std::vector<const CDCSegmentTriple*>& segmentTriples)
const
34 assert(std::is_sorted(segmentTriples.begin(), segmentTriples.end(),
LessOf<Deref>()) &&
35 "Expected segment triples to be sorted");
40 std::equal_range(segmentTriples.begin(), segmentTriples.end(), &endSegment,
LessOf<Deref>())};
41 return {neighbors.
begin(), neighbors.end()};
~BaseSegmentTripleRelationFilter()
Default destructor.
BaseSegmentTripleRelationFilter()
Default constructor.
std::vector< const CDCSegmentTriple * > getPossibleTos(const CDCSegmentTriple *from, const std::vector< const CDCSegmentTriple * > &segmentTriples) const final
Returns the segment triples form the range that continue on the to site of the given segment triple.
A reconstructed sequence of two dimensional hits in one super layer.
Class representing a triple of reconstructed segments in adjacent superlayer.
const CDCAxialSegment2D * getEndSegment() const
Getter for the end axial segment.
A pair of iterators usable with the range base for loop.
Iterator begin() const
Begin of the range for range based for.
Base class for filtering the neighborhood of objects.
Abstract base class for different kinds of events.
Functor factory turning a binary functor and two functors into a new functor which executes the binar...