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...

Namespaces

namespace  detail

Classes

class  Chamber
 Chamber represent the volume enclosing a muon station. More...
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
 Readout element to describe the Monitored Drift Tube (Mdt) chambers Mdt chambers usually comrpise out of two packs consisting out of 3 or 4 tube layers which are separated by a space frame onto which they are glued. More...
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
 MuonReadoutElement is an abstract class representing the geometry of a 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

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::unique_ptr< ActsTrk::DetectorAlignStorecopyDeltas (const ActsTrk::DetectorAlignStore &inStore)
 Copy the alignment deltas from the inStore to a new alignment store.
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  )

◆ copyDeltas()

std::unique_ptr< ActsTrk::DetectorAlignStore > MuonGMR4::copyDeltas ( const ActsTrk::DetectorAlignStore & inStore)

Copy the alignment deltas from the inStore to a new alignment store.

Parameters
inStoreAlignment store from which the delta transforms are copied

Definition at line 14 of file MuonDetectorDefs.cxx.

14 {
15 auto newStore = std::make_unique<ActsTrk::DetectorAlignStore>(inStore);
16 if(newStore->geoModelAlignment) {
17 if (!inStore.geoModelAlignment->posCacheLocked()) {
18 newStore->geoModelAlignment->clearPosCache();
19 }
20 newStore->trackingAlignment = std::make_unique<ActsTrk::DetectorAlignStore::TrackingAlignStore>(inStore.detType);
21 }
22 return newStore;
23 }
std::shared_ptr< GeoAlignmentStore > geoModelAlignment
Store containing the aligned GeoModel nodes.
DetectorType detType
The aligned detector element type.
bool posCacheLocked() const
Returns whether the position cache is locked.

◆ 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 48 of file MuonDetectorDefs.cxx.

48 {
49 switch (visitBounds.type()) {
50 case Acts::VolumeBounds::BoundsType::eCuboid: {
51 const auto& bounds = static_cast<const Acts::CuboidVolumeBounds&>(visitBounds);
52 using BoundEnum = Acts::CuboidVolumeBounds::BoundValues;
53 return bounds.get(BoundEnum::eHalfLengthX);
54 }
55 case Acts::VolumeBounds::BoundsType::eTrapezoid: {
56 const auto& bounds = static_cast<const Acts::TrapezoidVolumeBounds&>(visitBounds);
57 using BoundEnum = Acts::TrapezoidVolumeBounds::BoundValues;
58 return bounds.get(BoundEnum::eHalfLengthXposY);
59 } default:
60 THROW_EXCEPTION("Unsupported bound type "<<visitBounds.type());
61 }
62 return 0.;
63 }
#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 32 of file MuonDetectorDefs.cxx.

32 {
33 switch (visitBounds.type()) {
34 case Acts::VolumeBounds::BoundsType::eCuboid: {
35 const auto& bounds = static_cast<const Acts::CuboidVolumeBounds&>(visitBounds);
36 using BoundEnum = Acts::CuboidVolumeBounds::BoundValues;
37 return bounds.get(BoundEnum::eHalfLengthX);
38 }
39 case Acts::VolumeBounds::BoundsType::eTrapezoid: {
40 const auto& bounds = static_cast<const Acts::TrapezoidVolumeBounds&>(visitBounds);
41 using BoundEnum = Acts::TrapezoidVolumeBounds::BoundValues;
42 return bounds.get(BoundEnum::eHalfLengthXnegY);
43 } default:
44 THROW_EXCEPTION("Unsupported bound type "<<visitBounds.type());
45 }
46 return 0.;
47 }

◆ halfY()

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

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

Definition at line 64 of file MuonDetectorDefs.cxx.

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

◆ halfZ()

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

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

Definition at line 81 of file MuonDetectorDefs.cxx.

81 {
82 switch (visitBounds.type()) {
83 case Acts::VolumeBounds::BoundsType::eCuboid: {
84 const auto& bounds = static_cast<const Acts::CuboidVolumeBounds&>(visitBounds);
85 using BoundEnum = Acts::CuboidVolumeBounds::BoundValues;
86 return bounds.get(BoundEnum::eHalfLengthZ);
87 }
88 case Acts::VolumeBounds::BoundsType::eTrapezoid: {
89 const auto& bounds = static_cast<const Acts::TrapezoidVolumeBounds&>(visitBounds);
90 using BoundEnum = Acts::TrapezoidVolumeBounds::BoundValues;
91 return bounds.get(BoundEnum::eHalfLengthZ);
92 } default:
93 THROW_EXCEPTION("Unsupported bound type "<<visitBounds.type());
94 }
95 return 0.;
96 }

◆ 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 46 of file ChamberAssembleTool.cxx.

46 {
47 return ch->identString();
48}

◆ toString() [2/2]

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

Definition at line 43 of file ChamberAssembleTool.cxx.

43 {
44 return re->idHelperSvc()->toStringDetEl(re->identify());
45}
const boost::regex re(r_e)