ATLAS Offline Software
Loading...
Searching...
No Matches
MuonDetDescr/MuonGeoModelTest/src/GeoModelTgcTest.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4#ifndef MUONGEOMODELTESTR4_GEOMODELRTGCTEST_H
5#define MUONGEOMODELTESTR4_GEOMODELRTGCTEST_H
6
9#include <set>
18
19namespace MuonGM {
20
22 public:
24
25 StatusCode initialize() override;
26 StatusCode execute() override;
27 StatusCode finalize() override;
28 unsigned int cardinality() const override final { return 1; }
29
30 private:
31
33 StatusCode dumpToTree(const EventContext& ctx, const TgcReadoutElement* readoutEle);
34
37 this, "DetectorManagerKey", "MuonDetectorManager",
38 "Key of input MuonDetectorManager condition data"};
39
41 this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
42
44 std::set<Identifier> m_testStations{};
45
48 Gaudi::Property<std::vector<std::string>> m_selectStat{
49 this, "TestStations", {}, "Constrain the stations to be tested"};
50
51 Gaudi::Property<std::vector<std::string>> m_excludeStat{this, "ExcludeStations", {}};
53 MuonVal::MuonTesterTree m_tree{"TgcGeoModelTree", "GEOMODELTESTER"};
54
55 Gaudi::Property<std::string> m_readoutXML{this, "ReadoutXML", "" ,
56 "Path to the XML containing the readout element structure."};
57
59 MuonVal::ScalarBranch<unsigned short>& m_stIndex{m_tree.newScalar<unsigned short>("stationIndex")};
60 MuonVal::ScalarBranch<short>& m_stEta{m_tree.newScalar<short>("stationEta")};
61 MuonVal::ScalarBranch<short>& m_stPhi{m_tree.newScalar<short>("stationPhi")};
62 MuonVal::ScalarBranch<std::string>& m_stLayout{m_tree.newScalar<std::string>("stationDesign")};
63
64
68
69
70 MuonVal::ScalarBranch<float>& m_shortWidth{m_tree.newScalar<float>("ChamberWidthS")};
71 MuonVal::ScalarBranch<float>& m_longWidth{m_tree.newScalar<float>("ChamberWidthL")};
72 MuonVal::ScalarBranch<float>& m_height{m_tree.newScalar<float>("ChamberHeight")};
73 MuonVal::ScalarBranch<float>& m_thickness{m_tree.newScalar<float>("ChamberThickness")};
74 MuonVal::ScalarBranch<uint8_t>& m_nGasGaps{m_tree.newScalar<uint8_t>("nGasGaps")};
76 MuonVal::ScalarBranch<float>& m_ALineTransS{m_tree.newScalar<float>("ALineTransS", 0.)};
77 MuonVal::ScalarBranch<float>& m_ALineTransT{m_tree.newScalar<float>("ALineTransT", 0.)};
78 MuonVal::ScalarBranch<float>& m_ALineTransZ{m_tree.newScalar<float>("ALineTransZ", 0.)};
79 MuonVal::ScalarBranch<float>& m_ALineRotS{m_tree.newScalar<float>("ALineRotS", 0.)};
80 MuonVal::ScalarBranch<float>& m_ALineRotT{m_tree.newScalar<float>("ALineRotT", 0.)};
81 MuonVal::ScalarBranch<float>& m_ALineRotZ{m_tree.newScalar<float>("ALineRotZ", 0.)};
82
83
87
91
92
93 MuonVal::VectorBranch<uint8_t>& m_stripGasGap{m_tree.newVector<uint8_t>("stripGasGap")};
94 MuonVal::VectorBranch<unsigned int>& m_stripNum{m_tree.newVector<unsigned int>("stripNumber")};
95 MuonVal::VectorBranch<float>& m_stripShortWidth{m_tree.newVector<float>("stripShortWidth")};
96 MuonVal::VectorBranch<float>& m_stripLongWidth{m_tree.newVector<float>("stripLongWidth")};
97 MuonVal::VectorBranch<float>& m_stripPitch{m_tree.newVector<float>("stripPitch")};
98
99 MuonVal::VectorBranch<float>& m_stripLength{m_tree.newVector<float>("stripLength")};
100
103
104 MuonVal::VectorBranch<uint8_t>& m_gangGasGap{m_tree.newVector<uint8_t>("gangGasGap")};
105 MuonVal::VectorBranch<unsigned int>& m_gangNum{m_tree.newVector<unsigned int>("gangNumber")};
106 MuonVal::VectorBranch<uint8_t>& m_gangNumWires{m_tree.newVector<uint8_t>("gangNumWires")};
107 MuonVal::VectorBranch<float>& m_gangLength{m_tree.newVector<float>("gangLength")};
108
110 MuonVal::VectorBranch<bool>& m_layMeasPhi{m_tree.newVector<bool>("layerMeasPhi")};
111 MuonVal::VectorBranch<uint8_t>& m_layNumber{m_tree.newVector<uint8_t>("layerNumber")};
112 MuonVal::VectorBranch<float>& m_layShortWidth{m_tree.newVector<float>("layerWidthS")};
113 MuonVal::VectorBranch<float>& m_layLongWidth{m_tree.newVector<float>("layerWidthL")};
114 MuonVal::VectorBranch<float>& m_layHeight{m_tree.newVector<float>("layerHeight")};
115 MuonVal::VectorBranch<uint16_t>& m_layNumWires{m_tree.newVector<uint16_t>("layerNumWires")};
116
117
118};
119
120}
121#endif
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
void dumpReadoutXML(const MuonGM::MuonDetectorManager &detMgr)
MuonVal::ScalarBranch< unsigned short > & m_stIndex
Identifier of the readout element.
MuonVal::VectorBranch< unsigned int > & m_stripNum
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_detMgrKey
MuonDetectorManager from the conditions store.
MuonVal::ScalarBranch< std::string > & m_stLayout
Gaudi::Property< std::vector< std::string > > m_excludeStat
MuonVal::VectorBranch< unsigned int > & m_gangNum
MuonVal::CoordTransformBranch m_readoutTransform
Transformation of the readout element (Translation, ColX, ColY, ColZ)
MuonVal::ScalarBranch< float > & m_ALineTransS
Alignment parameters.
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
std::set< Identifier > m_testStations
Set of stations to be tested.
MuonVal::MuonTesterTree m_tree
Write a TTree for validation purposes.
StatusCode dumpToTree(const EventContext &ctx, const TgcReadoutElement *readoutEle)
Gaudi::Property< std::vector< std::string > > m_selectStat
String should be formated like <stationName><stationEta><A/C><stationPhi>
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
A TgcReadoutElement corresponds to a single TGC chamber; therefore typically a TGC station contains s...
Helper class to dump the Amg::Transformations into 4 three vector branches.
Helper class to dump the Amg::Transformations into a single three vector branch The first entry is th...
Ensure that the Athena extensions are properly loaded.
Definition GeoMuonHits.h:27