ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
MuonCombined::MuonSegmentTagSurfaces Class Referencefinal

#include <MuonSegmentTagSurfaces.h>

Collaboration diagram for MuonCombined::MuonSegmentTagSurfaces:

Public Types

enum  SurfDef {
  BI = 0, BM = 1, BO = 2, EIA = 3,
  EMA = 4, EOA = 5, EEA = 6, EIC = 7,
  EMC = 8, EOC = 9, EEC = 10, NumSurf = 11
}
 
using SurfaceVec = std::array< std::unique_ptr< Trk::Surface >, SurfDef::NumSurf >
 
using SurfaceStations = std::array< std::string, SurfDef::NumSurf >
 

Public Member Functions

 MuonSegmentTagSurfaces ()
 
 ~MuonSegmentTagSurfaces ()=default
 
const SurfaceVecgetSurfaces () const
 
void setSurface (const Trk::Surface *surface, SurfDef def)
 
const std::string stationType (unsigned int count) const
 
const Trk::SurfacegetSurface (SurfDef surf) const
 
const Trk::SurfacegetSurface (unsigned int surf_count) const
 
const Trk::Surfaceoperator[] (SurfDef surf) const
 
SurfaceVec::const_iterator begin () const
 
SurfaceVec::const_iterator end () const
 

Static Public Member Functions

static int stIdxToSurfDef (Muon::MuonStationIndex::StIndex st_idx, bool pos_eta)
 Transforms the Muon Station index to a SurfDef index. More...
 

Private Attributes

SurfaceVec m_vec {}
 
SurfaceStations m_station {}
 

Detailed Description

Definition at line 21 of file MuonSegmentTagSurfaces.h.

Member Typedef Documentation

◆ SurfaceStations

using MuonCombined::MuonSegmentTagSurfaces::SurfaceStations = std::array<std::string, SurfDef::NumSurf>

Definition at line 42 of file MuonSegmentTagSurfaces.h.

◆ SurfaceVec

using MuonCombined::MuonSegmentTagSurfaces::SurfaceVec = std::array<std::unique_ptr<Trk::Surface>, SurfDef::NumSurf>

Definition at line 41 of file MuonSegmentTagSurfaces.h.

Member Enumeration Documentation

◆ SurfDef

Enumerator
BI 
BM 
BO 
EIA 
EMA 
EOA 
EEA 
EIC 
EMC 
EOC 
EEC 
NumSurf 

Definition at line 23 of file MuonSegmentTagSurfaces.h.

23  {
24  BI = 0,
25  BM = 1,
26  BO = 2,
27  EIA = 3,
28  EMA = 4,
29  EOA = 5,
30  EEA = 6,
31  EIC = 7,
32  EMC = 8,
33  EOC = 9,
34  EEC = 10,
35  NumSurf = 11,
36  };

Constructor & Destructor Documentation

◆ MuonSegmentTagSurfaces()

MuonCombined::MuonSegmentTagSurfaces::MuonSegmentTagSurfaces ( )

Definition at line 37 of file MuonSegmentTagSurfaces.cxx.

