ATLAS Offline Software
Loading...
Searching...
No Matches
MuonGMR4 Namespace Reference

The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy MuonReadoutGeometry. More...

Classes

class  Chamber
class  ChamberAssembleTool
 Assembly tool to produce the Acts envolpe volumes around the muon stations & also to construct the spectrometer envelope volumes. More...
struct  gapVolume
 Helper struct to attribute the Identifier fields with the gas gap volumes. More...
class  GeoModelMdtTest
class  GeoModelMmTest
class  GeoModelRpcTest
class  GeoModelsTgcTest
class  GeoModelTgcTest
class  IMuonGeoUtilityTool
class  IMuonReadoutGeomTool
class  MdtReadoutElement
class  MdtReadoutGeomTool
 Implementation of the IMuonReadoutGeomTool to construct MdtReadoutElements from the list of published full physical volumes and the WMDT meta data table. More...
class  MdtTubeLayer
 Helper struct to retrieve the tube lengths and the tube centers directly from the GeoModel tree. More...
struct  MdtTubeLayerSorter
 Helper struct to sort equivalent MdtTubeLayers into a std::set. More...
class  MmReadoutElement
class  MmReadoutGeomTool
class  MuonChamberToolTest
class  MuonDetectorManager
class  MuonDetectorTool
class  MuonGeoUtilityTool
class  MuonReadoutElement
 The MuonReadoutElement is an abstract class representing the geometry representing the muon detector. More...
class  NswGeoPlottingAlg
class  PadDesign
struct  PadDesignSorter
struct  RadialDesignSorter
class  RadialStripDesign
class  ReadoutGeomCnvAlg
class  RpcReadoutElement
class  RpcReadoutGeomTool
 Implementation to construct Rpc readout element from the list of published full physical volumes and the WRPC meta data table. More...
class  SpectrometerSector
 A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & layer E.g. More...
class  sTgcReadoutElement
class  sTgcReadoutGeomTool
class  StripDesign
struct  StripDesignSorter
class  StripLayer
 The StripLayer interfaces the 2D description of the strip plane layout with the 3D description of the strips within the read out elements volume. More...
struct  StripLayerSorter
 Helper struct to share strip layer instances across the readout elements. More...
class  TgcReadoutElement
class  TgcReadoutGeomTool
struct  WireDesignSorter
class  WireGroupDesign

Typedefs

using chamberArgs = Chamber::defineArgs
using VolBoundPtr_t = ChamberAssembleTool::VolBoundPtr_t
using ChamberPtr = SpectrometerSector::ChamberPtr
using physVolWithTrans = IMuonGeoUtilityTool::physVolWithTrans
using defineArgs = RpcReadoutElement::defineArgs
using MdtTubeLayerPtr = GeoModel::TransientConstSharedPtr<MdtTubeLayer>
using MdtTubeLayerSet = std::set<MdtTubeLayerPtr, MdtTubeLayerSorter>
using PadDesignPtr = GeoModel::TransientConstSharedPtr<PadDesign>
using RadialStripDesignPtr = GeoModel::TransientConstSharedPtr<RadialStripDesign>
using RadialStripDesignSet = std::set<RadialStripDesignPtr, RadialDesignSorter>
using StripDesignPtr = GeoModel::TransientConstSharedPtr<StripDesign>
using StripLayerPtr = GeoModel::TransientConstSharedPtr<StripLayer>
using WireDesignPtr = GeoModel::TransientConstSharedPtr<WireGroupDesign>
using WireGroupDesignSet = std::set<WireDesignPtr, WireDesignSorter>
using parameterBook = MmReadoutElement::parameterBook
using MuonSectorSet = MuonDetectorManager::MuonSectorSet
using MuonChamberSet = MuonDetectorManager::MuonChamberSet
using ChamberSet = SpectrometerSector::ChamberSet
using BoundEnums = Acts::TrapezoidVolumeBounds::BoundValues
using localCornerArray = std::array<Amg::Vector2D, 4>
using globalCornerArray = std::array<Amg::Vector3D, 4>

Functions

Amg::Transform3D axisRotation (const MuonReadoutElement *re)
 Orientation of the readout element coordinate system x-axis: Points towards the sky y-axis: Points along the chamber plane z-axis: Points along the beam axis --> Transform into the coordinate system of the chamber x-axis: Parallel to the eta channels y-axis: Along the beam axis z-axis: Towards the sky.
