ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
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. More...
 
 ~EMBBasicReadoutNumbers ()
 Destructor. More...
 
double getPresamplerRadius () const
 Gets the presampler active radius (Presampler Geometry.RACTIVE) More...
 
double getRinAc () const
 Gets the accordeon inner Radius (BarrelGeometry.RIN_AC) More...
 
double getRoutAc () const
 Gets the accordeon outer Radius (BarrelGeometry.ROUT_AC) More...
 
double getEMBSamplingSepInnerRMax (unsigned int i) const
 Sampling Separation between Layer 1 & 2 vs eta index (reg 0) More...
 
double getEE (unsigned int i) const
 Rapidity Nodes for 1-2 Separation (BarrelLongDiv.EE) More...
 
double getRMX12 (unsigned int i) const
 Gets the Sampling1-2 separation radii array (BarrelLong Div.RMX12) More...
 
double getRMX23 (unsigned int i) const
 Gets the Sampling2-3 separation radii array (BarrelLong Div.RMX23) More...
 
unsigned int getNumEMBSamplingSepInnerRMax () const
 Number of values in the EMBSamplingSepInnerRMax array. More...
 
unsigned int getNumEE () const
 Number of values in the EE array. More...
 
unsigned int getNumRMX12 () const
 Number of values in the RMX12 Array. More...
 
unsigned int getNumRMX23 () const
 Number of values in the RMX23 Array. More...
 

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  IRDBAccessSvc *rdbAccess{nullptr};
25  IGeoModelSvc *geoModel{nullptr};
26  IGeoDbTagSvc *geoDbTagSvc{nullptr};
27 
28  if(svcLocator->service("GeoModelSvc",geoModel) == StatusCode::FAILURE)
29  throw std::runtime_error("Error in HECDetectorManager, cannot access GeoModelSvc");
30 
31  if(svcLocator->service("GeoDbTagSvc",geoDbTagSvc) == StatusCode::FAILURE)
32  throw std::runtime_error("Error in HECDetectorManager, cannot access GeoDbTagSvc");
33 
34  if(svcLocator->service(geoDbTagSvc->getParamSvcName(),rdbAccess) == StatusCode::FAILURE)
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 }

◆ ~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:
EMBBasicReadoutNumbers::m_EMBSamplingSepInnerRMax
std::vector< double > m_EMBSamplingSepInnerRMax
Definition: EMBBasicReadoutNumbers.h:93
EMBBasicReadoutNumbers::m_rOutAc
double m_rOutAc
Definition: EMBBasicReadoutNumbers.h:92
IGeoModelSvc
Definition: IGeoModelSvc.h:17
EMBBasicReadoutNumbers::m_EE
std::vector< double > m_EE
Definition: EMBBasicReadoutNumbers.h:94
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
lumiFormat.i
int i
Definition: lumiFormat.py:92
IRDBAccessSvc
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
Definition: IRDBAccessSvc.h:45
DecodeVersionKey
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
Definition: DecodeVersionKey.h:18
IGeoDbTagSvc
Definition: IGeoDbTagSvc.h:26
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
EMBBasicReadoutNumbers::m_RMX12
std::vector< double > m_RMX12
Definition: EMBBasicReadoutNumbers.h:95
EMBBasicReadoutNumbers::m_presamplerRadius
double m_presamplerRadius
Definition: EMBBasicReadoutNumbers.h:90
EMBBasicReadoutNumbers::m_RMX23
std::vector< double > m_RMX23
Definition: EMBBasicReadoutNumbers.h:96
EMBBasicReadoutNumbers::m_rInAc
double m_rInAc
Definition: EMBBasicReadoutNumbers.h:91