ATLAS Offline Software
Loading...
Searching...
No Matches
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
32namespace Trk {
33class TrackingVolume;
34
35} // namespace Trk
36
37namespace MuonGM {
38class MuonStation;
39}
40
41namespace Muon {
42
50
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
@ top
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
std::vector< std::unique_ptr< Trk::DetachedTrackingVolume > > DetachedVolVec
Trk::GeoShapeConverter m_geoShapeConverter
shape converter
Trk::VolumeConverter m_volumeConverter
gm->trk volume helper
DetachedVolVec buildDetachedTrackingVolumesImpl(const PVConstLink &treeTop, bool blend) const
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.
Trk::GMTreeBrowser m_gmBrowser
gm tree helper
MuonInertMaterialBuilderImpl(const std::string &, const std::string &, const IInterface *)
Constructor.
virtual ~MuonInertMaterialBuilderImpl()=default
Destructor.
DetachedVolumeVecWithTrfs buildDetachedTrackingVolumeTypes(const PVConstLink &top, bool blend) const
virtual StatusCode initialize() override
AlgTool initialize method.
void printInfo(const GeoVPhysVol *pv) const
Dump from GeoModel tree.
void printChildren(const GeoVPhysVol *pv) const
std::vector< std::pair< std::unique_ptr< Trk::DetachedTrackingVolume >, std::vector< Amg::Transform3D > > > DetachedVolumeVecWithTrfs
Method creating material object prototypes.
A Helper Class that facilitates navigation through GeoModel tree.
A Simple Helper Class that convertes the GeoShape object used in GeoModel full detector description t...
The only way to change BoundarySurfaces etc from Tracking Volumes.
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
Ensure that the Athena extensions are properly loaded.
Definition GeoMuonHits.h:27
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.