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 22 of file Bounds.h.

Constructor & Destructor Documentation

virtual Bounds::~Bounds ( )
inlinevirtual

Definition at line 24 of file Bounds.h.

References length(), thickness(), and width().

24 {}

Member Function Documentation

virtual Bounds* Bounds::clone ( ) const
pure virtual
void Bounds::computeSpan ( Surface const &  plane)
inline

Definition at line 76 of file Bounds.h.

References BoundSpan::compute(), and m_span.

76 { m_span.compute(plane);}
void compute(Surface const &plane)
Definition: BoundSpan.cc:8
BoundSpan m_span
Definition: Bounds.h:80
virtual bool Bounds::inside ( const Local3DPoint ) const
pure virtual
virtual bool Bounds::inside ( const Local2DPoint p) const
inlinevirtual

Reimplemented in CSCLayerGeometry, TrapezoidalPlaneBounds, and RectangularPlaneBounds.

Definition at line 43 of file Bounds.h.

References inside(), PV2DBase< T, PVType, FrameType >::x(), and PV2DBase< T, PVType, FrameType >::y().

43  {
44  return inside( Local3DPoint(p.x(), p.y(), 0) );
45  }
T y() const
Definition: PV2DBase.h:46
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
T x() const
Definition: PV2DBase.h:45
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 48 of file Bounds.h.

References f, inside(), and Scenarios_cff::scale.

48  {
49  return inside(p,LocalError(tollerance*tollerance,0.f,tollerance*tollerance));
50  }
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
double f[11][100]
virtual bool Bounds::inside ( const Local3DPoint ,
const LocalError ,
float  scale = 1.f 
) const
pure virtual
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 RectangularPlaneBounds, TrapezoidalPlaneBounds, and OpenBounds.

Definition at line 63 of file Bounds.h.

References clone(), inside(), Scenarios_cff::scale, significanceInside(), PV2DBase< T, PVType, FrameType >::x(), and PV2DBase< T, PVType, FrameType >::y().

64  {
65  return inside( Local3DPoint(p.x(), p.y(), 0), err, scale);
66  }
T y() const
Definition: PV2DBase.h:46
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
T x() const
Definition: PV2DBase.h:45
virtual float Bounds::length ( ) const
pure virtual

"Lenght" of the bounded volume; refer to the concrete class documentation for the specific definition.

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

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer(), Vispa.Views.LineDecayView.DecayLine::arrowBoundingRect(), TkLayerLess::barrelForwardLess(), PixelTopologyBuilder::build(), StripTopologyBuilder::build(), RPCGeometryBuilderFromCondDB::build(), RPCGeometryBuilderFromDDD::buildGeometry(), ValidateGeometry::compareShape(), TOBRod::computeWindowSize(), Phase2OTBarrelRod::computeWindowSize(), FWTGeoRecoGeometryESProducer::createShape(), TIBLayer::cylinder(), RectangularEtaPhiTrackingRegion::estimator(), ApeEstimator::fillHitVariables(), MuonDetIdAssociator::getDetIdPoints(), TrackDetectorAssociator::getTAMuonChamberMatches(), GlobalDetRodRangeZPhi::GlobalDetRodRangeZPhi(), ThirdHitCorrection::init(), InnerDeltaPhi::initBarrelMS(), ThirdHitRZPredictionBase::initLayer(), DeDxTools::IsFarFromBorder(), ShallowGainCalibration::IsFarFromBorder(), SiStripGainFromData::IsFarFromBorder(), Vispa.Views.LineDecayView.DecayLine::labelBoundingRect(), SimpleNavigationSchool::linkNextForwardLayer(), TrajectoryManager::makeSinglePSimHit(), MSLayer::MSLayer(), MuonResidualsFromTrack::MuonResidualsFromTrack(), TIBLayer::overlap(), PixelBlade::overlap(), Phase1PixelBlade::overlap(), Vispa.Views.LineDecayView.DecayLine::paint(), MuonNavigationPrinter::printLayer(), TrackingRecHitStripGSPlugin::process(), PixelTemplateSmearerBase::process(), ValidateGeometry::validateDTLayerGeometry(), TracktoRPC::ValidRPCSurface(), SimpleNavigableLayer::wellInside(), and ~Bounds().

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

Definition at line 72 of file Bounds.h.

References m_span, and BoundSpan::phiSpan().

72 { return m_span.phiSpan(); }
std::pair< float, float > const & phiSpan() const
Definition: BoundSpan.h:22
BoundSpan m_span
Definition: Bounds.h:80
std::pair<float,float> const& Bounds::rSpan ( ) const
inline

Definition at line 74 of file Bounds.h.

References m_span, and BoundSpan::rSpan().

74 { return m_span.rSpan(); }
std::pair< float, float > const & rSpan() const
Definition: BoundSpan.h:24
BoundSpan m_span
Definition: Bounds.h:80
float Bounds::significanceInside ( const Local3DPoint ,
const LocalError  
) const
virtual

Reimplemented in RectangularPlaneBounds, and TrapezoidalPlaneBounds.

Definition at line 4 of file Bounds.cc.

Referenced by inside().

4  {
5  throw GeometryError("howMuchInside not implemented");
6 }
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, RectangularPlaneBounds, DiskSectorBounds, FourPointPlaneBounds, SimpleDiskBounds, and OpenBounds.