37  {
38  const Amg::Vector3D posEI(0., 0., 7500.), posEM(0., 0., 13500.), posEO(0., 0., 21000.), posEE(0., 0., 10000.);
47 
48  m_vec[BI] = std::make_unique<Trk::CylinderSurface>(rBI, lenBI);
49  m_station[BI] = "BI";
50 
51  m_vec[BM] = std::make_unique<Trk::CylinderSurface>(rBM, lenBM);
52  m_station[BM] = "BM";
53 
54  m_vec[BO] = std::make_unique<Trk::CylinderSurface>(rBO, lenBO);
55  m_station[BO] = "BO";
56 
57  m_vec[EIA] = std::make_unique<Trk::DiscSurface>(transEIA, rMinEI, rMaxEI);
58  m_station[EIA] = "EIA";
59 
60  m_vec[EMA] = std::make_unique<Trk::DiscSurface>(transEMA, rMinEM, rMaxEM);
61  m_station[EMA] = "EMA";
62 
63  m_vec[EOA] = std::make_unique<Trk::DiscSurface>(transEOA, rMinEO, rMaxEO);
64  m_station[EOA] = "EOA";
65 
66  m_vec[EEA] = std::make_unique<Trk::DiscSurface>(transEEA, rMinEE, rMaxEE);
67  m_station[EEA] = "EEA";
68 
69  m_vec[EIC] = std::make_unique<Trk::DiscSurface>(transEIC, rMinEI, rMaxEI);
70  m_station[EIC] = "EIC";
71 
72  m_vec[EMC] = std::make_unique<Trk::DiscSurface>(transEMC, rMinEM, rMaxEM);
73  m_station[EMC] = "EMC";
74 
75  m_vec[EOC] = std::make_unique<Trk::DiscSurface>(transEOC, rMinEO, rMaxEO);
76  m_station[EOC] = "EOC";
77 
78  m_vec[EEC] = std::make_unique<Trk::DiscSurface>(transEEC, rMinEE, rMaxEE);
79  m_station[EEC] = "EEC";
80  }

◆ ~MuonSegmentTagSurfaces()

MuonCombined::MuonSegmentTagSurfaces::~MuonSegmentTagSurfaces ( )
default

Member Function Documentation

◆ begin()

SurfaceVec::const_iterator MuonCombined::MuonSegmentTagSurfaces::begin ( ) const
inline

Definition at line 68 of file MuonSegmentTagSurfaces.h.

68 { return m_vec.begin(); };

◆ end()

SurfaceVec::const_iterator MuonCombined::MuonSegmentTagSurfaces::end ( ) const
inline

Definition at line 69 of file MuonSegmentTagSurfaces.h.

69 { return m_vec.end(); };

◆ getSurface() [1/2]

const Trk::Surface* MuonCombined::MuonSegmentTagSurfaces::getSurface ( SurfDef  surf) const
inline

Definition at line 57 of file MuonSegmentTagSurfaces.h.

57 { return m_vec[surf].get(); };

◆ getSurface() [2/2]

const Trk::Surface* MuonCombined::MuonSegmentTagSurfaces::getSurface ( unsigned int  surf_count) const
inline

Definition at line 59 of file MuonSegmentTagSurfaces.h.

59  {
60  if (surf_count >= m_vec.size())
61  return nullptr;
62  else
63  return m_vec[surf_count].get();
64  };

◆ getSurfaces()

const SurfaceVec& MuonCombined::MuonSegmentTagSurfaces::getSurfaces ( ) const
inline

Definition at line 47 of file MuonSegmentTagSurfaces.h.

47 { return m_vec; };

◆ operator[]()

const Trk::Surface* MuonCombined::MuonSegmentTagSurfaces::operator[] ( SurfDef  surf) const
inline

Definition at line 66 of file MuonSegmentTagSurfaces.h.

66 { return m_vec[surf].get(); };

◆ setSurface()

void MuonCombined::MuonSegmentTagSurfaces::setSurface ( const Trk::Surface surface,
SurfDef  def 
)
inline

Definition at line 48 of file MuonSegmentTagSurfaces.h.

48 { m_vec[def].reset(surface->clone()); };

◆ stationType()

const std::string MuonCombined::MuonSegmentTagSurfaces::stationType ( unsigned int  count) const
inline

Definition at line 50 of file MuonSegmentTagSurfaces.h.

50  {
51  if (count >= m_station.size())
52  return "";
53  else
54  return m_station[count];
55  };

◆ stIdxToSurfDef()

int MuonCombined::MuonSegmentTagSurfaces::stIdxToSurfDef ( Muon::MuonStationIndex::StIndex  st_idx,
bool  pos_eta 
)
static

