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";
548 if (
debug_>1)
std::cout <<
"\t<HcalRawDataMonitor::analyze> Processing good event! event # = "<<
ievt_<<std::endl;
558 if (ieta==-9999)
continue;
584 if (d==1 && (
abs(ieta)==33 ||
abs(ieta)==34))
586 else if (d==2 && (
abs(ieta)==35 ||
abs(ieta)==36))
610 if (fed.
size()<12)
continue;
630 if(!dccHeader)
return;
631 unsigned char* trailer_ptr = (
unsigned char*) (raw.
data()+raw.
size()-
sizeof(
uint64_t));
641 int dcc_fw = ( ((*dccfw)>>(6*8))&0x00000000000000FF );
646 int EvFragLength = (int) (*lastDataWord>>(4*8)) & 0x0000000000FFFFFF ;
655 unsigned int dccOrN = (
unsigned int) (dccHeader->
getOrbitNumber() & 0x0000001F);
659 bool CDFProbThisDCC =
false;
666 CDFProbThisDCC =
true;
677 CDFProbThisDCC =
true;
682 CDFProbThisDCC =
true;
687 CDFProbThisDCC =
true;
703 CDFProbThisDCC =
true;
708 CDFProbThisDCC =
true;
715 CDFProbThisDCC =
true;
718 if (!trailer.
check()) {
720 CDFProbThisDCC =
true;
722 if (CDFProbThisDCC) {
730 CDFProbThisDCC =
false;
746 if (TTS_state==L1AtimeTTS_state) ;
778 int nHTR32BitWords=0;
783 if (( nHTR32BitWords % 2) == 1) {
785 if ((*lastDataWord>>32) != 0x00000000){
798 const int fed3offset = 1 + (4*dcc_);
799 const int fed2offset = 1 + (3*dcc_);
808 int WholeErrorList=0;
813 const int spg3offset = 1 + (4*spigot);
821 if (WholeErrorList!=0) {
822 if ((WholeErrorList>>0)&0x01)
824 if (((WholeErrorList>>1)&0x01)!=0) {
828 if (((WholeErrorList>>2)&0x01)!=0) {
832 if (((WholeErrorList>>3)&0x01)!=0) {
836 if (((WholeErrorList>>4)&0x01)!=0) {
840 if (((WholeErrorList>>5)&0x01)!=0) {
844 if (((WholeErrorList>>6)&0x01)!=0) {
857 if (
debug_>0)
std::cout <<
"HTR Problem: Spigot Data Truncated"<<std::endl;
867 if (
debug_>0)
std::cout <<
"HTR Problem: Spigot Data Length too small"<<std::endl;
874 const int spg3offset = 1 + (4*spigot);
875 const int spg2offset = 1 + (3*spigot);
881 const unsigned short* HTRraw = htr.
getRawData();
897 if ( ! ((HTRwdcount != 8) ||
898 (HTRwdcount != 12 + NTP + NDAQ) ||
899 (HTRwdcount != 20 + NTP + NDAQ) )) {
902 if (
debug_>0)
std::cout <<
"HTR Problem: NTP+NDAQ size consistency check fails"<<std::endl;
907 if (HTRwdcount != 8) {
915 int paddingsize = ((NDAQ+NTP)%2);
916 if (( CM && ( (HTRwdcount-NDAQ-NTP-paddingsize) != 12) )
918 (!CM && ( (HTRwdcount-NDAQ-NTP-paddingsize) != 20) ) ) {
931 if (( (htrOrN == dccOrN ) &&
932 (htrBCN == (
unsigned int) dccBCN) )
938 if ( (htrEvtN == dccEvtNum) !=
951 int EvtNdiff = htrEvtN - dccEvtNum;
956 if (
debug_ == 1)
std::cout <<
"++++ Evt # out of sync, ref, this HTR: "<< dccEvtNum <<
" "<<htrEvtN <<std::endl;
960 int BCNdiff = htrBCN-dccBCN;
968 if (
debug_==1)
std::cout <<
"++++ BCN # out of sync, ref, this HTR: "<< dccBCN <<
" "<<htrBCN <<std::endl;
972 int OrNdiff = htrOrN-dccOrN;
978 if (
debug_==1)
std::cout <<
"++++ OrN # out of sync, ref, this HTR: "<< dccOrN <<
" "<<htrOrN <<std::endl;
981 bool htrUnSuppressed=(HTRraw[6]>>15 & 0x0001);
982 if (htrUnSuppressed) {
984 int here=1+(HcalDCCHeader::SPIGOT_COUNT*(dcc_))+spigot;
986 ((
double)
UScount[dcc_][spigot]));}
1010 != (errWord&0x00FF) ){
1013 if (
debug_>0)
std::cout <<
"DCC spigot summary error or HTR error word"<<std::endl;
1017 for(
int i=0;
i<16;
i++){
1018 int errbit = errWord&(0x01<<
i);
1020 if (
i==15) errbit = errbit - 0x8000;
1091 const short unsigned int* daq_first, *daq_last, *tp_first, *tp_last;
1095 htr.
dataPointers(&daq_first,&daq_last,&tp_first,&tp_last);
1106 int samplecounter=-1;
1113 for (qie_work=qie_begin; qie_work!=qie_end; qie_work++) {
1114 if (qie_work->
raw()==0xFFFF)
1117 if (( 1 + ( 3* (qie_work->
fiber()-1) ) + qie_work->
fiberChan() ) != htrchan) {
1120 chn2offset = (htrchan*3)+1;
1123 if (samplecounter !=-1) {
1125 if (((samplecounter != NTS) &&
1126 (samplecounter != 1) )
1134 if (
debug_)
std::cout <<
"mapChannelProblem: Wrong Digi Size"<<std::endl;
1138 lastcapid=qie_work->
capid();
1141 int hope = lastcapid +1;
1142 if (hope==4) hope = 0;
1143 if (qie_work->
capid() != hope){
1149 lastcapid=qie_work->
capid();
1152 if (!(qie_work->
dv())){
1156 if (qie_work->
er()) {
1165 if ((samplecounter != NTS) &&
1166 (samplecounter != 1) &&
1167 (samplecounter !=-1) ) {
1171 if (
debug_)
std::cout <<
"mapChannelProblem: Wrong Digi Size (last digi)"<<std::endl;
1174 const unsigned short* ptr_header=daq_first;
1175 const unsigned short* ptr_end=daq_last+1;
1176 int flavor, error_flags, capid0, channelid;
1182 while (ptr_header!=ptr_end) {
1183 if (*ptr_header==0xFFFF) {
1187 error_flags = capid0 = channelid = 0;
1195 int fiber = 1 + ((channelid & 0x1C) >> 2);
1196 int chan = channelid & 0x3;
1197 htrchan = ((fiber -1) * Nchan) + chan + 1;
1198 chn2offset = ((htrchan-1)*3)+1;
1202 if (error_flags & 2) {
1207 if (error_flags & 1) {
1301 snprintf(label, 32,
"Spgt %02d", spig);
1310 snprintf(label, 32,
"Ch %02d", ch+1);
1318 for (
int thfed=0; thfed<
NUMDCCS; thfed++) {
1319 snprintf(label, 32,
"%03d", thfed+700);
1326 if (axisType !=1 && axisType != 2)
return;
1328 mePlot -> setBinLabel(1,
"Overflow Warn",axisType);
1329 mePlot -> setBinLabel(2,
"Buffer Busy",axisType);
1330 mePlot -> setBinLabel(3,
"Empty Event",axisType);
1331 mePlot -> setBinLabel(4,
"Rejected L1A",axisType);
1332 mePlot -> setBinLabel(5,
"Invalid Stream",axisType);
1333 mePlot -> setBinLabel(6,
"Latency Warn",axisType);
1334 mePlot -> setBinLabel(7,
"OptDat Err",axisType);
1335 mePlot -> setBinLabel(8,
"Clock Err",axisType);
1336 mePlot -> setBinLabel(9,
"Bunch Err",axisType);
1337 mePlot -> setBinLabel(10,
"b9",axisType);
1338 mePlot -> setBinLabel(11,
"b10",axisType);
1339 mePlot -> setBinLabel(12,
"b11",axisType);
1340 mePlot -> setBinLabel(13,
"Test Mode",axisType);
1341 mePlot -> setBinLabel(14,
"Histo Mode",axisType);
1342 mePlot -> setBinLabel(15,
"Calib Trig",axisType);
1343 mePlot -> setBinLabel(16,
"Bit15 Err",axisType);
1365 else if (prtlvl == 2){
1368 printf(
"Crate, Slot:%3i %4.1f \n", cratenum,slotnum);
1372 else if (prtlvl == 3){
1375 printf(
"Crate, Slot:%3i %4.1f", cratenum,slotnum);
1460 mydepth = HDI.
depth();
1466 if (myeta>=0 && myeta<85 &&
1467 (myphi-1)>=0 && (myphi-1)<72 &&
1468 (mydepth-1)>=0 && (mydepth-1)<4){
1487 for (
int i=
hashup(dcc,spigot);
1494 mydepth = HDI.
depth();
1500 if (myeta>=0 && myeta<85 &&
1501 (myphi-1)>=0 && (myphi-1)<72 &&
1502 (mydepth-1)>=0 && (mydepth-1)<4){
1523 int i=
hashup(dcc,spigot,htrchan);
1528 mydepth = HDI.
depth();
1534 if (myeta>=0 && myeta<85 &&
1535 (myphi-1)>=0 && (myphi-1)<72 &&
1536 (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_