Referenced by SiStripCalibLorentzAngle::algoBeginJob(), SiStripLAProfileBooker::analyze(), SiStripDetInfoFileWriter::beginRun(), CSCGeometryBuilder::buildChamber(), ValidateGeometry::compareShape(), Cylinder::computeRadius(), TIBLayer::computeWindowSize(), fastsim::TrackerSimHitProducer::createHitOnDetector(), FWTGeoRecoGeometryESProducer::createShape(), TIBLayer::cylinder(), SiPixelLorentzAngleCalibration::derivatives(), SiStripBackplaneCalibration::derivatives(), SiPixelDigitizerAlgorithm::digitize(), shallow::drift(), Phase2TrackerDigitizerAlgorithm::drift(), SiPixelDigitizerAlgorithm::drift(), SiStripLorentzAngleCalibration::effectiveThickness(), RectangularEtaPhiTrackingRegion::estimator(), ApeEstimator::fillHitVariables(), Phase2StripCPE::fillParam(), ClusterShapeHitFilter::getCotangent(), MuonDetIdAssociator::getDetIdPoints(), HitPairGeneratorFromLayerPairForPhotonConversion::getLayerRadius(), HitPairGeneratorFromLayerPairForPhotonConversion::getLayerZ(), GlobalDetRodRangeZPhi::GlobalDetRodRangeZPhi(), PixelTripletNoTipGenerator::hitTriplets(), InnerDeltaPhi::initBarrelLayer(), InnerDeltaPhi::initForwardLayer(), ThirdHitRZPredictionBase::initLayer(), ThirdHitPrediction::initLayer(), SiStripGainCosmicCalculator::moduleThickness(), MSLayer::MSLayer(), CylinderBuilderFromDet::operator()(), StandaloneTrackMonitor::processClusters(), StandaloneTrackMonitor::processHit(), HSCPDeDxInfoProducer::processHit(), DeDxHitInfoProducer::processHit(), SiHitDigitizer::processHit(), DeDxEstimatorProducer::processHit(), MuonSimHitProducer::produce(), SiStripTrackingRecHitsValid::rechitanalysis(), SiStripTrackingRecHitsValid::rechitanalysis_matched(), StripSubClusterShapeFilterBase::testLastHit(), ValidateGeometry::validateDTLayerGeometry(), SimpleNavigableLayer::wellInside(), and ~Bounds().

virtual float Bounds::width ( ) const
pure virtual

"width" of the bounds; refer to the concrete class documentation for the specific definition.

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

Referenced by Vispa.Main.MainWindow.MainWindow::_saveIni(), SiStripHitEffFromCalibTree::algoAnalyze(), HitEff::analyze(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Gui.VispaWidget.VispaWidget::boundingRect(), PixelTopologyBuilder::build(), StripTopologyBuilder::build(), ValidateGeometry::compareShape(), MuRodBarrelLayer::compatibleDets(), Cylinder::computeRadius(), Vispa.Gui.VispaWidget.VispaWidget::contentRect(), FWTGeoRecoGeometryESProducer::createShape(), Vispa.Gui.VispaWidget.VispaWidget::defineArrowBackgroundShape(), Vispa.Gui.VispaWidget.VispaWidget::defineCircleBackgroundShape(), Vispa.Gui.VispaWidget.VispaWidget::defineRoundRectBackgroundShape(), Vispa.Gui.VispaWidget.VispaWidget::drawHeaderBackground(), Vispa.Gui.ConnectableWidget.ConnectableWidget::drawPortNames(), ApeEstimator::fillHitVariables(), MuonDetIdAssociator::getDetIdPoints(), TrackDetectorAssociator::getTAMuonChamberMatches(), GlobalDetRodRangeZPhi::GlobalDetRodRangeZPhi(), Vispa.Gui.VispaWidget.VispaWidget::imageRectF(), TrajectoryManager::makeSinglePSimHit(), SiStripGainCosmicCalculator::moduleWidth(), MuonResidualsFromTrack::MuonResidualsFromTrack(), Vispa.Gui.ConnectableWidget.ConnectableWidget::positionizeMenuWidget(), PixelTemplateSmearerBase::process(), Vispa.Views.PropertyView.PropertyView::resizeEvent(), Vispa.Views.PropertyView.PropertyView::sectionResized(), Vispa.Gui.VispaWidget.VispaWidget::setZoom(), Vispa.Main.MainWindow.MainWindow::updateStartupScreenGeometry(), ValidateGeometry::validateDTLayerGeometry(), TracktoRPC::ValidRPCSurface(), widthAtHalfLength(), and ~Bounds().

virtual float Bounds::widthAtHalfLength ( ) const
inlinevirtual

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

Reimplemented in TrapezoidalPlaneBounds.

Definition at line 39 of file Bounds.h.

References inside(), and width().

Referenced by StripTopologyBuilder::build().

39 {return width();}
virtual float width() const =0
std::pair<float,float> const& Bounds::zSpan ( ) const
inline

Definition at line 73 of file Bounds.h.

References m_span, and BoundSpan::zSpan().

73 { return m_span.zSpan(); }
std::pair< float, float > const & zSpan() const
Definition: BoundSpan.h:23
BoundSpan m_span
Definition: Bounds.h:80

Member Data Documentation

BoundSpan Bounds::m_span
private

Definition at line 80 of file Bounds.h.

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