CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Attributes
Surface Class Referenceabstract

#include <Surface.h>

Inheritance diagram for Surface:
GloballyPositioned< float > BasicReferenceCounted BoundSurface Cone Cylinder Plane BoundCylinder BoundPlane BoundCylinder BoundaryPlane BoundPlane TangentPlane BoundDisk BoundDiskSector BoundDisk BoundDiskSector

Public Types

typedef GloballyPositioned< float > Base
 
typedef SurfaceOrientation::Side Side
 
- Public Types inherited from GloballyPositioned< float >
typedef Point3DBase< float,
GlobalTag
GlobalPoint
 
typedef Vector3DBase< float,
GlobalTag
GlobalVector
 
typedef Point3DBase< float,
LocalTag
LocalPoint
 
typedef Vector3DBase< float,
LocalTag
LocalVector
 
typedef Point3DBase< float,
GlobalTag
PositionType
 
typedef TkRotation< float > RotationType
 
typedef float Scalar
 

Public Member Functions

const MediumPropertiesmediumProperties () const
 
void setMediumProperties (const MediumProperties &mp)
 
void setMediumProperties (MediumProperties *mp)
 
virtual Side side (const LocalPoint &p, Scalar tolerance=0) const =0
 
virtual Side side (const GlobalPoint &p, Scalar tolerance=0) const
 
 Surface (const PositionType &pos, const RotationType &rot)
 
 Surface (const PositionType &pos, const RotationType &rot, MediumProperties *mp)
 
 Surface (const PositionType &pos, const RotationType &rot, MediumProperties mp)
 
 Surface (const Surface &iSurface)
 
virtual
ReferenceCountingPointer
< TangentPlane
tangentPlane (const GlobalPoint &) const =0
 
virtual
ReferenceCountingPointer
< TangentPlane
tangentPlane (const LocalPoint &) const =0
 
GlobalPoint toGlobal (const Point2DBase< Scalar, LocalTag > lp) const
 
virtual ~Surface ()=0
 
- Public Member Functions inherited from GloballyPositioned< float >
float eta () const
 
 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 ()
 
- Public Member Functions inherited from BasicReferenceCounted
void addReference () const
 
 BasicReferenceCounted ()
 
 BasicReferenceCounted (const BasicReferenceCounted &iRHS)
 
const BasicReferenceCountedoperator= (const BasicReferenceCounted &)
 
unsigned int references () const
 
void removeReference () const
 
virtual ~BasicReferenceCounted ()
 

Private Attributes

bool m_mpSet
 
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.

Definition at line 32 of file Surface.h.

Member Typedef Documentation

Definition at line 38 of file Surface.h.

Definition at line 36 of file Surface.h.

Constructor & Destructor Documentation

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

Definition at line 40 of file Surface.h.

40  :
41  Base( pos, rot), theMediumProperties(0.,0.), m_mpSet(false) {}
MediumProperties theMediumProperties
Definition: Surface.h:125
GloballyPositioned< float > Base
Definition: Surface.h:38
bool m_mpSet
Definition: Surface.h:126
Surface::Surface ( const PositionType pos,
const RotationType rot,
MediumProperties mp 
)
inline

Definition at line 43 of file Surface.h.

44  :
45  Base( pos, rot),
46  theMediumProperties(mp? *mp : MediumProperties(0.,0.)),
47  m_mpSet(mp)
48  {}
MediumProperties theMediumProperties
Definition: Surface.h:125
GloballyPositioned< float > Base
Definition: Surface.h:38
bool m_mpSet
Definition: Surface.h:126
Surface::Surface ( const PositionType pos,
const RotationType rot,
MediumProperties  mp 
)
inline

Definition at line 50 of file Surface.h.

51  :
52  Base( pos, rot),
54  m_mpSet(true)
55  {}
MediumProperties theMediumProperties
Definition: Surface.h:125
GloballyPositioned< float > Base
Definition: Surface.h:38
bool m_mpSet
Definition: Surface.h:126
Surface::Surface ( const Surface iSurface)
inline

Definition at line 57 of file Surface.h.

57  :
58  Base( iSurface),
60  m_mpSet(iSurface.m_mpSet)
61  {}
MediumProperties theMediumProperties
Definition: Surface.h:125
GloballyPositioned< float > Base
Definition: Surface.h:38
bool m_mpSet
Definition: Surface.h:126
Surface::~Surface ( )
inlinepure virtual

