ATLAS Offline Software
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 
27 namespace Trk {
28 class MaterialProperties;
29 }
30 
31 namespace Muon {
32 
33 
34 
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, 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(std::string vname, 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  ToolHandle<Trk::ITrackingVolumeHelper> m_trackingVolumeHelper{
99  this, "TrackingVolumeHelper",
100  "Trk::TrackingVolumeHelper/TrackingVolumeHelper"};
101 
105  // 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
grepfile.info
info
Definition: grepfile.py:38
Muon::MuonStationBuilderImpl::encloseLayers
void encloseLayers(const Trk::DetachedTrackingVolume *) const
GMTreeBrowser.h
Muon::MuonStationBuilderImpl::checkLayerId
void checkLayerId(std::string_view comment, const MuonGM::MuonDetectorManager *muonMgr, Identifier id, const Trk::Layer *lay) const
Definition: MuonStationBuilderImpl.cxx:1245
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
Muon::MuonStationBuilderImpl::m_gmBrowser
Trk::GMTreeBrowser m_gmBrowser
Definition: MuonStationBuilderImpl.h:107
Muon::MuonStationBuilderImpl::identifyPrototype
void identifyPrototype(Trk::TrackingVolume &station, int eta, int phi, const Amg::Transform3D &transf, const MuonGM::MuonDetectorManager *muonMgr) const
Definition: MuonStationBuilderImpl.cxx:476
Muon::MuonStationBuilderImpl::identifyNSWLayers
void identifyNSWLayers(Trk::DetachedTrackingVolume &station, const Identifier &id) const
Definition: MuonStationBuilderImpl.cxx:453
Muon::MuonStationBuilderImpl::m_buildTgc
Gaudi::Property< bool > m_buildTgc
Definition: MuonStationBuilderImpl.h:114
Muon::MuonStationBuilderImpl::retrieveGMsensitive
std::vector< std::pair< const GeoVPhysVol *, std::vector< GMInfo > > > retrieveGMsensitive(const MuonGM::MuonDetectorManager *muonMgr) const
Definition: MuonStationBuilderImpl.cxx:745
Trk::VolumeConverter
Definition: VolumeConverter.h:60
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::MuonStationBuilderImpl::GMInfo
std::pair< Amg::Transform3D, int > GMInfo
Definition: MuonStationBuilderImpl.h:44
Muon::MuonStationBuilderImpl::initialize
virtual StatusCode initialize() override
Definition: MuonStationBuilderImpl.cxx:75
GeoPrimitives.h
Trk::GMTreeBrowser
Definition: GMTreeBrowser.h:30
Muon::MuonStationBuilderImpl::glueComponents
void glueComponents(Trk::DetachedTrackingVolume *) const
Definition: MuonStationBuilderImpl.cxx:155
Muon::MuonStationBuilderImpl::m_muonStationTypeBuilder
ToolHandle< Muon::MuonStationTypeBuilder > m_muonStationTypeBuilder
Helper Tool to create TrackingVolume Arrays.
Definition: MuonStationBuilderImpl.h:91
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AthAlgTool.h
Muon::MuonStationBuilderImpl::m_trackingVolumeHelper
ToolHandle< Trk::ITrackingVolumeHelper > m_trackingVolumeHelper
Helper Tool to create TrackingVolumes.
Definition: MuonStationBuilderImpl.h:98
Muon::MuonStationBuilderImpl
Definition: MuonStationBuilderImpl.h:42
Muon::GMInfo
MuonStationBuilderImpl::GMInfo GMInfo
Definition: MuonStationBuilderImpl.cxx:65
Muon::MuonStationBuilderImpl::buildDetachedTrackingVolumeType
std::unique_ptr< Trk::DetachedTrackingVolume > buildDetachedTrackingVolumeType(const MuonGM::MuonDetectorManager *muonMgr, const GeoVPhysVol *gv, GMInfo info) const
Definition: MuonStationBuilderImpl.cxx:917
Muon::MuonStationBuilderImpl::m_materialConverter
Trk::GeoMaterialConverter m_materialConverter
Definition: MuonStationBuilderImpl.h:110
DetachedTrackingVolume.h
Muon::MuonStationBuilderImpl::resolveId
Identifier resolveId(std::string vname, GMInfo gm_info, int &eta, int &phi, const MuonGM::MuonDetectorManager *muonMgr) const
Definition: MuonStationBuilderImpl.cxx:1101
CaloCondBlobAlgs_fillNoiseFromASCII.comment
string comment
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:27
CLHEPtoEigenConverter.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Muon::MuonStationBuilderImpl::getNSWStationsForTranslation
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
Definition: MuonStationBuilderImpl.cxx:643
GeoMaterialConverter.h
MuonStationTypeBuilder.h
MuonDetectorManager.h
Muon::MuonStationBuilderImpl::m_buildEndcap
Gaudi::Property< bool > m_buildEndcap
Definition: MuonStationBuilderImpl.h:112
TrackingVolume.h
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:49
Muon::MuonStationBuilderImpl::MuonStationBuilderImpl
MuonStationBuilderImpl(const std::string &, const std::string &, const IInterface *)
Definition: MuonStationBuilderImpl.cxx:68
Trk::GeoMaterialConverter
Definition: GeoMaterialConverter.h:30
python.changerun.pv
pv
Definition: changerun.py:81
GeoShapeConverter.h
VolumeConverter.h
Muon::MuonStationBuilderImpl::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MuonStationBuilderImpl.h:56
Muon::MuonStationBuilderImpl::~MuonStationBuilderImpl
virtual ~MuonStationBuilderImpl()=default
Muon::MuonStationBuilderImpl::m_muonMaterial
Trk::Material m_muonMaterial
the material
Definition: MuonStationBuilderImpl.h:104
Muon::MuonStationBuilderImpl::buildDetachedTrackingVolumesImpl
DetachedVolVec buildDetachedTrackingVolumesImpl(const MuonGM::MuonDetectorManager *muonMgr, bool blend=false) const
Definition: MuonStationBuilderImpl.cxx:99
Muon::MuonStationBuilderImpl::m_buildCsc
Gaudi::Property< bool > m_buildCsc
Definition: MuonStationBuilderImpl.h:113
Muon::MuonStationBuilderImpl::m_volumeConverter
Trk::VolumeConverter m_volumeConverter
material converter
Definition: MuonStationBuilderImpl.h:108
Trk::Material
Definition: Material.h:116
AthAlgTool
Definition: AthAlgTool.h:26
Trk::DetachedTrackingVolume
Definition: DetachedTrackingVolume.h:46
Trk::TrackingVolume
Definition: TrackingVolume.h:121
Muon::MuonStationBuilderImpl::identifyLayers
void identifyLayers(Trk::DetachedTrackingVolume *, Identifier, int, int, const MuonGM::MuonDetectorManager *) const
Definition: MuonStationBuilderImpl.cxx:185
Muon::MuonStationBuilderImpl::m_buildBarrel
Gaudi::Property< bool > m_buildBarrel
Definition: MuonStationBuilderImpl.h:111
IMuonIdHelperSvc.h
Trk::Layer
Definition: Layer.h:73
ServiceHandle< Muon::IMuonIdHelperSvc >
ITrackingVolumeHelper.h
Muon::MuonStationBuilderImpl::DetachedVolVec
std::vector< std::unique_ptr< Trk::DetachedTrackingVolume > > DetachedVolVec
Definition: MuonStationBuilderImpl.h:48