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 
20  virtual public IMuonReadoutGeomTool {
21  public:
22  // Constructor
23  sTgcReadoutGeomTool(const std::string &type, const std::string &name,
24  const IInterface *parent);
25 
26 
28 
29  private:
30 
32  "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
33 
34  ServiceHandle<IGeoDbTagSvc> m_geoDbTagSvc{this, "GeoDbTagSvc", "GeoDbTagSvc"};
35 
36  PublicToolHandle<IMuonGeoUtilityTool> m_geoUtilTool{this,"GeoUtilTool", "" };
37 
39  struct wSTGCTable {
40 
42  int numStrips{0}; //nStrips
43  double stripPitch{0.}; //stripPitch
44  double stripWidth{0.}; //stripWidth
45  std::vector<double> firstStripPitch; //firstStripWidth
46 
48  std::vector<int> numWires; //numWires
49  std::vector<int> firstWireGroupWidth; //firstWireGroupWidth
50  std::vector<int> numWireGroups; //numWireGroups
51  std::vector<double> wireCutout; //wireCutout
52  double wirePitch{0.}; //wirePitch
53  double wireWidth{0.}; //wireWidth
54  int wireGroupWidth{0}; //wireGroupWidth
55  std::vector<double> firstWirePos; //firstWire
56 
58  std::vector<int> numPadEta; //nPadH
59  std::vector<int> numPadPhi; //nPadPhi
60  std::vector<double> firstPadHeight; //firstPadH
61  std::vector<double> padHeight; //padH
62  std::vector<int> PadPhiShift;
63  double anglePadPhi{0.};
64  std::vector<double> firstPadPhiDivision;
65  double lPadLength{0.};
66  double sPadLength{0.};
67 
68  double yCutout{0.};
69  double yCutoutCathode{0.};
70  double gasTck{0.}; //gasTck
71  double lFrameWidth{0.}; //ylFrame
72  double sFrameWidth{0.}; //ysFrame
73  };
74 
75  struct FactoryCache {
76 
77  using ParamBookTable = std::map<std::string, wSTGCTable>;
78  using CutOutTable = std::map<Identifier, std::vector<CutOutArea>>;
79 
80  std::set<StripDesignPtr, StripDesignSorter> stripDesigns{};
81  std::set<WireDesignPtr, WireDesignSorter> wireGroupDesigns{};
82  std::set<PadDesignPtr, PadDesignSorter> padDesigns{};
83 
86  };
87 
90  struct sTgcShape{
92  double halfHeight{0.};
94  double longWidth{0.};
96  double shortWidth{0.};
98  double thickness{0.};
100  double yCutOut{0.};
101  };
102 
103  sTgcShape extractParameters(const GeoShape* shape) const;
104 
106  StatusCode readParameterBook(FactoryCache& cache);
109 };
110 
111 } // namespace MuonGMR4
112 #endif
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::wireWidth
double wireWidth
Definition: sTgcReadoutGeomTool.h:53
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstPadHeight
std::vector< double > firstPadHeight
Definition: sTgcReadoutGeomTool.h:60
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstWirePos
std::vector< double > firstWirePos
Definition: sTgcReadoutGeomTool.h:55
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::yCutoutCathode
double yCutoutCathode
Definition: sTgcReadoutGeomTool.h:69
MuonGMR4::sTgcReadoutGeomTool::extractParameters
sTgcShape extractParameters(const GeoShape *shape) const
Definition: sTgcReadoutGeomTool.cxx:41
MuonGMR4::MuonDetectorManager
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/MuonDetectorManager.h:61
MuonGMR4::MmReadoutElement::parameterBook
Set of parameters to describe a RPC chamber.
Definition: MmReadoutElement.h:23
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::lPadLength
double lPadLength
Definition: sTgcReadoutGeomTool.h:65
MuonGMR4::sTgcReadoutGeomTool::sTgcShape::thickness
double thickness
Thickness of the shape along global z.
Definition: sTgcReadoutGeomTool.h:98
MuonGMR4::sTgcReadoutGeomTool::buildReadOutElements
StatusCode buildReadOutElements(MuonDetectorManager &mgr) override final
Retrieves the GeoModel from the GeoModelSvc and append the ReadoutElements of the Given MuonDetectorT...
Definition: sTgcReadoutGeomTool.cxx:231
MuonGMR4::sTgcReadoutElement::defineArgs
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/sTgcReadoutElement.h:79
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::padHeight
std::vector< double > padHeight
Definition: sTgcReadoutGeomTool.h:61
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::stripDesigns
std::set< StripDesignPtr, StripDesignSorter > stripDesigns
Definition: sTgcReadoutGeomTool.h:80
MuonGMR4::sTgcReadoutGeomTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: sTgcReadoutGeomTool.h:31
MuonGMR4::sTgcReadoutGeomTool::readParameterBook
StatusCode readParameterBook(FactoryCache &cache)
Retrieves the auxillary tables from the database.
Definition: sTgcReadoutGeomTool.cxx:289
MuonGMR4::sTgcReadoutGeomTool::sTgcShape
Helper struct to translate the GeoModelShape into the parameters used to construct the readout elemen...
Definition: sTgcReadoutGeomTool.h:90
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::PadPhiShift
std::vector< int > PadPhiShift
Definition: sTgcReadoutGeomTool.h:62
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::wireGroupDesigns
std::set< WireDesignPtr, WireDesignSorter > wireGroupDesigns
Definition: sTgcReadoutGeomTool.h:81
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numPadPhi
std::vector< int > numPadPhi
Definition: sTgcReadoutGeomTool.h:59
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstPadPhiDivision
std::vector< double > firstPadPhiDivision
Definition: sTgcReadoutGeomTool.h:64
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
CutOutArea.h
sTgcReadoutElement.h
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numStrips
int numStrips
Definition: sTgcReadoutGeomTool.h:42
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numWireGroups
std::vector< int > numWireGroups
Definition: sTgcReadoutGeomTool.h:50
MuonGMR4
A muon chamber is a collection of readout elements belonging to the same station.
Definition: ChamberAssembleTool.h:16
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numWires
std::vector< int > numWires
Definition: sTgcReadoutGeomTool.h:48
MuonGMR4::IMuonReadoutGeomTool
Definition: IMuonReaoutGeomTool.h:20
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:52
MuonGMR4::sTgcReadoutGeomTool::loadDimensions
StatusCode loadDimensions(sTgcReadoutElement::defineArgs &args, FactoryCache &factory)
Loads the chamber dimensions from GeoModel.
Definition: sTgcReadoutGeomTool.cxx:70
MuonGMR4::sTgcReadoutGeomTool::m_geoUtilTool
PublicToolHandle< IMuonGeoUtilityTool > m_geoUtilTool
Definition: sTgcReadoutGeomTool.h:36
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstWireGroupWidth
std::vector< int > firstWireGroupWidth
Definition: sTgcReadoutGeomTool.h:49
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::ParamBookTable
std::map< std::string, wSTGCTable > ParamBookTable
Definition: sTgcReadoutGeomTool.h:77
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
MuonGMR4::sTgcReadoutGeomTool::m_geoDbTagSvc
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
Definition: sTgcReadoutGeomTool.h:34
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::wireCutout
std::vector< double > wireCutout
Definition: sTgcReadoutGeomTool.h:51
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::yCutout
double yCutout
Definition: sTgcReadoutGeomTool.h:68
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::gasTck
double gasTck
Definition: sTgcReadoutGeomTool.h:70
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::stripPitch
double stripPitch
Definition: sTgcReadoutGeomTool.h:43
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::anglePadPhi
double anglePadPhi
Definition: sTgcReadoutGeomTool.h:63
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::CutOutTable
std::map< Identifier, std::vector< CutOutArea > > CutOutTable
Definition: sTgcReadoutGeomTool.h:78
MuonGMR4::sTgcReadoutGeomTool::sTgcShape::longWidth
double longWidth
Width of the module at the upper edge.
Definition: sTgcReadoutGeomTool.h:94
MuonGMR4::sTgcReadoutGeomTool
Definition: sTgcReadoutGeomTool.h:20
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::wireGroupWidth
int wireGroupWidth
Definition: sTgcReadoutGeomTool.h:54
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::firstStripPitch
std::vector< double > firstStripPitch
Definition: sTgcReadoutGeomTool.h:45
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::padDesigns
std::set< PadDesignPtr, PadDesignSorter > padDesigns
Definition: sTgcReadoutGeomTool.h:82
MuonGMR4::sTgcReadoutGeomTool::FactoryCache
Definition: sTgcReadoutGeomTool.h:75
MuonGMR4::sTgcReadoutGeomTool::sTgcReadoutGeomTool
sTgcReadoutGeomTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: sTgcReadoutGeomTool.cxx:34
MuonGMR4::sTgcReadoutGeomTool::FactoryCache::cutOuts
CutOutTable cutOuts
Definition: sTgcReadoutGeomTool.h:85
MuonGMR4::sTgcReadoutGeomTool::sTgcShape::halfHeight
double halfHeight
Height of the module in radial direction.
Definition: sTgcReadoutGeomTool.h:92
AthAlgTool
Definition: AthAlgTool.h:26
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::numPadEta
std::vector< int > numPadEta
Definition: sTgcReadoutGeomTool.h:58
IMuonReaoutGeomTool.h
MuonGMR4::sTgcReadoutGeomTool::sTgcShape::shortWidth
double shortWidth
Width of the module ath the bottom edge.
Definition: sTgcReadoutGeomTool.h:96
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable
Struct to cache the relevant parameters of from the WSTGC tables.
Definition: sTgcReadoutGeomTool.h:39
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::stripWidth
double stripWidth
Definition: sTgcReadoutGeomTool.h:44
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:100
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::sPadLength
double sPadLength
Definition: sTgcReadoutGeomTool.h:66
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::sFrameWidth
double sFrameWidth
Definition: sTgcReadoutGeomTool.h:72
MuonGMR4::sTgcReadoutGeomTool::wSTGCTable::lFrameWidth
double lFrameWidth
Definition: sTgcReadoutGeomTool.h:71
ServiceHandle< Muon::IMuonIdHelperSvc >