15 if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!=
"/")
16 prefixME_.append(
"/");
82 for (
int s=0;
s<15;
s++) {
143 uint32_t itsspigot =0;
144 uint32_t itshtrchan=0;
147 for (std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin();
148 eid != AllElIds.end();
154 if (!detid_.
null()) {
155 if (detid_.
det()!=4)
continue;
161 itsdcc =(uint32_t) eid->dccid();
162 itsspigot =(uint32_t) eid->spigot();
163 itshtrchan=(uint32_t) eid->htrChanId();
187 std::cout <<
"<HcalRawDataMonitor::beginRun> Setting up histograms"<<std::endl;
191 "Total HCAL RAW Problems vs lumi section",
195 "Total HB RAW Problems vs lumi section",
198 "Total HE RAW Problems vs lumi section",
201 "Total HO RAW Problems vs lumi section",
204 "Total HF RAW Problems vs lumi section",
207 "Total HBHEHF RAW Problems vs lumi section",
235 type =
"01 Common Data Format violations";
248 type =
"02 DCC Event Format violation";
258 type =
"04 HTR BCN when OrN Diff";
263 type =
"03 OrN NonZero Difference HTR - DCC";
267 type =
"03 OrN Inconsistent - HTR vs DCC";
272 type =
"05 BCN NonZero Difference HTR - DCC";
276 type =
"05 BCN Inconsistent - HTR vs DCC";
281 type =
"06 EvN NonZero Difference HTR - DCC";
285 type =
"06 EvN Inconsistent - HTR vs DCC";
295 type=
"07 LRB Data Corruption Indicators";
307 type=
"08 Half-HTR Data Corruption Indicators";
318 type =
"09 Channel Integrity Summarized by Spigot";
328 snprintf(label, 256,
"FED %03d Channel Integrity",
f+700);
337 type=
"DCC Event Counts";
340 type =
"BCN from DCCs";
345 type =
"BCN from HTRs";
350 type =
"DCC Data Block Size Distribution";
355 type =
"DCC Data Block Size Profile";
357 type =
"DCC Data Block Size Each FED";
367 type =
"01 Data Flow Indicators";
376 type =
"DCC Firmware Version";
380 type =
"HTR Status Word HBHE";
384 type =
"HTR Status Word HF";
388 type =
"HTR Status Word HO";
393 type =
"HTR Status Word by Crate";
398 type =
"Unpacking - HcalHTRData check failures";
403 type =
"HTR Fiber Orbit Message BCN";
407 type =
"HTR Status Word - Crate 0";
412 type =
"HTR Status Word - Crate 1";
417 type =
"HTR Status Word - Crate 2";
422 type =
"HTR Status Word - Crate 3";
427 type =
"HTR Status Word - Crate 4";
432 type =
"HTR Status Word - Crate 5";
437 type =
"HTR Status Word - Crate 6";
442 type =
"HTR Status Word - Crate 7";
447 type =
"HTR Status Word - Crate 9";
452 type =
"HTR Status Word - Crate 10";
457 type =
"HTR Status Word - Crate 11";
462 type =
"HTR Status Word - Crate 12";
467 type =
"HTR Status Word - Crate 13";
472 type =
"HTR Status Word - Crate 14";
477 type =
"HTR Status Word - Crate 15";
482 type =
"HTR Status Word - Crate 17";
487 type =
"HTR UnSuppressed Event Fractions";
490 snprintf(label, 256,
"FED 7%02d",
f);
493 snprintf(label, 256,
"sp%02d",
s);
497 type =
"HTR Firmware Version";
504 type =
"HTR Fiber 1 Orbit Message BCNs";
506 type =
"HTR Fiber 2 Orbit Message BCNs";
508 type =
"HTR Fiber 3 Orbit Message BCNs";
510 type =
"HTR Fiber 4 Orbit Message BCNs";
512 type =
"HTR Fiber 5 Orbit Message BCNs";
514 type =
"HTR Fiber 6 Orbit Message BCNs";
516 type =
"HTR Fiber 7 Orbit Message BCNs";
518 type =
"HTR Fiber 8 Orbit Message BCNs";
546 if (
debug_>1)
std::cout <<
"\t<HcalRawDataMonitor::analyze> Processing good event! event # = "<<
ievt_<<std::endl;
556 if (ieta==-9999)
continue;
582 if (d==1 && (
abs(ieta)==33 ||
abs(ieta)==34))
584 else if (d==2 && (
abs(ieta)==35 ||
abs(ieta)==36))
608 if (fed.
size()<12)
continue;
628 if(!dccHeader)
return;
629 unsigned char* trailer_ptr = (
unsigned char*) (raw.
data()+raw.
size()-
sizeof(
uint64_t));
639 int dcc_fw = ( ((*dccfw)>>(6*8))&0x00000000000000FF );
644 int EvFragLength = (int) (*lastDataWord>>(4*8)) & 0x0000000000FFFFFF ;
653 unsigned int dccOrN = (
unsigned int) (dccHeader->
getOrbitNumber() & 0x0000001F);
657 bool CDFProbThisDCC =
false;
664 CDFProbThisDCC =
true;
675 CDFProbThisDCC =
true;
680 CDFProbThisDCC =
true;
685 CDFProbThisDCC =
true;
701 CDFProbThisDCC =
true;
706 CDFProbThisDCC =
true;
713 CDFProbThisDCC =
true;
716 if (!trailer.
check()) {
718 CDFProbThisDCC =
true;
720 if (CDFProbThisDCC) {
728 CDFProbThisDCC =
false;
744 if (TTS_state==L1AtimeTTS_state) ;
776 int nHTR32BitWords=0;
781 if (( nHTR32BitWords % 2) == 1) {
783 if ((*lastDataWord>>32) != 0x00000000){
796 const int fed3offset = 1 + (4*dcc_);
797 const int fed2offset = 1 + (3*dcc_);
806 int WholeErrorList=0;
811 const int spg3offset = 1 + (4*spigot);
819 if (WholeErrorList!=0) {
820 if ((WholeErrorList>>0)&0x01)
822 if (((WholeErrorList>>1)&0x01)!=0) {
826 if (((WholeErrorList>>2)&0x01)!=0) {
830 if (((WholeErrorList>>3)&0x01)!=0) {
834 if (((WholeErrorList>>4)&0x01)!=0) {
838 if (((WholeErrorList>>5)&0x01)!=0) {
842 if (((WholeErrorList>>6)&0x01)!=0) {
855 if (
debug_>0)
std::cout <<
"HTR Problem: Spigot Data Truncated"<<std::endl;
865 if (
debug_>0)
std::cout <<
"HTR Problem: Spigot Data Length too small"<<std::endl;
872 const int spg3offset = 1 + (4*spigot);
873 const int spg2offset = 1 + (3*spigot);
879 const unsigned short* HTRraw = htr.
getRawData();
895 if ( ! ((HTRwdcount != 8) ||
896 (HTRwdcount != 12 + NTP + NDAQ) ||
897 (HTRwdcount != 20 + NTP + NDAQ) )) {
900 if (
debug_>0)
std::cout <<
"HTR Problem: NTP+NDAQ size consistency check fails"<<std::endl;
905 if (HTRwdcount != 8) {
913 int paddingsize = ((NDAQ+NTP)%2);
914 if (( CM && ( (HTRwdcount-NDAQ-NTP-paddingsize) != 12) )
916 (!CM && ( (HTRwdcount-NDAQ-NTP-paddingsize) != 20) ) ) {
929 if (( (htrOrN == dccOrN ) &&
930 (htrBCN == (
unsigned int) dccBCN) )
936 if ( (htrEvtN == dccEvtNum) !=
949 int EvtNdiff = htrEvtN - dccEvtNum;
954 if (
debug_ == 1)
std::cout <<
"++++ Evt # out of sync, ref, this HTR: "<< dccEvtNum <<
" "<<htrEvtN <<std::endl;
958 int BCNdiff = htrBCN-dccBCN;
966 if (
debug_==1)
std::cout <<
"++++ BCN # out of sync, ref, this HTR: "<< dccBCN <<
" "<<htrBCN <<std::endl;
970 int OrNdiff = htrOrN-dccOrN;
976 if (
debug_==1)
std::cout <<
"++++ OrN # out of sync, ref, this HTR: "<< dccOrN <<
" "<<htrOrN <<std::endl;
979 bool htrUnSuppressed=(HTRraw[6]>>15 & 0x0001);
980 if (htrUnSuppressed) {
982 int here=1+(HcalDCCHeader::SPIGOT_COUNT*(dcc_))+spigot;
984 ((
double)
UScount[dcc_][spigot]));}
1008 != (errWord&0x00FF) ){
1011 if (
debug_>0)
std::cout <<
"DCC spigot summary error or HTR error word"<<std::endl;
1015 for(
int i=0;
i<16;
i++){
1016 int errbit = errWord&(0x01<<
i);
1018 if (
i==15) errbit = errbit - 0x8000;
1089 const short unsigned int* daq_first, *daq_last, *tp_first, *tp_last;
1093 htr.
dataPointers(&daq_first,&daq_last,&tp_first,&tp_last);
1104 int samplecounter=-1;
1111 for (qie_work=qie_begin; qie_work!=qie_end; qie_work++) {
1112 if (qie_work->
raw()==0xFFFF)
1115 if (( 1 + ( 3* (qie_work->
fiber()-1) ) + qie_work->
fiberChan() ) != htrchan) {
1118 chn2offset = (htrchan*3)+1;
1121 if (samplecounter !=-1) {
1123 if (((samplecounter != NTS) &&
1124 (samplecounter != 1) )
1132 if (
debug_)
std::cout <<
"mapChannelProblem: Wrong Digi Size"<<std::endl;
1136 lastcapid=qie_work->
capid();
1139 int hope = lastcapid +1;
1140 if (hope==4) hope = 0;
1141 if (qie_work->
capid() != hope){
1147 lastcapid=qie_work->
capid();
1150 if (!(qie_work->
dv())){
1154 if (qie_work->
er()) {
1163 if ((samplecounter != NTS) &&
1164 (samplecounter != 1) &&
1165 (samplecounter !=-1) ) {
1169 if (
debug_)
std::cout <<
"mapChannelProblem: Wrong Digi Size (last digi)"<<std::endl;
1172 const unsigned short* ptr_header=daq_first;
1173 const unsigned short* ptr_end=daq_last+1;
1174 int flavor, error_flags, capid0, channelid;
1180 while (ptr_header!=ptr_end) {
1181 if (*ptr_header==0xFFFF) {
1185 error_flags = capid0 = channelid = 0;
1193 int fiber = 1 + ((channelid & 0x1C) >> 2);
1194 int chan = channelid & 0x3;
1195 htrchan = ((fiber -1) * Nchan) + chan + 1;
1196 chn2offset = ((htrchan-1)*3)+1;
1200 if (error_flags & 2) {
1205 if (error_flags & 1) {
1299 snprintf(label, 32,
"Spgt %02d", spig);
1308 snprintf(label, 32,
"Ch %02d", ch+1);
1316 for (
int thfed=0; thfed<
NUMDCCS; thfed++) {
1317 snprintf(label, 32,
"%03d", thfed+700);
1324 if (axisType !=1 && axisType != 2)
return;
1326 mePlot -> setBinLabel(1,
"Overflow Warn",axisType);
1327 mePlot -> setBinLabel(2,
"Buffer Busy",axisType);
1328 mePlot -> setBinLabel(3,
"Empty Event",axisType);
1329 mePlot -> setBinLabel(4,
"Rejected L1A",axisType);
1330 mePlot -> setBinLabel(5,
"Invalid Stream",axisType);
1331 mePlot -> setBinLabel(6,
"Latency Warn",axisType);
1332 mePlot -> setBinLabel(7,
"OptDat Err",axisType);
1333 mePlot -> setBinLabel(8,
"Clock Err",axisType);
1334 mePlot -> setBinLabel(9,
"Bunch Err",axisType);
1335 mePlot -> setBinLabel(10,
"b9",axisType);
1336 mePlot -> setBinLabel(11,
"b10",axisType);
1337 mePlot -> setBinLabel(12,
"b11",axisType);
1338 mePlot -> setBinLabel(13,
"Test Mode",axisType);
1339 mePlot -> setBinLabel(14,
"Histo Mode",axisType);
1340 mePlot -> setBinLabel(15,
"Calib Trig",axisType);
1341 mePlot -> setBinLabel(16,
"Bit15 Err",axisType);
1363 else if (prtlvl == 2){
1366 printf(
"Crate, Slot:%3i %4.1f \n", cratenum,slotnum);
1370 else if (prtlvl == 3){
1373 printf(
"Crate, Slot:%3i %4.1f", cratenum,slotnum);
1458 mydepth = HDI.
depth();
1464 if (myeta>=0 && myeta<85 &&
1465 (myphi-1)>=0 && (myphi-1)<72 &&
1466 (mydepth-1)>=0 && (mydepth-1)<4){
1485 for (
int i=
hashup(dcc,spigot);
1492 mydepth = HDI.
depth();
1498 if (myeta>=0 && myeta<85 &&
1499 (myphi-1)>=0 && (myphi-1)<72 &&
1500 (mydepth-1)>=0 && (mydepth-1)<4){
1521 int i=
hashup(dcc,spigot,htrchan);
1526 mydepth = HDI.
depth();
1532 if (myeta>=0 && myeta<85 &&
1533 (myphi-1)>=0 && (myphi-1)<72 &&
1534 (mydepth-1)>=0 && (mydepth-1)<4){
MonitorElement * meCh_DataIntegrityFED04_
bool isHO(int etabin, int depth)
void setup(DQMStore::IBooker &)
MonitorElement * meCh_DataIntegrityFED27_
unsigned int getFib6OrbMsgBCN() const
static const HcalDetId Undefined
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meUSFractSpigs_
MonitorElement * meCh_DataIntegrityFED23_
bool LumiInOrder(int lumisec)
MonitorElement * meCDFErrorFound_
int getNDD() const
Get the number of daq data samples per channel when not zero-suppressed.
unsigned int getFib1OrbMsgBCN() const
Get the BCN of the Fiber Orbit Messages.
MonitorElement * meCrate7HTRStatus_
void label_xFEDs(MonitorElement *me_ptr, int xbins)
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * meCrate4HTRStatus_
MonitorElement * ProblemsCurrentLB
float HalfHTRDataCorruptionIndicators_[(1+((3+1)*32))][(1+((3+1)*15))]
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
MonitorElement * meCh_DataIntegrityFED25_
MonitorElement * meCh_DataIntegrityFED13_
std::vector< HcalElectronicsId > allElectronicsIdPrecision() const
void whosebad(int subdet)
uint16_t raw() const
get the raw word
bool problemfound[85][72][4]
HcalSubdetector subdet() const
get the subdetector
bool check() const
Check for a good event Requires a minimum length, matching wordcount and length, not an empty event...
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * meEvtNumberSynch_
MonitorElement * meCrate3HTRStatus_
unsigned int htrTopBottom() const
HcalElectronicsId-style HTR top/bottom (1=top/0=bottom)
void mapDCCproblem(int dcc)
MonitorElement * meCh_DataIntegrityFED02_
MonitorElement * meCh_DataIntegrityFED05_
MonitorElement * meFib5OrbMsgBCN_
MonitorElement * bookProfile(Args &&...args)
float ChannSumm_DataIntegrityCheck_[(1+((2+1)*32))][(1+((2+1)*15))]
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * meCh_DataIntegrityFED09_
MonitorElement * ProblemsVsLB_HF
int fiberChan() const
get the fiber channel number
#define DEFINE_FWK_MODULE(type)
MonitorElement * meBCNCheck_
std::vector< int > AllowedCalibTypes_
MonitorElement * meCrate17HTRStatus_
MonitorElement * meChannSumm_DataIntegrityCheck_
void stashHDI(int thehash, HcalDetId thehcaldetid)
virtual void cleanup(void)
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
MonitorElement * bookInt(Args &&...args)
void processEvent(const FEDRawDataCollection &rawraw, const HcalUnpackerReport &report)
MonitorElement * meCrate13HTRStatus_
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
bool dv() const
is the Data Valid bit set?
edm::LuminosityBlockNumber_t luminosityBlock() const
std::map< int, short > CDFversionNumber_list
MonitorElement * meOrNCheck_
unsigned int getExtHdr6() const
unsigned int getFib8OrbMsgBCN() const
MonitorElement * meCrate2HTRStatus_
std::map< int, short > CDFReservedBits_list
void label_xChanns(MonitorElement *me_ptr, int xbins)
void update(void)
Mark the object updated.
MonitorElement * meBCNSynch_
bool isHE(int etabin, int depth)
static const int CHANNELS_PER_SPIGOT
static bool unpack_per_channel_header(unsigned short, int &flav, int &error_flags, int &capid0, int &channelid)
Unpack a per-channel header word (compact format)
MonitorElement * meCrate14HTRStatus_
MonitorElement * meCh_DataIntegrityFED03_
void analyze(const edm::Event &e, const edm::EventSetup &c)
unsigned int getOrbitNumber() const
Get the HTR orbit number.
void labelHTRBits(MonitorElement *mePlot, unsigned int axisType)
int getFormatVersion() const
Get the version number of this event.
size_t size() const
Lenght of the data buffer in bytes.
MonitorElement * meCrate15HTRStatus_
uint64_t problemcount[85][72][4]
MonitorElement * meDataFlowInd_
MonitorElement * meCh_DataIntegrityFED14_
std::map< int, short >::iterator CDFReservedBits_it
LuminosityBlockNumber_t luminosityBlock() const
bool isSiPM(int ieta, int iphi, int depth)
unsigned int htrSlot() const
HcalElectronicsId-style HTR slot.
int depth() const
get the tower depth
MonitorElement * meCrate6HTRStatus_
MonitorElement * meTevtHist_
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
edm::InputTag FEDRawDataCollection_
int CalcIeta(int subdet, int eta, int depth)
MonitorElement * meCh_DataIntegrityFED24_
std::map< int, short >::iterator DCCEvtFormat_it
edm::EDGetTokenT< FEDRawDataCollection > tok_raw_
static bool is_channel_header(unsigned short value)
check top bit to see if this is a compact format channel header word
bool IsAllowedCalibType()
MonitorElement * meCh_DataIntegrityFED06_
HcalDetId hashedHcalDetId_[32 *15 *24]
unsigned int getFib7OrbMsgBCN() const
MonitorElement * ProblemsVsLB_HBHEHF
const HcalElectronicsMap * readoutMap_
MonitorElement * ProblemsVsLB_HB
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * HTR_StatusWd_HO
MonitorElement * meCrate5HTRStatus_
void unpack(const FEDRawData &raw)
MonitorElement * meCrate0HTRStatus_
const int getRawLength() const
Get the length of the raw data.
int ieta() const
get the cell ieta
virtual void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
MonitorElement * book1D(Args &&...args)
Abs< T >::type abs(const T &t)
MonitorElement * meOrNSynch_
void endRun(const edm::Run &run, const edm::EventSetup &c)
void label_ySpigots(MonitorElement *me_ptr, int ybins)
int fiber() const
get the fiber number
MonitorElement * meCh_DataIntegrityFED11_
MonitorElement * meCrate12HTRStatus_
uint64_t uniqcounter[85][72][4]
std::map< int, short >::iterator CDFvers_it
MonitorElement * meCh_DataIntegrityFED17_
bool isHB(int etabin, int depth)
MonitorElement * meFibBCN_
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
MonitorElement * meDCCEventFormatError_
MonitorElement * meCh_DataIntegrityFED30_
MonitorElement * medccBCN_
MonitorElement * meCh_DataIntegrityFED12_
unsigned int getFib3OrbMsgBCN() const
float Chann_DataIntegrityCheck_[32][(1+((2+1)*24))][(1+((2+1)*15))]
MonitorElement * HTR_StatusWd_HBHE
MonitorElement * meCh_DataIntegrityFED10_
MonitorElement * meFib4OrbMsgBCN_
int ttsBits()
Current value of the Trigger Throttling System bitsAQ).
MonitorElement * meInvHTRData_
MonitorElement * meCh_DataIntegrityFED19_
int iphi() const
get the cell iphi
void mapHTRproblem(int dcc, int spigot)
MonitorElement * meEvtNCheck_
MonitorElement * meBCNwhenOrNDiff_
bool isHF(int etabin, int depth)
void setCurrentFolder(const std::string &fullpath)
MonitorElement * meFib1OrbMsgBCN_
void HTRPrint(const HcalHTRData &htr, int prtlvl)
unsigned long long uint64_t
MonitorElement * meCrate11HTRStatus_
int capid() const
get the Capacitor id
MonitorElement * book2D(Args &&...args)
MonitorElement * meFib8OrbMsgBCN_
unsigned int getFib5OrbMsgBCN() const
const unsigned short * getRawData() const
Get a pointer to the raw data.
int lenght()
The length of the event fragment counted in 64-bit words including header and trailer.
MonitorElement * meLRBDataCorruptionIndicators_
void dataPointers(const unsigned short **daq_first, const unsigned short **daq_last, const unsigned short **tp_first, const unsigned short **tp_last) const
Obtain the starting and ending pointers for external unpacking of the data.
MonitorElement * meCh_DataIntegrityFED08_
edm::EDGetTokenT< HcalUnpackerReport > tok_unpack_
unsigned int getErrorsWord() const
Get the errors word.
MonitorElement * meCh_DataIntegrityFED29_
MonitorElement * meCh_DataIntegrityFED00_
bool null() const
is this a null id ?
MonitorElement * meCh_DataIntegrityFED26_
MonitorElement * meCrate1HTRStatus_
unsigned int getExtHdr7() const
MonitorElement * meStatusWdCrate_
MonitorElement * meFib7OrbMsgBCN_
MonitorElement * ProblemsVsLB_HE
float LRBDataCorruptionIndicators_[(1+((3+1)*32))][(1+((3+1)*15))]
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
void mapChannproblem(int dcc, int spigot, int htrchan)
int CalcEtaBin(int subdet, int ieta, int depth)
unsigned int readoutVMECrateId() const
HcalElectronicsId-style VME crate number.
MonitorElement * meCh_DataIntegrityFED16_
unsigned int getFib4OrbMsgBCN() const
MonitorElement * meCh_DataIntegrityFED07_
double getBinContent(int binx) const
get content of bin (1-D)
MonitorElement * meEvFragSize_
MonitorElement * HTR_StatusWd_HF
MonitorElement * meCh_DataIntegrityFED28_
TProfile * getTProfile(void) const
unsigned int getBunchNumber() const
Get the HTR bunch number.
unsigned int getFib2OrbMsgBCN() const
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
MonitorElement * meFib2OrbMsgBCN_
MonitorElement * meEvFragSize2_
float DataFlowInd_[(1+((2+1)*32))][(1+((3+1)*15))]
MonitorElement * meDCCVersion_
MonitorElement * meCh_DataIntegrityFED20_
std::map< int, short > DCCEvtFormat_list
MonitorElement * ProblemsVsLB_HO
MonitorElement * meCrate10HTRStatus_
unsigned int getFirmwareRevision() const
Get the HTR firmware version.
MonitorElement * ProblemsVsLB
MonitorElement * meHTRFWVersion_
MonitorElement * meFEDRawDataSizes_
MonitorElement * meCh_DataIntegrityFED01_
MonitorElement * mefedEntries_
MonitorElement * meCh_DataIntegrityFED15_
Detector det() const
get the detector field from this detid
unsigned int getL1ANumber() const
Get the HTR event number.
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * meCh_DataIntegrityFED31_
HcalDetId HashToHDI(int thehash)
void Reset(void)
reset ME (ie. contents, errors, etc)
virtual void setup(DQMStore::IBooker &)
MonitorElement * meHalfHTRDataCorruptionIndicators_
int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1)
MonitorElement * meFib3OrbMsgBCN_
const DetId lookup(HcalElectronicsId fId) const
lookup the logical detid associated with the given electronics id
MonitorElement * meChann_DataIntegrityCheck_[32]
bool er() const
is the error bit set?
MonitorElement * meCh_DataIntegrityFED21_
MonitorElement * meFib6OrbMsgBCN_
bool isHistogramEvent() const
Is this event a histogram event? (do not call standard unpack in this case!!!!!)
MonitorElement * meCh_DataIntegrityFED18_
void bookHistograms(DQMStore::IBooker &ib, const edm::Run &run, const edm::EventSetup &c)
MonitorElement * meCrate9HTRStatus_
MonitorElement * meCh_DataIntegrityFED22_