CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
Surface Class Referenceabstract

#include <Surface.h>

Inheritance diagram for Surface:
BasicReferenceCounted GloballyPositioned< float > Cone Cylinder Plane BoundDiskSector Disk

Public Types

using Base = GloballyPositioned< float >
 
using Side = SurfaceOrientation::Side
 
- Public Types inherited from GloballyPositioned< float >
typedef Point3DBase< float, GlobalTagGlobalPoint
 
typedef Vector3DBase< float, GlobalTagGlobalVector
 
typedef Point3DBase< float, LocalTagLocalPoint
 
typedef Vector3DBase< float, LocalTagLocalVector
 
typedef Point3DBase< float, GlobalTagPositionType
 
typedef TkRotation< float > RotationType
 
typedef float Scalar
 

Public Member Functions

const Boundsbounds () const
 
const MediumPropertiesmediumProperties () const
 
std::pair< float, float > const & phiSpan () const
 
std::pair< float, float > const & rSpan () const
 
void setMediumProperties (const MediumProperties &mp)
 
virtual Side side (const LocalPoint &p, Scalar tolerance=0) const =0
 
virtual Side side (const GlobalPoint &p, Scalar tolerance=0) const
 
virtual ConstReferenceCountingPointer< TangentPlanetangentPlane (const GlobalPoint &) const =0
 
virtual ConstReferenceCountingPointer< TangentPlanetangentPlane (const LocalPoint &) const =0
 
GlobalPoint toGlobal (const Point2DBase< Scalar, LocalTag > lp) const
 
std::pair< float, float > const & zSpan () const
 
 ~Surface () override
 
- Public Member Functions inherited from BasicReferenceCounted
void addReference () const
 
 BasicReferenceCounted ()
 
 BasicReferenceCounted (const BasicReferenceCounted &)
 
 BasicReferenceCounted (BasicReferenceCounted &&)
 
BasicReferenceCountedoperator= (BasicReferenceCounted &&)
 
BasicReferenceCountedoperator= (const BasicReferenceCounted &)
 
unsigned int references () const
 
void removeReference () const
 
virtual ~BasicReferenceCounted ()
 
- Public Member Functions inherited from GloballyPositioned< float >
float eta () const
 
 GloballyPositioned ()
 
 GloballyPositioned (const PositionType &pos, const RotationType &rot)
 
void move (const GlobalVector &displacement)
 
float phi () const
 
const PositionTypeposition () const
 
void rotate (const RotationType &rotation)
 
const RotationTyperotation () const
 
GlobalPoint toGlobal (const LocalPoint &lp) const
 
Point3DBase< U, GlobalTagtoGlobal (const Point3DBase< U, LocalTag > &lp) const
 
GlobalVector toGlobal (const LocalVector &lv) const
 
Vector3DBase< U, GlobalTagtoGlobal (const Vector3DBase< U, LocalTag > &lv) const
 
LocalPoint toLocal (const GlobalPoint &gp) const
 
Point3DBase< U, LocalTagtoLocal (const Point3DBase< U, GlobalTag > &gp) const
 
LocalVector toLocal (const GlobalVector &gv) const
 
Vector3DBase< U, LocalTagtoLocal (const Vector3DBase< U, GlobalTag > &gv) const
 
virtual ~GloballyPositioned ()
 

Protected Member Functions

 Surface ()
 
 Surface (const PositionType &pos, const RotationType &rot)
 
 Surface (const PositionType &pos, const RotationType &rot, Bounds *bounds)
 
 Surface (const PositionType &pos, const RotationType &rot, MediumProperties mp)
 
 Surface (const PositionType &pos, const RotationType &rot, MediumProperties mp, Bounds *bounds)
 
 Surface (const Surface &iSurface)
 
 Surface (Surface &&iSurface)
 

Protected Attributes

extstd::clone_ptr< BoundstheBounds
 
MediumProperties theMediumProperties
 

Additional Inherited Members