Transforms the Muon Station index to a SurfDef index.

For the endcap external information is required whether the object is on positive or negative eta site

Definition at line 21 of file MuonSegmentTagSurfaces.cxx.

21  {
22  if (stIndex == StationIndex::BI || stIndex == StationIndex::BE) return SurfDef::BI;
23  if (stIndex == StationIndex::BM) return SurfDef::BM;
24  if (stIndex == StationIndex::BO) return SurfDef::BO;
25  if (pos_eta) {
26  if (stIndex == StationIndex::EI) return SurfDef::EIA;
27  if (stIndex == StationIndex::EM) return SurfDef::EMA;
28  if (stIndex == StationIndex::EO) return SurfDef::EOA;
29  if (stIndex == StationIndex::EE) return SurfDef::EEA;
30  }
31  if (stIndex == StationIndex::EI) return SurfDef::EIC;
32  if (stIndex == StationIndex::EM) return SurfDef::EMC;
33  if (stIndex == StationIndex::EO) return SurfDef::EOC;
34  if (stIndex == StationIndex::EE) return SurfDef::EEC;
35  return SurfDef::NumSurf;
36  }

Member Data Documentation

◆ m_station

SurfaceStations MuonCombined::MuonSegmentTagSurfaces::m_station {}
private

Definition at line 73 of file MuonSegmentTagSurfaces.h.

◆ m_vec

SurfaceVec MuonCombined::MuonSegmentTagSurfaces::m_vec {}
private

Definition at line 72 of file MuonSegmentTagSurfaces.h.


The documentation for this class was generated from the following files:
MuonCombined::MuonSegmentTagSurfaces::m_station
SurfaceStations m_station
Definition: MuonSegmentTagSurfaces.h:73
MuonCombined::MuonSegmentTagSurfaces::EMA
@ EMA
Definition: MuonSegmentTagSurfaces.h:28
MuonCombined::MuonSegmentTagSurfaces::EIA
@ EIA
Definition: MuonSegmentTagSurfaces.h:27
TRT_PAI_gasdata::EO
const float EO[NO]
Energy levels for Oxygen.
Definition: TRT_PAI_gasdata.h:301
MuonCombined::MuonSegmentTagSurfaces::EIC
@ EIC
Definition: MuonSegmentTagSurfaces.h:31
MuonCombined::MuonSegmentTagSurfaces::EOC
@ EOC
Definition: MuonSegmentTagSurfaces.h:33
MuonCombined::MuonSegmentTagSurfaces::BO
@ BO
Definition: MuonSegmentTagSurfaces.h:26
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
MuonCombined::MuonSegmentTagSurfaces::m_vec
SurfaceVec m_vec
Definition: MuonSegmentTagSurfaces.h:72
Ringer::EM
@ EM
Definition: CaloRingsDefs.h:19
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonCombined::MuonSegmentTagSurfaces::EEC
@ EEC
Definition: MuonSegmentTagSurfaces.h:34
MuonCombined::MuonSegmentTagSurfaces::BM
@ BM
Definition: MuonSegmentTagSurfaces.h:25
MuonCombined::MuonSegmentTagSurfaces::NumSurf
@ NumSurf
Definition: MuonSegmentTagSurfaces.h:35
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonCombined::MuonSegmentTagSurfaces::EMC
@ EMC
Definition: MuonSegmentTagSurfaces.h:32
Trk::Surface::clone
virtual Surface * clone() const =0
Implicit constructor - uses the copy constructor.
MuonCombined::MuonSegmentTagSurfaces::BI
@ BI
Definition: MuonSegmentTagSurfaces.h:24
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
MuonCombined::MuonSegmentTagSurfaces::EEA
@ EEA
Definition: MuonSegmentTagSurfaces.h:30
MuonCombined::MuonSegmentTagSurfaces::EOA
@ EOA
Definition: MuonSegmentTagSurfaces.h:29