28 return StatusCode::FAILURE;
33 ATH_MSG_ERROR(
"Do not have Onl-Ofl cabling map for SuperCells !!!!");
34 return StatusCode::FAILURE;
39 ATH_MSG_ERROR(
"Do not have CaloSuperCellDetDescrManager !!!!");
40 return StatusCode::FAILURE;
45 ATH_MSG_ERROR(
"Do not have CaloSuperCellDetDescrManager !!!!");
46 return StatusCode::FAILURE;
49 std::bitset<190000> usedIds;
51 const Identifier scId = scCablingHdl->cnvToIdentifier(scHWID);
57 const double scEtaRange[2] = {scDDE->
eta_raw() - scDDE->
deta() / 2.0, scDDE->
eta_raw() + scDDE->
deta() / 2.0};
58 const double scPhiRange[2] = {scDDE->
phi_raw() - scDDE->
dphi() / 2.0, scDDE->
phi_raw() + scDDE->
dphi() / 2.0};
59 const std::vector<Identifier>& regularIDs =
m_scidtool->superCellToOfflineID(scId);
60 std::cout <<
"SuperCell 0x" << std::hex << scId.
get_identifier32().
get_compact() <<
" (0x" << scHWID.get_identifier32().get_compact() << std::dec
62 std::cout <<
"Online " <<
m_scOnlineId->channel_name(scHWID) << std::endl;
65 if (usedIds.test(hash)) {
66 ATH_MSG_ERROR(
"Identifier " <<
id.get_identifier32().get_compact() <<
"used in multiple SCs");
69 const HWIdentifier hwid = cablingHdl->createSignalChannelIDFromHash(hash);
71 std::cout <<
"\tOnline=" <<
m_onlineId->channel_name(hwid) << std::endl;
73 const int barrel_ec =
m_onlineId->barrel_ec(hwid);
75 int feedthough =
m_onlineId->feedthrough(hwid);
82 const std::array<int, 3> FTid{barrel_ec, pos_neg, feedthough};
84 ATH_MSG_ERROR(
"Online FTID mismatch: SC-hwid=" << scFTid <<
", hwid=" << FTid);
90 const std::set<CaloSampling::CaloSample> hecSamplings{CaloSampling::HEC1, CaloSampling::HEC2, CaloSampling::HEC3};
92 layer = CaloSampling::HEC0;
96 ATH_MSG_ERROR(
"Region id mismatch: SC reg " << scReg <<
", reg=" << reg);
98 std::cout <<
"\tEta=" << dde->
eta_raw() <<
" Phi=" << dde->
phi_raw() <<
", sampling=" << layer << std::endl;
100 ATH_MSG_ERROR(
"Cell eta=" << dde->
eta_raw() <<
" outside of supercell eta boundaries [" << scEtaRange[0] <<
"," << scEtaRange[1] <<
"]");
103 ATH_MSG_ERROR(
"Cell phi=" << dde->
phi_raw() <<
" outside of supercell phi boundaries [" << scPhiRange[0] <<
"," << scPhiRange[1] <<
"]");
108 unsigned nUnused = 0;
109 for (
unsigned i = 0; i <
m_caloCellId->calo_cell_hash_max(); ++i) {
110 if (!usedIds.test(i)) {
111 const HWIdentifier hwid = cablingHdl->createSignalChannelIDFromHash(i);
118 if (nUnused != 128) {
119 ATH_MSG_ERROR(
"Expected 128 regular cells not connected to any SC, got " << nUnused);
122 return StatusCode::SUCCESS;