- Static Public Member Functions inherited from GloballyPositioned< float >
static float iniEta ()
 
static float iniPhi ()
 

Detailed Description

Base class for 2D surfaces in 3D space. May have MediumProperties. may have bounds The Bounds define a region AROUND the surface. Surfaces which differ only by the shape of their bounds are of the same "surface" type
(e.g. Plane or Cylinder).

Definition at line 36 of file Surface.h.

Member Typedef Documentation

◆ Base

Definition at line 40 of file Surface.h.

◆ Side

Definition at line 38 of file Surface.h.

Constructor & Destructor Documentation

◆ ~Surface()

Surface::~Surface ( )
inlineoverride

Definition at line 42 of file Surface.h.

42 {}

◆ Surface() [1/7]

Surface::Surface ( )
inlineprotected

Definition at line 45 of file Surface.h.

45 {}

◆ Surface() [2/7]

Surface::Surface ( const PositionType pos,
const RotationType rot 
)
inlineprotected

Definition at line 46 of file Surface.h.

46 : Base(pos, rot) {}
GloballyPositioned< float > Base
Definition: Surface.h:40

◆ Surface() [3/7]

Surface::Surface ( const PositionType pos,
const RotationType rot,
Bounds bounds 
)
inlineprotected

Definition at line 48 of file Surface.h.

48 : Base(pos, rot), theBounds(bounds) {}
GloballyPositioned< float > Base
Definition: Surface.h:40
extstd::clone_ptr< Bounds > theBounds
Definition: Surface.h:107

◆ Surface() [4/7]

Surface::Surface ( const PositionType pos,
const RotationType rot,
MediumProperties  mp 
)
inlineprotected

Definition at line 50 of file Surface.h.

51  : Base(pos, rot), theMediumProperties(mp) {}
MediumProperties theMediumProperties
Definition: Surface.h:106
GloballyPositioned< float > Base
Definition: Surface.h:40

◆ Surface() [5/7]

Surface::Surface ( const PositionType pos,
const RotationType rot,
MediumProperties  mp,
Bounds bounds 
)
inlineprotected

Definition at line 53 of file Surface.h.

MediumProperties theMediumProperties
Definition: Surface.h:106
GloballyPositioned< float > Base
Definition: Surface.h:40
extstd::clone_ptr< Bounds > theBounds
Definition: Surface.h:107

◆ Surface() [6/7]

Surface::Surface ( const Surface iSurface)
inlineprotected

Definition at line 56 of file Surface.h.

57  : ReferenceCountedInConditions(iSurface),
58  Base(iSurface),
60  theBounds(iSurface.theBounds) {}
MediumProperties theMediumProperties
Definition: Surface.h:106
GloballyPositioned< float > Base
Definition: Surface.h:40
BasicReferenceCounted ReferenceCountedInConditions
extstd::clone_ptr< Bounds > theBounds
Definition: Surface.h:107

◆ Surface() [7/7]

Surface::Surface ( Surface &&  iSurface)
inlineprotected

Definition at line 62 of file Surface.h.

63  : ReferenceCountedInConditions(iSurface),
64  Base(iSurface),
66  theBounds(std::move(iSurface.theBounds)) {}
MediumProperties theMediumProperties
Definition: Surface.h:106
GloballyPositioned< float > Base
Definition: Surface.h:40
BasicReferenceCounted ReferenceCountedInConditions
extstd::clone_ptr< Bounds > theBounds
Definition: Surface.h:107
def move(src, dest)
Definition: eostools.py:511

Member Function Documentation

◆ bounds()

const Bounds& Surface::bounds ( ) const
inline

Definition at line 87 of file Surface.h.

References theBounds.

