ATLAS Offline Software
Loading...
Searching...
No Matches
EMBBasicReadoutNumbers Class Reference

This is a collection of numbers used to create the cell shapes. More...

#include <EMBBasicReadoutNumbers.h>

Collaboration diagram for EMBBasicReadoutNumbers:

Public Member Functions

 EMBBasicReadoutNumbers ()
 Constructor.
 ~EMBBasicReadoutNumbers ()
 Destructor.
double getPresamplerRadius () const
 Gets the presampler active radius (Presampler Geometry.RACTIVE)
double getRinAc () const
 Gets the accordeon inner Radius (BarrelGeometry.RIN_AC)
double getRoutAc () const
 Gets the accordeon outer Radius (BarrelGeometry.ROUT_AC)
double getEMBSamplingSepInnerRMax (unsigned int i) const
 Sampling Separation between Layer 1 & 2 vs eta index (reg 0)
double getEE (unsigned int i) const
 Rapidity Nodes for 1-2 Separation (BarrelLongDiv.EE)
double getRMX12 (unsigned int i) const
 Gets the Sampling1-2 separation radii array (BarrelLong Div.RMX12)
double getRMX23 (unsigned int i) const
 Gets the Sampling2-3 separation radii array (BarrelLong Div.RMX23)
unsigned int getNumEMBSamplingSepInnerRMax () const
 Number of values in the EMBSamplingSepInnerRMax array.
unsigned int getNumEE () const
 Number of values in the EE array.
unsigned int getNumRMX12 () const
 Number of values in the RMX12 Array.
unsigned int getNumRMX23 () const
 Number of values in the RMX23 Array.

Private Member Functions

 EMBBasicReadoutNumbers (const EMBBasicReadoutNumbers &right)
EMBBasicReadoutNumbersoperator= (const EMBBasicReadoutNumbers &right)

Private Attributes

double m_presamplerRadius
double m_rInAc
double m_rOutAc
std::vector< double > m_EMBSamplingSepInnerRMax
std::vector< double > m_EE
std::vector< double > m_RMX12
std::vector< double > m_RMX23

Detailed Description

This is a collection of numbers used to create the cell shapes.

Definition at line 12 of file EMBBasicReadoutNumbers.h.

Constructor & Destructor Documentation

◆ EMBBasicReadoutNumbers() [1/2]

EMBBasicReadoutNumbers::EMBBasicReadoutNumbers ( )

Constructor.

Definition at line 20 of file EMBBasicReadoutNumbers.cxx.

21{
22 // The EMB gets and managers certain arrays needed to build descriptors. Here is that:
23 ISvcLocator *svcLocator = Gaudi::svcLocator();
24
25 SmartIF<IGeoModelSvc> geoModel{svcLocator->service("GeoModelSvc")};
26 if(!geoModel.isValid())
27 throw std::runtime_error("Error in HECDetectorManager, cannot access GeoModelSvc");
28
29 SmartIF<IGeoDbTagSvc> geoDbTagSvc{svcLocator->service("GeoDbTagSvc")};
30 if(!geoDbTagSvc.isValid())
31 throw std::runtime_error("Error in HECDetectorManager, cannot access GeoDbTagSvc");
32
33 SmartIF<IRDBAccessSvc> rdbAccess{svcLocator->service(geoDbTagSvc->getParamSvcName())};
34 if(!rdbAccess.isValid())
35 throw std::runtime_error("Error in HECDetectorManager, cannot access RDBAccessSvc");
36
37 std::string larKey, larNode;
38 if(geoDbTagSvc->getSqliteReader()==nullptr) {
39 DecodeVersionKey larVersionKey(geoModel, "LAr");
40 larKey = larVersionKey.tag();
41 larNode = larVersionKey.node();
42 }
43
44 IRDBRecordset_ptr barrelLongDiv = rdbAccess->getRecordsetPtr("BarrelLongDiv", larKey, larNode);
45 if (barrelLongDiv->size()==0) throw std::runtime_error("Error getting BarrelLongDiv table");
46
47 IRDBRecordset_ptr barrelGeometry = rdbAccess->getRecordsetPtr("BarrelGeometry", larKey, larNode);
48 if (barrelGeometry->size()==0) throw std::runtime_error("Error getting BarrelGeometry table");
49
50 IRDBRecordset_ptr presamplerGeometry = rdbAccess->getRecordsetPtr("PresamplerGeometry", larKey, larNode);
51 if (presamplerGeometry->size()==0) throw std::runtime_error("Error getting PresamplerGeometry table");
52
53 IRDBRecordset_ptr embSampSep = rdbAccess->getRecordsetPtr("EMBSampSep", larKey, larNode);
54 if (embSampSep->size()==0) {
55 embSampSep = rdbAccess->getRecordsetPtr("EMBSampSep", "EMBSampSep-00");
56 if (embSampSep->size()==0) {
57 throw std::runtime_error("Error getting EMBSampSep table");
58 }
59 }
60
61 m_presamplerRadius = (*presamplerGeometry)[0]->getDouble("RACTIVE")*Gaudi::Units::cm;
62 m_rInAc = (*barrelGeometry)[0]->getDouble("RIN_AC")*Gaudi::Units::cm;
63 m_rOutAc = (*barrelGeometry)[0]->getDouble("ROUT_AC")*Gaudi::Units::cm;
64 for (int i=0;i<8;i++) m_EE.push_back((*barrelLongDiv)[0]->getDouble("EE",i));
65 for (int i=0;i<8;i++) m_RMX12.push_back((*barrelLongDiv)[0]->getDouble("RMX12",i)*Gaudi::Units::cm);
66 for (int i=0;i<53;i++) m_RMX23.push_back((*barrelLongDiv)[0]->getDouble("RMX23",i)*Gaudi::Units::cm);
67
68 int sampSepSize = embSampSep->size();
69 m_EMBSamplingSepInnerRMax.resize(sampSepSize,0.0);
70 for (int i{0}; i<sampSepSize; ++i) {
71 m_EMBSamplingSepInnerRMax.at((*embSampSep)[i]->getInt("IND"))=(*embSampSep)[i]->getDouble("RMAX");
72 }
73}
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
std::vector< double > m_EE
std::vector< double > m_RMX12
std::vector< double > m_RMX23
std::vector< double > m_EMBSamplingSepInnerRMax
virtual unsigned int size() const =0

