Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
MuonGMR4::SpectrometerSector Class Reference

A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & layer E.g. More...

#include <SpectrometerSector.h>

Collaboration diagram for MuonGMR4::SpectrometerSector:

Classes

struct  chamberLocation
 : Helper struct for fast approximate navigation. More...
 
struct  defineArgs
 

Public Types

using ChamberPtr = GeoModel::TransientConstSharedPtr< Chamber >
 
using ChamberSet = std::vector< ChamberPtr >
 

Public Member Functions

 SpectrometerSector (defineArgs &&args)
 Standard constructor taking the defining parameters. More...
 
 SpectrometerSector (const SpectrometerSector &other)=delete
 Delete the copy constructor and copy assignment. More...
 
SpectrometerSectoroperator= (const SpectrometerSector &other)=delete
 
bool operator< (const SpectrometerSector &other) const
 
std::string identString () const
 Returns a string encoding the chamber index & the sector of the MS sector. More...
 
const Muon::IMuonIdHelperSvcidHelperSvc () const
 Returns the IdHelpeSvc. More...
 
Muon::MuonStationIndex::ChIndex chamberIndex () const
 Returns the chamber index scheme. More...
 
int stationPhi () const
 : Returns the station phi of the sector More...
 
int sector () const
 Returns the sector of the MS-sector. More...
 
int8_t side () const
 Returns the side of the MS-sector 1 -> A side ; -1 -> C side. More...
 
bool barrel () const
 Returns whether the sector is placed in the barrel. More...
 
const Amg::Transform3DlocalToGlobalTrans (const ActsGeometryContext &gctx) const
 Returns the local -> global tarnsformation from the sector. More...
 
Amg::Transform3D globalToLocalTrans (const ActsGeometryContext &gctx) const
 Returns the global -> local transformation from the ATLAS global. More...
 
const ChamberSetchambers () const
 Returns the associated chambers with this sector. More...
 
double halfXLong () const
 Long-extend of the chamber in the x-direction at positive Y. More...
 
double halfXShort () const
 Short extend of the chamber in the x-direction at negative Y. More...
 
double halfY () const
 Extend of the chamber in the y-direction. More...
 
double halfZ () const
 Thickness of the chamber in the z-direction. More...
 
const defineArgsparameters () const
 Returns the reference to the defining parameters of the sector. More...
 
std::shared_ptr< Acts::Volume > boundingVolume (const ActsGeometryContext &gctx) const
 Returns the Acts::Volume representation of the sector. More...
 
std::shared_ptr< Acts::TrapezoidVolumeBounds > bounds () const
 Returns the volume bounds. More...
 
Chamber::ReadoutSet readoutEles () const
 Returns the list of all associated readout elements. More...
 
const std::vector< chamberLocation > & chamberLocations () const
 returns the list of all MDT chambers in the sector for fast navigation More...
 

Private Attributes

defineArgs m_args {}
 

Detailed Description

A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & layer E.g.

sector 5 in BI on the A-side. The spectrometer sector defines a coordinate system which is primarly used in the pattern recognition stage of the muon reconstruction

    x-axis: Points along the Mdt tubes & is hence sensitive to the phi direction
    y-axis: Points to the next Mdt tube in the layer or in other words to the big wheel
            in the sector, if the chamber is in the barrel or outside in radial direction
    z-axis: Points radially outwards if the chamber is in the barrel or in towards the cavern
            wall if it's an endcap chamber

The origin of the spectrometer sector is placed in the nominal centre of the envelope.

The spectrometer contains pointer to all chambers & readout elements that are enclosed by it.

Definition at line 40 of file SpectrometerSector.h.

Member Typedef Documentation

◆ ChamberPtr

Definition at line 42 of file SpectrometerSector.h.

◆ ChamberSet

Definition at line 43 of file SpectrometerSector.h.

Constructor & Destructor Documentation

◆ SpectrometerSector() [1/2]

MuonGMR4::SpectrometerSector::SpectrometerSector ( defineArgs &&  args)

Standard constructor taking the defining parameters.

Definition at line 17 of file SpectrometerSector.cxx.

17  :
18  m_args{std::move(args)} {
19  for (auto & chamber : m_args.chambers) {
20  chamber->setParent(this);
21  }
22  }

◆ SpectrometerSector() [2/2]

MuonGMR4::SpectrometerSector::SpectrometerSector ( const SpectrometerSector other)
delete

Delete the copy constructor and copy assignment.

Member Function Documentation

◆ barrel()

bool MuonGMR4::SpectrometerSector::barrel ( ) const

Returns whether the sector is placed in the barrel.

Definition at line 44 of file SpectrometerSector.cxx.

44 { return m_args.chambers.front()->barrel(); }

◆ boundingVolume()

std::shared_ptr< Acts::Volume > MuonGMR4::SpectrometerSector::boundingVolume ( const ActsGeometryContext gctx) const

Returns the Acts::Volume representation of the sector.

Parameters
gctxGeometry context carrrying the alignment transformations

