![]() |
Project
|
Classes | |
| class | ActsGeometryService |
| class | ITrackingGeometryBuilder |
| class | MagneticFieldAdapter |
| class | SurfaceIndexMap |
| class | TrackingGeometryManager |
| struct | TrackingGeometryOutput |
Typedefs | |
| using | SensorPathProvider = std::function< std::string(int sensorID)> |
| Full TGeo node path of one sensor, e.g. o2::trk::GeometryTGeo::getMatrixPath(). | |
Functions | |
| SurfaceIndexMap | makeSurfaceIndex (const Acts::TrackingGeometry &geometry, const Acts::GeometryContext &gctx, const o2::detectors::DetMatrixCache &cache, double toleranceCm=1e-3, SensorPathProvider pathProvider={}) |
| o2::framework::ServiceSpec | actsGeometryServiceSpec () |
| std::vector< o2::framework::ServiceSpec > | defaultServicesWithActsGeometry () |
| using o2::acts::SensorPathProvider = typedef std::function<std::string(int sensorID)> |
Full TGeo node path of one sensor, e.g. o2::trk::GeometryTGeo::getMatrixPath().
Definition at line 91 of file SurfaceIndexMap.h.
| ServiceSpec o2::acts::actsGeometryServiceSpec | ( | ) |
ServiceSpec for ActsGeometryService, to be put into DataProcessorSpec::requiredServices.
Definition at line 55 of file ActsGeometryService.cxx.
| std::vector< ServiceSpec > o2::acts::defaultServicesWithActsGeometry | ( | ) |
CommonServices::defaultServices() plus the ACTS geometry service. Use as the requiredServices of a DataProcessorSpec that wants registry access.
Definition at line 72 of file ActsGeometryService.cxx.
| SurfaceIndexMap o2::acts::makeSurfaceIndex | ( | const Acts::TrackingGeometry & | geometry, |
| const Acts::GeometryContext & | gctx, | ||
| const o2::detectors::DetMatrixCache & | cache, | ||
| double | toleranceCm = 1e-3, |
||
| SensorPathProvider | pathProvider = {} |
||
| ) |
Build the sensor <-> surface index.
Two strategies, and which one is used matters:
pathProvider (exact, preferred).** Each sensor is resolved to its TGeo node and matched against the node every ACTS surface was built from (ActsPlugins::TGeoDetectorElement::tgeoNode()). This is an identity, not a measurement, so it cannot mis-assign. Repeated placements of one volume share a node and are separated by their accumulated global transform.Both read the same TGeo tree that the surfaces were built from, so a successful match is exact rather than approximate; toleranceCm only guards floating-point round-trips.
| geometry | the constructed tracking geometry |
| gctx | context used to evaluate the surface transforms |
| cache | detector geometry helper; requires a filled L2G cache (call fillMatrixCache(bit2Mask(o2::math_utils::TransformType::L2G))) |
| toleranceCm | matching tolerance, in O2 units (cm) |
| pathProvider | optional TGeo path lookup, as described above |
| std::runtime_error | if a sensor cannot be matched, if a match is ambiguous, or if two sensors would claim the same surface |
Definition at line 298 of file SurfaceIndexMap.cxx.