ATLAS Offline Software
Loading...
Searching...
No Matches
MuonPhaseII/MuonDetDescr/MuonGeoModelTestR4/src/GeoModelMdtTest.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_GEOMODELMDTTEST_H
5#define MUONGEOMODELTESTR4_GEOMODELMDTTEST_H
6
10
11
12#include <set>
22
23namespace MuonGMR4{
24
26 public:
28
29 ~GeoModelMdtTest() = default;
30
31 StatusCode execute() override;
32 StatusCode initialize() override;
33 StatusCode finalize() override;
34
35 unsigned int cardinality() const override final { return 1; }
36
37 private:
42 void visualizeTubeLayer(const EventContext& ctx,
43 const MuonGMR4::MdtReadoutElement& reEle,
44 const unsigned layer) const;
46 void dumpReadoutSideXML() const;
47
49 ServiceHandle<MuonValR4::IRootVisualizationService> m_visualSvc{this, "VisualSvc", "MuonValR4::RootVisualizationService"};
52
54 "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
55
56 SG::ReadHandleKey<ActsTrk::GeometryContext> m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
57
58 SG::ReadCondHandleKey<MuonMDT_CablingMap> m_cablingKey{this, "CablingKey", "MuonMDT_CablingMap",
59 "Key of output MDT cabling map"};
60
62 std::set<Identifier> m_testStations{};
63
65 Gaudi::Property<std::vector<std::string>> m_selectStat{this, "TestStations", {}};
66 Gaudi::Property<std::vector<std::string>> m_excludeStat{this, "ExcludeStations", {}};
67
69
70 Gaudi::Property<std::string> m_swapRead{this, "ReadoutSideXML", ""};
71
72 StatusCode dumpToTree(const EventContext& ctx,
73 const ActsTrk::GeometryContext& gctx, const MdtReadoutElement* readoutEle);
74
75 MuonVal::MuonTesterTree m_tree{"MdtGeoModelTree", "GEOMODELTESTER"};
76
78 MuonVal::ScalarBranch<unsigned short>& m_stIndex{m_tree.newScalar<unsigned short>("stationIndex")};
79 MuonVal::ScalarBranch<short>& m_stEta{m_tree.newScalar<short>("stationEta")};
80 MuonVal::ScalarBranch<short>& m_stPhi{m_tree.newScalar<short>("stationPhi")};
81 MuonVal::ScalarBranch<short>& m_stML{m_tree.newScalar<short>("stationMultiLayer")};
82 MuonVal::ScalarBranch<std::string>& m_chamberDesign{m_tree.newScalar<std::string>("chamberDesign")};
83
84 MuonVal::ScalarBranch<double>& m_tubeRad{m_tree.newScalar<double>("tubeRadius")};
85 MuonVal::ScalarBranch<double>& m_tubePitch{m_tree.newScalar<double>("tubePitch")};
86
87
92 MuonVal::ScalarBranch<unsigned short>& m_numTubes{m_tree.newScalar<unsigned short>("numTubes")};
94 MuonVal::ScalarBranch<unsigned short>& m_numLayers{m_tree.newScalar<unsigned short>("numLayers")};
95
97 MuonVal::VectorBranch<unsigned short>& m_tubeLay{m_tree.newVector<unsigned short>("tubeLayer")};
98 MuonVal::VectorBranch<unsigned short>& m_tubeNum{m_tree.newVector<unsigned short>("tubeNumber")};
99
102
103 MuonVal::VectorBranch<double>& m_tubeLength{m_tree.newVector<double>("tubeLength")};
104 MuonVal::VectorBranch<double>& m_activeTubeLength{m_tree.newVector<double>("activeTubeLength")};
105 MuonVal::VectorBranch<double>& m_wireLength{m_tree.newVector<double>("wireLength")};
107 MuonVal::VectorBranch<uint8_t>& m_cablingCSM{m_tree.newVector<uint8_t>("tubeOnlCSM")};
108 MuonVal::VectorBranch<uint8_t>& m_cablingMROD{m_tree.newVector<uint8_t>("tubeOnlMROD")};
109 MuonVal::VectorBranch<uint8_t>& m_cablingTdcId{m_tree.newVector<uint8_t>("tubeOnlTdcId")};
110 MuonVal::VectorBranch<uint8_t>& m_cablingTdcCh{m_tree.newVector<uint8_t>("tubeOnlTdcCh")};
111
117 Gaudi::Property<bool> m_visualTubes{this, "visualizeTubes", true};
118};
119
120}
121#endif
Property holding a SG store/key/clid from which a ReadHandle is made.
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
Gaudi::Property< std::vector< std::string > > m_selectStat
String should be formated like <stationName><stationEta><A/C><stationPhi>
MuonVal::ThreeVectorBranch m_tubePosInCh
Position of the tube in the sector frame.
MuonVal::VectorBranch< unsigned short > & m_tubeLay
Readout each tube specifically.
MuonVal::ThreeVectorBranch m_roPos
Position of the readout.
MuonValR4::IRootVisualizationService::ClientToken m_clientToken
Token to be presented to the visualization service.
MuonVal::CoordTransformBranch m_readoutTransform
Transformation of the readout element (Translation, ColX, ColY, ColZ)
StatusCode dumpToTree(const EventContext &ctx, const ActsTrk::GeometryContext &gctx, const MdtReadoutElement *readoutEle)
void visualizeTubeLayer(const EventContext &ctx, const MuonGMR4::MdtReadoutElement &reEle, const unsigned layer) const
Visualize the tube layer on a Canvas.
MuonVal::CoordSystemsBranch m_tubeTransform
Transformation to each tube.
std::set< Identifier > m_testStations
Set of stations to be tested.
void dumpReadoutSideXML() const
Create a xml indicating on which side of the chamber is the tube-readout card.
MuonVal::ScalarBranch< unsigned short > & m_numTubes
Number of tubes per layer.
MuonVal::VectorBranch< uint8_t > & m_cablingCSM
Cabling information.
MuonVal::ScalarBranch< unsigned short > & m_stIndex
Identifier of the readout element.
Gaudi::Property< bool > m_visualTubes
Flag toggling whether the tubes shall be printed.
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
ServiceHandle< MuonValR4::IRootVisualizationService > m_visualSvc
Service handle of the visualization service.
MuonVal::ScalarBranch< unsigned short > & m_numLayers
Number of tubes per layer.
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...
Property holding a SG store/key/clid from which a ReadHandle is made.
The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy M...
Token class to identify a particular visualization client.