15 if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!=
"/")
16 prefixME_.append(
"/");
78 for (
int s=0;
s<15;
s++) {
139 uint32_t itsspigot =0;
140 uint32_t itshtrchan=0;
143 for (std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin();
144 eid != AllElIds.end();
150 if (!detid_.
null()) {
151 if (detid_.
det()!=4)
continue;
157 itsdcc =(uint32_t) eid->dccid();
158 itsspigot =(uint32_t) eid->spigot();
159 itshtrchan=(uint32_t) eid->htrChanId();
182 std::cout <<
"<HcalRawDataMonitor::setup> No DQMStore instance available. Bailing out."<<std::endl;
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))
599 printf(
"HcalRawDataMonitor::processEvent DQMStore not instantiated!\n");
613 if (fed.
size()<12)
continue;
618 edm::LogWarning(
"HcalMonitorModule::CalibTypeFilter") <<
"Unexpected Calibration type: "<< value <<
" in FED: "<<
i<<
" (should be 0-7). I am bailing out...";
641 if(!dccHeader)
return;
642 unsigned char* trailer_ptr = (
unsigned char*) (raw.
data()+raw.
size()-
sizeof(
uint64_t));
652 int dcc_fw = ( ((*dccfw)>>(6*8))&0x00000000000000FF );
657 int EvFragLength = (int) (*lastDataWord>>(4*8)) & 0x0000000000FFFFFF ;
666 unsigned int dccOrN = (
unsigned int) (dccHeader->
getOrbitNumber() & 0x0000001F);
670 bool CDFProbThisDCC =
false;
677 CDFProbThisDCC =
true;
688 CDFProbThisDCC =
true;
693 CDFProbThisDCC =
true;
698 CDFProbThisDCC =
true;
714 CDFProbThisDCC =
true;
719 CDFProbThisDCC =
true;
726 CDFProbThisDCC =
true;
729 if (!trailer.
check()) {
731 CDFProbThisDCC =
true;
733 if (CDFProbThisDCC) {
741 CDFProbThisDCC =
false;
754 char TTS_state = (char)trailer.
ttsBits();
757 if (TTS_state==L1AtimeTTS_state) ;
789 int nHTR32BitWords=0;
794 if (( nHTR32BitWords % 2) == 1) {
796 if ((*lastDataWord>>32) != 0x00000000){
809 const int fed3offset = 1 + (4*dcc_);
810 const int fed2offset = 1 + (3*dcc_);
819 int WholeErrorList=0;
824 const int spg3offset = 1 + (4*spigot);
832 if (WholeErrorList!=0) {
833 if ((WholeErrorList>>0)&0x01)
835 if (((WholeErrorList>>1)&0x01)!=0) {
839 if (((WholeErrorList>>2)&0x01)!=0) {
843 if (((WholeErrorList>>3)&0x01)!=0) {
847 if (((WholeErrorList>>4)&0x01)!=0) {
851 if (((WholeErrorList>>5)&0x01)!=0) {
855 if (((WholeErrorList>>6)&0x01)!=0) {
868 if (
debug_>0)
std::cout <<
"HTR Problem: Spigot Data Truncated"<<std::endl;
878 if (
debug_>0)
std::cout <<
"HTR Problem: Spigot Data Length too small"<<std::endl;
885 const int spg3offset = 1 + (4*spigot);
886 const int spg2offset = 1 + (3*spigot);
892 const unsigned short* HTRraw = htr.
getRawData();
904 edm::LogWarning(
"HcalMonitorModule::RawDataTas") <<
"Unexpected Raw Length: "<< HTRwdcount <<
" I am bailing out...";
913 if ( ! ((HTRwdcount != 8) ||
914 (HTRwdcount != 12 + NTP + NDAQ) ||
915 (HTRwdcount != 20 + NTP + NDAQ) )) {
918 if (
debug_>0)
std::cout <<
"HTR Problem: NTP+NDAQ size consistency check fails"<<std::endl;
923 if (HTRwdcount != 8) {
931 int paddingsize = ((NDAQ+NTP)%2);
932 if (( CM && ( (HTRwdcount-NDAQ-NTP-paddingsize) != 12) )
934 (!CM && ( (HTRwdcount-NDAQ-NTP-paddingsize) != 20) ) ) {
947 if (( (htrOrN == dccOrN ) &&
948 (htrBCN == (
unsigned int) dccBCN) )
954 if ( (htrEvtN == dccEvtNum) !=
967 int EvtNdiff = htrEvtN - dccEvtNum;
972 if (
debug_ == 1)
std::cout <<
"++++ Evt # out of sync, ref, this HTR: "<< dccEvtNum <<
" "<<htrEvtN <<std::endl;
976 int BCNdiff = htrBCN-dccBCN;
984 if (
debug_==1)
std::cout <<
"++++ BCN # out of sync, ref, this HTR: "<< dccBCN <<
" "<<htrBCN <<std::endl;
988 int OrNdiff = htrOrN-dccOrN;
994 if (
debug_==1)
std::cout <<
"++++ OrN # out of sync, ref, this HTR: "<< dccOrN <<
" "<<htrOrN <<std::endl;
997 bool htrUnSuppressed=(HTRraw[6]>>15 & 0x0001);
998 if (htrUnSuppressed) {
1000 int here=1+(HcalDCCHeader::SPIGOT_COUNT*(dcc_))+spigot;
1002 ((
double)
UScount[dcc_][spigot]));}
1026 != (errWord&0x00FF) ){
1029 if (
debug_>0)
std::cout <<
"DCC spigot summary error or HTR error word"<<std::endl;
1033 for(
int i=0;
i<16;
i++){
1034 int errbit = errWord&(0x01<<
i);
1036 if (
i==15) errbit = errbit - 0x8000;
1107 const short unsigned int* daq_first, *daq_last, *tp_first, *tp_last;
1111 htr.
dataPointers(&daq_first,&daq_last,&tp_first,&tp_last);
1122 int samplecounter=-1;
1129 for (qie_work=qie_begin; qie_work!=qie_end; qie_work++) {
1130 if (qie_work->
raw()==0xFFFF)
1133 if (( 1 + ( 3* (qie_work->
fiber()-1) ) + qie_work->
fiberChan() ) != htrchan) {
1136 chn2offset = (htrchan*3)+1;
1139 if (samplecounter !=-1) {
1141 if (((samplecounter != NTS) &&
1142 (samplecounter != 1) )
1150 if (
debug_)
std::cout <<
"mapChannelProblem: Wrong Digi Size"<<std::endl;
1154 lastcapid=qie_work->
capid();
1157 int hope = lastcapid +1;
1158 if (hope==4) hope = 0;
1159 if (qie_work->
capid() != hope){
1165 lastcapid=qie_work->
capid();
1168 if (!(qie_work->
dv())){
1172 if (qie_work->
er()) {
1181 if ((samplecounter != NTS) &&
1182 (samplecounter != 1) &&
1183 (samplecounter !=-1) ) {
1187 if (
debug_)
std::cout <<
"mapChannelProblem: Wrong Digi Size (last digi)"<<std::endl;
1190 const unsigned short* ptr_header=daq_first;
1191 const unsigned short* ptr_end=daq_last+1;
1192 int flavor, error_flags, capid0, channelid;
1198 while (ptr_header!=ptr_end) {
1199 if (*ptr_header==0xFFFF) {
1203 error_flags = capid0 = channelid = 0;
1211 int fiber = 1 + ((channelid & 0x1C) >> 2);
1212 int chan = channelid & 0x3;
1213 htrchan = ((fiber -1) * Nchan) + chan + 1;
1214 chn2offset = ((htrchan-1)*3)+1;
1218 if (error_flags & 2) {
1223 if (error_flags & 1) {
1317 snprintf(label, 32,
"Spgt %02d", spig);
1326 snprintf(label, 32,
"Ch %02d", ch+1);
1334 for (
int thfed=0; thfed<
NUMDCCS; thfed++) {
1335 snprintf(label, 32,
"%03d", thfed+700);
1342 if (axisType !=1 && axisType != 2)
return;
1344 mePlot -> setBinLabel(1,
"Overflow Warn",axisType);
1345 mePlot -> setBinLabel(2,
"Buffer Busy",axisType);
1346 mePlot -> setBinLabel(3,
"Empty Event",axisType);
1347 mePlot -> setBinLabel(4,
"Rejected L1A",axisType);
1348 mePlot -> setBinLabel(5,
"Invalid Stream",axisType);
1349 mePlot -> setBinLabel(6,
"Latency Warn",axisType);
1350 mePlot -> setBinLabel(7,
"OptDat Err",axisType);
1351 mePlot -> setBinLabel(8,
"Clock Err",axisType);
1352 mePlot -> setBinLabel(9,
"Bunch Err",axisType);
1353 mePlot -> setBinLabel(10,
"b9",axisType);
1354 mePlot -> setBinLabel(11,
"b10",axisType);
1355 mePlot -> setBinLabel(12,
"b11",axisType);
1356 mePlot -> setBinLabel(13,
"Test Mode",axisType);
1357 mePlot -> setBinLabel(14,
"Histo Mode",axisType);
1358 mePlot -> setBinLabel(15,
"Calib Trig",axisType);
1359 mePlot -> setBinLabel(16,
"Bit15 Err",axisType);
1381 else if (prtlvl == 2){
1384 printf(
"Crate, Slot:%3i %4.1f \n", cratenum,slotnum);
1388 else if (prtlvl == 3){
1391 printf(
"Crate, Slot:%3i %4.1f", cratenum,slotnum);
1476 mydepth = HDI.
depth();
1482 if (myeta>=0 && myeta<85 &&
1483 (myphi-1)>=0 && (myphi-1)<72 &&
1484 (mydepth-1)>=0 && (mydepth-1)<4){
1503 for (
int i=
hashup(dcc,spigot);
1510 mydepth = HDI.
depth();
1516 if (myeta>=0 && myeta<85 &&
1517 (myphi-1)>=0 && (myphi-1)<72 &&
1518 (mydepth-1)>=0 && (mydepth-1)<4){
1539 int i=
hashup(dcc,spigot,htrchan);
1544 mydepth = HDI.
depth();
1550 if (myeta>=0 && myeta<85 &&
1551 (myphi-1)>=0 && (myphi-1)<72 &&
1552 (mydepth-1)>=0 && (mydepth-1)<4){
MonitorElement * meCh_DataIntegrityFED04_
bool isHO(int etabin, int depth)
MonitorElement * meCh_DataIntegrityFED27_
T getParameter(std::string const &) const
float ChannSumm_DataIntegrityCheck_[TWO___FED][TWO__SPGT]
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
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
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 * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
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 * 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)
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_
HcalDetId hashedHcalDetId_[NUMDCCS *NUMSPIGS *HTRCHANMAX]
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
uint64_t problemcount[ETABINS][PHIBINS][DEPTHBINS]
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_
void beginRun(const edm::Run &run, const edm::EventSetup &c)
MonitorElement * meDataFlowInd_
MonitorElement * meCh_DataIntegrityFED14_
std::map< int, short >::iterator CDFReservedBits_it
LuminosityBlockNumber_t luminosityBlock() const
float LRBDataCorruptionIndicators_[THREE_FED][THREE_SPG]
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_
virtual void beginRun(const edm::Run &run, const edm::EventSetup &c)
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
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_
const T & max(const T &a, const T &b)
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_
MonitorElement * meChann_DataIntegrityCheck_[NUMDCCS]
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 * meOrNSynch_
void endRun(const edm::Run &run, const edm::EventSetup &c)
bool problemfound[ETABINS][PHIBINS][DEPTHBINS]
void label_ySpigots(MonitorElement *me_ptr, int ybins)
int fiber() const
get the fiber number
MonitorElement * meCh_DataIntegrityFED11_
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
MonitorElement * meCrate12HTRStatus_
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) ...
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * meDCCEventFormatError_
MonitorElement * meCh_DataIntegrityFED30_
MonitorElement * medccBCN_
MonitorElement * meCh_DataIntegrityFED12_
unsigned int getFib3OrbMsgBCN() const
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)
MonitorElement * meFib1OrbMsgBCN_
void HTRPrint(const HcalHTRData &htr, int prtlvl)
unsigned long long uint64_t
MonitorElement * meCrate11HTRStatus_
int capid() const
get the Capacitor id
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_
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_
float HalfHTRDataCorruptionIndicators_[THREE_FED][THREE_SPG]
MonitorElement * meCrate1HTRStatus_
unsigned int getExtHdr7() const
MonitorElement * meStatusWdCrate_
MonitorElement * meFib7OrbMsgBCN_
MonitorElement * ProblemsVsLB_HE
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)
uint64_t UScount[NUMDCCS][NUMSPIGS]
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_
float Chann_DataIntegrityCheck_[NUMDCCS][TWO_CHANN][TWO__SPGT]
MonitorElement * meEvFragSize2_
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
uint64_t uniqcounter[ETABINS][PHIBINS][DEPTHBINS]
MonitorElement * meHTRFWVersion_
MonitorElement * meFEDRawDataSizes_
MonitorElement * bookInt(const char *name)
Book int.
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
MonitorElement * meCh_DataIntegrityFED01_
MonitorElement * mefedEntries_
MonitorElement * meCh_DataIntegrityFED15_
float DataFlowInd_[TWO___FED][THREE_SPG]
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)
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
bool er() const
is the error bit set?
MonitorElement * meCh_DataIntegrityFED21_
MonitorElement * meFib6OrbMsgBCN_
void setCurrentFolder(const std::string &fullpath)
bool isHistogramEvent() const
Is this event a histogram event? (do not call standard unpack in this case!!!!!)
MonitorElement * meCh_DataIntegrityFED18_
MonitorElement * meCrate9HTRStatus_
MonitorElement * meCh_DataIntegrityFED22_