936     std::string minuses(level / 2, 
'-');
 
  937     std::string indent(level / 2, 
' ');
 
  951     for (
const auto& hit3D : hitPairListPtr) {
 
  952       Eigen::Vector3f pcaToHitVec(hit3D->getPosition()[0] - pcaCenter(0),
 
  953                                   hit3D->getPosition()[1] - pcaCenter(1),
 
  954                                   hit3D->getPosition()[2] - pcaCenter(2));
 
  957       pointList.emplace_back(pcaToHit(1), pcaToHit(2), hit3D);
 
  961     pointList.sort([](
const auto& 
left, 
const auto& 
right) {
 
  963               std::numeric_limits<float>::epsilon()) ?
 
  969     std::vector<ConvexHull> convexHullVec;
 
  970     std::vector<reco::ProjectedPointList> rejectedListVec;
 
  971     bool increaseDepth(pointList.size() > 3);
 
  972     float lastArea(std::numeric_limits<float>::max());
 
  974     while (increaseDepth) {
 
  979       const ConvexHull& convexHull = convexHullVec.back();
 
  983       increaseDepth = 
false;
 
  985       if (convexHull.getConvexHullArea() > 0.) {
 
  986         if (convexHullVec.size() < 2 || convexHull.getConvexHullArea() < 0.8 * lastArea) {
 
  987           for (
auto& point : convexHullPoints) {
 
  988             pointList.remove(point);
 
  989             rejectedList.emplace_back(point);
 
  991           lastArea = convexHull.getConvexHullArea();
 
  998     while (!convexHullVec.empty() && convexHullVec.back().getConvexHullArea() < 0.5) {
 
  999       convexHullVec.pop_back();
 
 1000       rejectedListVec.pop_back();
 
 1004     if (!convexHullVec.empty()) {
 
 1005       size_t nRejectedTotal(0);
 
 1008       for (
const auto& rejectedList : rejectedListVec) {
 
 1009         nRejectedTotal += rejectedList.size();
 
 1011         for (
const auto& rejectedPoint : rejectedList) {
 
 1012           if (convexHullVec.back().findNearestDistance(rejectedPoint) > 0.5)
 
 1013             locHitPairListPtr.remove(std::get<2>(rejectedPoint));
 
 1024       for (
auto& curPoint : convexHullVec.back().getConvexHull()) {
 
 1025         if (curPoint == lastPoint) 
continue;
 
 1030         float distBetweenPoints = (curPoint3D->getPosition()[0] - lastPoint3D->
getPosition()[0]) *
 
 1031                                     (curPoint3D->getPosition()[0] - lastPoint3D->
getPosition()[0]) +
 
 1032                                   (curPoint3D->getPosition()[1] - lastPoint3D->
getPosition()[1]) *
 
 1033                                     (curPoint3D->getPosition()[1] - lastPoint3D->
getPosition()[1]) +
 
 1034                                   (curPoint3D->getPosition()[2] - lastPoint3D->
getPosition()[2]) *
 
 1035                                     (curPoint3D->getPosition()[2] - lastPoint3D->
getPosition()[2]);
 
 1037         distBetweenPoints = std::sqrt(distBetweenPoints);
 
 1041         convexHullPointList.push_back(curPoint);
 
 1042         edgeMap[lastPoint3D].push_back(edge);
 
 1043         edgeMap[curPoint3D].push_back(edge);
 
 1044         edgeList.emplace_back(edge);
 
 1046         lastPoint = curPoint;
 
 1053       for (
const auto& point : extremePoints)
 
 1054         extremePointList.push_back(point);
 
 1060       for (
const auto& kink : kinkPoints)
 
 1061         kinkPointList.push_back(kink);
 
const Eigen::Vector3f getPosition() const 
std::list< ProjectedPoint > ProjectedPointList
std::list< Point > PointList
The list of the projected points. 
float fConvexHullMinSep
Min hit separation to conisder in convex hull. 
std::list< EdgeTuple > EdgeList
reco::PrincipalComponents & getFullPCA()
Define a container for working with the convex hull. 
const Eigen::Vector3f & getAvePosition() const 
std::list< ConvexHullKinkTuple > ConvexHullKinkTupleList
std::tuple< const reco::ClusterHit3D *, const reco::ClusterHit3D *, double > EdgeTuple
std::list< const reco::ClusterHit3D * > HitPairListPtr
float fConvexHullKinkAngle
Angle to declare a kink in convex hull calc. 
reco::ConvexHull & getConvexHull()
std::unordered_map< const reco::ClusterHit3D *, reco::EdgeList > Hit3DToEdgeMap
reco::ProjectedPointList & getProjectedPointList()
std::tuple< float, float, const reco::ClusterHit3D * > ProjectedPoint
Projected coordinates and pointer to hit. 
const EigenVectors & getEigenVectors() const