Definition at line 63 of file SpectrometerSector.cxx.

63  {
64  return std::make_shared<Acts::Volume>(localToGlobalTrans(gctx), bounds());
65 }

◆ bounds()

std::shared_ptr< Acts::TrapezoidVolumeBounds > MuonGMR4::SpectrometerSector::bounds ( ) const

Returns the volume bounds.

Definition at line 66 of file SpectrometerSector.cxx.

66  {
67  return std::make_shared<Acts::TrapezoidVolumeBounds>(halfXShort(), halfXLong(), halfY(), halfZ());
68 }

◆ chamberIndex()

Muon::MuonStationIndex::ChIndex MuonGMR4::SpectrometerSector::chamberIndex ( ) const

Returns the chamber index scheme.

Definition at line 41 of file SpectrometerSector.cxx.

41 { return m_args.chambers.front()->chamberIndex(); }

◆ chamberLocations()

const std::vector< SpectrometerSector::chamberLocation > & MuonGMR4::SpectrometerSector::chamberLocations ( ) const

returns the list of all MDT chambers in the sector for fast navigation

Definition at line 76 of file SpectrometerSector.cxx.

76  {
77  return m_args.detectorLocs;
78 
79 }

◆ chambers()

const ChamberSet & MuonGMR4::SpectrometerSector::chambers ( ) const

Returns the associated chambers with this sector.

Definition at line 50 of file SpectrometerSector.cxx.

50 { return m_args.chambers; }

◆ globalToLocalTrans()

Amg::Transform3D MuonGMR4::SpectrometerSector::globalToLocalTrans ( const ActsGeometryContext gctx) const

Returns the global -> local transformation from the ATLAS global.

Definition at line 54 of file SpectrometerSector.cxx.

54  {
55  return localToGlobalTrans(gctx).inverse();
56 }

◆ halfXLong()

double MuonGMR4::SpectrometerSector::halfXLong ( ) const

Long-extend of the chamber in the x-direction at positive Y.

Definition at line 57 of file SpectrometerSector.cxx.

57 { return m_args.bounds->get(BoundEnums::eHalfLengthXposY); }

◆ halfXShort()

double MuonGMR4::SpectrometerSector::halfXShort ( ) const

Short extend of the chamber in the x-direction at negative Y.

Definition at line 58 of file SpectrometerSector.cxx.

58 { return m_args.bounds->get(BoundEnums::eHalfLengthXnegY); }

◆ halfY()

double MuonGMR4::SpectrometerSector::halfY ( ) const

Extend of the chamber in the y-direction.

Definition at line 59 of file SpectrometerSector.cxx.

59 { return m_args.bounds->get(BoundEnums::eHalfLengthY); }

◆ halfZ()

double MuonGMR4::SpectrometerSector::halfZ ( ) const

Thickness of the chamber in the z-direction.

Definition at line 60 of file SpectrometerSector.cxx.

60 { return m_args.bounds->get(BoundEnums::eHalfLengthZ); }

◆ identString()

std::string MuonGMR4::SpectrometerSector::identString ( ) const

Returns a string encoding the chamber index & the sector of the MS sector.

Definition at line 45 of file SpectrometerSector.cxx.

45  {
46  return std::format("{:} {:}-side sector: {:2}",
48  side() == 1 ? 'A' : 'C' , sector());
49 }

◆ idHelperSvc()

const Muon::IMuonIdHelperSvc * MuonGMR4::SpectrometerSector::idHelperSvc ( ) const

Returns the IdHelpeSvc.

Definition at line 40 of file SpectrometerSector.cxx.

40 { return m_args.chambers.front()->idHelperSvc();}

◆ localToGlobalTrans()

const Amg::Transform3D & MuonGMR4::SpectrometerSector::localToGlobalTrans ( const ActsGeometryContext gctx) const

Returns the local -> global tarnsformation from the sector.

Parameters
gctxGeometry context carrrying the alignment transformations

Definition at line 51 of file SpectrometerSector.cxx.

51  {
52  return m_args.locToGlobTrf;
53 }

◆ operator<()

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

Definition at line 24 of file SpectrometerSector.cxx.

24  {
25  if (side() != other.side()) {
26  return side() < other.side();
27  }
28  if (sector() != other.sector()) {
29  return sector() < other.sector();
30  }
31  if (other.chamberIndex() != chamberIndex()) {
32  return chamberIndex() < other.chamberIndex();
33  }
34  return (*m_args.chambers.front()) < (*other.m_args.chambers.front());
35 }

◆ operator=()

SpectrometerSector& MuonGMR4::SpectrometerSector::operator= ( const SpectrometerSector other)
delete

◆ parameters()

const SpectrometerSector::defineArgs & MuonGMR4::SpectrometerSector::parameters ( ) const

Returns the reference to the defining parameters of the sector.

Definition at line 39 of file SpectrometerSector.cxx.

39 { return m_args; }

◆ readoutEles()

Chamber::ReadoutSet MuonGMR4::SpectrometerSector::readoutEles ( ) const

