5#ifndef MUONTRACKINGGEOMETRY_MUONSTATIONBUILDERIMPL_H
6#define MUONTRACKINGGEOMETRY_MUONSTATIONBUILDERIMPL_H
13#include "GaudiKernel/ServiceHandle.h"
14#include "GaudiKernel/ToolHandle.h"
15#include "GeoModelKernel/GeoVPhysVol.h"
44 using GMInfo = std::pair<Amg::Transform3D, int>;
48 using DetachedVolVec = std::vector<std::unique_ptr<Trk::DetachedTrackingVolume>>;
50 bool blend =
false)
const;
57 this,
"MuonIdHelperSvc",
"Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
59 std::vector<std::pair<const GeoVPhysVol*, std::vector<GMInfo>>>
62 std::unique_ptr<Trk::DetachedTrackingVolume>
64 const GeoVPhysVol* gv,
const GMInfo& info)
const;
87 std::pair<std::pair<const GeoLogVol*, Trk::MaterialProperties*>,
88 std::vector<Amg::Transform3D>>>& vols,
89 std::vector<std::string>& volNames)
const;
92 this,
"StationTypeBuilder",
93 "Muon::MuonStationTypeBuilder/"
94 "MuonStationTypeBuilder"};
99 this,
"TrackingVolumeHelper",
100 "Trk::TrackingVolumeHelper/TrackingVolumeHelper"};
113 Gaudi::Property<bool>
m_buildCsc{
this,
"BuildCSCStations",
true};
114 Gaudi::Property<bool>
m_buildTgc{
this,
"BuildTGCStations",
true};
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Gaudi::Property< bool > m_buildCsc
void identifyLayers(Trk::DetachedTrackingVolume *, Identifier, int, int, const MuonGM::MuonDetectorManager *) const
Trk::Material m_muonMaterial
the material
void identifyNSWLayers(Trk::DetachedTrackingVolume &station, const Identifier &id) const
virtual StatusCode initialize() override
Gaudi::Property< bool > m_buildEndcap
void checkLayerId(std::string_view comment, const MuonGM::MuonDetectorManager *muonMgr, Identifier id, const Trk::Layer *lay) const
void identifyPrototype(Trk::TrackingVolume &station, int eta, int phi, const Amg::Transform3D &transf, const MuonGM::MuonDetectorManager *muonMgr) const
ToolHandle< Muon::MuonStationTypeBuilder > m_muonStationTypeBuilder
Helper Tool to create TrackingVolume Arrays.
DetachedVolVec buildDetachedTrackingVolumesImpl(const MuonGM::MuonDetectorManager *muonMgr, bool blend=false) const
Gaudi::Property< bool > m_buildTgc
void glueComponents(Trk::DetachedTrackingVolume *) const
Identifier resolveId(const std::string &vname, const GMInfo &gm_info, int &eta, int &phi, const MuonGM::MuonDetectorManager *muonMgr) const
void encloseLayers(const Trk::DetachedTrackingVolume *) const
std::pair< Amg::Transform3D, int > GMInfo
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Trk::GeoMaterialConverter m_materialConverter
std::vector< std::unique_ptr< Trk::DetachedTrackingVolume > > DetachedVolVec
Trk::GMTreeBrowser m_gmBrowser
std::unique_ptr< Trk::DetachedTrackingVolume > buildDetachedTrackingVolumeType(const MuonGM::MuonDetectorManager *muonMgr, const GeoVPhysVol *gv, const GMInfo &info) const
ToolHandle< Trk::ITrackingVolumeHelper > m_trackingVolumeHelper
Helper Tool to create TrackingVolumes.
std::vector< std::pair< const GeoVPhysVol *, std::vector< GMInfo > > > retrieveGMsensitive(const MuonGM::MuonDetectorManager *muonMgr) const
MuonStationBuilderImpl(const std::string &, const std::string &, const IInterface *)
Gaudi::Property< bool > m_buildBarrel
virtual ~MuonStationBuilderImpl()=default
void getNSWStationsForTranslation(const GeoVPhysVol *pv, const std::string &name, const Amg::Transform3D &, std::vector< std::pair< std::pair< const GeoLogVol *, Trk::MaterialProperties * >, std::vector< Amg::Transform3D > > > &vols, std::vector< std::string > &volNames) const
Trk::VolumeConverter m_volumeConverter
material converter
Base Class for a navigation object (active/passive) in the Tracking realm.
A Helper Class that facilitates navigation through GeoModel tree.
A Simple Helper Class that convertes the GeoMaterial object used in GeoModel full detector descriptio...
Base Class for a Detector Layer in the Tracking realm.
Material with information about thickness of material.
A common object to be contained by.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
A Simple Helper Class that collects methods for material simplification.
Eigen::Affine3d Transform3D
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
MuonStationBuilderImpl::GMInfo GMInfo
Ensure that the ATLAS eigen extensions are properly loaded.