LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
reco Namespace Reference

Namespaces

 shower
 

Classes

class  Cluster3D
 
class  ClusterHit2D
 
class  ClusterHit3D
 
class  ClusterParameters
 
class  ConvexHull
 Define a container for working with the convex hull. More...
 
class  PrincipalComponents
 
class  RecobClusterParameters
 A utility class used in construction of 3D clusters. More...
 

Typedefs

using ClusterHit2DVec = std::vector< const reco::ClusterHit2D * >
 
using Hit2DListPtr = std::list< const reco::ClusterHit2D * >
 export some data structure definitions More...
 
using HitPairListPtr = std::list< const reco::ClusterHit3D * >
 
using HitPairSetPtr = std::set< const reco::ClusterHit3D * >
 
using HitPairListPtrList = std::list< HitPairListPtr >
 
using HitPairClusterMap = std::map< int, HitPairListPtr >
 
using HitPairList = std::list< reco::ClusterHit3D >
 
using PCAHitPairClusterMapPair = std::pair< reco::PrincipalComponents, reco::HitPairClusterMap::iterator >
 
using PlaneToClusterParamsMap = std::map< size_t, RecobClusterParameters >
 
using EdgeTuple = std::tuple< const reco::ClusterHit3D *, const reco::ClusterHit3D *, double >
 
using EdgeList = std::list< EdgeTuple >
 
using Hit3DToEdgePair = std::pair< const reco::ClusterHit3D *, reco::EdgeList >
 
using Hit3DToEdgeMap = std::unordered_map< const reco::ClusterHit3D *, reco::EdgeList >
 
using Hit2DToHit3DListMap = std::unordered_map< const reco::ClusterHit2D *, reco::HitPairListPtr >
 
using ProjectedPoint = std::tuple< float, float, const reco::ClusterHit3D * >
 Projected coordinates and pointer to hit. More...
 
using ProjectedPointList = std::list< ProjectedPoint >
 
using ConvexHullKinkTuple = std::tuple< ProjectedPoint, Eigen::Vector2f, Eigen::Vector2f >
 Point plus edges that point to it. More...
 
using ConvexHullKinkTupleList = std::list< ConvexHullKinkTuple >
 
using ClusterParametersList = std::list< ClusterParameters >
 
using ClusterToHitPairSetPair = std::pair< reco::ClusterParameters *, HitPairSetPtr >
 
using ClusterToHitPairSetMap = std::unordered_map< reco::ClusterParameters *, HitPairSetPtr >
 
using Hit2DToHit3DSetMap = std::unordered_map< const reco::ClusterHit2D *, HitPairSetPtr >
 
using Hit2DToClusterMap = std::unordered_map< const reco::ClusterHit2D *, ClusterToHitPairSetMap >
 

Functions

std::ostream & operator<< (std::ostream &o, const ClusterHit2D &c)
 
bool operator< (const ClusterHit2D &a, const ClusterHit2D &b)
 
std::ostream & operator<< (std::ostream &o, const ClusterHit3D &c)
 
std::ostream & operator<< (std::ostream &o, const PrincipalComponents &a)
 
bool operator< (const PrincipalComponents &a, const PrincipalComponents &b)
 
std::ostream & operator<< (std::ostream &o, const Cluster3D &c)
 
bool operator< (const Cluster3D &a, const Cluster3D &b)
 

Typedef Documentation

using reco::ClusterHit2DVec = typedef std::vector<const reco::ClusterHit2D*>

Definition at line 90 of file Cluster3D.h.

using reco::ClusterParametersList = typedef std::list<ClusterParameters>

Definition at line 393 of file Cluster3D.h.

Definition at line 497 of file Cluster3D.h.

Definition at line 496 of file Cluster3D.h.

using reco::ConvexHullKinkTuple = typedef std:: tuple<ProjectedPoint, Eigen::Vector2f, Eigen::Vector2f>

Point plus edges that point to it.

