62 TString warn_binning=
"";
96 std::vector<std::string> availableErrorCodesStrs;
99 availableErrorCodesStrs.emplace_back(Form(
"%d",
code));
132 if(ctx.evt()+1 >
m_nevents )
return StatusCode::SUCCESS;
143 std::vector<LArChanHelp> the_coverageMap(0);
144 auto ref_the_coverageMap =
std::ref(the_coverageMap);
162 std::map<int,std::map<std::string,std::vector<LArChanHelp> > > coverageMap;
169 std::vector<long> knownDeadFEBs(0);
170 std::vector<long> knownErrorFEBs(0);
179 const LArOnOffIdMapping* larCabling{*cablingHdl};
182 return StatusCode::FAILURE;
187 if(! pRawChannelsContainer.
isValid() ) {
189 return StatusCode::SUCCESS;
197 lb1 = (
float)ctx.eventID().lumi_block();
210 if(!mfCont)
ATH_MSG_WARNING(
"Do not have Missing FEBs container !!" );
213 HWIdentifier febid = HWIdentifier(*allFeb);
214 const LArBadFeb febStatus = mfCont->status(febid);
215 if (febStatus.
deadAll() || febStatus.
deadReadout()) knownDeadFEBs.push_back(febid.get_compact());
216 if(febStatus.
inError()) knownErrorFEBs.push_back(febid.get_compact());
223 for (
const LArRawChannel& pRawChannel : *pRawChannelsContainer) {
224 uint16_t provenanceChan = pRawChannel.provenance();
225 float energyChan = pRawChannel.energy();
226 HWIdentifier
id = pRawChannel.hardwareID();
227 Identifier offlineID = larCabling->cnvToIdentifier(
id);
230 if(!larCabling->isOnlineConnected(
id))
continue;
242 if(caloDetElement == 0 ){
243 ATH_MSG_ERROR(
"Cannot retrieve (eta,phi) coordinates for raw channels" );
246 etaChan = caloDetElement->
eta_raw();
247 phiChan = caloDetElement->
phi_raw();
258 std::string cnGroup_toFill=
"";
262 else ATH_MSG_WARNING(
"LAr IDhelper returned unexpected sampling: " << sampling <<
". Group EM could not be filled.");
267 else ATH_MSG_WARNING(
"LAr IDhelper returned unexpected sampling: " << sampling <<
". Group HEC could not be filled.");
272 else ATH_MSG_WARNING(
"LAr IDhelper returned unexpected sampling: " << sampling <<
". Group FCAL could not be filled.");
279 std::string the_side= (etaChan >= 0 ?
"A" :
"C");
305 else if(energyChan != 0) cellContent=3;
313 if(knownDeadFEBs.size()>0 &&
std::find(knownDeadFEBs.begin(), knownDeadFEBs.end(), febID.get_compact())!=knownDeadFEBs.end()) {
314 if(cellContent==0) cellContent=1;
317 if(knownErrorFEBs.size()>0 &&
std::find(knownErrorFEBs.begin(), knownErrorFEBs.end(), febID.get_compact())!=knownErrorFEBs.end())cellContent=1;
359 if(etaChan >= 0)
part+=
"A";
362 if(
part.find(
"FCal") != std::string::npos) coverageMap[cellContent][
part].push_back(
LArChanHelp(single_channel,i_ftslot,sampling,etaFCal,phiFCal));
363 else coverageMap[cellContent][
part].push_back(
LArChanHelp(single_channel,i_ftslot,sampling,etaChan,phiChan));
374 ref_the_coverageMap=coverageMap[chanStatusCodePair.first][
"EMBA"];
375 if(ref_the_coverageMap.get().size()!=0)
fill(
m_tools[
m_CoverageToolArrayEMBA.at(chanStatusCodePair.second)],mon_Channels,mon_ChanFtSlot,mon_Eta,mon_Phi,mon_isSampling0,mon_isSampling1,mon_isSampling2,mon_isSampling3);
377 ref_the_coverageMap=coverageMap[chanStatusCodePair.first][
"EMBC"];
378 if(ref_the_coverageMap.get().size()!=0)
fill(
m_tools[
m_CoverageToolArrayEMBC.at(chanStatusCodePair.second)],mon_Channels,mon_ChanFtSlot,mon_Eta,mon_Phi,mon_isSampling0,mon_isSampling1,mon_isSampling2,mon_isSampling3);
381 ref_the_coverageMap=coverageMap[chanStatusCodePair.first][
"EMECA"];
382 if(ref_the_coverageMap.get().size()!=0)
fill(
m_tools[
m_CoverageToolArrayEMECA.at(chanStatusCodePair.second)],mon_Channels,mon_ChanFtSlot,mon_Eta,mon_Phi,mon_isSampling0,mon_isSampling1,mon_isSampling2,mon_isSampling3);
385 ref_the_coverageMap=coverageMap[chanStatusCodePair.first][
"EMECC"];
386 if(ref_the_coverageMap.get().size()!=0)
fill(
m_tools[
m_CoverageToolArrayEMECC.at(chanStatusCodePair.second)],mon_Channels,mon_ChanFtSlot,mon_Eta,mon_Phi,mon_isSampling0,mon_isSampling1,mon_isSampling2,mon_isSampling3);
389 ref_the_coverageMap=coverageMap[chanStatusCodePair.first][
"HECA"];
390 if(ref_the_coverageMap.get().size()!=0)
fill(
m_tools[
m_CoverageToolArrayHECA.at(chanStatusCodePair.second)],mon_Channels,mon_ChanFtSlot,mon_Eta,mon_Phi,mon_isSampling0,mon_isSampling1,mon_isSampling2,mon_isSampling3);
393 ref_the_coverageMap=coverageMap[chanStatusCodePair.first][
"HECC"];
394 if(ref_the_coverageMap.get().size()!=0)
fill(
m_tools[
m_CoverageToolArrayHECC.at(chanStatusCodePair.second)],mon_Channels,mon_ChanFtSlot,mon_Eta,mon_Phi,mon_isSampling0,mon_isSampling1,mon_isSampling2,mon_isSampling3);
397 ref_the_coverageMap=coverageMap[chanStatusCodePair.first][
"FCalA"];
398 if(ref_the_coverageMap.get().size()!=0)
fill(
m_tools[
m_CoverageToolArrayFCalA.at(chanStatusCodePair.second)],mon_Channels,mon_ChanFtSlot,mon_Eta,mon_Phi,mon_isSampling0,mon_isSampling1,mon_isSampling2,mon_isSampling3);
401 ref_the_coverageMap=coverageMap[chanStatusCodePair.first][
"FCalC"];
402 if(ref_the_coverageMap.get().size()!=0)
fill(
m_tools[
m_CoverageToolArrayFCalC.at(chanStatusCodePair.second)],mon_Channels,mon_ChanFtSlot,mon_Eta,mon_Phi,mon_isSampling0,mon_isSampling1,mon_isSampling2,mon_isSampling3);
406 return StatusCode::SUCCESS;
420 LArBadChannel bc = bcCont->
status(onID);
423 if(bc.deadCalib())
flag = 1;
424 if(bc.lowNoiseHG()||bc.lowNoiseMG()||bc.lowNoiseLG())
flag = 2;
425 if(bc.distorted())
flag = 3;
426 if(bc.unstable())
flag = 4;
427 if(bc.sporadicBurstNoise())
flag = 5;
428 if(bc.highNoiseHG()|| bc.highNoiseMG() || bc.highNoiseLG())
flag = 6;
429 if(bc.deadReadout()||bc.deadPhys()||bc.almostDead()||bc.shortProblem())
flag = 7;