Definition at line 129 of file Surface.h.

129 {}

Member Function Documentation

const MediumProperties* Surface::mediumProperties ( ) const
inline
void Surface::setMediumProperties ( const MediumProperties mp)
inline

Definition at line 97 of file Surface.h.

References m_mpSet, and theMediumProperties.

Referenced by TrackerInteractionGeometry::TrackerInteractionGeometry().

97  {
99  m_mpSet = true;
100  }
MediumProperties theMediumProperties
Definition: Surface.h:125
bool m_mpSet
Definition: Surface.h:126
void Surface::setMediumProperties ( MediumProperties mp)
inline

Definition at line 102 of file Surface.h.

References m_mpSet, and theMediumProperties.

102  {
103  if (mp) {
104  theMediumProperties = *mp;
105  m_mpSet = true;
106  } else {
108  m_mpSet = false;
109  }
110  }
MediumProperties theMediumProperties
Definition: Surface.h:125
bool m_mpSet
Definition: Surface.h:126
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, Cylinder, and Cone.

Referenced by side().

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

Reimplemented in Plane, and Cone.

Definition at line 71 of file Surface.h.

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

71  {
72  return side( toLocal(p), tolerance);
73  }
virtual Side side(const LocalPoint &p, Scalar tolerance=0) const =0
LocalPoint toLocal(const GlobalPoint &gp) const
virtual ReferenceCountingPointer<TangentPlane> Surface::tangentPlane ( const GlobalPoint ) const
pure virtual

Tangent plane to surface from global point. Returns a new 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(), ConvBremSeedProducer::makeTrajectoryState(), TrajectoryManager::makeTrajectoryState(), and GlobalMuonTrackMatcher::samePlane().

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

Tangent plane to surface from local point.

Implemented in Plane, Cylinder, and Cone.

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

Definition at line 78 of file Surface.h.

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

