39      ATH_MSG_FATAL(
"The event data (PixelDetElStatusEventDataBaseKey) and cond data (PixelDetElStatusCondDataBaseKey) keys cannot be set at the same time.");
 
   57       return StatusCode::FAILURE;
 
   60       ATH_MSG_FATAL(
"Logic error: status id too large. Cannot be represented by a bit");
 
   61       return StatusCode::FAILURE;
 
   68     if      (isActiveStatus==
"OK")       { 
m_activeStatus.push_back(PixelDCSStatusData::DCSModuleStatus::OK); }
 
   72     else if (isActiveStatus==
"NOSTATUS") { 
m_activeStatus.push_back(PixelDCSStatusData::DCSModuleStatus::NOSTATUS); }
 
   74       ATH_MSG_ERROR(
"No matching DCS status " << isActiveStatus << 
" in DCSModuleStatus");
 
   75       return StatusCode::FAILURE;
 
   78       ATH_MSG_FATAL(
"Logic error: status id too large. Cannot be represented by a bit");
 
   79       return StatusCode::FAILURE;
 
   84   return StatusCode::SUCCESS;
 
   93   if (not idcErrCont.
isValid()) { 
return nullptr; }
 
   95   return idcErrCont.
cptr();
 
  102     if (idcErrContPtr==
nullptr) {     
 
  103       cacheEntry->
reset(ctx.evt(), 
nullptr);
 
  106       cacheEntry->
reset(ctx.evt(), idcErrContPtr->cache());
 
  108     ATH_MSG_VERBOSE(
"PixelConditionsSummaryTool Cache for the event reset " << cacheEntry->
eventId << 
" with IDC container" << idcErrContPtr);
 
  114   std::scoped_lock<std::mutex> 
lock{*m_cacheMutex.get(ctx)};
 
  132   if (not pixelDetEleHandle.
isValid() or elements==
nullptr) {
 
  143   if (cacheEntry == 
nullptr){
 
  144     std::scoped_lock<std::mutex> 
lock{*m_cacheMutex.get(ctx)};
 
  147   const auto *idcCachePtr = cacheEntry->
IDCCache;
 
  148   if (idcCachePtr==
nullptr) {
 
  174   if (
hasBSError(moduleHash, ctx, cacheEntry)) { 
return true; }
 
  181   int indexFE = (1+chFE)*maxHash+
static_cast<int>(moduleHash);    
 
  205   if (useByteStream && 
getBSErrorWord(moduleHash,moduleHash+52736,ctx)!=1) { 
return false; }
 
  208   bool isDCSActive = 
false;
 
  210     if (istate==dcsstate_data->
getModuleStatus(moduleHash)) { isDCSActive=
true; }
 
  212   if (!isDCSActive) { 
return false; }
 
  226   if (useByteStream && 
getBSErrorWord(moduleHash,moduleHash+52736,ctx)!=1) { 
return false; }
 
  229   bool isDCSActive = 
false;
 
  231     if (istate==dcsstate_data->
getModuleStatus(moduleHash)) { isDCSActive=
true; }
 
  233   if (!isDCSActive) { 
return false; }
 
  250   if (
hasBSError(moduleHash, ctx)) { 
return false; }
 
  253   bool isDCSActive = 
false;
 
  255     if (istate==dcsstate_data->
getModuleStatus(moduleHash)) { isDCSActive=
true; }
 
  257   if (!isDCSActive) { 
return false; }
 
  260   bool isDCSGood = 
false;
 
  262     if (activeStatus==dcsstatus_data->
getModuleStatus(moduleHash)) { isDCSGood=
true; }
 
  264   if (!isDCSGood) { 
return false; }
 
  272     if (
hasBSError(moduleHash, elementId, ctx)) { 
return false; }
 
  279    inline void andStatus(
const std::unordered_map<int, int> &status_map, 
unsigned int status_mask, std::vector<bool> &module_status) {
 
  280       for (
const std::pair<const int, int> &elm : status_map ) {
 
  282          module_status.at(elm.first) = module_status.at(elm.first) && (status_mask & (1<<elm.second));
 
  285    inline void andNotStatus(
const std::unordered_map<int, int> &status_map, std::vector<bool> &module_status) {
 
  286       for (
const std::pair<const int, int> &elm : status_map ) {
 
  288          module_status.at(elm.first) = module_status.at(elm.first) && (elm.second==0);
 
  300          throw std::runtime_error(
"Object is not of expected type InDet::PixelDetectorElementStatus");
 
  305 std::unique_ptr<InDet::SiDetectorElementStatus>
 
  313       return std::make_unique<InDet::PixelDetectorElementStatus>(*castToDerived(input_element_status.cptr()));
 
  317       return std::make_unique<InDet::PixelDetectorElementStatus>(*castToDerived(input_element_status.cptr()));
 
  321       if (not pixelDetEleHandle.
isValid() ) {
 
  322          std::stringstream 
msg;
 
  324          throw std::runtime_error(
msg.str());
 
  330       return std::make_unique<InDet::PixelDetectorElementStatus>(*elements);
 
  334 std::unique_ptr<InDet::SiDetectorElementStatus>
 
  343    chip_status.resize(
status.size(),0);
 
  376       unsigned int element_i=0;
 
  383             assert( chip_mask != 0 );
 
  384             std::bitset<16> dead_chip_mask(dead_map->
getChipStatus(element_i));
 
  385             chip_status[element_i]  =   chip_mask & (~static_cast<InDet::ChipFlags_t>(dead_chip_mask.to_ulong()));
 
  398    if (readout_technology_mask) {
 
  400         ATH_MSG_ERROR(
"PixelConditionsSummaryTool not configured for use with conditions objects");
 
  403       std::scoped_lock<std::mutex> 
lock{*m_cacheMutex.get(ctx)};
 
  406       if (idcCachePtr==
nullptr) {
 
  437          unsigned int element_offset_i = (active_only ? 52736 : 0);
 
  439          unsigned int element_i=0;
 
  447             status.at(element_i) = 
status.at(element_i) &&  not (   readout_technology_flags
 
  450                                                                       : idcCachePtr->
retrieve(element_i+element_offset_i)!=1 ));
 
  456                assert( chip_mask != 0 );
 
  459                   for (
unsigned int chip_i =0; chip_i < number_of_chips; ++chip_i) {
 
  461                      unsigned int indexFE = (1+chip_i)*maxHash + element_i;    
 
  464                      bs_status_flags |= (chip_flag << chip_i);
 
  467                chip_status[element_i] &=  (bs_status_flags & chip_mask);
 
  470                chip_status[element_i] = 0;
 
  476    return element_status;
 
  481   if (
hasBSError(moduleHash, ctx)) { 
return false; }
 
  484   bool isDCSActive = 
false;
 
  486     if (istate==dcsstate_data->
getModuleStatus(moduleHash)) { isDCSActive=
true; }
 
  488   if (!isDCSActive) { 
return false; }
 
  491   bool isDCSGood = 
false;
 
  493     if (activeStatus==dcsstatus_data->
getModuleStatus(moduleHash)) { isDCSGood=
true; }
 
  495   if (!isDCSGood) { 
return false; }
 
  506   if (
hasBSError(moduleHash, ctx, cacheEntry)) { 
return false; }
 
  509   bool isDCSActive = 
false;
 
  511     if (istate==dcsstate_data->
getModuleStatus(moduleHash)) { isDCSActive=
true; }
 
  513   if (!isDCSActive) { 
return false; }
 
  516   bool isDCSGood = 
false;
 
  518     if (activeStatus==dcsstatus_data->
getModuleStatus(moduleHash)) { isDCSGood=
true; }
 
  520   if (!isDCSGood) { 
return false; }
 
  528   if (
hasBSError(moduleHash, elementId, ctx, cacheEntry)) { 
return false; }
 
  535   if (!
isGood(moduleHash, ctx)) { 
return 0.0; }
 
  545   double nTotal = (std::abs(phiStart-phiEnd)+1.0)*(std::abs(etaStart-etaEnd)+1.0);