ATLAS Offline Software
Loading...
Searching...
No Matches
ChamberAssembleTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef MUONGEOMODELR4_MUONCHAMBERASSMBLETOOL_H
5#define MUONGEOMODELR4_MUONCHAMBERASSMBLETOOL_H
6
8
10
14
15#include "Acts/Surfaces/SurfaceBounds.hpp"
16#include "Acts/Geometry/VolumeBounds.hpp"
17#include "Acts/Utilities/PointerTraits.hpp"
18#include "Acts/Utilities/BoundFactory.hpp"
19
20#include <tuple>
21
22namespace MuonGMR4 {
23
27class ChamberAssembleTool : public extends<AthAlgTool, IMuonReadoutGeomTool> {
28 public:
30 using base_class::base_class;
31
32 virtual StatusCode buildReadOutElements(MuonDetectorManager &mgr) override final;
33
35 using VolBounds_t = Acts::VolumeBounds;
37 using VolBoundPtr_t = std::shared_ptr<VolBounds_t>;
39 using SurfBoundPtr_t = std::shared_ptr<const Acts::PlanarBounds>;
41 using TrfWithBounds = std::tuple<Acts::Transform3, VolBoundPtr_t, SurfBoundPtr_t>;
42 private:
52 template <typename ReObjType>
54 const std::vector<ReObjType>& constituents,
55 const Acts::Transform3& globToLoc,
56 Acts::VolumeBoundFactory& volBoundSet,
57 Acts::SurfaceBoundFactory& surfBoundSet,
58 const double margin) const
59 requires (Acts::PointerConcept<ReObjType>);
60
62
67 static SurfBoundPtr_t surfaceBounds(const VolBounds_t& volBounds,
68 Acts::SurfaceBoundFactory& surfBoundSet);
69 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "IdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
72 Gaudi::Property<bool> m_isRun4{this, "run4Layout", false};
73};
74
75}
76#endif
Assembly tool to produce the Acts envolpe volumes around the muon stations & also to construct the sp...
std::shared_ptr< const Acts::PlanarBounds > SurfBoundPtr_t
Abrivation of the surface bounds.
std::tuple< Acts::Transform3, VolBoundPtr_t, SurfBoundPtr_t > TrfWithBounds
Abrivation of the volume transform together with a set of volume & surface bounds.
Acts::VolumeBounds VolBounds_t
Abrivation of the volume bounds.
virtual StatusCode buildReadOutElements(MuonDetectorManager &mgr) override final
TrfWithBounds boundingBox(const ActsTrk::GeometryContext &gctx, const std::vector< ReObjType > &constituents, const Acts::Transform3 &globToLoc, Acts::VolumeBoundFactory &volBoundSet, Acts::SurfaceBoundFactory &surfBoundSet, const double margin) const
builds the bounding box trapezoidal volume bounds from the set of readout elements Returns a pair of ...
Gaudi::Property< bool > m_isRun4
Toggling whether the layout is a R3 or R4 layout.
SpectrometerSector::ChamberPtr ChamberPtr
std::shared_ptr< VolBounds_t > VolBoundPtr_t
Abrivation of the Volume bound ptr.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
static SurfBoundPtr_t surfaceBounds(const VolBounds_t &volBounds, Acts::SurfaceBoundFactory &surfBoundSet)
Construct surface bounds which measure equal sizes in halfXlow/halfXhigh & halfY as the parsed volume...
MuonReadoutElement is an abstract class representing the geometry of a muon detector.
GeoModel::TransientConstSharedPtr< Chamber > ChamberPtr
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...