CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
Bounds Class Referenceabstract

#include <Bounds.h>

Inheritance diagram for Bounds:
DiskSectorBounds FourPointPlaneBounds GeneralNSurfaceDelimitedBounds OpenBounds RectangularPlaneBounds SimpleConeBounds SimpleCylinderBounds SimpleDiskBounds TrapezoidalPlaneBounds

Public Member Functions

virtual Boundsclone () const =0
 
void computeSpan (Surface const &plane)
 
virtual bool inside (const Local3DPoint &) const =0
 Determine if the point is inside the bounds. More...
 
virtual bool inside (const Local2DPoint &p) const
 
virtual bool inside (const Local2DPoint &p, float tollerance) const
 Determine if a point is inside the bounds, taking a tollerance into account. More...
 
virtual bool inside (const Local3DPoint &, const LocalError &, float scale=1.f) const =0
 Determine if a point is inside the bounds, taking error into account. More...
 
virtual bool inside (const Local2DPoint &p, const LocalError &err, float scale=1.f) const
 Determine if a 2D point is inside the bounds, taking error into account. More...
 
virtual float length () const =0
 
std::pair< float, float > const & phiSpan () const
 
std::pair< float, float > const & rSpan () const
 
virtual float significanceInside (const Local3DPoint &, const LocalError &) const
 
virtual float thickness () const =0
 
virtual float width () const =0
 
virtual float widthAtHalfLength () const
 Width at half length. Useful for e.g. pitch definition. More...
 
std::pair< float, float > const & zSpan () const
 
virtual ~Bounds ()
 

Private Attributes

BoundSpan m_span
 

Detailed Description

Abstract base class for Bounds.

Bounds provide a general way to specify the form of a concrete surface. For example, a BoundPlane with TrapezoidalPlaneBounds has a trapezoidal shape.

Definition at line 18 of file Bounds.h.

Constructor & Destructor Documentation

◆ ~Bounds()

virtual Bounds::~Bounds ( )
inlinevirtual

Definition at line 20 of file Bounds.h.

20 {}

Member Function Documentation

◆ clone()

virtual Bounds* Bounds::clone ( ) const
pure virtual

◆ computeSpan()

void Bounds::computeSpan ( Surface const &  plane)
inline

Definition at line 69 of file Bounds.h.

References BoundSpan::compute(), and m_span.

Referenced by Plane::computeSpan().

69 { m_span.compute(plane); }
void compute(Surface const &plane)
Definition: BoundSpan.cc:8
BoundSpan m_span
Definition: Bounds.h:72

◆ inside() [1/5]

virtual bool Bounds::inside ( const Local3DPoint ) const
pure virtual

◆ inside() [2/5]

virtual bool Bounds::inside ( const Local2DPoint p) const
inlinevirtual

Reimplemented in CSCLayerGeometry, TrapezoidalPlaneBounds, and RectangularPlaneBounds.

Definition at line 39 of file Bounds.h.

References inside(), and AlCaHLTBitMon_ParallelJobs::p.

Referenced by inside().

39 { return inside(Local3DPoint(p.x(), p.y(), 0)); }
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9

◆ inside() [3/5]

virtual bool Bounds::inside ( const Local2DPoint p,
float  tollerance 
) const
inlinevirtual

Determine if a point is inside the bounds, taking a tollerance into account.

Reimplemented in RectangularPlaneBounds.

Definition at line 42 of file Bounds.h.

References f, inside(), and AlCaHLTBitMon_ParallelJobs::p.

42  {
43  return inside(p, LocalError(tollerance * tollerance, 0.f, tollerance * tollerance));
44  }
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
double f[11][100]

◆ inside() [4/5]

virtual bool Bounds::inside ( const Local3DPoint ,
const LocalError ,
float  scale = 1.f 
) const
pure virtual

◆ inside() [5/5]

virtual bool Bounds::inside ( const Local2DPoint p,
const LocalError err,
float  scale = 1.f 
) const
inlinevirtual

Determine if a 2D point is inside the bounds, taking error into account.

Reimplemented in TrapezoidalPlaneBounds, RectangularPlaneBounds, and OpenBounds.

Definition at line 57 of file Bounds.h.

References submitPVResolutionJobs::err, inside(), AlCaHLTBitMon_ParallelJobs::p, and l1tEGammaCrystalsEmulatorProducer_cfi::scale.

57  {
58  return inside(Local3DPoint(p.x(), p.y(), 0), err, scale);
59  }
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9

◆ length()

virtual float Bounds::length ( ) const
pure virtual

◆ phiSpan()

std::pair<float, float> const& Bounds::phiSpan ( ) const
inline