Referenced by SiStripHitEffFromCalibTree::algoAnalyze(), SiStripCalibLorentzAngle::algoBeginJob(), SiStripLAProfileBooker::analyze(), HitEff::analyze(), SiPixelLorentzAnglePCLWorker::analyze(), TkLayerLess::barrelForwardLess(), SiStripDetInfoFileWriter::beginRun(), SiPixelLorentzAnglePCLHarvester::beginRun(), SiPixelPhase1Analyzer::BookBarrelBins(), SiPixelPhase1Analyzer::BookForwardBins(), BoundDiskSector::bounds(), RPCGeometryBuilderFromCondDB::build(), RPCGeometryBuilder::buildGeometry(), MuonTrackLoader::buildTrackExtra(), TrackExtenderWithMTDT< TrackCollection >::buildTrackExtra(), GEMEfficiencyAnalyzer::checkBounds(), DTGeometryValidate::compareShape(), GEMGeometryValidate::compareShape(), RPCGeometryValidate::compareShape(), ME0GeometryValidate::compareShape(), CSCGeometryValidate::compareShape(), ValidateGeometry::compareShape(), MTDSectorForwardDoubleLayer::compatible(), MTDTrayBarrelLayer::compatibleDets(), MuRodBarrelLayer::compatibleDets(), BoundSpan::compute(), TIBLayer::computeWindowSize(), fastsim::TrackerSimHitProducer::createHitOnDetector(), FWTGeoRecoGeometryESProducer::createShape(), SiPixelDigitizerAlgorithm::digitize(), shallow::drift(), Pixel3DDigitizerAlgorithm::drift(), Phase2TrackerDigitizerAlgorithm::drift(), SiPixelDigitizerAlgorithm::drift(), SiStripLorentzAngleCalibration::effectiveThickness(), InsideBoundsMeasurementEstimator::estimate(), Chi2MeasurementEstimatorBase::estimate(), SiStripHitEfficiencyWorker::fillForTraj(), ApeEstimator::fillHitVariables(), Phase2StripCPE::fillParam(), StripCPE::fillParams(), ClusterShapeHitFilter::fillStripData(), ClusterShapeHitFilter::getCotangent(), MuonDetIdAssociator::getDetIdPoints(), TrackDetectorAssociator::getTAMuonChamberMatches(), GlobalDetRodRangeZPhi::GlobalDetRodRangeZPhi(), PixelTripletNoTipGenerator::hitTriplets(), ThirdHitCorrection::init(), InnerDeltaPhi::initBarrelMS(), ThirdHitRZPredictionBase::initLayer(), ThirdHitPrediction::initLayer(), Disk::innerRadius(), MuonDetIdAssociator::insideElement(), deDxTools::isFarFromBorder(), ShallowGainCalibration::isFarFromBorder(), SiStripGainFromData::IsFarFromBorder(), SimpleNavigationSchool::linkNextForwardLayer(), TrajectoryManager::makeSinglePSimHit(), SiStripGainCosmicCalculator::moduleThickness(), SiStripGainCosmicCalculator::moduleWidth(), MSLayer::MSLayer(), MuonResidualsFromTrack::MuonResidualsFromTrack(), CylinderBuilderFromDet::operator()(), Disk::outerRadius(), TIBLayer::overlap(), PixelBlade::overlap(), Phase1PixelBlade::overlap(), phiSpan(), VectorHitBuilderAlgorithmBase::printCluster(), TrackingRecHitStripGSPlugin::process(), StandaloneTrackMonitor::processClusters(), SiHitDigitizer::processHit(), StandaloneTrackMonitor::processHit(), DeDxHitInfoProducer::processHit(), DeDxEstimatorProducer::processHit(), MuonSimHitProducer::produce(), SiStripTrackingRecHitsValid::rechitanalysis(), SiStripTrackingRecHitsValid::rechitanalysis_matched(), rSpan(), SETPatternRecognition::segmentCleaning(), l1tVertexFinder::Stub::setModuleInfo(), StripSubClusterShapeFilterBase::testLastHit(), tmtt::TrackerModule::TrackerModule(), TrajectoryAtInvalidHit::TrajectoryAtInvalidHit(), TracktoRPC::ValidRPCSurface(), SimpleNavigableLayer::wellInside(), and zSpan().

