![]() |
Analysis Software
Documentation for sPHENIX simulation software
|
Abstract Base Class for tracking surfaces. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Surfaces/Surface.hpp>
Inheritance diagram for Acts::Surface:
Collaboration diagram for Acts::Surface:Public Types | |
| enum | SurfaceType { Cone = 0, Cylinder = 1, Disc = 2, Perigee = 3, Plane = 4, Straw = 5, Curvilinear = 6, Other = 7 } |
Static Public Member Functions | |
| template<class T , typename... Args> | |
| static std::shared_ptr< T > | makeShared (Args &&...args) |
Static Public Attributes | |
| static std::array< std::string, SurfaceType::Other > | s_surfaceTypeNames |
| Helper strings for screen output. | |
Protected Member Functions | |
| Surface (const Transform3 &transform=Transform3::Identity()) | |
| Surface (const Surface &other) | |
| Surface (const DetectorElementBase &detelement) | |
| Surface (const GeometryContext &gctx, const Surface &other, const Transform3 &shift) | |
Protected Attributes | |
| Transform3 | m_transform = Transform3::Identity() |
| const DetectorElementBase * | m_associatedDetElement {nullptr} |
| Pointer to the a DetectorElementBase. | |
| const Layer * | m_associatedLayer {nullptr} |
| const TrackingVolume * | m_associatedTrackingVolume {nullptr} |
| std::shared_ptr< const ISurfaceMaterial > | m_surfaceMaterial |
| Possibility to attach a material description. | |
Protected Attributes inherited from Acts::GeometryObject | |
| GeometryIdentifier | m_geometryId |
Private Member Functions | |
| AlignmentToBoundMatrix | alignmentToBoundDerivativeWithoutCorrection (const GeometryContext &gctx, const FreeVector ¶meters) const |
Abstract Base Class for tracking surfaces.
The Surface class builds the core of the Acts Tracking Geometry. All other geometrical objects are either extending the surface or are built from it.
Surfaces are either owned by Detector elements or the Tracking Geometry, in which case they are not copied within the data model objects.
Definition at line 63 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 63 of file Surface.hpp
| enum Acts::Surface::SurfaceType |
This enumerator simplifies the persistency & calculations, by saving a dynamic_cast, e.g. for persistency
Definition at line 70 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 70 of file Surface.hpp
|
protected |
Constructor with Transform3 as a shared object
| transform | Transform3 positions the surface in 3D global space |
Definition at line 26 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 26 of file Surface.cpp
|
protected |
Copy constructor
| other | Source surface for copy. |
Definition at line 32 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 32 of file Surface.cpp
|
protected |
Constructor from DetectorElementBase: Element proxy
| detelement | Detector element which is represented by this surface |
Definition at line 29 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 29 of file Surface.cpp
|
protected |
Copy constructor with optional shift
| gctx | The current geometry context object, e.g. alignment |
| other | Source surface for copy |
| shift | Additional transform applied as: shift * transform |
Definition at line 38 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 38 of file Surface.cpp
|
virtualdefault |
| Acts::AlignmentToBoundMatrix Acts::Surface::alignmentToBoundDerivative | ( | const GeometryContext & | gctx, |
| const FreeVector & | parameters, | ||
| const FreeVector & | pathDerivative | ||
| ) | const |
The derivative of bound track parameters w.r.t. alignment parameters of its reference surface (i.e. local frame origin in global 3D Cartesian coordinates and its rotation represented with extrinsic Euler angles)
| gctx | The current geometry context object, e.g. alignment change of alignment parameters |
| parameters | is the free parameters |
| pathDerivative | is the derivative of free parameters w.r.t. path length |
Definition at line 58 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 58 of file Surface.cpp
|
private |
Calculate the derivative of bound track parameters w.r.t. alignment parameters of its reference surface (i.e. origin in global 3D Cartesian coordinates and its rotation represented with extrinsic Euler angles) without any path correction
| gctx | The current geometry context object, e.g. alignment |
| parameters | is the free parameters |
Definition at line 79 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 79 of file Surface.cpp
References Acts::eAlignmentCenter0, Acts::eAlignmentRotation0, Acts::eAlignmentSize, Acts::eBoundLoc0, Acts::eFreePos0, Acts::eX, Acts::eY, Acts::eZ, position, Acts::detail::rotationToLocalAxesDerivative(), and Acts::Test::transform.
Here is the call graph for this function:
|
virtual |
Calculate the derivative of path length at the geometry constraint or point-of-closest-approach w.r.t. alignment parameters of the surface (i.e. local frame origin in global 3D Cartesian coordinates and its rotation represented with extrinsic Euler angles)
| gctx | The current geometry context object, e.g. alignment |
| parameters | is the free parameters |
Reimplemented in Acts::LineSurface, Acts::CylinderSurface, and Acts::ConeSurface.
Definition at line 118 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 118 of file Surface.cpp
References dz, Acts::eAlignmentCenter0, Acts::eAlignmentRotation0, Acts::eFreeDir0, Acts::eFreePos0, position, Acts::detail::rotationToLocalAxesDerivative(), and Acts::Test::transform.
Here is the call graph for this function:| void Acts::Surface::assignDetectorElement | ( | const DetectorElementBase & | detelement | ) |
Assign a detector element
| detelement | Detector element which is represented by this surface |
Definition at line 354 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 354 of file Surface.cpp
References m_transform().
Here is the call graph for this function:| void Acts::Surface::assignSurfaceMaterial | ( | std::shared_ptr< const ISurfaceMaterial > | material | ) |
Assign the surface material description
The material is usually derived in a complicated way and loaded from a framework given source. As various surfaces may share the same source this is provided by a shared pointer
| material | Material description associated to this surface |
Definition at line 362 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 362 of file Surface.cpp
References testing::internal::move().
Referenced by Acts::addLayerProtoMaterial(), Acts::TrackingVolume::assignBoundaryMaterial(), Acts::DD4hepDetectorSurfaceFactory::attachSurfaceMaterial(), Acts::Test::BOOST_AUTO_TEST_CASE(), ActsExamples::Generic::LayerBuilderT< detector_element_t >::centralLayers(), ActsExamples::Generic::LayerBuilderT< detector_element_t >::constructEndcapLayers(), Acts::JsonMaterialDecorator::decorate(), Acts::TrackingVolume::glueTrackingVolume(), Acts::CylinderVolumeHelper::glueTrackingVolumes(), Acts::Test::CylindricalTrackingGeometry::operator()(), Acts::Geant4PhysicalVolumeConverter::surface(), ActsExamples::Telescope::TelescopeDetectorElement::TelescopeDetectorElement(), and Acts::TrackingVolume::updateBoundarySurface().
Here is the call graph for this function:
Here is the caller graph for this function:| const Acts::DetectorElementBase * Acts::Surface::associatedDetectorElement | ( | ) | const |
Return method for the associated Detector Element
Definition at line 336 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 336 of file Surface.cpp
Referenced by Acts::Experimental::GeometryIdGenerator::assignGeometryId(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::PodioUtil::convertSurfaceToPodio(), Acts::EventDataView3DTest::createDetector(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::filter(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::filter(), Acts::detail::kalmanHandleNoMeasurement(), Acts::SurfaceSelector::operator()(), ActsFatras::BoundParametersSmearer< RandomEngine, kSmearDIM >::operator()(), ActsExamples::DigitizationConfigurator::operator()(), and ActsExamples::RootPlanarClusterWriter::writeT().
Here is the caller graph for this function:| const Acts::Layer * Acts::Surface::associatedLayer | ( | ) | const |
Return method for the associated Layer in which the surface is embedded
Definition at line 341 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 341 of file Surface.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the caller graph for this function:| void Acts::Surface::associateLayer | ( | const Layer & | lay | ) |
Set Associated Layer Many surfaces can be associated to a Layer, but it might not be known yet during construction of the layer, this can be set afterwards
| lay | the assignment Layer by reference |
Definition at line 367 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 367 of file Surface.cpp
Referenced by Acts::LayerCreator::associateSurfacesToLayer(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::PlaneLayer::buildApproachDescriptor(), Acts::CylinderLayer::CylinderLayer(), Acts::Test::CubicTrackingGeometry::operator()(), Acts::PlaneLayer::PlaneLayer(), and Acts::GenericApproachDescriptor::registerLayer().
Here is the caller graph for this function:
|
pure virtual |
Return method for SurfaceBounds
Implemented in Acts::LineSurface, Acts::CylinderSurface, Acts::ConeSurface, Acts::PlaneSurface, and Acts::SurfaceStub.
Referenced by Acts::adjustBinUtility(), ActsFatras::PlanarSurfaceMask::apply(), Acts::Svg::SurfaceConverter::convert(), Acts::PodioUtil::convertSurfaceToPodio(), Acts::LayerArrayCreator::createNavigationSurface(), Acts::SurfaceArrayCreator::createVariableAxis(), ActsExamples::SeedingFTFAlgorithm::LayerNumbering(), meanFromFree(), ActsExamples::DigitizationConfigurator::operator()(), operator==(), Acts::TGeoCylinderDiscSplitter::split(), ActsExamples::TGeoITkModuleSplitter::splitBarrelModule(), ActsExamples::TGeoITkModuleSplitter::splitDiscModule(), DD4hepTestsHelper::surfaceToXML(), Acts::SurfaceJsonConverter::toJson(), Acts::SurfaceJsonConverter::toJsonDetray(), and ActsExamples::RootMaterialTrackWriter::writeT().
Here is the caller graph for this function:
|
virtual |
Calculate the jacobian from local to global which the surface knows best, hence the calculation is done here.
| gctx | The current geometry context object, e.g. alignment |
| boundParams | is the bound parameters vector |
Reimplemented in Acts::LineSurface.
Definition at line 260 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 260 of file Surface.cpp
References Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, Acts::eFreeDir0, Acts::eFreeDir1, Acts::eFreeDir2, Acts::eFreePos0, Acts::eFreeQOverP, Acts::eFreeTime, Acts::VectorHelpers::evaluateTrigonomics(), position, and Acts::detail::transformBoundToFreeParameters().
Referenced by Acts::CovarianceCache::CovarianceCache(), Acts::StraightLineStepper::resetState(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::resetState(), Acts::StraightLineStepper::update(), Acts::EigenStepper< extensionlist_t, auctioneer_t >::update(), and Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::ComponentProxy::update().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Return method for the surface center by reference
| gctx | The current geometry context object, e.g. alignment |
Definition at line 230 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 230 of file Surface.cpp
References Acts::Test::transform.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), Acts::PlaneLayer::buildApproachDescriptor(), Acts::Svg::SurfaceConverter::convert(), Acts::EventDataView3DTest::createDetector(), ActsAlignmentStates::get_projectionXY(), Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getDistanceAndMomentum(), ActsExamples::SeedingFTFAlgorithm::LayerNumbering(), normal(), Acts::Experimental::detail::CenterReferenceGenerator::references(), Acts::TGeoCylinderDiscSplitter::split(), Acts::PortalJsonConverter::toJsonDetray(), Acts::AtlasStepper::transportCovarianceToBound(), and Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::updateSurfaceStatus().
Here is the caller graph for this function:
|
virtual |
Calculate the jacobian from global to local which the surface knows best, hence the calculation is done here.
| gctx | The current geometry context object, e.g. alignment |
| parameters | is the free parameters |
Definition at line 290 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 290 of file Surface.cpp
References Acts::eBoundLoc0, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, Acts::eFreeDir0, Acts::eFreeDir1, Acts::eFreeDir2, Acts::eFreePos0, Acts::eFreeQOverP, Acts::eFreeTime, Acts::VectorHelpers::evaluateTrigonomics(), and position.
Referenced by Acts::detail::boundToBoundTransportJacobian(), and Acts::detail::freeToBoundTransportJacobian().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Calculate the derivative of path length at the geometry constraint or point-of-closest-approach w.r.t. free parameters. The calculation is identical for all surfaces where the reference frame does not depend on the direction
| gctx | The current geometry context object, e.g. alignment |
| parameters | is the free parameters |
Reimplemented in Acts::LineSurface.
Definition at line 318 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 318 of file Surface.cpp
References dz, Acts::eFreeDir0, Acts::eFreePos0, and position.
Referenced by Acts::detail::boundToBoundTransportJacobian(), and Acts::detail::freeToBoundTransportJacobian().
Here is the caller graph for this function:| std::shared_ptr< Acts::Surface > Acts::Surface::getSharedPtr | ( | ) |
Retrieve a std::shared_ptr for this surface (non-const version)
makeShared factory since it needs access to the original reference. In C++14 this is undefined behavior (but most likely implemented as a bad_weak_ptr exception), in C++17 it is defined as that exception. Definition at line 145 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 145 of file Surface.cpp
Referenced by Acts::detail::GsfActor< bethe_heitler_approx_t, traj_t >::addCombinedState(), Acts::Test::BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), Acts::detail::boundState(), Acts::Test::PropagatorState::Stepper::boundState(), Acts::AtlasStepper::boundState(), Acts::EDM4hepUtil::detail::convertTrackParametersToEdm4hep(), ActsExamples::TracksToTrajectories::execute(), ActsExamples::TrackParamsEstimationAlgorithm::execute(), Acts::Test::fillTrackState(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::findTracks(), PHCosmicsTrkFitter::getTrackFitResult(), PHActsTrkFitter::getTrackFitResult(), Acts::detail::kalmanHandleMeasurement(), Acts::detail::kalmanHandleNoMeasurement(), ActsExamples::CsvPlanarClusterReader::read(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::reversedFilter(), Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::State::State(), and PHActsGSF::updateTrack().
Here is the caller graph for this function:| std::shared_ptr< const Acts::Surface > Acts::Surface::getSharedPtr | ( | ) | const |
Retrieve a std::shared_ptr for this surface (const version)
makeShared factory since it needs access to the original reference. In C++14 this is undefined behavior, but most likely implemented as a bad_weak_ptr exception, in C++17 it is defined as that exception. Definition at line 149 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 149 of file Surface.cpp
|
pure virtual |
Global to local transformation Generalized global to local transformation for the surface types. Since some surface types need the global momentum/direction to resolve sign ambiguity this is also provided
| gctx | The current geometry context object, e.g. alignment |
| position | global 3D position - considered to be on surface but not inside bounds (check is done) |
| direction | global 3D momentum direction |
| tolerance | optional tolerance within which a point is considered valid on surface |
Implemented in Acts::LineSurface, Acts::CylinderSurface, Acts::ConeSurface, Acts::PlaneSurface, and Acts::SurfaceStub.
Referenced by ActsExamples::averageSimHits(), ActsFatras::Particle::boundParameters(), Acts::estimateTrackParamsFromSeed(), ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()(), ActsExamples::CsvPlanarClusterReader::read(), Acts::detail::transformFreeToBoundParameters(), ActsExamples::RootPlanarClusterWriter::writeT(), and ActsExamples::RootTrajectorySummaryWriter::writeT().
Here is the caller graph for this function:
|
virtual |
The insideBounds method for local positions
| lposition | The local position to check |
| bcheck | BoundaryCheck directive for this onSurface check |
Definition at line 249 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 249 of file Surface.cpp
References bounds.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().
Here is the caller graph for this function:
|
pure virtual |
Straight line intersection schema from position/direction
| gctx | The current geometry context object, e.g. alignment |
| position | The position to start from |
| direction | The direction at start |
| bcheck | the Boundary Check |
| tolerance | the tolerance used for the intersection |
SurfaceMultiIntersection object (contains intersection & surface) Implemented in Acts::LineSurface, Acts::CylinderSurface, Acts::PlaneSurface, Acts::ConeSurface, and Acts::SurfaceStub.
Referenced by Acts::Layer::compatibleSurfaces(), Acts::TrackingVolume::compatibleSurfacesFromHierarchy(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::finalize(), meanFromFree(), Acts::MultiStepperSurfaceReached::operator()(), Acts::detail::CorrectedFreeToBoundTransformer::operator()(), Acts::SurfaceReached::operator()(), Acts::Layer::surfaceOnApproach(), Acts::Experimental::updateCandidates(), Acts::detail::updateSingleSurfaceStatus(), Acts::MultiEigenStepperLoop< extensionlist_t, component_reducer_t, auctioneer_t >::updateStepSize(), ActsExamples::RootTrajectorySummaryWriter::writeT(), and ActsExamples::RootMaterialTrackWriter::writeT().
Here is the caller graph for this function:| bool Acts::Surface::isOnSurface | ( | const GeometryContext & | gctx, |
| const Vector3 & | position, | ||
| const Vector3 & | direction, | ||
| const BoundaryCheck & | bcheck = true |
||
| ) | const |
The geometric onSurface method
Geometrical check whether position is on Surface
| gctx | The current geometry context object, e.g. alignment |
| position | global position to be evaludated |
| direction | global momentum direction (required for line-type surfaces) |
| bcheck | BoundaryCheck directive for this onSurface check |
Definition at line 46 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 46 of file Surface.cpp
References bounds.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), and Acts::BoundarySurfaceT< volume_t >::onBoundary().
Here is the caller graph for this function:
|
pure virtual |
Calculate the derivative of bound track parameters local position w.r.t. position in local 3D Cartesian coordinates
| gctx | The current geometry context object, e.g. alignment |
| position | The position of the parameters in global |
Implemented in Acts::LineSurface, Acts::CylinderSurface, Acts::ConeSurface, Acts::PlaneSurface, and Acts::SurfaceStub.
|
pure virtual |
Local to global transformation Generalized local to global transformation for the surface types. Since some surface types need the global momentum/direction to resolve sign ambiguity this is also provided
| gctx | The current geometry context object, e.g. alignment |
| lposition | local 2D position in specialized surface frame |
| direction | global 3D momentum direction |
Implemented in Acts::CylinderSurface, Acts::LineSurface, Acts::ConeSurface, Acts::PlaneSurface, and Acts::SurfaceStub.
Referenced by ActsExamples::HoughTransformSeeder::addMeasurements(), Acts::EDM4hepUtil::detail::convertTrackParametersToEdm4hep(), Acts::SpacePointUtility::globalCoords(), ActsExamples::SeedingFTFAlgorithm::LayerNumbering(), Acts::SurfaceArrayCreator::makeGlobalVertices(), ActsExamples::TGeoITkModuleSplitter::splitBarrelModule(), Acts::Test::stripEnds(), Acts::detail::transformBoundToFreeParameters(), ActsExamples::CsvPlanarClusterWriter::writeT(), and ActsExamples::RootPlanarClusterWriter::writeT().
Here is the caller graph for this function:
|
inlinestatic |
Factory for producing memory managed instances of Surface. Will forward all parameters and will attempt to find a suitable constructor.
Definition at line 122 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 122 of file Surface.hpp
References check_smearing_config::args, and Acts::UnitConstants::T.
|
pure virtual |
Return properly formatted class name.
Implemented in Acts::LineSurface, Acts::ConeSurface, Acts::CylinderSurface, Acts::PlaneSurface, Acts::SurfaceStub, Acts::StrawSurface, and Acts::PerigeeSurface.
Referenced by Acts::detail::printBoundParameters().
Here is the caller graph for this function:
|
pure virtual |
Return method for the normal vector of the surface The normal vector can only be generally defined at a given local position It requires a local position to be given (in general)
| gctx | The current geometry context object, e.g. alignment |
| lposition | is the local position where the normal vector is constructed |
Implemented in Acts::CylinderSurface, Acts::ConeSurface, Acts::LineSurface, Acts::PlaneSurface, and Acts::SurfaceStub.
Referenced by Acts::PlaneLayer::buildApproachDescriptor(), ActsAlignmentStates::get_projectionXY(), normal(), ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()(), Acts::detail::CorrectedFreeToBoundTransformer::operator()(), Acts::PlaneSurface::pathCorrection(), and Acts::PortalJsonConverter::toJsonDetray().
Here is the caller graph for this function:
|
virtual |
Return method for the normal vector of the surface The normal vector can only be generally defined at a given local position It requires a local position to be given (in general)
| position | is the global position where the normal vector is constructed |
| gctx | The current geometry context object, e.g. alignment |
Reimplemented in Acts::CylinderSurface, Acts::ConeSurface, and Acts::SurfaceStub.
Definition at line 236 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 236 of file Surface.cpp
|
inlinevirtual |
Return method for the normal vector of the surface
It will return a normal vector at the center() position
| gctx | The current geometry context object, e.g. alignment |
Reimplemented in Acts::SurfaceStub.
Definition at line 224 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 224 of file Surface.hpp
References center(), and normal().
Here is the call graph for this function:
|
virtual |
Comparison (non-equality) operator
| sf | Source surface for the comparison |
Definition at line 226 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 226 of file Surface.cpp
References Acts::operator==().
Here is the call graph for this function:| Acts::Surface & Acts::Surface::operator= | ( | const Surface & | other | ) |
Assignment operator
| other | Source surface for the assignment |
Definition at line 153 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 153 of file Surface.cpp
References m_associatedDetElement, m_associatedLayer, m_surfaceMaterial, m_transform(), m_transform, and Acts::GeometryObject::operator=().
Referenced by Acts::PlaneSurface::operator=(), Acts::LineSurface::operator=(), Acts::ConeSurface::operator=(), and Acts::CylinderSurface::operator=().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Comparison (equality) operator The strategy for comparison is (a) first pointer comparison (b) then type comparison (c) then bounds comparison (d) then transform comparison
| other | source surface for the comparison |
Definition at line 165 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 165 of file Surface.cpp
References bounds, bounds(), Acts::UnitConstants::e, m_associatedDetElement, m_surfaceMaterial, m_transform(), m_transform, Acts::type, and type().
Here is the call graph for this function:
|
pure virtual |
Calucation of the path correction for incident
| gctx | The current geometry context object, e.g. alignment |
| position | global 3D position - considered to be on surface but not inside bounds (check is done) |
| direction | global 3D momentum direction |
Implemented in Acts::LineSurface, Acts::CylinderSurface, Acts::ConeSurface, Acts::PlaneSurface, and Acts::SurfaceStub.
Referenced by Acts::detail::PointwiseMaterialInteraction::evaluateMaterialSlab().
Here is the caller graph for this function:
|
pure virtual |
Return a Polyhedron for this object
| gctx | The current geometry context object, e.g. alignment |
| lseg | Number of segments along curved lines, if the lseg is set to one, only the corners and the extrema are given, otherwise it represents the number of segments for a full 2*M_PI circle and is scaled to the relevant sector |
Implemented in Acts::CylinderSurface, Acts::ConeSurface, Acts::PlaneSurface, Acts::StrawSurface, Acts::SurfaceStub, Acts::PerigeeSurface, and Acts::Test::LineSurfaceStub.
Referenced by Acts::Svg::SurfaceConverter::convert(), Acts::GeometryView3D::drawSurface(), Acts::SurfaceBinningMatcher::operator()(), and Acts::Experimental::detail::PolyhedronReferenceGenerator< nSEGS, aBARY >::references().
Here is the caller graph for this function:
|
virtual |
Return method for the reference frame This is the frame in which the covariance matrix is defined (specialized by all surfaces)
| gctx | The current geometry context object, e.g. alignment |
| position | global 3D position - considered to be on surface but not inside bounds (check is done) |
| direction | global 3D momentum direction (optionally ignored) |
Reimplemented in Acts::LineSurface, Acts::ConeSurface, and Acts::CylinderSurface.
Definition at line 254 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 254 of file Surface.cpp
References Acts::Test::transform.
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::SpacePointUtility::globalCoords(), Acts::SpacePointUtility::rhoZCovariance(), Acts::AtlasStepper::transportCovarianceToBound(), Acts::AtlasStepper::update(), and ActsExamples::RootMeasurementWriter::writeT().
Here is the caller graph for this function:| const Acts::ISurfaceMaterial * Acts::Surface::surfaceMaterial | ( | ) | const |
Return method for the associated Material to this surface
Definition at line 345 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 345 of file Surface.cpp
Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::SurfaceMaterialMapper::checkAndInsert(), Acts::Layer::compatibleSurfaces(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::filter(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::filter(), Acts::detail::kalmanHandleMeasurement(), Acts::detail::kalmanHandleNoMeasurement(), Acts::KalmanFitter< propagator_t, traj_t >::Actor< parameters_t >::materialInteractor(), Acts::CombinatorialKalmanFilter< propagator_t, traj_t >::Actor< source_link_accessor_t, parameters_t >::materialInteractor(), Acts::SurfaceSelector::operator()(), Acts::MaterialSurface::operator()(), Acts::MaterialInteractor::operator()(), ActsFatras::detail::SimulationActor< generator_t, decay_t, interactions_t, hit_surface_selector_t >::operator()(), and Acts::SurfaceJsonConverter::toJson().
Here is the caller graph for this function:| const std::shared_ptr< const Acts::ISurfaceMaterial > & Acts::Surface::surfaceMaterialSharedPtr | ( | ) | const |
Return method for the shared pointer to the associated Material
Definition at line 350 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 350 of file Surface.cpp
Referenced by Acts::SurfaceMaterialMapper::checkAndInsert(), ActsExamples::RootMaterialWriter::collectMaterial(), and Acts::TrackingVolume::glueTrackingVolume().
Here is the caller graph for this function:
|
virtual |
Output Method for std::ostream, to be overloaded by child classes
| gctx | The current geometry context object, e.g. alignment |
| sl | is the ostream to be dumped into |
Reimplemented in Acts::PerigeeSurface.
Definition at line 196 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 196 of file Surface.cpp
References bounds, perf_headwind::name, and Acts::Test::transform.
| std::string Acts::Surface::toString | ( | const GeometryContext & | gctx | ) | const |
Output into a std::string
| gctx | The current geometry context object, e.g. alignment |
Definition at line 220 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 220 of file Surface.cpp
|
virtual |
Return method for the surface Transform3 by reference In case a detector element is associated the surface transform is just forwarded to the detector element in order to keep the (mis-)alignment cache cetrally handled
| gctx | The current geometry context object, e.g. alignment |
Definition at line 241 of file Surface.cpp.
View newest version in sPHENIX GitHub at line 241 of file Surface.cpp
References m_transform().
Referenced by Acts::adjustBinUtility(), Acts::Experimental::detail::PortalHelper::attachDetectorVolumesUpdator(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::PlaneLayer::buildApproachDescriptor(), Acts::Svg::PortalConverter::convert(), Acts::PodioUtil::convertSurfaceToPodio(), Acts::LayerArrayCreator::createNavigationSurface(), ActsAlignmentStates::get_projectionXY(), Acts::ImpactPointEstimator< input_track_t, propagator_t, propagator_options_t >::getVertexCompatibility(), ActsExamples::TGeoITkModuleSplitter::splitBarrelModule(), ActsExamples::TGeoITkModuleSplitter::splitDiscModule(), DD4hepTestsHelper::surfaceToXML(), Acts::SurfaceJsonConverter::toJson(), Acts::PortalJsonConverter::toJsonDetray(), Acts::SurfaceJsonConverter::toJsonDetray(), and ActsFatras::PlanarSurfaceDrift::toReadout().
Here is the call graph for this function:
Here is the caller graph for this function:
|
pure virtual |
Return method for the Surface type to avoid dynamic casts.
Implemented in Acts::CylinderSurface, Acts::PlaneSurface, Acts::ConeSurface, Acts::StrawSurface, Acts::PerigeeSurface, Acts::Test::LineSurfaceStub, and Acts::SurfaceStub.
Referenced by Acts::adjustBinUtility(), Acts::detail::angleDescriptionSwitch(), ActsFatras::PlanarSurfaceMask::apply(), Acts::Svg::SurfaceConverter::convert(), Acts::PodioUtil::convertSurfaceToPodio(), Acts::LayerArrayCreator::createNavigationSurface(), meanFromFree(), StrawSelector::operator()(), Acts::Test::PlaneSelector::operator()(), operator==(), ActsFatras::Channelizer::segments(), Acts::TGeoCylinderDiscSplitter::split(), Acts::SurfaceJsonConverter::toJson(), Acts::PortalJsonConverter::toJsonDetray(), Acts::AtlasStepper::transportCovarianceToBound(), Acts::AtlasStepper::update(), Acts::RiddersPropagator< propagator_t >::wiggleAndCalculateJacobian(), and ActsExamples::RootMaterialTrackWriter::writeT().
Here is the caller graph for this function:
|
protected |
Pointer to the a DetectorElementBase.
Definition at line 498 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 498 of file Surface.hpp
Referenced by operator=(), and operator==().
|
protected |
The associated layer Layer - layer in which the Surface is be embedded, nullptr if not associated
Definition at line 502 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 502 of file Surface.hpp
Referenced by operator=().
|
protected |
The associated TrackingVolume - tracking volume in case the surface is a boundary surface, nullptr if not associated
Definition at line 506 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 506 of file Surface.hpp
|
protected |
Possibility to attach a material description.
Definition at line 509 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 509 of file Surface.hpp
Referenced by operator=(), and operator==().
|
protected |
Transform3 definition that positions (translation, rotation) the surface in global space
Definition at line 495 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 495 of file Surface.hpp
Referenced by Acts::CylinderLayer::CylinderLayer(), operator=(), operator==(), and Acts::PlaneSurface::PlaneSurface().
|
static |
Helper strings for screen output.
Definition at line 82 of file Surface.hpp.
View newest version in sPHENIX GitHub at line 82 of file Surface.hpp
Referenced by Acts::Experimental::LayerStructureBuilder::construct().