4#ifndef MUONGEOMODELTESTR4_MUONCHAMBERTOOLTEST_H
5#define MUONGEOMODELTESTR4_MUONCHAMBERTOOLTEST_H
22#include "Acts/Surfaces/Surface.hpp"
23#include "Acts/Surfaces/StrawSurface.hpp"
24#include "Acts/Surfaces/PlaneSurface.hpp"
31 using AthReentrantAlgorithm::AthReentrantAlgorithm;
34 StatusCode
execute(
const EventContext& ctx)
const override;
41 std::array<Amg::Vector3D, 8>
cornerPoints(
const Acts::Volume& volume)
const;
42 std::array<Amg::Vector3D, 8>
cornerPoints(
const Acts::GeometryContext& gctx,
const Acts::StrawSurface& surface)
const;
43 std::array<Amg::Vector3D, 4>
cornerPoints(
const Acts::GeometryContext& gctx,
const Acts::PlaneSurface&)
const;
47 const std::string& envName,
48 const Acts::Volume& envelopeVol,
49 const std::vector<const MuonGMR4::MuonReadoutElement*>& assocRE,
50 const std::vector<std::shared_ptr<Acts::Volume>>& subVolumes={})
const;
56 template <
class EnvelopeType>
58 const EnvelopeType& envelope)
const;
67 template <
class EnvelopeType>
68 StatusCode
pointInside(
const EnvelopeType& envelope,
69 const Acts::Volume& boundVol,
71 const std::string& descr,
79 StatusCode
pointInside(
const Acts::TrackingVolume& volume,
81 const std::string& descr,
84 bool hasOverlap(
const std::array<Amg::Vector3D, 8>& chamberEdges,
85 const Acts::Volume& volume)
const;
93 template <
class EnvelopeType>
95 const MdtReadoutElement& readOutEle,
96 const EnvelopeType& envelope,
97 const Acts::Volume& boundVol)
const;
98 template <
class EnvelopeType>
100 const RpcReadoutElement& readOutEle,
101 const EnvelopeType& envelope,
102 const Acts::Volume& boundVol)
const;
103 template <
class EnvelopeType>
106 const EnvelopeType& envelope,
107 const Acts::Volume& boundVol)
const;
108 template <
class EnvelopeType>
111 const EnvelopeType& envelope,
112 const Acts::Volume& boundVol)
const;
113 template <
class EnvelopeType>
116 const EnvelopeType& envelope,
117 const Acts::Volume& boundVol)
const;
122 "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
130 Gaudi::Property<std::string>
m_overlapChambObj{
this,
"chamberOverlapFile",
"OverlapingChambers.obj"};
135 Gaudi::Property<bool>
m_dumpObjs{
this,
"dumpVolumes" ,
false};
An algorithm that can be simultaneously executed in multiple threads.
Property holding a SG store/key/clid from which a ReadHandle is made.
Eigen::Matrix< double, 3, 1 > Vector3D
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...