87 { return *theBounds; }
extstd::clone_ptr< Bounds > theBounds
Definition: Surface.h:107

◆ mediumProperties()

const MediumProperties& Surface::mediumProperties ( ) const
inline

◆ phiSpan()

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

Definition at line 90 of file Surface.h.

References bounds(), and Bounds::phiSpan().

Referenced by PixelInactiveAreaFinder::badAdjecentDetsEndcap(), PixelInactiveAreaFinder::detInfo(), PixelInactiveAreaFinder::getPhiSpanBarrel(), barrelUtil::overlap(), and tkDetUtil::overlapInPhi().

90 { return bounds().phiSpan(); }
std::pair< float, float > const & phiSpan() const
Definition: Bounds.h:65
const Bounds & bounds() const
Definition: Surface.h:87

◆ rSpan()

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

Definition at line 92 of file Surface.h.

References bounds(), and Bounds::rSpan().

Referenced by PixelInactiveAreaFinder::getRSpan().

92 { return bounds().rSpan(); }
std::pair< float, float > const & rSpan() const
Definition: Bounds.h:67
const Bounds & bounds() const
Definition: Surface.h:87

◆ setMediumProperties()

void Surface::setMediumProperties ( const MediumProperties mp)
inline

Definition at line 85 of file Surface.h.

References theMediumProperties.

85 { theMediumProperties = mp; }
MediumProperties theMediumProperties
Definition: Surface.h:106

◆ side() [1/2]

virtual Side Surface::side ( const LocalPoint p,
Scalar  tolerance = 0 
) const
pure virtual

Returns the side of the surface on which the point is. Not defined for 1-sided surfaces (Moebius leaf etc.) For normal 2-sided surfaces the meaning of side is surface type dependent.

Implemented in Plane, and Cone.

Referenced by analyticalErrorPropagation().

◆ side() [2/2]

virtual Side Surface::side ( const GlobalPoint p,
Scalar  tolerance = 0 
) const
inlinevirtual

Reimplemented in Plane.

Definition at line 74 of file Surface.h.

References AlCaHLTBitMon_ParallelJobs::p, side(), tolerance, and GloballyPositioned< float >::toLocal().

Referenced by side().

74 { return side(toLocal(p), tolerance); }
const double tolerance
virtual Side side(const LocalPoint &p, Scalar tolerance=0) const =0
LocalPoint toLocal(const GlobalPoint &gp) const

◆ tangentPlane() [1/2]

virtual ConstReferenceCountingPointer<TangentPlane> Surface::tangentPlane ( const GlobalPoint ) const
pure virtual

Tangent plane to surface from global point. Returns a plane, tangent to the Surface at a point. The point must be on the surface. The return type is a ReferenceCountingPointer, so the plane will be deleted automatically when no longer needed.

Implemented in Plane, Cylinder, and Cone.

Referenced by GlobalTrackerMuonAlignment::analyzeTrackTrack(), GlobalTrackerMuonAlignment::analyzeTrackTrajectory(), MuonSimHitProducer::applyMaterialEffects(), SteppingHelixStateInfo::getStateOnSurface(), and GlobalMuonTrackMatcher::samePlane().

◆ tangentPlane() [2/2]

virtual ConstReferenceCountingPointer<TangentPlane> Surface::tangentPlane ( const LocalPoint ) const
pure virtual

Tangent plane to surface from local point.

Implemented in Plane, Cylinder, and Cone.

◆ toGlobal()

GlobalPoint Surface::toGlobal ( const Point2DBase< Scalar, LocalTag lp) const
inline

Definition at line 79 of file Surface.h.

References PV2DBase< T, PointTag, FrameTag >::basicVector(), PV3DBase< T, PVType, FrameType >::basicVector(), GloballyPositioned< float >::position(), and GloballyPositioned< float >::rotation().