Amg::Transform3D axisRotation (const ChamberPtr &)
std::string toString (const MuonGMR4::MuonReadoutElement *re)
std::string toString (const ChamberPtr &ch)
std::ostream & operator<< (std::ostream &ostr, const Chamber::defineArgs &args)
std::ostream & operator<< (std::ostream &ostr, const Chamber &chamber)
std::ostream & operator<< (std::ostream &ostr, const MdtReadoutElement::parameterBook &pars)
bool operator< (const MdtTubeLayer::CutTubes &a, const unsigned int tube)
bool operator< (const unsigned int tube, const MdtTubeLayer::CutTubes &a)
bool operator< (const MdtTubeLayer::TubePositioner &a, const unsigned int tube)
bool operator< (const unsigned int tube, const MdtTubeLayer::TubePositioner &a)
std::ostream & operator<< (std::ostream &ostr, const MmReadoutElement::parameterBook &pars)
double halfXlowY (const Acts::VolumeBounds &bounds)
 Returns the half-X length @ negative Y for the parsed volume bounds (Trapezoid/ Cuboid)
double halfXhighY (const Acts::VolumeBounds &bounds)
 Returns the half-Y length @ posiive Y for the parsed volume bounds (Trapezoid/ Cuboid)
double halfY (const Acts::VolumeBounds &bounds)
 Returns the half-Y length for the parsed volume bounds (Trapezoid/ Cuboid)
double halfZ (const Acts::VolumeBounds &bounds)
 Returns the half-Z length for the parsed volume bounds (Trapezoid/ Cuboid)
std::ostream & operator<< (std::ostream &ostr, const RpcReadoutElement::parameterBook &pars)
std::ostream & operator<< (std::ostream &ostr, const SpectrometerSector::defineArgs &args)
std::ostream & operator<< (std::ostream &ostr, const SpectrometerSector &chamber)
std::ostream & operator<< (std::ostream &ostr, const MuonGMR4::sTgcReadoutElement::parameterBook &pars)
std::ostream & operator<< (std::ostream &ostr, const StripDesign &design)
std::ostream & operator<< (std::ostream &ostr, const StripLayer &lay)
std::ostream & operator<< (std::ostream &ostr, const TgcReadoutElement::parameterBook &pars)
 ADD_DETECTOR (MdtReadoutElement, m_mdtEles)
 ADD_DETECTOR (TgcReadoutElement, m_tgcEles)
 ADD_DETECTOR (RpcReadoutElement, m_rpcEles)
 ADD_DETECTOR (MmReadoutElement, m_mmEles)
 ADD_DETECTOR (sTgcReadoutElement, m_sTgcEles)
bool operator< (const StripDesignPtr &a, const StripDesignPtr &b)

Detailed Description

The ReadoutGeomCnvAlg converts the Run4 Readout geometry build from the GeoModelXML into the legacy MuonReadoutGeometry.

The algorithm is meant to serve as an adapter allowing to dynamically exchange individual components in the Muon processing chain by their Run4 / Acts equivalents

Typedef Documentation

◆ BoundEnums

using MuonGMR4::BoundEnums = Acts::TrapezoidVolumeBounds::BoundValues

Definition at line 36 of file SpectrometerSector.cxx.

◆ chamberArgs

◆ ChamberPtr

◆ ChamberSet

◆ defineArgs

◆ globalCornerArray

◆ localCornerArray

◆ MdtTubeLayerPtr

◆ MdtTubeLayerSet

Definition at line 23 of file MdtTubeLayer.h.

◆ MuonChamberSet

◆ MuonSectorSet

◆ PadDesignPtr

◆ parameterBook

◆ physVolWithTrans

◆ RadialStripDesignPtr

◆ RadialStripDesignSet

◆ StripDesignPtr

◆ StripLayerPtr

◆ VolBoundPtr_t

◆ WireDesignPtr

◆ WireGroupDesignSet

Definition at line 103 of file WireGroupDesign.h.

Function Documentation

◆ ADD_DETECTOR() [1/5]

MuonGMR4::ADD_DETECTOR ( MdtReadoutElement ,
m_mdtEles  )

◆ ADD_DETECTOR() [2/5]

MuonGMR4::ADD_DETECTOR ( MmReadoutElement ,
m_mmEles  )

◆ ADD_DETECTOR() [3/5]

MuonGMR4::ADD_DETECTOR ( RpcReadoutElement ,
m_rpcEles  )

◆ ADD_DETECTOR() [4/5]