Referenced by BetaCalculatorRPC::addInfoToCandidate(), ElectronSeedAnalyzer::analyze(), SiPixelTrackResidualSource::analyze(), TestHits::analyze(), TestSmoothHits::analyze(), TestTrackHits::analyze(), SiPixelErrorEstimation::analyze(), SiPixelTrackingRecHitsValid::analyze(), SiPixelLorentzAngle::analyze(), SiPixelMuonHLT::analyze(), SiStripMonitorMuonHLT::analyze(), RPCEfficiency::analyze(), TrackerDpgAnalysis::analyze(), BeamHaloAnalyzer::analyze(), SiStripMonitorMuonHLT::analyzeOnTrackClusters(), TrackingRecHitLessFromGlobalPosition::barrelForwardLess(), SortHitsByGlobalPosition::barrelForwardLess(), SortHitPointersByGlobalPosition::barrelForwardLess(), TrackerDpgAnalysis::beginRun(), BoundingBox::BoundingBox(), SeedFromGenericPairOrTriplet::buildSeed(), GlobalHaloAlgo::Calculate(), CSCHaloAlgo::Calculate(), tkDetUtil::calculatePhiWindow(), CSCLayer::centerOfStrip(), CSCLayer::centerOfWireGroup(), BasicTrajectoryState::checkGlobalParameters(), PixelHitMatcher::compatibleHits(), PixelHitMatcher::compatibleSeeds(), SiPixelErrorEstimation::computeAnglesFromDetPosition(), PixelCPEBase::computeAnglesFromDetPosition(), RodPlaneBuilderFromDet::computeBounds(), BladeShapeBuilderFromDet::computeBounds(), PlaneBuilderForGluedDet::computeRectBounds(), RodPlaneBuilderFromDet::computeRotation(), PlaneBuilderForGluedDet::computeRotation(), BladeShapeBuilderFromDet::computeRotation(), boundSpan::computeSpan(), BoundingBox::corners(), CSCSegtoRPC::CSCSegtoRPC(), SiLinearChargeDivider::DeconvolutionShape(), RingMaker::determineExtensions(), DTDigiSyncTOFCorr::digitizerOffset(), DTSegtoRPC::DTSegtoRPC(), ForwardMeasurementEstimator::estimate(), BarrelMeasurementEstimator::estimate(), AlignmentMonitorMuonResiduals::event(), AlignmentMonitorTracksFromTrajectories::event(), Cylinder::fastTangent(), SiPixelClusterModule::fill(), SiPixelRecHitsValid::fillBarrel(), MuonSimHitsValidAnalyzer::fillDT(), TrackerValidationVariables::fillHitQuantities(), GlobalHitsAnalyzer::fillMuon(), GlobalHitsProdHist::fillMuon(), GlobalHitsProducer::fillMuon(), RoadSearchCloudMakerAlgorithm::FillPixRecHitsIntoCloud(), RoadSearchCloudMakerAlgorithm::FillRecHitsIntoCloudGeneral(), MuonSimHitsValidAnalyzer::fillRPC(), TrackerOfflineValidationSummary::fillTree(), TrackerOfflineValidation::fillTree(), GlobalHitsAnalyzer::fillTrk(), GlobalHitsProdHist::fillTrk(), GlobalHitsProducer::fillTrk(), SiStripMonitorMuonHLT::GeometryFromTrackGeom(), DTTrigGeom::getGeom(), CSCSectorReceiverLUT::getGlobalEtaValue(), TrackAssociatorByPosition::getState(), CachedTrajectory::getWideTrajectory(), CSCDriftSim::getWireHit(), GlobalDetRangeRPhi::GlobalDetRangeRPhi(), GlobalDetRangeZPhi::GlobalDetRangeZPhi(), GlobalDetRodRangeZPhi::GlobalDetRodRangeZPhi(), TransientTrackingRecHit::globalPosition(), TrackerRecHit::globalPosition(), RKPropagatorInS::gtpFromLocal(), HelixBarrelCylinderCrossing::HelixBarrelCylinderCrossing(), HLTRPCTrigNoSyncFilter::hltFilter(), TrackingRecHitLessFromGlobalPosition::insideOutLess(), SortHitsByGlobalPosition::insideOutLess(), SortHitPointersByGlobalPosition::insideOutLess(), SiPixelGaussianSmearingRecHitConverterAlgorithm::isFlipped(), PixelCPEBase::isFlipped(), JacobianCurvilinearToLocal::JacobianCurvilinearToLocal(), JacobianLocalToCurvilinear::JacobianLocalToCurvilinear(), HSCPValidator::makeSimDigiPlotsRPC(), TrajectoryManager::makeSinglePSimHit(), SiTrackerGaussianSmearingRecHitConverter::matchHits(), CosmicParametersDefinerForTP::momentum(), MultiTrajectoryStateMode::momentumFromModeLocal(), GeneralNSurfaceDelimitedBounds::myInside(), SiStripMonitorMuonHLT::Normalizer(), PropagationDirectionChooser::operator()(), CosmicTrackingParticleSelector::operator()(), SeedFromNuclearInteraction::outerHitPosition(), StraightLineBarrelCylinderCrossing::pathLength(), SiLinearChargeDivider::PeakShape(), MultiTrajectoryStateMode::positionFromModeLocal(), PixelClusterSelectorTopBottom::produce(), DTDigitizer::produce(), TrackingRecHitProjector< ResultingHit >::project(), TestHits::projectHit(), TestSmoothHits::projectHit(), TestTrackHits::projectHit(), SiStripTrackingRecHitsValid::projectHit(), SiStripRecHitsValid::projectHit(), GlobalRecHitsAnalyzer::projectHit(), GlobalRecHitsProducer::projectHit(), GSRecHitMatcher::projectOnly(), RKPropagatorInR::propagate(), Geant4ePropagator::propagate(), StraightLinePropagator::propagateParametersOnCylinder(), RoadSearchHelixMakerAlgorithm::run(), SiStripDigitizerAlgorithm::run(), Cone::side(), TrackClusterSplitter::splitCluster(), Cylinder::tangentPlane(), TkGluedMeasurementDet::testStrips(), GeomDet::toGlobal(), NavSurface::toGlobal(), DTTrigGeom::toGlobal(), TracktoRPC::TracktoRPC(), ValidateGeometry::validateCSChamberGeometry(), ValidateGeometry::validateCSCLayerGeometry(), ValidateGeometry::validateDTChamberGeometry(), ValidateGeometry::validateDTLayerGeometry(), ValidateGeometry::validateRPCGeometry(), and CosmicParametersDefinerForTP::vertex().

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

Member Data Documentation

bool Surface::m_mpSet
private

Definition at line 126 of file Surface.h.

Referenced by mediumProperties(), and setMediumProperties().

MediumProperties Surface::theMediumProperties
private

Definition at line 125 of file Surface.h.

Referenced by mediumProperties(), and setMediumProperties().