5#ifndef ACTSMUONDETECTOR_MUONBLUEPRINTNODEBUILDER_H
6#define ACTSMUONDETECTOR_MUONBLUEPRINTNODEBUILDER_H
10#include <GaudiKernel/MsgStream.h>
17#include "Acts/Utilities/BoundFactory.hpp"
18#include "Acts/Surfaces/PlanarBounds.hpp"
19#include "Acts/Surfaces/Surface.hpp"
29 class GeometryContext;
31 class StaticBlueprintNode;
40 using staticNodePtr = std::shared_ptr<Acts::Experimental::StaticBlueprintNode>;
61 using base_class::base_class;
66 std::shared_ptr<Acts::Experimental::BlueprintNode>
buildBlueprintNode(
const Acts::GeometryContext& gctx,
67 std::shared_ptr<Acts::Experimental::BlueprintNode>&& childNode)
override;
83 std::shared_ptr<Acts::Surface>
blendMaterial(
const T& element)
const;
94 const Acts::GeometryIdentifier& chId,
95 Acts::VolumeBoundFactory& boundsFactory)
const;
113 template<
typename MuonElementsSet>
114 std::shared_ptr<Acts::Experimental::StaticBlueprintNode>
buildMuonNode(
const Acts::GeometryContext& gctx,
115 const MuonElementsSet& elements,
116 const std::string& name,
117 const Acts::GeometryIdentifier&
id,
118 Acts::VolumeBoundFactory& boundsFactory)
const;
Helper class to build a Blueprint node of the muon system.
std::shared_ptr< Acts::Experimental::BlueprintNode > buildBlueprintNode(const Acts::GeometryContext &gctx, std::shared_ptr< Acts::Experimental::BlueprintNode > &&childNode) override
Build the Muon Blueprint Node.
std::shared_ptr< Acts::Surface > blendMaterial(const T &element) const
Blend the sector's/chamber's material as plane surface.
bool isElementInTheStation(const T &element, const std::vector< StIdx > &stationNames, const EndcapSide &side) const
Check if the chamber is in this node.
std::shared_ptr< Acts::Experimental::StaticBlueprintNode > buildMuonNode(const Acts::GeometryContext &gctx, const MuonElementsSet &elements, const std::string &name, const Acts::GeometryIdentifier &id, Acts::VolumeBoundFactory &boundsFactory) const
Build subnodes for the muon system node.
std::pair< std::vector< staticNodePtr >, std::vector< surfacePtr > > getSensitiveElements(const ActsTrk::GeometryContext &gctx, const T &element, const Acts::GeometryIdentifier &chId, Acts::VolumeBoundFactory &boundsFactory) const
Get the chamber's sensitive elements.
Gaudi::Property< bool > m_useSectors
const MuonGMR4::MuonDetectorManager * m_detMgr
Gaudi::Property< bool > m_dumpVolumes
StatusCode initialize() override
std::vector< const Chamber * > MuonChamberSet
std::vector< const SpectrometerSector * > MuonSectorSet
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
std::shared_ptr< Acts::Experimental::StaticBlueprintNode > staticNodePtr
Muon::MuonStationIndex::StIndex StIdx
MuonGMR4::MuonDetectorManager::MuonSectorSet MuonSectorSet
MuonGMR4::MuonDetectorManager::MuonChamberSet MuonChamberSet
std::shared_ptr< Acts::Surface > surfacePtr
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
StIndex
enum to classify the different station layers in the muon spectrometer