◆ ~EMBBasicReadoutNumbers()

EMBBasicReadoutNumbers::~EMBBasicReadoutNumbers ( )
default

Destructor.

◆ EMBBasicReadoutNumbers() [2/2]

EMBBasicReadoutNumbers::EMBBasicReadoutNumbers ( const EMBBasicReadoutNumbers & right)
private

Member Function Documentation

◆ getEE()

double EMBBasicReadoutNumbers::getEE ( unsigned int i) const
inline

Rapidity Nodes for 1-2 Separation (BarrelLongDiv.EE)

Definition at line 121 of file EMBBasicReadoutNumbers.h.

122{
123 return m_EE[i];
124}

◆ getEMBSamplingSepInnerRMax()

double EMBBasicReadoutNumbers::getEMBSamplingSepInnerRMax ( unsigned int i) const
inline

Sampling Separation between Layer 1 & 2 vs eta index (reg 0)

Definition at line 116 of file EMBBasicReadoutNumbers.h.

117{
119}

◆ getNumEE()

unsigned int EMBBasicReadoutNumbers::getNumEE ( ) const
inline

Number of values in the EE array.

Definition at line 136 of file EMBBasicReadoutNumbers.h.

137{
138 return m_EE.size();
139}

◆ getNumEMBSamplingSepInnerRMax()

unsigned int EMBBasicReadoutNumbers::getNumEMBSamplingSepInnerRMax ( ) const
inline

Number of values in the EMBSamplingSepInnerRMax array.

Definition at line 151 of file EMBBasicReadoutNumbers.h.

152{
153 return m_EMBSamplingSepInnerRMax.size();
154}

◆ getNumRMX12()

unsigned int EMBBasicReadoutNumbers::getNumRMX12 ( ) const
inline

Number of values in the RMX12 Array.

Definition at line 141 of file EMBBasicReadoutNumbers.h.

142{
143 return m_RMX12.size();
144}

◆ getNumRMX23()

unsigned int EMBBasicReadoutNumbers::getNumRMX23 ( ) const
inline

Number of values in the RMX23 Array.

Definition at line 146 of file EMBBasicReadoutNumbers.h.

147{
148 return m_RMX23.size();
149}

◆ getPresamplerRadius()

double EMBBasicReadoutNumbers::getPresamplerRadius ( ) const
inline

Gets the presampler active radius (Presampler Geometry.RACTIVE)

Definition at line 101 of file EMBBasicReadoutNumbers.h.

102{
103 return m_presamplerRadius;
104}

◆ getRinAc()

double EMBBasicReadoutNumbers::getRinAc ( ) const
inline

Gets the accordeon inner Radius (BarrelGeometry.RIN_AC)

Definition at line 106 of file EMBBasicReadoutNumbers.h.

107{
108 return m_rInAc;
109}

◆ getRMX12()

double EMBBasicReadoutNumbers::getRMX12 ( unsigned int i) const
inline

Gets the Sampling1-2 separation radii array (BarrelLong Div.RMX12)

Definition at line 126 of file EMBBasicReadoutNumbers.h.

127{
128 return m_RMX12[i];
129}

◆ getRMX23()

double EMBBasicReadoutNumbers::getRMX23 ( unsigned int i) const
inline

Gets the Sampling2-3 separation radii array (BarrelLong Div.RMX23)

Definition at line 131 of file EMBBasicReadoutNumbers.h.

132{
133 return m_RMX23[i];
134}

◆ getRoutAc()

double EMBBasicReadoutNumbers::getRoutAc ( ) const
inline

Gets the accordeon outer Radius (BarrelGeometry.ROUT_AC)

Definition at line 111 of file EMBBasicReadoutNumbers.h.

112{
113 return m_rOutAc;
114}

◆ operator=()

EMBBasicReadoutNumbers & EMBBasicReadoutNumbers::operator= ( const EMBBasicReadoutNumbers & right)
private

Member Data Documentation

◆ m_EE

std::vector<double> EMBBasicReadoutNumbers::m_EE
private

Definition at line 94 of file EMBBasicReadoutNumbers.h.

◆ m_EMBSamplingSepInnerRMax

std::vector<double> EMBBasicReadoutNumbers::m_EMBSamplingSepInnerRMax
private

Definition at line 93 of file EMBBasicReadoutNumbers.h.

◆ m_presamplerRadius

double EMBBasicReadoutNumbers::m_presamplerRadius
private

Definition at line 90 of file EMBBasicReadoutNumbers.h.

◆ m_rInAc

double EMBBasicReadoutNumbers::m_rInAc
private

Definition at line 91 of file EMBBasicReadoutNumbers.h.

◆ m_RMX12

std::vector<double> EMBBasicReadoutNumbers::m_RMX12
private

Definition at line 95 of file EMBBasicReadoutNumbers.h.

◆ m_RMX23

std::vector<double> EMBBasicReadoutNumbers::m_RMX23
private

Definition at line 96 of file EMBBasicReadoutNumbers.h.

◆ m_rOutAc

double EMBBasicReadoutNumbers::m_rOutAc
private

Definition at line 92 of file EMBBasicReadoutNumbers.h.


The documentation for this class was generated from the following files: