ATLAS Offline Software
Public Types | Public Member Functions | Private Attributes | List of all members
MuonGMR4::StripLayer Class Reference

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

#include <StripLayer.h>

Collaboration diagram for MuonGMR4::StripLayer:

Public Types

using TransformPtr = GeoIntrusivePtr< const GeoTransform >
 
using CheckVector2D = StripDesign::CheckVector2D
 

Public Member Functions

 StripLayer (TransformPtr layerTransform, StripDesignPtr design, const IdentifierHash hash)
 Standard constructor taking the transform to decribe a strip layer, a pointer to the eta strip design and the associated hash for internal identification of the StripLayer by the Readoutelement. More...
 
 StripLayer (TransformPtr layerTransform, StripDesignPtr etaDesign, StripDesignPtr phiDesign, const IdentifierHash hash)
 Constructor taking the transform to position the strip layer, but taking two StripDesign pointers to describe the orthogonal strips within the same coordinate system. More...
 
const Amg::Transform3DtoOrigin () const
 Returns the transformation to go from the strip layer center to the origin of the Strip chamber. More...
 
const StripDesigndesign (bool phiView=false) const
 Returns the underlying strip design. More...
 
const IdentifierHash hash () const
 Returns the hash of the strip layer. More...
 
Amg::Vector3D localStripPosition (unsigned int stripum, bool phiView=false) const
 Returns the position of the strip centre expressed in the frame of the local readout plane. More...
 
Amg::Vector3D localStripLeftEdge (unsigned int stripNum, bool phiView=false) const
 Returns the position of the strip edge at (positive y in the strip design description) in the local coordinates of the local readout planes. More...
 
Amg::Vector3D localStripRightEdge (unsigned int stripNum, bool phiView=false) const
 Returns the position of the right strip edge at (negative y in the strip design description) in the local coordinates of the local readout planes. More...
 
bool operator< (const StripLayer &other) const
 Comparison operator to recycle equivalent StripLayers for multiple readout elements. More...
 
bool hasPhiDesign () const
 Returns whether the strip layer also describes strips in the phi direction. More...
 
Amg::Vector3D to3D (CheckVector2D &&vec, const bool phiView) const
 Transforms the 2D vector from the strip design into a 3D vector If phi view is switched on, the vector is additionally rotated by 90 degrees. More...
 
Amg::Vector2D to2D (const Amg::Vector3D &vec, const bool phiView) const
 Transforms a 3D vector from the strip design into a 2D vector. More...
 
void flipPhiRotation ()
 Flips the phi rotation from 90 -> -90 degrees. More...
 

Private Attributes

TransformPtr m_transform {}
 Pointer to the GeoModelTransform
More...
 
StripDesignPtr m_etaDesign {}
 Pointer to the eta strip design. More...
 
StripDesignPtr m_phiDesign {}
 Pointer to the phi strip design. More...
 
IdentifierHash m_hash {}
 Hash of the strip layer. More...
 
double m_phiRot {90.*Gaudi::Units::deg}
 

Detailed Description

The StripLayer interfaces the 2D description of the strip plane layout with the 3D description of the strips within the read out elements volume.

It places the strips inside the readout volume which is further transformed by the ReadoutElement to a global placement of the strip within ATLAS.

Definition at line 19 of file StripLayer.h.

Member Typedef Documentation

◆ CheckVector2D

Definition at line 76 of file StripLayer.h.

◆ TransformPtr

using MuonGMR4::StripLayer::TransformPtr = GeoIntrusivePtr<const GeoTransform>

Definition at line 21 of file StripLayer.h.

Constructor & Destructor Documentation

◆ StripLayer() [1/2]

MuonGMR4::StripLayer::StripLayer ( TransformPtr  layerTransform,
StripDesignPtr  design,
const IdentifierHash  hash 
)

Standard constructor taking the transform to decribe a strip layer, a pointer to the eta strip design and the associated hash for internal identification of the StripLayer by the Readoutelement.

Parameters
layerTransformPointer to the Transform to position the strip plane within the readout element's frame.
designPointer to the StripDesign describing the strip layout in the plane
hashIdentifierHash to uniquely Identify the layer within a readout element.

Definition at line 17 of file StripLayer.cxx.

19  :
20  StripLayer{std::move(layerTransform), design, design, hash} {}

◆ StripLayer() [2/2]

MuonGMR4::StripLayer::StripLayer ( TransformPtr  layerTransform,
StripDesignPtr  etaDesign,
StripDesignPtr  phiDesign,
const IdentifierHash  hash 
)

Constructor taking the transform to position the strip layer, but taking two StripDesign pointers to describe the orthogonal strips within the same coordinate system.

The transform is assumed to be aligned with the eta measurement.

Parameters
etaDesignPointer to the StripDesign describing the layout in eta direction
phiDesignPointer to the StripDesign describing the layout in phi direction
hashIdentifierHash to uniquely Identify the layer within a readout element.

Definition at line 22 of file StripLayer.cxx.

24  :
25  m_transform{std::move(layerTransform)},
26  m_etaDesign{std::move(etaDesign)},
27  m_phiDesign{std::move(phiDesign)},
28  m_hash{hash} {
30  }

Member Function Documentation

◆ design()

const StripDesign& MuonGMR4::StripLayer::design ( bool  phiView = false) const

Returns the underlying strip design.

Parameters
phiViewIf the strip layer holds two designs, the one mapping the phi oriented strips is returned

◆ flipPhiRotation()

void MuonGMR4::StripLayer::flipPhiRotation ( )

Flips the phi rotation from 90 -> -90 degrees.

Definition at line 14 of file StripLayer.cxx.

14  {
15  m_phiRot = -m_phiRot;
16  }

