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
Chamber represent the volume enclosing a muon station.
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
This class is not to needed in AthSimulation.
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