Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
5 #include "GaudiKernel/ISvcLocator.h"
6 #include "GaudiKernel/MsgStream.h"
22 SmartIF<IRDBAccessSvc> rdbAccess{service(
"RDBAccessSvc")};
25 SmartIF<IGeoModelSvc> geoModel{service(
"GeoModelSvc")};
30 std::string atlasVersion = geoModel->atlasVersion();
32 IRDBRecordset_ptr atlasCommonRec = rdbAccess->getRecordsetPtr(
"AtlasCommon",atlasVersion,
"ATLAS");
33 if(atlasCommonRec->size()==0) {
36 std::string configVal = (*atlasCommonRec)[0]->getString(
"CONFIG");
37 if(configVal==
"RUN1"){
39 }
else if(configVal==
"RUN2" || configVal==
"RUN3" || configVal==
"RUN4") {
42 ATH_MSG_FATAL(
"Unexpected value for geometry config read from the database: " << configVal);
43 return StatusCode::FAILURE;
50 return StatusCode::SUCCESS;
56 bool check = subDetectorID == 0x6A || subDetectorID == 0x69;
59 rodId = (subDetectorID << 16) |
id;
66 switch ( offlineID ) {
96 if((offlineID & 0x1F) & 0x10){
99 rodId = 0x80 | (0xF & offlineID);
107 uint16_t id = onlineIdentifier & 0xFFFF;
144 if(!
check && (
id & 0x70) == 0){
147 rodId = (((
id & 0xf) >> 1) | 0x10);
149 rodId = (((
id & 0xf) >> 1) | 0x18);
159 bool check = rodId == 0x5 || rodId == 0x7 || rodId == 0x9 || rodId == 0x11 ||
160 rodId == 0x15 || rodId == 0x17 || rodId == 0x19 || rodId == 0x21;
163 if((rodId & 0x70) == 0)
check =
true;
171 bool check = rodId == 0x0 || rodId == 0x1 || rodId == 0x2 || rodId == 0x3 ||
172 rodId == 0x4 || rodId == 0x5 || rodId == 0x6 || rodId == 0x7;
175 if((0x10 & rodId)==0x10)
check =
true;
182 uint16_t subId = (subDetectorId == 0x6A) ? 0 : 1;
187 if((rodId & 0x10) == 0x10){
188 onlineColId = subId*this->
nROD() + rodId - 16;
190 onlineColId = subId*this->
nROD() + rodId;
341 if ((hashid >= 8 && hashid <= 15) || (hashid >= 24))
342 subdetectorid = 0x69;
344 subdetectorid = 0x6a;
354 robid = (subdetectorid << 16) | shortRobID;
bool offlineId(const uint32_t onlineIdentifier, uint16_t &rodId) const
reverse map of online ID into offline ROD ID
Gaudi::Property< bool > m_run1
bool onlineId(const uint16_t subdetectorID, const uint16_t offlineID, uint32_t &rodId) const
map offline ROD identifier to online ID
void hash2Rod(const unsigned int &, uint32_t &) const
map PRD collection ID into offline ROD ID
unsigned int nROD() const
bool is_rodId(const uint16_t rodId) const
check that we have the correct online ROD id
Definition of the abstract IRDBAccessSvc interface.
::StatusCode StatusCode
StatusCode definition for legacy code.
void hash2Rob(const unsigned int &, uint32_t &) const
map PRD collection ID into short ROB ID, e.g.
uint16_t collectionId(const uint16_t subdetectorId, const uint16_t rodId) const
calculate the collection Identifier
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
void hash2SubdetectorId(const unsigned int &, uint32_t &) const
map PRD collection ID into subdetector ID, i.e.
void hash2RobFull(const unsigned int &, uint32_t &) const
map PRD collection ID into full ROB ID (with subdetector ID), e.g.
bool is_offlineRodId(const uint16_t rodId) const
check that we have the correct offline ROD id
void hash2CollectionId(const unsigned int &, uint16_t &) const
map PRD collection ID into RDO collection ID
Definition of the abstract IRDBRecord interface.
virtual StatusCode initialize() override
Definition of the abstract IRDBRecordset interface.