ATLAS Offline Software
MdtTubeLayer.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MUONREADOUTGEOMETRYR4_MDTTUBELAYER_H
5 #define MUONREADOUTGEOMETRYR4_MDTTUBELAYER_H
6 
8 #include <GeoModelKernel/GeoVPhysVol.h>
9 #include <GeoModelKernel/GeoTransform.h>
10 #include <GeoModelKernel/GeoVolumeCursor.h>
12 
13 #include <set>
14 namespace MuonGMR4{
16  class MdtTubeLayer;
20  bool operator()(const MdtTubeLayer& a, const MdtTubeLayer& b) const;
21  bool operator()(const MdtTubeLayerPtr&a, const MdtTubeLayerPtr& b) const;
22  };
23  using MdtTubeLayerSet = std::set<MdtTubeLayerPtr, MdtTubeLayerSorter>;
24 
28  class MdtTubeLayer{
32  public:
38  MdtTubeLayer(const PVConstLink layer,
39  const GeoIntrusivePtr<const GeoTransform> toLayTrf);
41  unsigned int nTubes() const;
43  const Amg::Transform3D& layerTransform() const;
45  GeoVolumeCursor tubeCursor() const;
48  const Amg::Transform3D tubeTransform(const unsigned int tube) const;
50  const Amg::Vector3D tubePosInLayer(const unsigned int tube) const;
52  double tubeHalfLength(const unsigned int tube) const;
54  PVConstLink getTubeNode(unsigned int tube) const;
55  private:
56  PVConstLink m_layerNode{nullptr};
57  GeoIntrusivePtr<const GeoTransform> m_layTrf{nullptr};
58  };
59 
60 }
61 #endif
GeoModel::TransientConstSharedPtr
The TransientConstSharedPtr allows non-const access if the pointer itself is non-const but in the con...
Definition: TransientConstSharedPtr.h:13
MuonGMR4::MdtTubeLayer::layerTransform
const Amg::Transform3D & layerTransform() const
: Returns the transformation from the layer to the muon station
Definition: MdtTubeLayer.cxx:39
MuonGMR4::MdtTubeLayerSorter
Helper struct to sort equivalent MdtTubeLayers into a std::set.
Definition: MdtTubeLayer.h:19
MuonGMR4::MdtTubeLayer
Helper struct to retrieve the tube lengths and the tube centers directly from the GeoModel tree.
Definition: MdtTubeLayer.h:28
MuonGMR4::MdtTubeLayer::MdtTubeLayer
MdtTubeLayer(const PVConstLink layer, const GeoIntrusivePtr< const GeoTransform > toLayTrf)
Standard constructor of a MdtTube layer.
Definition: MdtTubeLayer.cxx:34
MuonGMR4
A muon chamber is a collection of readout elements belonging to the same station.
Definition: ChamberAssembleTool.h:16
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGMR4::MdtTubeLayer::getTubeNode
PVConstLink getTubeNode(unsigned int tube) const
returns the PVConst link to the n-th tube [0 - nTubes() -1]
Definition: MdtTubeLayer.cxx:67
MuonGMR4::MdtTubeLayerSorter::operator()
bool operator()(const MdtTubeLayer &a, const MdtTubeLayer &b) const
Definition: MdtTubeLayer.cxx:15
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
MuonGMR4::MdtTubeLayer::nTubes
unsigned int nTubes() const
Returns the number of tubes in the layer.
Definition: MdtTubeLayer.cxx:99
MuonGMR4::MdtTubeLayer::tubeHalfLength
double tubeHalfLength(const unsigned int tube) const
Returns the half-length of the given tube.
Definition: MdtTubeLayer.cxx:102
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGMR4::MdtTubeLayer::tubeTransform
const Amg::Transform3D tubeTransform(const unsigned int tube) const
Returns the transformation of the tube to the muon station Index counting [0 - nTubes()-1].
Definition: MdtTubeLayer.cxx:83
MuonGMR4::MdtTubeLayer::m_layerNode
PVConstLink m_layerNode
Definition: MdtTubeLayer.h:56
a
TList * a
Definition: liststreamerinfos.cxx:10
MuonGMR4::MdtTubeLayerSet
std::set< MdtTubeLayerPtr, MdtTubeLayerSorter > MdtTubeLayerSet
Definition: MdtTubeLayer.h:23
TransientConstSharedPtr.h
MuonGMR4::MdtTubeLayer::tubeCursor
GeoVolumeCursor tubeCursor() const
Return a cursor object over the tubes in the layer.
Definition: MdtTubeLayer.cxx:93
MuonDetectorDefs.h
MuonGMR4::MdtTubeLayer::m_layTrf
GeoIntrusivePtr< const GeoTransform > m_layTrf
Definition: MdtTubeLayer.h:57
MuonGMR4::MdtTubeLayer::tubePosInLayer
const Amg::Vector3D tubePosInLayer(const unsigned int tube) const
Returns the tube position within the given tube layer.
Definition: MdtTubeLayer.cxx:96
calibdata.tube
tube
Definition: calibdata.py:31
MuonGMR4::MdtTubeLayer::MdtTubeLayerSorter
friend MdtTubeLayerSorter
Constructor taking the GeoModel parent node of the tube nodes.
Definition: MdtTubeLayer.h:33