ATLAS Offline Software
Loading...
Searching...
No Matches
RpcReadoutGeomTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONGEOMODELR4_RPCREAOUDGEOMTOOL_H
6#define MUONGEOMODELR4_RPCREAOUDGEOMTOOL_H
7
10
15
16#include <GeoModelHelpers/GeoDeDuplicator.h>
17
18class GeoBox;
19
20namespace MuonGMR4 {
23class RpcReadoutGeomTool : public extends<AthAlgTool,IMuonReadoutGeomTool> {
24 public:
25 // Constructor
26 using base_class::base_class;
27
28 StatusCode buildReadOutElements(MuonDetectorManager &mgr) override final;
29
30 private:
32 "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
33
34 ServiceHandle<IGeoDbTagSvc> m_geoDbTagSvc{this, "GeoDbTagSvc", "GeoDbTagSvc"};
35
36 PublicToolHandle<IMuonGeoUtilityTool> m_geoUtilTool{this,"GeoUtilTool", "" };
37
39 struct wRPCTable {
41 double stripPitchEta{0.};
43 double stripPitchPhi{0.};
45 double stripWidthEta{0.};
47 double stripWidthPhi{0.};
49 double firstOffSetPhi{0.};
51 double firstOffSetEta{0.};
53 unsigned int numEtaStrips{0};
55 unsigned int numPhiStrips{0};
56 };
57
61 struct FactoryCache {
62
63 using ParamBookTable = std::map<std::string, wRPCTable>;
64
65 std::set<StripDesignPtr, StripDesignSorter> stripDesigns{};
66 std::set<StripLayerPtr, StripLayerSorter> stripLayers{};
69 GeoDeDuplicator trfNodeMaker{};
70
71 };
72
74 StatusCode readParameterBook(FactoryCache& cache);
76 StatusCode loadDimensions(RpcReadoutElement::defineArgs& args, FactoryCache& factory);
84 std::unique_ptr<StripDesign> constructDesign(const GeoBox* planeBox,
85 const wRPCTable& paramBook,
86 bool phiPlane) const;
87
88};
89
90} // namespace MuonGMR4
91#endif
Implementation to construct Rpc readout element from the list of published full physical volumes and ...
PublicToolHandle< IMuonGeoUtilityTool > m_geoUtilTool
StatusCode readParameterBook(FactoryCache &cache)
Retrieves the auxillary tables from the database.
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
StatusCode buildReadOutElements(MuonDetectorManager &mgr) override final
std::unique_ptr< StripDesign > constructDesign(const GeoBox *planeBox, const wRPCTable &paramBook, bool phiPlane) const
Constructs a new Strip design from the parameter book to describe either the phi plane or the eta str...
StatusCode loadDimensions(RpcReadoutElement::defineArgs &args, FactoryCache &factory)
Loads the chamber dimensions from GeoModel.
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Cache object to the wRPCTable & store stripDesigns & layers to make the information available through...
std::set< StripLayerPtr, StripLayerSorter > stripLayers
std::map< std::string, wRPCTable > ParamBookTable
std::set< StripDesignPtr, StripDesignSorter > stripDesigns
GeoDeDuplicator trfNodeMaker
Helper object to turn Amg::Transforms into GeoModel tree transform nodes.
Struct to cache the relevant parameters of from the WRPC tables.
double firstOffSetEta
Offset of the first eta strip.
unsigned int numEtaStrips
Number of eta strips.
unsigned int numPhiStrips
Number of phi strips.
double firstOffSetPhi
Offset of the first phi strip.