33 LogTrace(
"DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
34 <<
"[DTBlockedROChannelsTest]: Constructor";
48 LogTrace(
"DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
49 <<
"DataIntegrityTest: analyzed " <<
nupdates <<
" updates";
71 for (
int mapSlot=1; mapSlot!=13; ++mapSlot){
72 for (
int link=0; link!=72; ++link){
74 if (mapSlot==6)
continue;
75 if (crate==1370 && mapSlot>5)
continue;
76 if ((mapSlot==5 || mapSlot==11) && link>11)
continue;
82 int dduId =
theDDU(crate, mapSlot, link, tenDDU) ;
83 int ros =
theROS(mapSlot, link);
84 int rob =
theROB(mapSlot, link);
97 LogTrace(
"DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
98 <<
"[DTLinkBinsMap] FED: " << crate <<
"mapSlot: " << mapSlot <<
" Link: " << link
99 <<
" not in the mapping!" << endl;
109 for(
int ros = 1; ros != 13; ++ros) {
110 for(
int rob = 1; rob != 26; ++rob) {
114 if(!
mapping->
readOutToGeometry(dduId,ros,rob-1,0,2,wheel,station,sector,dummy,dummy,dummy) ||
115 !
mapping->
readOutToGeometry(dduId,ros,rob-1,0,16,wheel,station,sector,dummy,dummy,dummy)) {
123 LogTrace(
"DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
124 <<
"[DTRobBinsMap] FED: " << dduId <<
" ROS " << ros <<
" ROB: " << rob-1
125 <<
" not in the mapping!" << endl;
131 for(map<DTChamberId, DTRobBinsMap>::iterator chAndRobs =
chamberMap.begin();
133 chAndRobs->second.init(
false);
149 summaryHisto = ibooker.
book2D(
"ROChannelSummary",
"Summary Blocked RO Channels",12,1,13,5,-2,3);
154 stringstream namestream; namestream <<
"ROChannelSummary_W" <<
wheel;
155 stringstream titlestream; titlestream <<
"Blocked RO Channels (Wh " << wheel <<
")";
190 LogTrace(
"DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
191 <<
"[DTBlockedROChannelsTest]: End of LS " <<
nLumiSegs <<
". Client called in online mode, performing client operations";
203 LogTrace(
"DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
204 <<
"[DTBlockedROChannelsTest] endRun called. Client called in offline mode, performing operations.";
217 if(procEvt !=
nullptr) {
220 neventsPrev = procEvents;
238 for(map<DTChamberId, DTLinkBinsMap>::iterator chAndLinks =
chamberMapUros.begin();
242 int sectorForPlot = chId.
sector();
243 if(sectorForPlot == 13 || (sectorForPlot == 4 && chId.
station() ==4)) {
246 }
else if(sectorForPlot == 14 || (sectorForPlot == 10 && chId.
station() ==4)) {
252 double chPercent = (*chAndLinks).second.getChamberPercentage(igetter);
255 totalPerc += chPercent*scale*1./240.;
263 for(map<DTChamberId, DTRobBinsMap>::iterator chAndRobs =
chamberMap.begin();
267 int sectorForPlot = chId.
sector();
268 if(sectorForPlot == 13 || (sectorForPlot == 4 && chId.
station() ==4)) {
271 }
else if(sectorForPlot == 14 || (sectorForPlot == 10 && chId.
station() ==4)) {
277 double chPercent = (*chAndRobs).second.getChamberPercentage(igetter);
280 totalPerc += chPercent*scale*1./240.;
299 return mapping->
readOutToGeometry(dduId,ros,rob,2,2,wheel,station,sector,dummy,dummy,dummy);
311 stringstream mename; mename <<
"DT/00-DataIntegrity/FED" << fed <<
"/ROS" << ros
312 <<
"/FED" << fed <<
"_ROS" << ros <<
"_ROSError";
315 stringstream whname; whname <<
"DT/00-DataIntegrity/FED" << fed
316 <<
"/FED" << fed <<
"_ROSStatus";
365 LogWarning(
"DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
366 <<
"[DTRobBinsMap]***Error: ROB: " << robBin <<
" is not valid" << endl;
382 int nChangedROBs = 0;
391 for(map<int, int>::const_iterator robAndValue =
robsAndValues.begin();
393 if(
robChanged((*robAndValue).first)) nChangedROBs++;
395 return 1.-((double)nChangedROBs/(
double)
robsAndValues.size());
404 for(map<int, int>::const_iterator robAndValue =
robsAndValues.begin();
414 int wheel = (ddu - 770)%5 - 2;
417 urosHName =
"DT/00-DataIntegrity/Wheel" + to_string(wheel) +
"/ROS" + to_string(ros)
418 +
"/W" + to_string(wheel) +
"_ROS" + to_string(ros) +
"_ROSError";
445 LogWarning(
"DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
446 <<
"[DTLinkBinsMap]***Error: Link: " << linkBin <<
" is not valid" << endl;
461 int nChangedLinks = 0;
463 for(map<int, int>::const_iterator linkAndValue =
linksAndValues.begin();
465 if(
linkChanged((*linkAndValue).first)) nChangedLinks++;
474 for(map<int, int>::const_iterator linkAndValue =
linksAndValues.begin();
485 int ros =
theROS(slot,link);
507 if (ros > 6 && tenDDU && ddu < 775)
515 if (slot%6 == 5)
return link+1;
517 int ros = (link/24) + 3*(slot%6) - 2;
524 if (slot%6 == 5)
return 23;
527 if (rob < 15)
return rob;
528 if (rob == 15)
return 24;
LuminosityBlockID id() const
T getUntrackedParameter(std::string const &, T const &) const
int theROB(int slot, int link)
int64_t getIntValue() const
DTTimeEvolutionHisto * hSystFractionVsLS
std::map< int, int > linksAndValues
void accumulateValueTimeSlot(float value)
const MonitorElement * meuROS
std::map< DTChamberId, DTLinkBinsMap > chamberMapUros
bool linkChanged(int linkBin)
std::map< int, MonitorElement * > wheelHistos
void performClientDiagnostic(DQMStore::IGetter &igetter)
DQM Client operations.
int readOutToGeometry(int dduId, int rosId, int robId, int tdcId, int channelId, DTWireId &wireId) const
transform identifiers
void dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
DQM Client Diagnostic in online mode.
std::map< DTChamberId, DTRobBinsMap > chamberMap
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
MonitorElement * get(const std::string &path)
#define DEFINE_FWK_MODULE(type)
def setup(process, global_tag, zero_tesla=False)
int theROS(int slot, int link)
void fillChamberMap(DQMStore::IGetter &igetter, const edm::EventSetup &c)
const MonitorElement * meROS
void addRobBin(int robBin)
DTBlockedROChannelsTest(const edm::ParameterSet &ps)
Constructor.
void readNewValues(DQMStore::IGetter &igetter)
int getValueRobBin(int robBin) const
const MonitorElement * meDDU
void Reset()
reset ME (ie. contents, errors, etc)
void addLinkBin(int linkBin)
edm::ESHandle< DTReadOutMapping > mapping
int getValueLinkBin(int linkBin) const
std::map< int, int > robsAndValues
void readNewValues(DQMStore::IGetter &igetter)
void setCurrentFolder(const std::string &fullpath)
MonitorElement * book2D(Args &&...args)
LuminosityBlockNumber_t luminosityBlock() const
int theDDU(int crate, int slot, int link, bool tenDDU)
void updateTimeSlot(int ls, int nEventsInLS)
bool robChanged(int robBin)
double getBinContent(int binx) const
get content of bin (1-D)
int readOutToGeometry(int dduId, int rosNumber, int robNumber, int &wheel, int &station, int §or)
double getChamberPercentage(DQMStore::IGetter &)
void beginRun(const edm::Run &, const edm::EventSetup &) override
BeginRun.
int station() const
Return the station number.
int wheel() const
Return the wheel number.
MonitorElement * summaryHisto
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
~DTBlockedROChannelsTest() override
Destructor.
double getChamberPercentage(DQMStore::IGetter &)