ATLAS Offline Software
Loading...
Searching...
No Matches
TgcReadoutGeomTool.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_TgcREAOUDGEOMTOOL_H
6#define MUONGEOMODELR4_TgcREAOUDGEOMTOOL_H
7
10
15#include <GeoModelHelpers/GeoDeDuplicator.h>
16
17class GeoTrd;
18namespace MuonGMR4 {
19
20class TgcReadoutGeomTool : public extends<AthAlgTool, IMuonReadoutGeomTool> {
21 public:
22 // Constructor
23 using base_class::base_class;
24
25 StatusCode buildReadOutElements(MuonDetectorManager &mgr) override final;
26
27 private:
29 StatusCode writeSectorMapping(const MuonDetectorManager& mgr) const;
31 "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
32
33 ServiceHandle<IGeoDbTagSvc> m_geoDbTagSvc{this, "GeoDbTagSvc", "GeoDbTagSvc"};
34
35 PublicToolHandle<IMuonGeoUtilityTool> m_geoUtilTool{this,"GeoUtilTool", "" };
36
38 struct wTgcTable {
39 std::vector<double> bottomStripPos{};
40 std::vector<double> topStripPos{};
41 std::vector<unsigned int> wireGangs{};
42 double wirePitch{0.};
43 unsigned int gasGap{0};
44 };
45 struct FactoryCache {
49 using ParamBookTable = std::unordered_map<std::string, wTgcTable>;
53 using ReadoutTable = std::map<std::string, StripLayerPtr>;
60 GeoDeDuplicator trfNodeMaker{};
61 };
62
64 StatusCode readParameterBook(FactoryCache& cache);
66 StatusCode loadDimensions(TgcReadoutElement::defineArgs& args, FactoryCache& factory );
70 std::unique_ptr<WireGroupDesign>
71 constructWireDesign(const wTgcTable& table,
72 const GeoTrd* gapTrd) const;
77 std::unique_ptr<RadialStripDesign>
78 constructRadialDesign(const wTgcTable& table,
79 const GeoTrd* gapTrd) const;
80
81};
82
83} // namespace MuonGMR4
84#endif
StatusCode writeSectorMapping(const MuonDetectorManager &mgr) const
Map the Tgc sectors to the classical Muon System sectors.
StatusCode buildReadOutElements(MuonDetectorManager &mgr) override final
std::unique_ptr< WireGroupDesign > constructWireDesign(const wTgcTable &table, const GeoTrd *gapTrd) const
Constructs a new wire group design, if the table has wires defined.
StatusCode loadDimensions(TgcReadoutElement::defineArgs &args, FactoryCache &factory)
Loads the chamber dimensions from GeoModel.
PublicToolHandle< IMuonGeoUtilityTool > m_geoUtilTool
std::unique_ptr< RadialStripDesign > constructRadialDesign(const wTgcTable &table, const GeoTrd *gapTrd) const
Constructs a new radial strip design, if the table contains radial strips.
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
StatusCode readParameterBook(FactoryCache &cache)
Retrieves the auxillary tables from the database.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
std::set< WireDesignPtr, WireDesignSorter > WireGroupDesignSet
std::set< RadialStripDesignPtr, RadialDesignSorter > RadialStripDesignSet
WireGroupDesignSet wireLayouts
Set to share equivalent WireGroupDesigns across multiple gas gaps.
RadialStripDesignSet stripReadouts
Set to share equivalent RadialStripDesigns across multiple gas gaps.
std::unordered_map< std::string, wTgcTable > ParamBookTable
Parameter map of the Tgc technology.
std::map< std::string, StripLayerPtr > ReadoutTable
Map to share the StripLayer readout objects across multiple readout elements.
GeoDeDuplicator trfNodeMaker
Helper object to turn Amg::Transforms into GeoModel tree transform nodes.
Helper struct to cache the essential readout parameters from the WTGC tables.