Definition at line 348 of file Cluster3D.h.

Definition at line 349 of file Cluster3D.h.

using reco::EdgeList = typedef std::list<EdgeTuple>

Definition at line 337 of file Cluster3D.h.

using reco::EdgeTuple = typedef std::tuple<const reco::ClusterHit3D*, const reco::ClusterHit3D*, double>

Definition at line 336 of file Cluster3D.h.

using reco::Hit2DListPtr = typedef std::list<const reco::ClusterHit2D*>

export some data structure definitions

Definition at line 325 of file Cluster3D.h.

using reco::Hit2DToClusterMap = typedef std::unordered_map<const reco::ClusterHit2D*, ClusterToHitPairSetMap>

Definition at line 499 of file Cluster3D.h.

using reco::Hit2DToHit3DListMap = typedef std::unordered_map<const reco::ClusterHit2D*, reco::HitPairListPtr>

Definition at line 340 of file Cluster3D.h.

using reco::Hit2DToHit3DSetMap = typedef std::unordered_map<const reco::ClusterHit2D*, HitPairSetPtr>

Definition at line 498 of file Cluster3D.h.

using reco::Hit3DToEdgeMap = typedef std::unordered_map<const reco::ClusterHit3D*, reco::EdgeList>

Definition at line 339 of file Cluster3D.h.

using reco::Hit3DToEdgePair = typedef std::pair<const reco::ClusterHit3D*, reco::EdgeList>

Definition at line 338 of file Cluster3D.h.

using reco::HitPairClusterMap = typedef std::map<int, HitPairListPtr>

Definition at line 329 of file Cluster3D.h.

using reco::HitPairList = typedef std::list<reco::ClusterHit3D>

Definition at line 330 of file Cluster3D.h.

using reco::HitPairListPtr = typedef std::list<const reco::ClusterHit3D*>

Definition at line 326 of file Cluster3D.h.

using reco::HitPairListPtrList = typedef std::list<HitPairListPtr>

Definition at line 328 of file Cluster3D.h.

using reco::HitPairSetPtr = typedef std::set<const reco::ClusterHit3D*>

Definition at line 327 of file Cluster3D.h.

using reco::PlaneToClusterParamsMap = typedef std::map<size_t, RecobClusterParameters>

Definition at line 335 of file Cluster3D.h.

using reco::ProjectedPoint = typedef std:: tuple<float, float, const reco::ClusterHit3D*>

Projected coordinates and pointer to hit.

Definition at line 345 of file Cluster3D.h.

using reco::ProjectedPointList = typedef std::list<ProjectedPoint>

Definition at line 346 of file Cluster3D.h.

Function Documentation

bool reco::operator< ( const ClusterHit2D a,
const ClusterHit2D b 
)

Definition at line 68 of file Cluster3D.cxx.

References reco::ClusterHit2D::getHit().

69  {
70  return a.getHit() < b.getHit();
71  }
bool reco::operator< ( const PrincipalComponents a,
const PrincipalComponents b 
)

Definition at line 262 of file Cluster3D.cxx.

References reco::PrincipalComponents::m_eigenValues, and reco::PrincipalComponents::m_svdOK.

263  {
264  if (a.m_svdOK && b.m_svdOK) return a.m_eigenValues(0) > b.m_eigenValues(0);
265 
266  return false; //They are equal
267  }
bool reco::operator< ( const Cluster3D a,
const Cluster3D b 
)

Definition at line 368 of file Cluster3D.cxx.

References reco::Cluster3D::getStartPosition().

369  {
370  /*
371  if(a.View() != b.View())
372  return a.View() < b.View();
373  if(a.ID() != b. ID())
374  return a.ID() < b.ID();
375  if(a.StartPos()[0] != b.StartPos()[0])
376  return a.StartPos()[0] < b.StartPos()[0];
377  if(a.EndPos()[0] != b.EndPos()[0])
378  return a.EndPos()[0] < b.EndPos()[0];
379 */
380  if (a.getStartPosition()[2] < b.getStartPosition()[2]) return true;
381 
382  return false; //They are equal
383  }
std::ostream& reco::operator<< ( std::ostream &  o,
const ClusterHit2D c 
)