MuonGMR4::ADD_DETECTOR ( sTgcReadoutElement ,
m_sTgcEles  )

◆ ADD_DETECTOR() [5/5]

MuonGMR4::ADD_DETECTOR ( TgcReadoutElement ,
m_tgcEles  )

◆ axisRotation() [1/2]

Amg::Transform3D MuonGMR4::axisRotation ( const ChamberPtr & )

Definition at line 62 of file ChamberAssembleTool.cxx.

62 {
63 return Amg::Transform3D::Identity();
64}

◆ axisRotation() [2/2]

Amg::Transform3D MuonGMR4::axisRotation ( const MuonReadoutElement * re)

Orientation of the readout element coordinate system x-axis: Points towards the sky y-axis: Points along the chamber plane z-axis: Points along the beam axis --> Transform into the coordinate system of the chamber x-axis: Parallel to the eta channels y-axis: Along the beam axis z-axis: Towards the sky.

Definition at line 54 of file ChamberAssembleTool.cxx.

54 {
55 ActsTrk::DetectorType t = re->detectorType();
57 return Amg::Transform3D::Identity();
58 }
59 return Amg::getRotateZ3D(-90. * Gaudi::Units::deg) *
60 Amg::getRotateY3D(-90. * Gaudi::Units::deg);
61}
const boost::regex re(r_e)
DetectorType
Simple enum to Identify the Type of the ACTS sub detector.
@ sTgc
Micromegas (NSW)
Amg::Transform3D getRotateZ3D(double angle)
get a rotation transformation around Z-axis
Amg::Transform3D getRotateY3D(double angle)
get a rotation transformation around Y-axis

◆ halfXhighY()

double MuonGMR4::halfXhighY ( const Acts::VolumeBounds & bounds)

Returns the half-Y length @ posiive Y for the parsed volume bounds (Trapezoid/ Cuboid)

Definition at line 28 of file MuonDetectorDefs.cxx.

28 {
29 switch (visitBounds.type()) {
30 case Acts::VolumeBounds::BoundsType::eCuboid: {
31 const auto& bounds = static_cast<const Acts::CuboidVolumeBounds&>(visitBounds);
32 using BoundEnum = Acts::CuboidVolumeBounds::BoundValues;
33 return bounds.get(BoundEnum::eHalfLengthX);
34 }
35 case Acts::VolumeBounds::BoundsType::eTrapezoid: {
36 const auto& bounds = static_cast<const Acts::TrapezoidVolumeBounds&>(visitBounds);
37 using BoundEnum = Acts::TrapezoidVolumeBounds::BoundValues;
38 return bounds.get(BoundEnum::eHalfLengthXposY);
39 } default:
40 THROW_EXCEPTION("Unsupported bound type "<<visitBounds.type());
41 }
42 return 0.;
43 }
#define THROW_EXCEPTION(MESSAGE)
Definition throwExcept.h:10

◆ halfXlowY()

double MuonGMR4::halfXlowY ( const Acts::VolumeBounds & bounds)

Returns the half-X length @ negative Y for the parsed volume bounds (Trapezoid/ Cuboid)

Definition at line 12 of file MuonDetectorDefs.cxx.

12 {
13 switch (visitBounds.type()) {
14 case Acts::VolumeBounds::BoundsType::eCuboid: {
15 const auto& bounds = static_cast<const Acts::CuboidVolumeBounds&>(visitBounds);
16 using BoundEnum = Acts::CuboidVolumeBounds::BoundValues;
17 return bounds.get(BoundEnum::eHalfLengthX);
18 }
19 case Acts::VolumeBounds::BoundsType::eTrapezoid: {
20 const auto& bounds = static_cast<const Acts::TrapezoidVolumeBounds&>(visitBounds);
21 using BoundEnum = Acts::TrapezoidVolumeBounds::BoundValues;
22 return bounds.get(BoundEnum::eHalfLengthXnegY);
23 } default:
24 THROW_EXCEPTION("Unsupported bound type "<<visitBounds.type());
25 }
26 return 0.;
27 }

◆ halfY()

double MuonGMR4::halfY ( const Acts::VolumeBounds & bounds)

Returns the half-Y length for the parsed volume bounds (Trapezoid/ Cuboid)

Definition at line 44 of file MuonDetectorDefs.cxx.

