#include <GloballyPositioned.h>
Classes | |
class | ToLocal |
Public Types | |
typedef Point3DBase< T, GlobalTag > | GlobalPoint |
typedef Vector3DBase< T, GlobalTag > | GlobalVector |
typedef Point3DBase< T, LocalTag > | LocalPoint |
typedef Vector3DBase< T, LocalTag > | LocalVector |
typedef Point3DBase< T, GlobalTag > | PositionType |
typedef TkRotation< T > | RotationType |
typedef T | Scalar |
Public Member Functions | |
T | eta () const |
GloballyPositioned (const PositionType &pos, const RotationType &rot) | |
void | move (const GlobalVector &displacement) |
T | phi () const |
const PositionType & | position () const |
void | rotate (const RotationType &rotation) |
const RotationType & | rotation () const |
template<class U > | |
Point3DBase< U, GlobalTag > | toGlobal (const Point3DBase< U, LocalTag > &lp) const |
GlobalVector | toGlobal (const LocalVector &lv) const |
template<class U > | |
Vector3DBase< U, GlobalTag > | toGlobal (const Vector3DBase< U, LocalTag > &lv) const |
GlobalPoint | toGlobal (const LocalPoint &lp) const |
template<class U > | |
Point3DBase< U, LocalTag > | toLocal (const Point3DBase< U, GlobalTag > &gp) const |
LocalPoint | toLocal (const GlobalPoint &gp) const |
template<class U > | |
Vector3DBase< U, LocalTag > | toLocal (const Vector3DBase< U, GlobalTag > &gv) const |
LocalVector | toLocal (const GlobalVector &gv) const |
virtual | ~GloballyPositioned () |
Static Public Member Functions | |
static T | iniEta () |
static T | iniPhi () |
Private Member Functions | |
void | resetCache () |
void | setCache () |
Private Attributes | |
T | theEta |
T | thePhi |
PositionType | thePos |
RotationType | theRot |
Base class for surfaces and volumes positioned in global 3D space. This class defines a cartesian reference frame, called in the following the local frame. It provides position, orientation, and frame transformations for points and vectors.
Definition at line 18 of file GloballyPositioned.h.
typedef Point3DBase<T,GlobalTag> GloballyPositioned< T >::GlobalPoint |
Reimplemented in MagVolume.
Definition at line 24 of file GloballyPositioned.h.
typedef Vector3DBase<T,GlobalTag> GloballyPositioned< T >::GlobalVector |
Reimplemented in MagVolume.
Definition at line 26 of file GloballyPositioned.h.
typedef Point3DBase<T,LocalTag> GloballyPositioned< T >::LocalPoint |
Reimplemented in MagVolume.
Definition at line 25 of file GloballyPositioned.h.
typedef Vector3DBase<T,LocalTag> GloballyPositioned< T >::LocalVector |
Reimplemented in MagVolume.
Definition at line 27 of file GloballyPositioned.h.
typedef Point3DBase<T,GlobalTag> GloballyPositioned< T >::PositionType |
Definition at line 22 of file GloballyPositioned.h.
typedef TkRotation<T> GloballyPositioned< T >::RotationType |
Definition at line 23 of file GloballyPositioned.h.
typedef T GloballyPositioned< T >::Scalar |
Definition at line 21 of file GloballyPositioned.h.
GloballyPositioned< T >::GloballyPositioned | ( | const PositionType & | pos, |
const RotationType & | rot | ||
) | [inline] |
Definition at line 36 of file GloballyPositioned.h.
: thePos(pos), theRot(rot) {resetCache();}
virtual GloballyPositioned< T >::~GloballyPositioned | ( | ) | [inline, virtual] |
Definition at line 39 of file GloballyPositioned.h.
{}
T GloballyPositioned< T >::eta | ( | ) | const [inline] |
Definition at line 49 of file GloballyPositioned.h.
Referenced by TrajectoryFactoryBase::sameSurface().
static T GloballyPositioned< T >::iniEta | ( | ) | [inline, static] |
Definition at line 32 of file GloballyPositioned.h.
Referenced by GloballyPositioned< align::Scalar >::eta(), and GloballyPositioned< align::Scalar >::resetCache().
{
return 999.9978;
}
static T GloballyPositioned< T >::iniPhi | ( | ) | [inline, static] |
Definition at line 29 of file GloballyPositioned.h.
Referenced by GloballyPositioned< align::Scalar >::phi(), and GloballyPositioned< align::Scalar >::resetCache().
{
return 999.9978;
}
void GloballyPositioned< T >::move | ( | const GlobalVector & | displacement | ) | [inline] |
Move the position of the frame in the global frame. Useful e.g. for alignment.
Definition at line 153 of file GloballyPositioned.h.
Referenced by AlignableComposite::addComponent(), AlignableBeamSpot::initialize(), AlignableDetUnit::move(), AlignableComposite::move(), AlignableBeamSpot::move(), and PedeSteerer::PedeSteerer().
{ thePos += displacement; resetCache(); }
T GloballyPositioned< T >::phi | ( | ) | const [inline] |
Definition at line 45 of file GloballyPositioned.h.
Referenced by TECLayer::computeCrossings(), TECLayer::overlap(), TrajectoryFactoryBase::sameSurface(), and whatIsTheNextStep().
const PositionType& GloballyPositioned< T >::position | ( | ) | const [inline] |
Definition at line 41 of file GloballyPositioned.h.
Referenced by MuonNavigationSchool::addEndcapLayer(), MuonTkNavigationSchool::addEndcapLayer(), SiStripCalibLorentzAngle::algoBeginJob(), TestHits::analyze(), SiPixelErrorEstimation::analyze(), MuonGeometrySVGTemplate::analyze(), TestTrackHits::analyze(), GlobalTrackerMuonAlignment::analyzeTrackTrack(), GlobalTrackerMuonAlignment::analyzeTrackTrajectory(), GeomDetLess::barrelForwardLess(), MagGeoBuilderFromDDD::buildInterpolator(), MagGeoBuilderFromDDD::buildMagVolumes(), DirectTrackerNavigation::checkCompatible(), DirectMuonNavigation::checkCompatible(), MuDetRing::compatible(), MuDetRod::compatibleDets(), MuRodBarrelLayer::compatibleDets(), MuDetRing::compatibleDets(), NavVolume6Faces::computeBounds(), PixelCPEBase::computeLorentzShifts(), RodPlaneBuilderFromDet::computeRotation(), MuRingForwardDoubleLayer::computeSurface(), AlignableSiStripDet::consistifyAlignments(), ThreePlaneCrossing::crossing(), MuonShowerInformationFiller::crossingPoint(), BeamHaloPropagator::crossingTk(), MultipleScatteringGeometry::detLayers(), DTDigiSyncTOFCorr::digitizerOffset(), shallow::drift(), PixelCPEBase::driftDirection(), StripCPE::driftDirection(), SiHitDigitizer::DriftDirection(), SiPixelDigitizerAlgorithm::DriftDirection(), MuonPatternRecoDumper::dumpLayer(), cms::HICSeedMeasurementEstimator::estimate(), HICMeasurementEstimator::estimate(), EtaPhiMeasurementEstimator::estimate(), PropagateToMuon::extrapolate(), RoadSearchTrackCandidateMakerAlgorithm::extrapolateTrajectory(), HIPAlignmentAlgorithm::fillRoot(), FWRecoGeometryESProducer::fillShapeAndPlacement(), DTTimingExtractor::fillTiming(), CSCEfficiency::filter(), KFTrajectoryFitter::fit(), SiTrackerGaussianSmearingRecHitConverter::gaussianSmearing(), HICMeasurementEstimator::getDetectorCode(), ClusterShapeHitFilter::getDrift(), Alignable::globalPosition(), SeedFromProtoTrack::init(), TrajectoryManager::initializeLayerMap(), ConvBremSeedProducer::initializeLayerMap(), CSCStripElectronicsSim::initParameters(), GeomDetLess::insideOutLess(), SmartPropagator::insideTkVol(), SteppingHelixPropagator::isYokeVolume(), StripCPEfromTemplate::localParameters(), PixelCPEGeneric::localPosition(), PixelCPETemplateReco::localPosition(), PixelCPEBase::lorentzShiftX(), PixelCPEBase::lorentzShiftY(), OutInConversionSeedFinder::makeEstimator(), TSGForRoadSearch::makeSeeds_3(), TrajectoryManager::makeSinglePSimHit(), MagGeoBuilderFromDDD::volumeHandle::maxPhi(), MagGeoBuilderFromDDD::volumeHandle::maxZ(), MagGeoBuilderFromDDD::volumeHandle::minZ(), GlobalTrackerMuonAlignment::misalignMuonL(), MuRingForwardDoubleLayer::MuRingForwardDoubleLayer(), MuRingForwardLayer::MuRingForwardLayer(), DTTTrigSyncTOFCorr::offset(), DTTTrigSyncFromDB::offset(), CylinderBuilderFromDet::operator()(), MuonDetLayerComp::operator()(), StraightLinePlaneCrossing::pathLength(), HelixForwardPlaneCrossing::pathLength(), HelixArbitraryPlaneCrossing::pathLength(), GeometricSearchDet::position(), SurveyDet::position(), GeomDet::position(), MuonNavigationPrinter::printLayer(), MuonNavigationPrinter::printLayers(), GlobalMuonToMuonProducer::printTrackRecHits(), ShallowTrackClustersProducer::produce(), TrackingRecHitProjector< ResultingHit >::project(), GSRecHitMatcher::projectOnly(), Geant4ePropagator::propagate(), CachedTrajectory::propagate(), cms::HICMuonPropagator::propagate(), cms::FastMuPropagator::propagate(), SteppingHelixPropagator::propagate(), NavPropagator::propagateInVolume(), AnalyticalPropagator::propagateParametersOnCylinder(), RKPropagatorInS::propagateParametersOnCylinder(), RKPropagatorInS::propagateParametersOnPlane(), AnalyticalPropagator::propagateWithPath(), NavPropagator::propagateWithPath(), CSCPairResidualsConstraint::radius(), CSCEfficiency::recHitSegment_Efficiencies(), SteppingHelixPropagator::refToMagVolume(), KFBasedPixelFitter::run(), MagGeoBuilderFromDDD::volumeHandle::sameSurface(), TrajectoryFactoryBase::sameSurface(), HICMeasurementEstimator::setCuts(), ParticlePropagator::setPropagationConditions(), MagGeoBuilderFromDDD::volumeHandle::setSurface(), PixelCPEBase::setTheDet(), CSCPairResidualsConstraint::setZplane(), TrackClusterSplitter::splitCluster(), FrameChanger::toFrame(), GloballyPositioned< align::Scalar >::toGlobal(), GloballyPositioned< align::Scalar >::toLocal(), LaserDQM::trackerStatistics(), FrameChanger::transformPlane(), whatIsTheNextStep(), and AlignableDataIO::writeAbsPos().
{ return thePos;}
void GloballyPositioned< T >::resetCache | ( | ) | [inline, private] |
Definition at line 172 of file GloballyPositioned.h.
Referenced by GloballyPositioned< align::Scalar >::GloballyPositioned(), GloballyPositioned< align::Scalar >::move(), and GloballyPositioned< align::Scalar >::rotate().
void GloballyPositioned< T >::rotate | ( | const RotationType & | rotation | ) | [inline] |
Rotate the frame in the global frame. Useful e.g. for alignment.
Definition at line 161 of file GloballyPositioned.h.
Referenced by AlignableBeamSpot::initialize(), AlignableBeamSpot::rotateInGlobalFrame(), AlignableComposite::rotateInGlobalFrame(), and AlignableDetUnit::rotateInGlobalFrame().
{ theRot *= rotation; resetCache(); }
const RotationType& GloballyPositioned< T >::rotation | ( | void | ) | const [inline] |
Definition at line 43 of file GloballyPositioned.h.
Referenced by GlobalTrackerMuonAlignment::analyzeTrackTrack(), GlobalTrackerMuonAlignment::analyzeTrackTrajectory(), MagGeoBuilderFromDDD::bLayer::bLayer(), MagGeoBuilderFromDDD::buildInterpolator(), MagGeoBuilderFromDDD::buildMagVolumes(), PixelCPEBase::computeLorentzShifts(), AlignableSiStripDet::consistifyAlignments(), PixelCPEBase::driftDirection(), SiHitDigitizer::DriftDirection(), SiPixelDigitizerAlgorithm::DriftDirection(), FWRecoGeometryESProducer::fillShapeAndPlacement(), KFTrajectoryFitter::fit(), Alignable::globalRotation(), JacobianCartesianToLocal::JacobianCartesianToLocal(), JacobianCurvilinearToLocal::JacobianCurvilinearToLocal(), JacobianLocalToCartesian::JacobianLocalToCartesian(), JacobianLocalToCurvilinear::JacobianLocalToCurvilinear(), PixelCPEGeneric::localPosition(), PixelCPETemplateReco::localPosition(), GlobalTrackerMuonAlignment::misalignMuonL(), Geant4ePropagator::propagate(), SteppingHelixPropagator::propagate(), SteppingHelixPropagator::refToMagVolume(), GloballyPositioned< align::Scalar >::rotate(), GeomDet::rotation(), SurveyDet::rotation(), KFBasedPixelFitter::run(), FrameChanger::toFrame(), GloballyPositioned< align::Scalar >::toGlobal(), GloballyPositioned< align::Scalar >::toLocal(), ErrorFrameTransformer::transform(), FrameChanger::transformPlane(), and AlignableDataIO::writeAbsPos().
{ return theRot;}
void GloballyPositioned< T >::setCache | ( | ) | [inline, private] |
GlobalPoint GloballyPositioned< T >::toGlobal | ( | const LocalPoint & | lp | ) | const [inline] |
Transform a local point (i.e. a point with coordinates in the local frame) to the global frame
Definition at line 82 of file GloballyPositioned.h.
Referenced by RKPropagatorInS::globalMomentum(), RKPropagatorInS::globalPosition(), RKLocalFieldProvider::inTesla(), PathToPlane2Order::operator()(), RKPropagatorInS::propagateParametersOnPlane(), SpecialCylindricalMFGrid::toGridFrame(), TrapezoidalCartesianMFGrid::TrapezoidalCartesianMFGrid(), and GlobalGridWrapper::valueInTesla().
{ return GlobalPoint( rotation().multiplyInverse( lp.basicVector()) + position().basicVector()); }
Vector3DBase< U, GlobalTag> GloballyPositioned< T >::toGlobal | ( | const Vector3DBase< U, LocalTag > & | lv | ) | const [inline] |
Transform a local vector with different float precision from the one of the reference frame, and return a global vector with the same precision as the input one.
Definition at line 111 of file GloballyPositioned.h.
{ return Vector3DBase< U, GlobalTag>( rotation().multiplyInverse( lv.basicVector())); }
GlobalVector GloballyPositioned< T >::toGlobal | ( | const LocalVector & | lv | ) | const [inline] |
Transform a local vector (i.e. a vector with coordinates in the local frame) to the global frame
Definition at line 101 of file GloballyPositioned.h.
{ return GlobalVector( rotation().multiplyInverse( lv.basicVector())); }
Point3DBase< U, GlobalTag> GloballyPositioned< T >::toGlobal | ( | const Point3DBase< U, LocalTag > & | lp | ) | const [inline] |
Transform a local point with different float precision from the one of the reference frame, and return a global point with the same precision as the input one.
Definition at line 93 of file GloballyPositioned.h.
{ return Point3DBase< U, GlobalTag>( rotation().multiplyInverse( lp.basicVector()) + position().basicVector()); }
LocalVector GloballyPositioned< T >::toLocal | ( | const GlobalVector & | gv | ) | const [inline] |
Transform a global vector (i.e. a vector with coordinates in the global frame) to the local frame
Definition at line 136 of file GloballyPositioned.h.
{ return LocalVector( rotation() * gv.basicVector()); }
Point3DBase< U, LocalTag> GloballyPositioned< T >::toLocal | ( | const Point3DBase< U, GlobalTag > & | gp | ) | const [inline] |
Transform a global point with different float precision from the one of the reference frame, and return a local point with the same precision as the input one.
Definition at line 128 of file GloballyPositioned.h.
{ return Point3DBase< U, LocalTag>( rotation() * (gp.basicVector()-position().basicVector())); }
Vector3DBase< U, LocalTag> GloballyPositioned< T >::toLocal | ( | const Vector3DBase< U, GlobalTag > & | gv | ) | const [inline] |
Transform a global vector with different float precision from the one of the reference frame, and return a local vector with the same precision as the input one.
Definition at line 146 of file GloballyPositioned.h.
{ return Vector3DBase< U, LocalTag>( rotation() * gv.basicVector()); }
LocalPoint GloballyPositioned< T >::toLocal | ( | const GlobalPoint & | gp | ) | const [inline] |
Transform a global point (i.e. a point with coordinates in the global frame) to the local frame
Definition at line 118 of file GloballyPositioned.h.
Referenced by RPCEfficiency::analyze(), TkGluedMeasurementDet::collectRecHits(), NavVolume6Faces::computeBounds(), PlaneBuilderForGluedDet::computeRectBounds(), GsfConstraintAtVertex::constrainAtPoint(), BasicTrajectoryState::createLocalParameters(), CSCSegtoRPC::CSCSegtoRPC(), DTSegtoRPC::DTSegtoRPC(), DTTrigGeomUtils::DTTrigGeomUtils(), RoadSearchCloudMakerAlgorithm::FillRecHitsIntoCloudGeneral(), SpecialCylindricalMFGrid::fromGridFrame(), DTTrigGeom::getGeom(), TrackDetectorAssociator::getTAMuonChamberMatches(), HelixBarrelCylinderCrossing::HelixBarrelCylinderCrossing(), HelixBarrelPlaneCrossing2OrderLocal::HelixBarrelPlaneCrossing2OrderLocal(), RKLocalFieldProvider::inTesla(), SteppingHelixPropagator::loadState(), DTTrigGeom::localPosition(), SiTrackerGaussianSmearingRecHitConverter::matchHits(), OuterDetCompatibility::maximalLocalDisplacement(), PathToPlane2Order::operator()(), DTDigitizer::produce(), TrackingRecHitProjector< ResultingHit >::project(), TestSmoothHits::projectHit(), GlobalRecHitsProducer::projectHit(), TestTrackHits::projectHit(), TestHits::projectHit(), GlobalRecHitsAnalyzer::projectHit(), SiStripRecHitsValid::projectHit(), SiStripTrackingRecHitsValid::projectHit(), GSRecHitMatcher::projectOnly(), RKPropagatorInZ::propagate(), Geant4ePropagator::propagate(), RKPropagatorInR::propagate(), Propagator::propagate(), RKPropagatorInS::propagateParametersOnCylinder(), RKPropagatorInS::propagateParametersOnPlane(), StraightLinePropagator::propagateParametersOnPlane(), RectangularCartesianMFGrid::RectangularCartesianMFGrid(), RectangularCylindricalMFGrid::RectangularCylindricalMFGrid(), RKPropagatorInS::rkMomentum(), RKPropagatorInS::rkPosition(), MagGeoBuilderFromDDD::volumeHandle::sameSurface(), CSCPairResidualsConstraint::setZplane(), SpecialCylindricalMFGrid::SpecialCylindricalMFGrid(), TkGluedMeasurementDet::testStrips(), FrameChanger::toFrame(), NavSurface::toLocal(), DTTrigGeom::toLocal(), toLocal(), GeomDet::toLocal(), FrameChanger::transformPlane(), TrapezoidalCartesianMFGrid::TrapezoidalCartesianMFGrid(), TrapezoidalCylindricalMFGrid::TrapezoidalCylindricalMFGrid(), DTTrigGeom::tubePosInCh(), and TrapezoidalCylindricalMFGrid::uncheckedValueInTesla().
{ return LocalPoint( rotation() * (gp.basicVector()-position().basicVector())); }
T GloballyPositioned< T >::theEta [mutable, private] |
Definition at line 192 of file GloballyPositioned.h.
Referenced by GloballyPositioned< align::Scalar >::eta(), GloballyPositioned< align::Scalar >::resetCache(), and GloballyPositioned< align::Scalar >::setCache().
T GloballyPositioned< T >::thePhi [mutable, private] |
Definition at line 191 of file GloballyPositioned.h.
Referenced by GloballyPositioned< align::Scalar >::phi(), GloballyPositioned< align::Scalar >::resetCache(), and GloballyPositioned< align::Scalar >::setCache().
PositionType GloballyPositioned< T >::thePos [private] |
Definition at line 168 of file GloballyPositioned.h.
Referenced by GloballyPositioned< align::Scalar >::eta(), GloballyPositioned< align::Scalar >::move(), GloballyPositioned< align::Scalar >::phi(), GloballyPositioned< align::Scalar >::position(), GloballyPositioned< align::Scalar >::resetCache(), and GloballyPositioned< align::Scalar >::setCache().
RotationType GloballyPositioned< T >::theRot [private] |
Definition at line 169 of file GloballyPositioned.h.
Referenced by GloballyPositioned< align::Scalar >::rotate(), and GloballyPositioned< align::Scalar >::rotation().