5#ifndef ACTSGEOMETRY_ACTSTRACKINGGEOMETRYSVC_H
6#define ACTSGEOMETRY_ACTSTRACKINGGEOMETRYSVC_H
19#include "Acts/Geometry/CylinderVolumeBuilder.hpp"
24#include <tbb/concurrent_unordered_map.h>
33class ActsAlignmentStore;
42class TrackingGeometry;
43class CylinderVolumeHelper;
46class GeometryIdentifier;
47class BinnedSurfaceMaterial;
62 std::shared_ptr<const Acts::TrackingGeometry>
73 std::shared_ptr<const Acts::ILayerBuilder>
76 std::shared_ptr<const Acts::ILayerBuilder>
79 std::shared_ptr<Acts::TrackingVolume>
80 makeSCTTRTAssembly(
const Acts::GeometryContext& gctx,
const Acts::ILayerBuilder& sct_lb,
81 const Acts::ILayerBuilder& trt_lb,
const Acts::CylinderVolumeHelper& cvh,
82 const std::shared_ptr<const Acts::TrackingVolume>&
pixel);
85 std::shared_ptr<const Acts::CylinderVolumeHelper> cvh)
const;
112 Gaudi::Property<bool>
m_printGeo{
this,
"printGeometry",
false};
116 Gaudi::Property<std::vector<std::string>>
m_buildSubdetectors{
this,
"BuildSubDetectors", {
"Pixel",
"SCT",
"TRT",
"Calo",
"HGTD",
"Muon"}};
135 false,
"Run extra consistency checks w.r.t to Trk::. This is SLOW!"};
138 "",
"Output file for geometry debugging, will not write if empty",};
141 1000,
"number of random points for consistency check"};
152 Gaudi::Property<bool>
m_useBlueprint{
this,
"UseBlueprint",
false,
"Use the new Blueprint API for geometry construction"};
154 "",
"Write the blueprint graph to a file. No file will be written if empty"};
155 Gaudi::Property<bool>
m_doEndcapLayerMerging{
this,
"DoEndcapLayerMerging",
true,
"Merge overlapping endcap layers in z"};
Helper to hold elements for deletion.
ActsTrk::GeometryContext m_nominalContext
ToolHandleArray< ActsTrk::IBlueprintNodeBuilder > m_blueprintNodeBuilders
Acts::CylinderVolumeBuilder::Config makeBeamPipeConfig(std::shared_ptr< const Acts::CylinderVolumeHelper > cvh) const
std::shared_ptr< ActsElementVector > m_elementStore
Gaudi::Property< std::vector< float > > m_passiveITkInnerPixelBarrelLayerHalflengthZ
Gaudi::Property< std::vector< float > > m_passiveITkStripBarrelLayerThickness
unsigned int populateAlignmentStore(ActsTrk::DetectorAlignStore &store) const override
const InDetDD::TRT_DetectorManager * p_TRTManager
ServiceHandle< StoreGateSvc > m_detStore
const TRT_ID * m_TRT_idHelper
Gaudi::Property< std::vector< unsigned int > > m_subDetNoAlignProp
Define the subdetectors for which the tracking geometry does not expect a valid alignment store.
const HGTD_ID * m_HGTD_idHelper
Gaudi::Property< std::string > m_blueprintGraphviz
std::shared_ptr< const Acts::ILayerBuilder > makeHGTDLayerBuilder(const HGTD_DetectorManager *manager)
Gaudi::Property< bool > m_useMaterialMap
std::shared_ptr< const Acts::TrackingGeometry > m_trackingGeometry
Gaudi::Property< std::string > m_materialMapCalibFolder
std::shared_ptr< const Acts::TrackingGeometry > trackingGeometry() override
const HGTD_DetectorManager * p_HGTDManager
Gaudi::Property< std::vector< float > > m_passiveITkOuterPixelBarrelLayerThickness
const InDetDD::SiDetectorManager * p_pixelManager
Gaudi::Property< bool > m_objDebugOutput
Gaudi::Property< std::vector< float > > m_passiveITkOuterPixelBarrelLayerRadii
std::shared_ptr< const Acts::ILayerBuilder > makeStrawLayerBuilder(const InDetDD::InDetDetectorManager *manager)
Gaudi::Property< size_t > m_consistencyCheckPoints
const ActsTrk::GeometryContext & getNominalContext() const override
Gaudi::Property< double > m_numberOfBinsFactor
controls how many bins are created for the sensitive surface grid.
Gaudi::Property< std::string > m_materialMapInputFileBase
const InDetDD::SiDetectorManager * p_ITkStripManager
StatusCode initialize() override
Gaudi::Property< std::vector< size_t > > m_endcapMaterialBins
Gaudi::Property< std::vector< float > > m_passiveITkStripBarrelLayerRadii
Gaudi::Property< double > m_numberOfInnermostLayerBinsFactor
Special treatment for the innermost pixel layer to have more control on bin size to account for shall...
std::set< ActsTrk::DetectorType > m_subDetNoAlign
const BeamPipeDetectorManager * p_beamPipeMgr
Gaudi::Property< bool > m_printGeo
Print the assembled tracking geometry after building.
Gaudi::Property< bool > m_buildBeamPipe
Gaudi::Property< std::vector< std::string > > m_buildSubdetectors
Gaudi::Property< bool > m_doEndcapLayerMerging
StringProperty m_consistencyCheckOutput
ToolHandle< IActsTrackingVolumeBuilder > m_caloVolumeBuilder
BooleanProperty m_runConsistencyChecks
bool runConsistencyChecks() const
ActsTrackingGeometrySvc(const std::string &name, ISvcLocator *pSvcLocator)
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)
Gaudi::Property< std::vector< float > > m_passiveITkOuterPixelBarrelLayerHalflengthZ
Gaudi::Property< std::vector< size_t > > m_barrelMaterialBins
Gaudi::Property< std::vector< float > > m_passiveITkInnerPixelBarrelLayerRadii
the specifications for building additional passive cylinders in the barrel region: for each cylinder ...
Gaudi::Property< std::vector< float > > m_passiveITkInnerPixelBarrelLayerThickness
Gaudi::Property< std::vector< float > > m_passiveITkStripBarrelLayerHalflengthZ
const InDetDD::SiDetectorManager * p_SCTManager
const InDetDD::SiDetectorManager * p_ITkPixelManager
ActsLayerBuilder::Config makeLayerBuilderConfig(const InDetDD::InDetDetectorManager *manager)
Gaudi::Property< bool > m_useBlueprint
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.
nested configuration struct for steering of the layer builder