ATLAS Offline Software
MuonInertMaterialBuilderImpl.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // MuonInertMaterialBuilderImpl.h, (c) ATLAS Detector software
8 
9 #ifndef MUONTRACKINGGEOMETRY_MUONINERTMATERIALBUILDERIMPL_H
10 #define MUONTRACKINGGEOMETRY_MUONINERTMATERIALBUILDERIMPL_H
11 
12 // Amg
15 // Trk
23 // Gaudi
25 #include "GaudiKernel/ToolHandle.h"
26 // GeoModel
27 #include "GeoModelKernel/GeoVPhysVol.h"
28 
29 // CondData
31 
32 namespace Trk {
33 class TrackingVolume;
34 
35 } // namespace Trk
36 
37 namespace MuonGM {
38 class MuonStation;
39 }
40 
41 namespace Muon {
42 
53  public:
55  virtual ~MuonInertMaterialBuilderImpl() = default;
57  virtual StatusCode initialize() override;
58  using DetachedVolVec = std::vector<std::unique_ptr<Trk::DetachedTrackingVolume>>;
59 
60  DetachedVolVec buildDetachedTrackingVolumesImpl(const PVConstLink treeTop,
61  bool blend) const;
62 
63  protected:
65  MuonInertMaterialBuilderImpl(const std::string&, const std::string&,
66  const IInterface*);
67 
70  std::vector<std::pair<std::unique_ptr<Trk::DetachedTrackingVolume>,
71  std::vector<Amg::Transform3D>>>;
72 
74  bool blend) const;
75 
78  const GeoVPhysVol* pv, const Amg::Transform3D&,
79  std::vector<std::pair<const GeoVPhysVol*,
80  std::vector<Amg::Transform3D>>>& vols) const;
82  void printInfo(const GeoVPhysVol* pv) const;
83  void printChildren(const GeoVPhysVol* pv) const;
84 
85  Gaudi::Property<bool> m_simplify{
86  this, "SimplifyGeometry",
87  false}; // switch geometry simplification on/off
88  Gaudi::Property<bool> m_simplifyToLayers{
89  this, "SimplifyGeometryToLayers",
90  false}; // switch geometry simplification to layers on/off
91  Gaudi::Property<bool> m_debugMode{
92  this, "DebugMode", false}; // build layers & dense volumes in parallel
93  // - double counting material !!!
94  Gaudi::Property<bool> m_buildBT{this, "BuildBarrelToroids",
95  true}; // build barrel toroids
96  Gaudi::Property<bool> m_buildECT{this, "BuildEndcapToroids",
97  true}; // build endcap toroids
98  Gaudi::Property<bool> m_buildFeets{this, "BuildFeets",
99  true}; // build feets
100  Gaudi::Property<int> m_buildRails{this, "BuildRails", 1}; // build rails
101  Gaudi::Property<bool> m_buildShields{this, "BuildShields",
102  true}; // build shieldings
103  Gaudi::Property<bool> m_buildSupports{this, "BuildSupports",
104  true}; // build other
105  Gaudi::Property<bool> m_buildNSWInert{this, "BuildNSWInert",
106  true}; // build NSW inert material
107  Gaudi::Property<double> m_blendLimit{this, "BlendLimit",
108  1e+06}; // mass limit for blending [g]
112 };
113 
114 } // namespace Muon
115 
116 #endif // MUONTRACKINGGEOMETRY_MUONINERTMATERIALBUILDERIMPL_H
Trk::TrackingVolumeManipulator
Definition: TrackingVolumeManipulator.h:32
GMTreeBrowser.h
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Muon::MuonInertMaterialBuilderImpl::m_buildBT
Gaudi::Property< bool > m_buildBT
Definition: MuonInertMaterialBuilderImpl.h:94
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
Muon::MuonInertMaterialBuilderImpl::m_buildFeets
Gaudi::Property< bool > m_buildFeets
Definition: MuonInertMaterialBuilderImpl.h:98
Muon::MuonInertMaterialBuilderImpl::m_buildECT
Gaudi::Property< bool > m_buildECT
Definition: MuonInertMaterialBuilderImpl.h:96
Muon::MuonInertMaterialBuilderImpl::initialize
virtual StatusCode initialize() override
AlgTool initialize method.
Definition: MuonInertMaterialBuilderImpl.cxx:26
Muon::MuonInertMaterialBuilderImpl::m_buildRails
Gaudi::Property< int > m_buildRails
Definition: MuonInertMaterialBuilderImpl.h:100
MaterialProperties.h
Muon::MuonInertMaterialBuilderImpl::MuonInertMaterialBuilderImpl
MuonInertMaterialBuilderImpl(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition: MuonInertMaterialBuilderImpl.cxx:20
Muon::MuonInertMaterialBuilderImpl::m_simplify
Gaudi::Property< bool > m_simplify
Definition: MuonInertMaterialBuilderImpl.h:85
Muon::MuonInertMaterialBuilderImpl::m_buildShields
Gaudi::Property< bool > m_buildShields
Definition: MuonInertMaterialBuilderImpl.h:101
Muon::MuonInertMaterialBuilderImpl::m_buildNSWInert
Gaudi::Property< bool > m_buildNSWInert
Definition: MuonInertMaterialBuilderImpl.h:105
Muon::MuonInertMaterialBuilderImpl::buildDetachedTrackingVolumeTypes
DetachedVolumeVecWithTrfs buildDetachedTrackingVolumeTypes(const PVConstLink top, bool blend) const
Definition: MuonInertMaterialBuilderImpl.cxx:62
Trk::VolumeConverter
Definition: VolumeConverter.h:60
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition: TrackSystemController.h:45
Muon::MuonInertMaterialBuilderImpl::m_gmBrowser
Trk::GMTreeBrowser m_gmBrowser
gm tree helper
Definition: MuonInertMaterialBuilderImpl.h:110
Muon::MuonInertMaterialBuilderImpl::DetachedVolumeVecWithTrfs
std::vector< std::pair< std::unique_ptr< Trk::DetachedTrackingVolume >, std::vector< Amg::Transform3D > >> DetachedVolumeVecWithTrfs
Method creating material object prototypes.
Definition: MuonInertMaterialBuilderImpl.h:71
GeoPrimitives.h
Muon::MuonInertMaterialBuilderImpl::getObjsForTranslation
void getObjsForTranslation(const GeoVPhysVol *pv, const Amg::Transform3D &, std::vector< std::pair< const GeoVPhysVol *, std::vector< Amg::Transform3D >>> &vols) const
Method extracting material objects from GeoModel tree.
Definition: MuonInertMaterialBuilderImpl.cxx:210
Trk::GMTreeBrowser
Definition: GMTreeBrowser.h:30
Trk::GeoShapeConverter
Definition: GeoShapeConverter.h:42
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::MuonInertMaterialBuilderImpl::m_buildSupports
Gaudi::Property< bool > m_buildSupports
Definition: MuonInertMaterialBuilderImpl.h:103
Muon::MuonInertMaterialBuilderImpl::DetachedVolVec
std::vector< std::unique_ptr< Trk::DetachedTrackingVolume > > DetachedVolVec
Definition: MuonInertMaterialBuilderImpl.h:58
DetachedTrackingVolume.h
CLHEPtoEigenConverter.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Muon::MuonInertMaterialBuilderImpl::printInfo
void printInfo(const GeoVPhysVol *pv) const
Dump from GeoModel tree
Definition: MuonInertMaterialBuilderImpl.cxx:174
Muon::MuonInertMaterialBuilderImpl::printChildren
void printChildren(const GeoVPhysVol *pv) const
Definition: MuonInertMaterialBuilderImpl.cxx:186
MuonDetectorManager.h
Muon::MuonInertMaterialBuilderImpl::m_volumeConverter
Trk::VolumeConverter m_volumeConverter
gm->trk volume helper
Definition: MuonInertMaterialBuilderImpl.h:111
TrackingVolumeManipulator.h
TrackingVolume.h
Muon::MuonInertMaterialBuilderImpl::~MuonInertMaterialBuilderImpl
virtual ~MuonInertMaterialBuilderImpl()=default
Destructor.
Muon::MuonInertMaterialBuilderImpl::m_simplifyToLayers
Gaudi::Property< bool > m_simplifyToLayers
Definition: MuonInertMaterialBuilderImpl.h:88
python.changerun.pv
pv
Definition: changerun.py:81
Muon::MuonInertMaterialBuilderImpl::buildDetachedTrackingVolumesImpl
DetachedVolVec buildDetachedTrackingVolumesImpl(const PVConstLink treeTop, bool blend) const
Definition: MuonInertMaterialBuilderImpl.cxx:36
GeoShapeConverter.h
VolumeConverter.h
Muon::MuonInertMaterialBuilderImpl::m_blendLimit
Gaudi::Property< double > m_blendLimit
Definition: MuonInertMaterialBuilderImpl.h:107
top
@ top
Definition: TruthClasses.h:64
AthAlgTool
Definition: AthAlgTool.h:26
Muon::MuonInertMaterialBuilderImpl::m_geoShapeConverter
Trk::GeoShapeConverter m_geoShapeConverter
shape converter
Definition: MuonInertMaterialBuilderImpl.h:109
Muon::MuonInertMaterialBuilderImpl
Definition: MuonInertMaterialBuilderImpl.h:52
Muon::MuonInertMaterialBuilderImpl::m_debugMode
Gaudi::Property< bool > m_debugMode
Definition: MuonInertMaterialBuilderImpl.h:91