31 using Point = std::tuple<float,float,const reco::ClusterHit3D*>;
const PointList & getPointsList()
recover the list of points used to build convex hull
std::pair< PointPair, PointPair > MinMaxPointPair
MinMaxPointPair fMinMaxPointPair
std::list< Point > PointList
The list of the projected points.
float crossProduct(const Point &p0, const Point &p1, const Point &p2) const
Gets the cross product of line from p0 to p1 and p0 to p2.
std::pair< Point, Point > PointPair
const MinMaxPointPair & getMinMaxPointPair() const
find the ends of the convex hull (along its x axis)
float Area() const
Computes the area of the enclosed convext hull.
std::tuple< float, float, const reco::ClusterHit3D * > Point
projected x,y position and 3D hit
PointPair findNearestEdge(const Point &, float &) const
Given an input Point, find the nearest edge.
float findNearestDistance(const Point &) const
Given an input point, find the distance to the nearest edge/point.
const reco::ConvexHullKinkTupleList & getKinkPoints()
Find the points with the largest angles.
std::list< ConvexHullKinkTuple > ConvexHullKinkTupleList
float getConvexHullArea() const
recover the area of the convex hull
const PointList & getConvexHull() const
recover the list of convex hull vertices
ConvexHull class definiton.
reco::ConvexHullKinkTupleList fKinkPoints
const PointList & getExtremePoints()
Find the two points on the hull which are furthest apart.
bool isLeft(const Point &p0, const Point &p1, const Point &pCheck) const
Determines whether a point is to the left, right or on line specifiec by p0 and p1.
ConvexHull(const PointList &, float=0.85, float=0.35)
Constructor.
const PointList & fPoints
virtual ~ConvexHull()
Destructor.