ATLAS Offline Software
Loading...
Searching...
No Matches
MuonStationBuilderImpl.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONTRACKINGGEOMETRY_MUONSTATIONBUILDERIMPL_H
6#define MUONTRACKINGGEOMETRY_MUONSTATIONBUILDERIMPL_H
7
8// Amg
11//
13#include "GaudiKernel/ServiceHandle.h"
14#include "GaudiKernel/ToolHandle.h"
15#include "GeoModelKernel/GeoVPhysVol.h"
26
27namespace Trk {
29}
30
31namespace Muon {
32
33
34
41
43 public:
44 using GMInfo = std::pair<Amg::Transform3D, int>;
45 virtual ~MuonStationBuilderImpl() = default;
46 virtual StatusCode initialize() override;
47
48 using DetachedVolVec = std::vector<std::unique_ptr<Trk::DetachedTrackingVolume>>;
50 bool blend = false) const;
51
52 protected:
53 MuonStationBuilderImpl(const std::string&, const std::string&,
54 const IInterface*);
55
57 this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
58
59 std::vector<std::pair<const GeoVPhysVol*, std::vector<GMInfo>>>
61
62 std::unique_ptr<Trk::DetachedTrackingVolume>
64 const GeoVPhysVol* gv, const GMInfo& info) const;
65
69 const MuonGM::MuonDetectorManager*) const;
70
72 const Identifier& id) const;
73
74 void identifyPrototype(Trk::TrackingVolume& station, int eta, int phi,
75 const Amg::Transform3D& transf,
76 const MuonGM::MuonDetectorManager* muonMgr) const;
77
78 Identifier resolveId(const std::string& vname, const GMInfo& gm_info, int& eta, int& phi,
79 const MuonGM::MuonDetectorManager* muonMgr) const;
80 void checkLayerId(std::string_view comment,
81 const MuonGM::MuonDetectorManager* muonMgr, Identifier id,
82 const Trk::Layer* lay) const;
83
85 const GeoVPhysVol* pv, const std::string& name, const Amg::Transform3D&,
86 std::vector<
87 std::pair<std::pair<const GeoLogVol*, Trk::MaterialProperties*>,
88 std::vector<Amg::Transform3D>>>& vols,
89 std::vector<std::string>& volNames) const;
90
91 ToolHandle<Muon::MuonStationTypeBuilder> m_muonStationTypeBuilder{
92 this, "StationTypeBuilder",
93 "Muon::MuonStationTypeBuilder/"
94 "MuonStationTypeBuilder"};
95
98 ToolHandle<Trk::ITrackingVolumeHelper> m_trackingVolumeHelper{
99 this, "TrackingVolumeHelper",
100 "Trk::TrackingVolumeHelper/TrackingVolumeHelper"};
101
103
106 // Trk::GeoShapeConverter m_geoShapeConverter;
111 Gaudi::Property<bool> m_buildBarrel{this, "BuildBarrelStations", true};
112 Gaudi::Property<bool> m_buildEndcap{this, "BuildEndcapStations", true};
113 Gaudi::Property<bool> m_buildCsc{this, "BuildCSCStations", true};
114 Gaudi::Property<bool> m_buildTgc{this, "BuildTGCStations", true};
115};
116
117} // namespace Muon
118
119#endif // MUONTRACKINGGEOMETRY_MUONSTATIONBUILDERIMPL_H
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
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
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
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.
Definition Layer.h:72
Material with information about thickness of material.
A common object to be contained by.
Definition Material.h:117
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.