Referenced by Phase2TrackerDigitizerAlgorithm::accumulateSimHits(), SiPixelDigitizerAlgorithm::accumulateSimHits(), SiStripDigitizerAlgorithm::accumulateSimHits(), GEMPadDigiClusterValidation::analyze(), GEMPadDigiValidation::analyze(), GEMStripDigiValidation::analyze(), ME0DigisValidation::analyze(), ME0SegmentsValidation::analyze(), OuterTrackerMonitorTTCluster::analyze(), SiPixelTrackResidualSource::analyze(), OuterTrackerMonitorTTStub::analyze(), ElectronSeedAnalyzer::analyze(), TestHits::analyze(), TestSmoothHits::analyze(), TestTrackHits::analyze(), PixelLumiDQM::analyze(), SiPixelErrorEstimation::analyze(), SiPixelTrackingRecHitsValid::analyze(), TrackerTreeGenerator::analyze(), analyzer::SiPixelLorentzAngle::analyze(), MuonGeometrySanityCheck::analyze(), SiPixelLorentzAnglePCLWorker::analyze(), TrackerDpgAnalysis::analyze(), OverlapValidation::analyzeTrajectory(), TrackerDpgAnalysis::beginRun(), SiPixelPhase1Analyzer::BookBarrelBins(), SiPixelPhase1Analyzer::BookForwardBins(), SeedFromGenericPairOrTriplet::buildSeed(), VectorHitBuilderAlgorithm::buildVectorHit(), barrelUtil::calculatePhiWindow(), tkDetUtil::calculatePhiWindow(), CSCLayer::centerOfStrip(), CSCLayer::centerOfWireGroup(), BoundSpan::compute(), SiPixelErrorEstimation::computeAnglesFromDetPosition(), RodPlaneBuilderFromDet::computeBounds(), TIBRing::computeHelicity(), VectorHitBuilderAlgorithmBase::computeParallaxCorrection(), Phase1PixelBlade::computeRadiusRanges(), RodPlaneBuilderFromDet::computeRotation(), PrimitiveConversion::convert_rpc(), SiStripDigitizerAlgorithm::digitize(), AlignmentMonitorTracksFromTrajectories::event(), fastProp(), Cylinder::fastTangent(), SiPixelClusterModule::fill(), SiPixelRecHitsValid::fillBarrel(), SiPixelPhase1Analyzer::FillBins(), TrackerValidationVariables::fillHitQuantities(), Phase2TrackerMonitorDigi::fillITPixelDigiHistos(), Phase2TrackerMonitorDigi::fillOTDigiHistos(), MkFitGeometryESProducer::fillShapeAndPlacement(), Phase2TrackerValidateDigi::fillSimHitInfo(), TrackerOfflineValidationSummary::fillTree(), StubPtConsistency::getConsistency(), L1TMuon::GeometryTranslator::getGEMSpecificPoint(), DTTrigGeom::getGeom(), CSCSectorReceiverLUT::getGlobalEtaValue(), L1TMuon::GeometryTranslator::getME0SpecificPoint(), SiPixelClusterSource::getrococcupancye(), L1TMuon::GeometryTranslator::getRPCSpecificPoint(), TrackAssociatorByPositionImpl::getState(), ConversionSeedFilter::getTSOS(), GlobalDetRodRangeZPhi::GlobalDetRodRangeZPhi(), VectorHit::globalDirectionVH(), TValidTrackingRecHit::globalPosition(), TRecHit5DParamConstraint::globalPosition(), TRecHit2DPosConstraint::globalPosition(), BaseTrackerRecHit::globalPosition(), RKPropagatorInS::gtpFromLocal(), HelixBarrelCylinderCrossing::HelixBarrelCylinderCrossing(), PixelBrickedDigitizerAlgorithm::induce_signal(), Pixel3DDigitizerAlgorithm::induce_signal(), Phase2TrackerDigitizerAlgorithm::induce_signal(), JacobianCurvilinearToLocal::JacobianCurvilinearToLocal(), JacobianLocalToCurvilinear::JacobianLocalToCurvilinear(), tmtt::StubKiller::killStub(), TrajectoryManager::makeSinglePSimHit(), CosmicParametersDefinerForTP::momentum(), multiTrajectoryStateMode::momentumFromModeLocal(), GeneralNSurfaceDelimitedBounds::myInside(), RKPropagatorInR::myPropagate(), NuclearTrackCorrector::newTrajNeeded(), PropagationDirectionChooser::operator()(), CosmicTrackingParticleSelector::operator()(), SeedFromNuclearInteraction::outerHitPosition(), StraightLineBarrelCylinderCrossing::pathLength(), VectorHit::phase2clusterGlobalPos(), DeepCoreSeedGenerator::pixelFlipper(), multiTrajectoryStateMode::positionFromModeLocal(), VectorHitBuilderAlgorithmBase::printCluster(), JetCoreClusterSplitter::produce(), PixelClusterSelectorTopBottom::produce(), SeedProducerFromSoA::produce(), PixelTrackProducerFromSoA::produce(), ConvBremSeedProducer::produce(), FastPrimaryVertexWithWeightsProducer::produce(), FastPrimaryVertexProducer::produce(), reco::modules::CosmicTrackSplitter::produce(), JetCoreMCtruthSeedGenerator::produce(), DeepCoreSeedGenerator::produce(), TestHits::projectHit(), TestSmoothHits::projectHit(), TestTrackHits::projectHit(), SiStripRecHitsValid::projectHit(), GlobalRecHitsAnalyzer::projectHit(), GlobalRecHitsProducer::projectHit(), SiStripTrackingRecHitsValid::projectHit(), FastTrackerRecHitMatcher::projectOnly(), StraightLinePropagator::propagateParametersOnCylinder(), PreMixingSiStripWorker::put(), pTFrom2Stubs::rInvFrom2(), RPCIntegrator::RPCGlobalPosition(), DigiSimLinkAlgorithm::run(), SeedGeneratorForCRack::seeds(), SeedGeneratorForCosmics::seeds(), TrackerOfflineValidation::setUpTreeMembers(), Cone::side(), JetCoreMCtruthSeedGenerator::splittedClusterDirections(), DeepCoreSeedGenerator::splittedClusterDirections(), tmtt::Stub::Stub(), trackerDTC::Setup::stubPos(), Cylinder::tangentPlane(), TracktoRPC::thePoints(), SiLinearChargeDivider::TimeResponse(), GeomDet::toGlobal(), DTTrigGeom::toGlobal(), Geant4ePropagator::transformToG4SurfaceTarget(), ValidateGeometry::validateRPCGeometry(), and CosmicParametersDefinerForTP::vertex().

79  {
80  return GlobalPoint(rotation().multiplyInverse(lp.basicVector()) + position().basicVector());
81  }
const BasicVectorType & basicVector() const
Definition: PV2DBase.h:37
const BasicVectorType & basicVector() const
Definition: PV3DBase.h:53
const PositionType & position() const
Point3DBase< float, GlobalTag > GlobalPoint
const RotationType & rotation() const

◆ zSpan()

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

Definition at line 91 of file Surface.h.

References bounds(), and Bounds::zSpan().

Referenced by PixelInactiveAreaFinder::getZSpan().

91 { return bounds().zSpan(); }
std::pair< float, float > const & zSpan() const
Definition: Bounds.h:66
const Bounds & bounds() const
Definition: Surface.h:87

Member Data Documentation

◆ theBounds

extstd::clone_ptr<Bounds> Surface::theBounds
protected

Definition at line 107 of file Surface.h.

Referenced by bounds(), and Plane::computeSpan().

◆ theMediumProperties

MediumProperties Surface::theMediumProperties
protected

Definition at line 106 of file Surface.h.

Referenced by mediumProperties(), and setMediumProperties().