44 {
45 switch (visitBounds.type()) {
46 case Acts::VolumeBounds::BoundsType::eCuboid: {
47 const auto& bounds = static_cast<const Acts::CuboidVolumeBounds&>(visitBounds);
48 using BoundEnum = Acts::CuboidVolumeBounds::BoundValues;
49 return bounds.get(BoundEnum::eHalfLengthY);
50 }
51 case Acts::VolumeBounds::BoundsType::eTrapezoid: {
52 const auto& bounds = static_cast<const Acts::TrapezoidVolumeBounds&>(visitBounds);
53 using BoundEnum = Acts::TrapezoidVolumeBounds::BoundValues;
54 return bounds.get(BoundEnum::eHalfLengthY);
55 } default:
56 THROW_EXCEPTION("Unsupported bound type "<<visitBounds.type());
57 }
58 return 0.;
59
60 }

◆ halfZ()

double MuonGMR4::halfZ ( const Acts::VolumeBounds & bounds)

Returns the half-Z length for the parsed volume bounds (Trapezoid/ Cuboid)

Definition at line 61 of file MuonDetectorDefs.cxx.

61 {
62 switch (visitBounds.type()) {
63 case Acts::VolumeBounds::BoundsType::eCuboid: {
64 const auto& bounds = static_cast<const Acts::CuboidVolumeBounds&>(visitBounds);
65 using BoundEnum = Acts::CuboidVolumeBounds::BoundValues;
66 return bounds.get(BoundEnum::eHalfLengthZ);
67 }
68 case Acts::VolumeBounds::BoundsType::eTrapezoid: {
69 const auto& bounds = static_cast<const Acts::TrapezoidVolumeBounds&>(visitBounds);
70 using BoundEnum = Acts::TrapezoidVolumeBounds::BoundValues;
71 return bounds.get(BoundEnum::eHalfLengthZ);
72 } default:
73 THROW_EXCEPTION("Unsupported bound type "<<visitBounds.type());
74 }
75 return 0.;
76 }

◆ operator<() [1/5]

bool MuonGMR4::operator< ( const MdtTubeLayer::CutTubes & a,
const unsigned int tube )

Definition at line 15 of file MdtTubeLayer.cxx.

15 {
16 return a.lastTube < tube;
17 }
static Double_t a

◆ operator<() [2/5]

bool MuonGMR4::operator< ( const MdtTubeLayer::TubePositioner & a,
const unsigned int tube )

Definition at line 21 of file MdtTubeLayer.cxx.

21 {
22 return a.lastTube < tube;
23 }

◆ operator<() [3/5]

bool MuonGMR4::operator< ( const StripDesignPtr & a,
const StripDesignPtr & b )

Definition at line 23 of file StripDesign.cxx.

23 {
24 return (*a) < (*b);
25 }

◆ operator<() [4/5]

bool MuonGMR4::operator< ( const unsigned int tube,
const MdtTubeLayer::CutTubes & a )

Definition at line 18 of file MdtTubeLayer.cxx.

18 {
19 return tube < a.firstTube;
20 }

◆ operator<() [5/5]

bool MuonGMR4::operator< ( const unsigned int tube,
const MdtTubeLayer::TubePositioner & a )

Definition at line 24 of file MdtTubeLayer.cxx.

24 {
25 return tube < a.firstTube;
26 }

◆ operator<<() [1/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const Chamber & chamber )

Definition at line 21 of file Chamber.cxx.

21 {
22 ostr<<chamber.identString()<<" "<<chamber.parameters();
23 return ostr;
24 }

◆ operator<<() [2/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const Chamber::defineArgs & args )

Definition at line 14 of file Chamber.cxx.

15 {
16 ostr<<"halfX (S/L): "<<halfXlowY(*args.bounds)<<"/"<<halfXhighY(*args.bounds)<<" [mm], ";
17 ostr<<"halfY: "<<halfY(*args.bounds)<<" [mm], ";
18 ostr<<"halfZ: "<<halfZ(*args.bounds)<<" [mm], ";
19 return ostr;
20 }
double halfY(const Acts::VolumeBounds &bounds)
Returns the half-Y length for the parsed volume bounds (Trapezoid/ Cuboid)
double halfZ(const Acts::VolumeBounds &bounds)
Returns the half-Z length for the parsed volume bounds (Trapezoid/ Cuboid)
double halfXhighY(const Acts::VolumeBounds &bounds)
Returns the half-Y length @ posiive Y for the parsed volume bounds (Trapezoid/ Cuboid)
double halfXlowY(const Acts::VolumeBounds &bounds)
Returns the half-X length @ negative Y for the parsed volume bounds (Trapezoid/ Cuboid)

