ATLAS Offline Software
sTgcReadoutGeomTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONGEOMODELR4_STGCREAOUDGEOMTOOL_H
6 #define MUONGEOMODELR4_STGCREAOUDGEOMTOOL_H
7 
11 
16 
17 namespace MuonGMR4 {
18 
19 class sTgcReadoutGeomTool : public extends<AthAlgTool, IMuonReadoutGeomTool> {
20  public:
21  // Constructor
22  sTgcReadoutGeomTool(const std::string &type, const std::string &name,
23  const IInterface *parent);
24 
25 
27 
28  private:
29 
31  "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
32 
33  ServiceHandle<IGeoDbTagSvc> m_geoDbTagSvc{this, "GeoDbTagSvc", "GeoDbTagSvc"};
34 
35  PublicToolHandle<IMuonGeoUtilityTool> m_geoUtilTool{this,"GeoUtilTool", "" };
36 
38  struct wSTGCTable {
39 
41  int numStrips{0}; //nStrips
42  double stripPitch{0.}; //stripPitch
43  double stripWidth{0.}; //stripWidth
44  std::vector<double> firstStripPitch; //firstStripWidth
45 
47  std::vector<int> numWires; //numWires
48  std::vector<int> firstWireGroupWidth; //firstWireGroupWidth
49  std::vector<int> numWireGroups; //numWireGroups
50  std::vector<double> wireCutout; //wireCutout
51  double wirePitch{0.}; //wirePitch
52  double wireWidth{0.}; //wireWidth
53  int wireGroupWidth{0}; //wireGroupWidth
54  std::vector<double> firstWirePos; //firstWire
55 
57  std::vector<int> numPadEta; //nPadH
58  std::vector<int> numPadPhi; //nPadPhi
59  std::vector<double> firstPadHeight; //firstPadH
60  std::vector<double> padHeight; //padH
61  std::vector<int> PadPhiShift;
62  double anglePadPhi{0.};
63  std::vector<double> firstPadPhiDivision;
64  double lPadLength{0.};
65  double sPadLength{0.};
66 
67  double yCutout{0.};
68  double yCutoutCathode{0.};
69  double gasTck{0.}; //gasTck
70  double lFrameWidth{0.}; //ylFrame
71  double sFrameWidth{0.}; //ysFrame
72  };
73 
74  struct FactoryCache {
75 
76  using ParamBookTable = std::map<std::string, wSTGCTable>;
77  using CutOutTable = std::map<Identifier, std::vector<CutOutArea>>;
78 
79  std::set<StripDesignPtr, StripDesignSorter> stripDesigns{};
80  std::set<WireDesignPtr, WireDesignSorter> wireGroupDesigns{};
81  std::set<PadDesignPtr, PadDesignSorter> padDesigns{};
82 
85  };
86 
89  struct sTgcShape{
91  double halfHeight{0.};
93  double longWidth{0.};
95  double shortWidth{0.};
97  double thickness{0.};
99  double yCutOut{0.};
100  };
101 
102  sTgcShape extractParameters(const GeoShape* shape) const;
103 
105  StatusCode readParameterBook(FactoryCache& cache);
108 };
109 
110 } // namespace MuonGMR4
111 #endif
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::wireWidth
double wireWidth
Definition: sTgcReadoutGeomTool.h:52
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstPadHeight
std::vector< double > firstPadHeight
Definition: sTgcReadoutGeomTool.h:59
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstWirePos
std::vector< double > firstWirePos
Definition: sTgcReadoutGeomTool.h:54
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::yCutoutCathode
double yCutoutCathode
Definition: sTgcReadoutGeomTool.h:68
MuonGMR4::sTgcReadoutGeomTool::extractParameters
sTgcShape extractParameters(const GeoShape *shape) const
Definition: sTgcReadoutGeomTool.cxx:43
MuonGMR4::MuonDetectorManager
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonDetectorManager.h:62
MuonGMR4::MmReadoutElement::parameterBook
Set of parameters to describe a RPC chamber.
Definition: MmReadoutElement.h:24
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::lPadLength
double lPadLength
Definition: sTgcReadoutGeomTool.h:64
MuonGMR4::sTgcReadoutGeomTool::sTgcShape::thickness
double thickness
Thickness of the shape along global z.
Definition: sTgcReadoutGeomTool.h:97
MuonGMR4::sTgcReadoutGeomTool::buildReadOutElements
StatusCode buildReadOutElements(MuonDetectorManager &mgr) override final
Definition: sTgcReadoutGeomTool.cxx:233
MuonGMR4::sTgcReadoutElement::defineArgs
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/sTgcReadoutElement.h:80
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::padHeight
std::vector< double > padHeight
Definition: sTgcReadoutGeomTool.h:60
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::stripDesigns
std::set< StripDesignPtr, StripDesignSorter > stripDesigns
Definition: sTgcReadoutGeomTool.h:79
MuonGMR4::sTgcReadoutGeomTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: sTgcReadoutGeomTool.h:30
MuonGMR4::sTgcReadoutGeomTool::readParameterBook
StatusCode readParameterBook(FactoryCache &cache)
Retrieves the auxillary tables from the database.
Definition: sTgcReadoutGeomTool.cxx:291
MuonGMR4::sTgcReadoutGeomTool::sTgcShape
Helper struct to translate the GeoModelShape into the parameters used to construct the readout elemen...
Definition: sTgcReadoutGeomTool.h:89
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::PadPhiShift
std::vector< int > PadPhiShift
Definition: sTgcReadoutGeomTool.h:61
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::wireGroupDesigns
std::set< WireDesignPtr, WireDesignSorter > wireGroupDesigns
Definition: sTgcReadoutGeomTool.h:80
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numPadPhi
std::vector< int > numPadPhi
Definition: sTgcReadoutGeomTool.h:58
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstPadPhiDivision
std::vector< double > firstPadPhiDivision
Definition: sTgcReadoutGeomTool.h:63
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
CutOutArea.h
sTgcReadoutElement.h
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numStrips
int numStrips
Definition: sTgcReadoutGeomTool.h:41
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numWireGroups
std::vector< int > numWireGroups
Definition: sTgcReadoutGeomTool.h:49
MuonGMR4
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Definition: MdtCalibInput.h:20
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numWires
std::vector< int > numWires
Definition: sTgcReadoutGeomTool.h:47
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::wirePitch
double wirePitch
Definition: sTgcReadoutGeomTool.h:51
MuonGMR4::sTgcReadoutGeomTool::loadDimensions
StatusCode loadDimensions(sTgcReadoutElement::defineArgs &args, FactoryCache &factory)
Loads the chamber dimensions from GeoModel.
Definition: sTgcReadoutGeomTool.cxx:72
MuonGMR4::sTgcReadoutGeomTool::m_geoUtilTool
PublicToolHandle< IMuonGeoUtilityTool > m_geoUtilTool
Definition: sTgcReadoutGeomTool.h:35
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstWireGroupWidth
std::vector< int > firstWireGroupWidth
Definition: sTgcReadoutGeomTool.h:48
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::ParamBookTable
std::map< std::string, wSTGCTable > ParamBookTable
Definition: sTgcReadoutGeomTool.h:76
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MuonGMR4::sTgcReadoutGeomTool::m_geoDbTagSvc
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
Definition: sTgcReadoutGeomTool.h:33
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::wireCutout
std::vector< double > wireCutout
Definition: sTgcReadoutGeomTool.h:50
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::yCutout
double yCutout
Definition: sTgcReadoutGeomTool.h:67
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::gasTck
double gasTck
Definition: sTgcReadoutGeomTool.h:69
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::stripPitch
double stripPitch
Definition: sTgcReadoutGeomTool.h:42
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::anglePadPhi
double anglePadPhi
Definition: sTgcReadoutGeomTool.h:62
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::CutOutTable
std::map< Identifier, std::vector< CutOutArea > > CutOutTable
Definition: sTgcReadoutGeomTool.h:77
MuonGMR4::sTgcReadoutGeomTool::sTgcShape::longWidth
double longWidth
Width of the module at the upper edge.
Definition: sTgcReadoutGeomTool.h:93
MuonGMR4::sTgcReadoutGeomTool
Definition: sTgcReadoutGeomTool.h:19
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::wireGroupWidth
int wireGroupWidth
Definition: sTgcReadoutGeomTool.h:53
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstStripPitch
std::vector< double > firstStripPitch
Definition: sTgcReadoutGeomTool.h:44
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::padDesigns
std::set< PadDesignPtr, PadDesignSorter > padDesigns
Definition: sTgcReadoutGeomTool.h:81
MuonGMR4::sTgcReadoutGeomTool::FactoryCache
Definition: sTgcReadoutGeomTool.h:74
MuonGMR4::sTgcReadoutGeomTool::sTgcReadoutGeomTool
sTgcReadoutGeomTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: sTgcReadoutGeomTool.cxx:38
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::cutOuts
CutOutTable cutOuts
Definition: sTgcReadoutGeomTool.h:84
MuonGMR4::sTgcReadoutGeomTool::sTgcShape::halfHeight
double halfHeight
Height of the module in radial direction.
Definition: sTgcReadoutGeomTool.h:91
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numPadEta
std::vector< int > numPadEta
Definition: sTgcReadoutGeomTool.h:57
IMuonReaoutGeomTool.h
MuonGMR4::sTgcReadoutGeomTool::sTgcShape::shortWidth
double shortWidth
Width of the module ath the bottom edge.
Definition: sTgcReadoutGeomTool.h:95
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable
Struct to cache the relevant parameters of from the WSTGC tables.
Definition: sTgcReadoutGeomTool.h:38
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::stripWidth
double stripWidth
Definition: sTgcReadoutGeomTool.h:43
IMuonGeoUtilityTool.h
IMuonIdHelperSvc.h
python.CaloScaleNoiseConfig.args
args
Definition: CaloScaleNoiseConfig.py:80
IGeoDbTagSvc.h
MuonGMR4::sTgcReadoutGeomTool::sTgcShape::yCutOut
double yCutOut
Cut out of the module.
Definition: sTgcReadoutGeomTool.h:99
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::sPadLength
double sPadLength
Definition: sTgcReadoutGeomTool.h:65
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::sFrameWidth
double sFrameWidth
Definition: sTgcReadoutGeomTool.h:71
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::lFrameWidth
double lFrameWidth
Definition: sTgcReadoutGeomTool.h:70
ServiceHandle< Muon::IMuonIdHelperSvc >