Returns the list of all associated readout elements.

Definition at line 69 of file SpectrometerSector.cxx.

69  {
70  Chamber::ReadoutSet toReturn{};
71  for (const ChamberPtr& ch : chambers()) {
72  toReturn.insert(toReturn.end(), ch->readoutEles().begin(), ch->readoutEles().end());
73  }
74  return toReturn;
75 }

◆ sector()

int MuonGMR4::SpectrometerSector::sector ( ) const

Returns the sector of the MS-sector.

Definition at line 43 of file SpectrometerSector.cxx.

43 {return m_args.chambers.front()->sector(); }

◆ side()

int8_t MuonGMR4::SpectrometerSector::side ( ) const

Returns the side of the MS-sector 1 -> A side ; -1 -> C side.

Definition at line 36 of file SpectrometerSector.cxx.

36  {
37  return m_args.chambers.front()->stationEta() > 0 ? 1 : -1;
38 }

◆ stationPhi()

int MuonGMR4::SpectrometerSector::stationPhi ( ) const

: Returns the station phi of the sector

Definition at line 42 of file SpectrometerSector.cxx.

42 { return m_args.chambers.front()->stationPhi(); }

Member Data Documentation

◆ m_args

defineArgs MuonGMR4::SpectrometerSector::m_args {}
private

Definition at line 118 of file SpectrometerSector.h.


The documentation for this class was generated from the following files:
Muon::MuonStationIndex::chName
static const std::string & chName(ChIndex index)
convert ChIndex into a string
Definition: MuonStationIndex.cxx:157
MuonGMR4::SpectrometerSector::ChamberPtr
GeoModel::TransientConstSharedPtr< Chamber > ChamberPtr
Definition: SpectrometerSector.h:42
sendEI_SPB.ch
ch
Definition: sendEI_SPB.py:35
MuonGMR4::SpectrometerSector::sector
int sector() const
Returns the sector of the MS-sector.
Definition: SpectrometerSector.cxx:43
MuonGMR4::SpectrometerSector::side
int8_t side() const
Returns the side of the MS-sector 1 -> A side ; -1 -> C side.
Definition: SpectrometerSector.cxx:36
vtune_athena.format
format
Definition: vtune_athena.py:14
python.CaloAddPedShiftConfig.args
args
Definition: CaloAddPedShiftConfig.py:45
calibdata.chamber
chamber
Definition: calibdata.py:32
MuonGMR4::SpectrometerSector::chambers
const ChamberSet & chambers() const
Returns the associated chambers with this sector.
Definition: SpectrometerSector.cxx:50
MuonGMR4::SpectrometerSector::m_args
defineArgs m_args
Definition: SpectrometerSector.h:118
MuonGMR4::SpectrometerSector::halfXShort
double halfXShort() const
Short extend of the chamber in the x-direction at negative Y.
Definition: SpectrometerSector.cxx:58
MuonGMR4::SpectrometerSector::halfZ
double halfZ() const
Thickness of the chamber in the z-direction.
Definition: SpectrometerSector.cxx:60
MuonGMR4::SpectrometerSector::halfY
double halfY() const
Extend of the chamber in the y-direction.
Definition: SpectrometerSector.cxx:59
MuonGMR4::SpectrometerSector::chamberIndex
Muon::MuonStationIndex::ChIndex chamberIndex() const
Returns the chamber index scheme.
Definition: SpectrometerSector.cxx:41
MuonGMR4::SpectrometerSector::halfXLong
double halfXLong() const
Long-extend of the chamber in the x-direction at positive Y.
Definition: SpectrometerSector.cxx:57
MuonGMR4::Chamber::ReadoutSet
std::vector< const MuonReadoutElement * > ReadoutSet
Define the list of read out elements of the chamber.
Definition: Chamber.h:25
MuonGMR4::SpectrometerSector::defineArgs::locToGlobTrf
Amg::Transform3D locToGlobTrf
Transformation to the chamber volume.
Definition: SpectrometerSector.h:62
MuonGMR4::SpectrometerSector::defineArgs::bounds
std::shared_ptr< Acts::TrapezoidVolumeBounds > bounds
Surrouding box chamber bounds.
Definition: SpectrometerSector.h:60
MuonGMR4::SpectrometerSector::defineArgs::chambers
ChamberSet chambers
List of readout elements in the chamber.
Definition: SpectrometerSector.h:58
MuonGMR4::SpectrometerSector::bounds
std::shared_ptr< Acts::TrapezoidVolumeBounds > bounds() const
Returns the volume bounds.
Definition: SpectrometerSector.cxx:66
InDetDD::other
@ other
Definition: InDetDD_Defs.h:16
MuonGMR4::SpectrometerSector::localToGlobalTrans
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &gctx) const
Returns the local -> global tarnsformation from the sector.
Definition: SpectrometerSector.cxx:51
MuonGMR4::SpectrometerSector::defineArgs::detectorLocs
std::vector< chamberLocation > detectorLocs
Definition: SpectrometerSector.h:64