◆ operator<<() [3/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const MdtReadoutElement::parameterBook & pars )

Definition at line 25 of file MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MdtReadoutElement.cxx.

25 {
26 ostr << std::endl;
27 ostr << " // Chamber half- length (min/max): "<<pars.shortHalfX<<"/"<<pars.longHalfX
28 <<", half-width "<<pars.halfY<<", height: "<<pars.halfHeight;
29 ostr << " // Number of tube layers " << pars.tubeLayers.size()<< std::endl;
30 ostr << " // Tube pitch: " << pars.tubePitch
31 << " wall thickness: " << pars.tubeWall
32 << " inner radius: " << pars.tubeInnerRad
33 << " endplug: "<<pars.endPlugLength
34 << " deadlength: "<<pars.deadLength<< std::endl;
35 for (const MdtTubeLayerPtr& layer : pars.tubeLayers) {
36 ostr << " // **** "<< Amg::toString(layer->tubeTransform(0).translation(), 2)<<std::endl;
37 }
38 return ostr;
39}
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
GeoModel::TransientConstSharedPtr< MdtTubeLayer > MdtTubeLayerPtr

◆ operator<<() [4/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const MmReadoutElement::parameterBook & pars )

Definition at line 22 of file MmReadoutElement.cxx.

22 {
23 ostr<<"chamber shortWidth/longWidth/length [mm]: "<<(2.*pars.halfShortWidth)<<"/";
24 ostr<<(2.*pars.halfLongWidth)<<"/"<<(2.*pars.halfHeight)<<std::endl;
25 return ostr;
26}

◆ operator<<() [5/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const MuonGMR4::sTgcReadoutElement::parameterBook & pars )

◆ operator<<() [6/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const RpcReadoutElement::parameterBook & pars )

◆ operator<<() [7/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const SpectrometerSector & chamber )

Definition at line 105 of file SpectrometerSector.cxx.

105 {
106 ostr<<"MS sector "<<chamber.identString()<<" "<<chamber.parameters();
107 return ostr;
108}

◆ operator<<() [8/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const SpectrometerSector::defineArgs & args )

Definition at line 93 of file SpectrometerSector.cxx.

94 {
95 ostr<<std::endl;
96 ostr<<"halfX (S/L): "<<halfXlowY(*args.bounds)<<"/"<<halfXhighY(*args.bounds)<<" [mm], ";
97 ostr<<"halfY: "<<halfY(*args.bounds)<<" [mm], ";
98 ostr<<"halfZ: "<<halfZ(*args.bounds)<<" [mm], ";
99 ostr<<"************************************************************************"<<std::endl;
100 for (const SpectrometerSector::ChamberPtr& ch : args.chambers) {
101 ostr<<" --- "<<(*ch)<<std::endl;
102 }
103 return ostr;
104}
GeoModel::TransientConstSharedPtr< Chamber > ChamberPtr

◆ operator<<() [9/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const StripDesign & design )

Definition at line 39 of file StripDesign.cxx.

39 {
40 design.print(ostr);
41 return ostr;
42 }
virtual void print(std::ostream &ostr) const
Dump properties to the ostr.

◆ operator<<() [10/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const StripLayer & lay )

Definition at line 8 of file StripLayer.cxx.

8 {
9 ostr<<"Strip layer transform: "<<Amg::toString(lay.toOrigin())<<", ";
10 ostr<<lay.design()<<", ";
11 ostr<<"Hash: "<<static_cast<unsigned int>(lay.hash());
12 return ostr;
13 }
const StripDesign & design(bool phiView=false) const
Returns the underlying strip design.
const IdentifierHash hash() const
Returns the hash of the strip layer.
const Amg::Transform3D & toOrigin() const
Returns the transformation to go from the strip layer center to the origin of the Strip chamber.

◆ operator<<() [11/11]

std::ostream & MuonGMR4::operator<< ( std::ostream & ostr,
const TgcReadoutElement::parameterBook & pars )

◆ toString() [1/2]

std::string MuonGMR4::toString ( const ChamberPtr & ch)

Definition at line 68 of file ChamberAssembleTool.cxx.

68 {
69 return ch->identString();
70}

◆ toString() [2/2]

std::string MuonGMR4::toString ( const MuonGMR4::MuonReadoutElement * re)

Definition at line 65 of file ChamberAssembleTool.cxx.

65 {
66 return re->idHelperSvc()->toStringDetEl(re->identify());
67}