5#ifndef ACTSGEOMETRY_ACTSTRACKINGGEOMETRYSVC_H
6#define ACTSGEOMETRY_ACTSTRACKINGGEOMETRYSVC_H
20#include "Acts/Geometry/CylinderVolumeBuilder.hpp"
25#include <tbb/concurrent_unordered_map.h>
34class ActsAlignmentStore;
43class TrackingGeometry;
44class CylinderVolumeHelper;
47class GeometryIdentifier;
48class BinnedSurfaceMaterial;
78 std::shared_ptr<const Acts::ILayerBuilder>
81 std::shared_ptr<const Acts::ILayerBuilder>
84 std::shared_ptr<Acts::TrackingVolume>
85 makeSCTTRTAssembly(
const Acts::GeometryContext& gctx,
const Acts::ILayerBuilder& sct_lb,
86 const Acts::ILayerBuilder& trt_lb,
const Acts::CylinderVolumeHelper& cvh,
87 const std::shared_ptr<const Acts::TrackingVolume>&
pixel);
90 std::shared_ptr<const Acts::CylinderVolumeHelper> cvh)
const;
118 Gaudi::Property<bool>
m_printGeo{
this,
"printGeometry",
false};
122 Gaudi::Property<std::vector<std::string>>
m_buildSubdetectors{
this,
"BuildSubDetectors", {
"Pixel",
"SCT",
"TRT",
"Calo",
"HGTD",
"Muon"}};
141 false,
"Run extra consistency checks w.r.t to Trk::. This is SLOW!"};
144 "",
"Output file for geometry debugging, will not write if empty",};
147 1000,
"number of random points for consistency check"};
153 ToolHandleArray<ActsTrk::IRefineTrackingGeoTool>
m_refineVisitors{
this,
"RefinementTools", {}};
158 Gaudi::Property<bool>
m_useBlueprint{
this,
"UseBlueprint",
false,
"Use the new Blueprint API for geometry construction"};
161 "",
"Write the blueprint graph to a file. No file will be written if empty"};
162 Gaudi::Property<bool>
m_doEndcapLayerMerging{
this,
"DoEndcapLayerMerging",
true,
"Merge overlapping endcap layers in z"};
Helper to hold elements for deletion.
Gaudi::Property< std::vector< size_t > > m_endcapMaterialBins
const TRT_ID * m_TRT_idHelper
std::shared_ptr< const Acts::TrackingGeometry > m_trackingGeometry
const InDetDD::TRT_DetectorManager * p_TRTManager
bool runConsistencyChecks() const
Gaudi::Property< std::vector< std::string > > m_buildSubdetectors
ActsTrk::GeometryContext m_nominalContext
Gaudi::Property< std::vector< float > > m_passiveITkInnerPixelBarrelLayerThickness
Gaudi::Property< bool > m_useBlueprint
ActsLayerBuilder::Config makeLayerBuilderConfig(const InDetDD::InDetDetectorManager *manager)
StatusCode initialize() override
const InDetDD::SiDetectorManager * p_ITkStripManager
std::set< ActsTrk::DetectorType > m_subDetNoAlign
Gaudi::Property< std::vector< unsigned int > > m_subDetNoAlignProp
Define the subdetectors for which the tracking geometry does not expect a valid alignment store.
unsigned int populateAlignmentStore(ActsTrk::DetectorAlignStore &store) const override
Loops through the volumes of the tracking geometry and caches the aligned transforms in the store.
Gaudi::Property< std::vector< float > > m_passiveITkOuterPixelBarrelLayerThickness
ToolHandleArray< ActsTrk::IRefineTrackingGeoTool > m_refineVisitors
Gaudi::Property< std::vector< float > > m_passiveITkOuterPixelBarrelLayerHalflengthZ
Acts::CylinderVolumeBuilder::Config makeBeamPipeConfig(std::shared_ptr< const Acts::CylinderVolumeHelper > cvh) const
BooleanProperty m_runConsistencyChecks
Gaudi::Property< std::vector< float > > m_passiveITkStripBarrelLayerRadii
Gaudi::Property< bool > m_buildBeamPipe
Gaudi::Property< std::string > m_materialMapCalibFolder
Gaudi::Property< std::vector< float > > m_passiveITkStripBarrelLayerThickness
const BeamPipeDetectorManager * p_beamPipeMgr
std::shared_ptr< const Acts::ILayerBuilder > makeHGTDLayerBuilder(const HGTD_DetectorManager *manager)
Gaudi::Property< std::string > m_blueprintGraphviz
Gaudi::Property< bool > m_printGeo
Print the assembled tracking geometry after building.
Gaudi::Property< std::string > m_materialMapInputFileBase
std::shared_ptr< const Acts::TrackingGeometry > trackingGeometry() override
Returns a pointer to the internal ACTS tracking geometry.
Gaudi::Property< std::vector< float > > m_passiveITkInnerPixelBarrelLayerRadii
the specifications for building additional passive cylinders in the barrel region: for each cylinder ...
const ActsTrk::GeometryContext & getNominalContext() const override
Returns an empty nominal context without any alignment caches.
std::shared_ptr< const Acts::ILayerBuilder > makeStrawLayerBuilder(const InDetDD::InDetDetectorManager *manager)
Gaudi::Property< std::vector< size_t > > m_barrelMaterialBins
ToolHandleArray< ActsTrk::IBlueprintNodeBuilder > m_blueprintNodeBuilders
ToolHandle< IActsTrackingVolumeBuilder > m_caloVolumeBuilder
const InDetDD::SiDetectorManager * p_SCTManager
Gaudi::Property< double > m_numberOfInnermostLayerBinsFactor
Special treatment for the innermost pixel layer to have more control on bin size to account for shall...
Gaudi::Property< bool > m_doEndcapLayerMerging
Gaudi::Property< bool > m_useMaterialMap
const HGTD_DetectorManager * p_HGTDManager
StringProperty m_consistencyCheckOutput
Gaudi::Property< size_t > m_consistencyCheckPoints
Gaudi::Property< std::vector< float > > m_passiveITkOuterPixelBarrelLayerRadii
const Acts::TrackingVolume * getEnvelope(const ActsTrk::SystemEnvelope envType) const override
Returns the envelope volume from the tracking geometry that's containing all volumes of the subsystem...
Gaudi::Property< std::vector< float > > m_passiveITkInnerPixelBarrelLayerHalflengthZ
std::shared_ptr< ActsElementVector > m_elementStore
Gaudi::Property< std::vector< float > > m_passiveITkStripBarrelLayerHalflengthZ
Gaudi::Property< bool > m_objDebugOutput
const HGTD_ID * m_HGTD_idHelper
TrackingGeometrySvc(const std::string &name, ISvcLocator *pSvcLocator)
ServiceHandle< StoreGateSvc > m_detStore
Gaudi::Property< double > m_numberOfBinsFactor
controls how many bins are created for the sensitive surface grid.
const InDetDD::SiDetectorManager * p_ITkPixelManager
const InDetDD::SiDetectorManager * p_pixelManager
std::shared_ptr< Acts::TrackingVolume > makeSCTTRTAssembly(const Acts::GeometryContext &gctx, const Acts::ILayerBuilder &sct_lb, const Acts::ILayerBuilder &trt_lb, const Acts::CylinderVolumeHelper &cvh, const std::shared_ptr< const Acts::TrackingVolume > &pixel)
The Detector manager has methods to retrieve the Identifier helper and methods to retrieve the detect...
This is an Identifier helper class for the HGTD subdetector.
Virtual base class for all ID detector managers.
Base class for Pixel and SCT Detector managers.
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
This is an Identifier helper class for the TRT subdetector.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
SystemEnvelope
Define an enumeration to retrieve the envelope tracking volume from.
This class is not to needed in AthSimulation.
nested configuration struct for steering of the layer builder