Definition at line 65 of file Bounds.h.

References m_span, and BoundSpan::phiSpan().

Referenced by Surface::phiSpan().

65 { return m_span.phiSpan(); }
BoundSpan m_span
Definition: Bounds.h:72
std::pair< float, float > const & phiSpan() const
Definition: BoundSpan.h:19

◆ rSpan()

std::pair<float, float> const& Bounds::rSpan ( ) const
inline

Definition at line 67 of file Bounds.h.

References m_span, and BoundSpan::rSpan().

Referenced by Surface::rSpan().

67 { return m_span.rSpan(); }
std::pair< float, float > const & rSpan() const
Definition: BoundSpan.h:21
BoundSpan m_span
Definition: Bounds.h:72

◆ significanceInside()

float Bounds::significanceInside ( const Local3DPoint ,
const LocalError  
) const
virtual

Reimplemented in TrapezoidalPlaneBounds, and RectangularPlaneBounds.

Definition at line 4 of file Bounds.cc.

4  {
5  throw GeometryError("howMuchInside not implemented");
6 }

◆ thickness()

virtual float Bounds::thickness ( ) const
pure virtual

"Thickness" of the bound around the surface; refer to the concrete class documentation for the specific definition.

Implemented in SimpleConeBounds, TrapezoidalPlaneBounds, SimpleCylinderBounds, GeneralNSurfaceDelimitedBounds, DiskSectorBounds, RectangularPlaneBounds, FourPointPlaneBounds, SimpleDiskBounds, and OpenBounds.

Referenced by SiStripCalibLorentzAngle::algoBeginJob(), SiStripLAProfileBooker::analyze(), SiPixelLorentzAnglePCLWorker::analyze(), SiStripDetInfoFileWriter::beginRun(), SiPixelLorentzAnglePCLHarvester::beginRun(), DTGeometryValidate::compareShape(), GEMGeometryValidate::compareShape(), RPCGeometryValidate::compareShape(), ME0GeometryValidate::compareShape(), CSCGeometryValidate::compareShape(), ValidateGeometry::compareShape(), MTDSectorForwardDoubleLayer::compatible(), TIBLayer::computeWindowSize(), fastsim::TrackerSimHitProducer::createHitOnDetector(), FWTGeoRecoGeometryESProducer::createShape(), TIBLayer::cylinder(), SiPixelDigitizerAlgorithm::digitize(), shallow::drift(), Phase2TrackerDigitizerAlgorithm::drift(), SiPixelDigitizerAlgorithm::drift(), Pixel3DDigitizerAlgorithm::driftFor3DSensors(), SiStripLorentzAngleCalibration::effectiveThickness(), Phase2StripCPE::fillParam(), ClusterShapeHitFilter::getCotangent(), GlobalDetRodRangeZPhi::GlobalDetRodRangeZPhi(), PixelTripletNoTipGenerator::hitTriplets(), ThirdHitRZPredictionBase::initLayer(), ThirdHitPrediction::initLayer(), CylinderBuilderFromDet::operator()(), StandaloneTrackMonitor::processClusters(), SiHitDigitizer::processHit(), DeDxEstimatorProducer::processHit(), DeDxHitInfoProducer::processHit(), StandaloneTrackMonitor::processHit(), DeDxHitInfoProducer::processRec(), SiStripClusters2ApproxClusters::produce(), MuonSimHitProducer::produce(), SiStripTrackingRecHitsValid::rechitanalysis(), SiStripTrackingRecHitsValid::rechitanalysis_matched(), StripSubClusterShapeFilterBase::testLastHit(), and SimpleNavigableLayer::wellInside().

◆ width()

virtual float Bounds::width ( ) const
pure virtual

◆ widthAtHalfLength()

virtual float Bounds::widthAtHalfLength ( ) const
inlinevirtual

Width at half length. Useful for e.g. pitch definition.

Reimplemented in TrapezoidalPlaneBounds.

Definition at line 35 of file Bounds.h.

References width().

35 { return width(); }
virtual float width() const =0

◆ zSpan()

std::pair<float, float> const& Bounds::zSpan ( ) const
inline

Definition at line 66 of file Bounds.h.

References m_span, and BoundSpan::zSpan().

Referenced by Surface::zSpan().

66 { return m_span.zSpan(); }
std::pair< float, float > const & zSpan() const
Definition: BoundSpan.h:20
BoundSpan m_span
Definition: Bounds.h:72

Member Data Documentation

◆ m_span

BoundSpan Bounds::m_span
private

Definition at line 72 of file Bounds.h.

Referenced by computeSpan(), phiSpan(), rSpan(), and zSpan().