◆ hash()

const IdentifierHash MuonGMR4::StripLayer::hash ( ) const

Returns the hash of the strip layer.

◆ hasPhiDesign()

bool MuonGMR4::StripLayer::hasPhiDesign ( ) const

Returns whether the strip layer also describes strips in the phi direction.

◆ localStripLeftEdge()

Amg::Vector3D MuonGMR4::StripLayer::localStripLeftEdge ( unsigned int  stripNum,
bool  phiView = false 
) const

Returns the position of the strip edge at (positive y in the strip design description) in the local coordinates of the local readout planes.

Parameters
stripNumNumber of the strip to fetch [firtStrip - nStrips] cf. StripDesign
phiViewSwitch whether the strips in the phi plane should be returned. Only active if the class is instantiated with two strip designs

◆ localStripPosition()

Amg::Vector3D MuonGMR4::StripLayer::localStripPosition ( unsigned int  stripum,
bool  phiView = false 
) const

Returns the position of the strip centre expressed in the frame of the local readout plane.

Parameters
stripNumNumber of the strip to fetch [firtStrip - nStrips] cf. StripDesign,
phiViewSwitch whether the strips in the phi plane should be returned. Only active if the class is instantiated with two strip designs

◆ localStripRightEdge()

Amg::Vector3D MuonGMR4::StripLayer::localStripRightEdge ( unsigned int  stripNum,
bool  phiView = false 
) const

Returns the position of the right strip edge at (negative y in the strip design description) in the local coordinates of the local readout planes.

Parameters
stripNumNumber of the strip to fetch [firtStrip - nStrips] cf. StripDesign
phiViewSwitch whether the strips in the phi plane should be returned. Only active if the class is instantiated with two strip designs

◆ operator<()

bool MuonGMR4::StripLayer::operator< ( const StripLayer other) const

Comparison operator to recycle equivalent StripLayers for multiple readout elements.

Definition at line 31 of file StripLayer.cxx.

31  {
32  if (hash() != other.hash()) {
33  return hash() < other.hash();
34  }
35  if (m_transform != other.m_transform) {
36  return m_transform < other.m_transform;
37  }
38  if (hasPhiDesign() != other.hasPhiDesign()){
39  return hasPhiDesign();
40  }
41  if (m_phiDesign != other.m_phiDesign) {
42  return m_phiDesign < other.m_phiDesign;
43  }
44  return m_etaDesign < other.m_etaDesign;
45  }

◆ to2D()

Amg::Vector2D MuonGMR4::StripLayer::to2D ( const Amg::Vector3D vec,
const bool  phiView 
) const

Transforms a 3D vector from the strip design into a 2D vector.

If phi view is switched on, the vector is rotated by -90 degrees

Parameters
vecVector to be turned into a 3D vector
phiViewSwitched whether the strips should be rotated

◆ to3D()

Amg::Vector3D MuonGMR4::StripLayer::to3D ( CheckVector2D &&  vec,
const bool  phiView 
) const

Transforms the 2D vector from the strip design into a 3D vector If phi view is switched on, the vector is additionally rotated by 90 degrees.

Parameters
vecVector to be turned into a 3D vector
phiViewSwitched whether the strips should be rotated

◆ toOrigin()

const Amg::Transform3D& MuonGMR4::StripLayer::toOrigin ( ) const

Returns the transformation to go from the strip layer center to the origin of the Strip chamber.

Member Data Documentation

◆ m_etaDesign

StripDesignPtr MuonGMR4::StripLayer::m_etaDesign {}
private

Pointer to the eta strip design.

Definition at line 93 of file StripLayer.h.

◆ m_hash

IdentifierHash MuonGMR4::StripLayer::m_hash {}
private

Hash of the strip layer.

Definition at line 97 of file StripLayer.h.

◆ m_phiDesign

StripDesignPtr MuonGMR4::StripLayer::m_phiDesign {}
private

Pointer to the phi strip design.

Definition at line 95 of file StripLayer.h.

◆ m_phiRot

double MuonGMR4::StripLayer::m_phiRot {90.*Gaudi::Units::deg}
private

Definition at line 98 of file StripLayer.h.

◆ m_transform

TransformPtr MuonGMR4::StripLayer::m_transform {}
private

Pointer to the GeoModelTransform

Definition at line 91 of file StripLayer.h.


The documentation for this class was generated from the following files:
MuonGMR4::StripLayer::m_hash
IdentifierHash m_hash
Hash of the strip layer.
Definition: StripLayer.h:97
MuonGMR4::StripLayer::m_phiRot
double m_phiRot
Definition: StripLayer.h:98
MuonGMR4::StripLayer::m_etaDesign
StripDesignPtr m_etaDesign
Pointer to the eta strip design.
Definition: StripLayer.h:93
MuonGMR4::StripLayer::StripLayer
StripLayer(TransformPtr layerTransform, StripDesignPtr design, const IdentifierHash hash)
Standard constructor taking the transform to decribe a strip layer, a pointer to the eta strip design...
Definition: StripLayer.cxx:17
MuonGMR4::StripLayer::hasPhiDesign
bool hasPhiDesign() const
Returns whether the strip layer also describes strips in the phi direction.
MuonGMR4::StripLayer::design
const StripDesign & design(bool phiView=false) const
Returns the underlying strip design.
MuonGMR4::StripLayer::m_transform
TransformPtr m_transform
Pointer to the GeoModelTransform
Definition: StripLayer.h:91
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
MuonGMR4::StripLayer::m_phiDesign
StripDesignPtr m_phiDesign
Pointer to the phi strip design.
Definition: StripLayer.h:95
MuonGMR4::StripLayer::hash
const IdentifierHash hash() const
Returns the hash of the strip layer.