Analysis Software
Documentation for sPHENIX simulation software
|
Abstract Base Class for tracking surfaces. More...
#include <acts/blob/sPHENIX/Core/include/Acts/Surfaces/Surface.hpp>
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.
|
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.
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().
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().
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().
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().
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().
|
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().
|
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().
|
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().
|
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().
|
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().
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().
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().
|
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().
|
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().
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().
|
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().
|
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().
|
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().
|
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().
|
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==().
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=().
|
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().
|
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().
|
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().
|
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().
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().
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().
|
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().
|
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().
|
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().