Definition at line 62 of file Cluster3D.cxx.

References reco::ClusterHit2D::getHit().

63  {
64  o << c.getHit();
65  return o;
66  }
std::ostream& reco::operator<< ( std::ostream &  o,
const ClusterHit3D c 
)

Definition at line 196 of file Cluster3D.cxx.

References reco::ClusterHit3D::getHits().

197  {
198  o << "ClusterHit3D has " << c.getHits().size() << " hits associated";
199 
200  return o;
201  }
std::ostream& reco::operator<< ( std::ostream &  o,
const PrincipalComponents a 
)

Definition at line 239 of file Cluster3D.cxx.

References reco::PrincipalComponents::m_aveHitDoca, reco::PrincipalComponents::m_avePosition, reco::PrincipalComponents::m_eigenValues, reco::PrincipalComponents::m_eigenVectors, reco::PrincipalComponents::m_numHitsUsed, reco::PrincipalComponents::m_svdOK, and art::right().

240  {
241  if (a.m_svdOK) {
242  o << std::setiosflags(std::ios::fixed) << std::setprecision(2);
243  o << " PCAxis ID run with " << a.m_numHitsUsed << " space points" << std::endl;
244  o << " - center position: " << std::setw(6) << a.m_avePosition(0) << ", "
245  << a.m_avePosition(1) << ", " << a.m_avePosition(2) << std::endl;
246  o << " - eigen values: " << std::setw(8) << std::right << a.m_eigenValues(0) << ", "
247  << a.m_eigenValues(1) << ", " << a.m_eigenValues(1) << std::endl;
248  o << " - average doca: " << a.m_aveHitDoca << std::endl;
249  o << " - Principle axis: " << std::setw(7) << std::setprecision(4) << a.m_eigenVectors(0, 0)
250  << ", " << a.m_eigenVectors(0, 1) << ", " << a.m_eigenVectors(0, 2) << std::endl;
251  o << " - second axis: " << std::setw(7) << std::setprecision(4) << a.m_eigenVectors(1, 0)
252  << ", " << a.m_eigenVectors(1, 1) << ", " << a.m_eigenVectors(1, 2) << std::endl;
253  o << " - third axis: " << std::setw(7) << std::setprecision(4) << a.m_eigenVectors(2, 0)
254  << ", " << a.m_eigenVectors(2, 1) << ", " << a.m_eigenVectors(2, 2) << std::endl;
255  }
256  else
257  o << " Principal Components Axis is not valid" << std::endl;
258 
259  return o;
260  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:102
std::ostream& reco::operator<< ( std::ostream &  o,
const Cluster3D c 
)

Definition at line 349 of file Cluster3D.cxx.

References reco::Cluster3D::getClusterIdx(), and art::right().

350  {
351  o << std::setiosflags(std::ios::fixed) << std::setprecision(2);
352  o << "Cluster ID " << std::setw(5) << std::right << c.getClusterIdx();
353  // << " : View = " << std::setw(3) << std::right << c.View()
354  // << " StartWire = " << std::setw(7) << std::right << c.StartPos()[0]
355  // << " EndWire = " << std::setw(7) << std::right << c.EndPos()[0]
356  // << " StartTime = " << std::setw(9) << std::right << c.StartPos()[1]
357  // << " EndTime = " << std::setw(9) << std::right << c.EndPos()[1]
358  // << " dTdW = " << std::setw(9) << std::right << c.dTdW()
359  // << " dQdW = " << std::setw(9) << std::right << c.dQdW()
360  // << " Charge = " << std::setw(10) << std::right << c.Charge();
361 
362  return o;
363  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:102