|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #include "GaudiKernel/ISvcLocator.h"
6 #include "GaudiKernel/MsgStream.h"
22 declareProperty(
"Run1Cabling",
m_run1 =
false);
30 return ::AthService::queryInterface(riid, ppvIF);
33 return StatusCode::SUCCESS;
42 SmartIF<IRDBAccessSvc> rdbAccess{service(
"RDBAccessSvc")};
45 SmartIF<IGeoModelSvc> geoModel{service(
"GeoModelSvc")};
50 std::string atlasVersion = geoModel->atlasVersion();
52 IRDBRecordset_ptr atlasCommonRec = rdbAccess->getRecordsetPtr(
"AtlasCommon",atlasVersion,
"ATLAS");
53 if(atlasCommonRec->size()==0) {
56 std::string configVal = (*atlasCommonRec)[0]->getString(
"CONFIG");
57 if(configVal==
"RUN1"){
59 }
else if(configVal==
"RUN2" || configVal==
"RUN3" || configVal==
"RUN4") {
62 ATH_MSG_FATAL(
"Unexpected value for geometry config read from the database: " << configVal);
63 return StatusCode::FAILURE;
70 return StatusCode::SUCCESS;
76 bool check = subDetectorID == 0x6A || subDetectorID == 0x69;
79 rodId = (subDetectorID << 16) |
id;
86 switch ( offlineID ) {
116 if((offlineID & 0x1F) & 0x10){
119 rodId = 0x80 | (0xF & offlineID);
127 uint16_t id = onlineIdentifier & 0xFFFF;
164 if(!
check && (
id & 0x70) == 0){
167 rodId = (((
id & 0xf) >> 1) | 0x10);
169 rodId = (((
id & 0xf) >> 1) | 0x18);
179 bool check = rodId == 0x5 || rodId == 0x7 || rodId == 0x9 || rodId == 0x11 ||
180 rodId == 0x15 || rodId == 0x17 || rodId == 0x19 || rodId == 0x21;
183 if((rodId & 0x70) == 0)
check =
true;
191 bool check = rodId == 0x0 || rodId == 0x1 || rodId == 0x2 || rodId == 0x3 ||
192 rodId == 0x4 || rodId == 0x5 || rodId == 0x6 || rodId == 0x7;
195 if((0x10 & rodId)==0x10)
check =
true;
202 uint16_t subId = (subDetectorId == 0x6A) ? 0 : 1;
207 if((rodId & 0x10) == 0x10){
208 onlineColId = subId*this->
nROD() + rodId - 16;
210 onlineColId = subId*this->
nROD() + rodId;
361 if ((hashid >= 8 && hashid <= 15) || (hashid >= 24))
362 subdetectorid = 0x69;
364 subdetectorid = 0x6a;
374 robid = (subdetectorid << 16) | shortRobID;
bool offlineId(const uint32_t onlineIdentifier, uint16_t &rodId) const
reverse map of online ID into offline ROD ID
virtual StatusCode queryInterface(const InterfaceID &riid, void **ppvIF)
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.
virtual StatusCode initialize(void)
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.
Definition of the abstract IRDBRecordset interface.
const InterfaceID IID_ICSCcablingSvc("CSCcablingSvc", 1, 0)
CSCcablingSvc(const std::string &name, ISvcLocator *sl)