CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
HcalRawDataMonitor Class Reference

#include <HcalRawDataMonitor.h>

Inheritance diagram for HcalRawDataMonitor:
HcalBaseDQMonitor edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

 HcalRawDataMonitor (const edm::ParameterSet &ps)
 
 HcalRawDataMonitor ()
 
 ~HcalRawDataMonitor ()
 
- Public Member Functions inherited from HcalBaseDQMonitor
 HcalBaseDQMonitor (const edm::ParameterSet &ps)
 
 HcalBaseDQMonitor ()
 
virtual ~HcalBaseDQMonitor ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndex indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 
void beginLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 
void beginRun (const edm::Run &run, const edm::EventSetup &c)
 
void endJob (void)
 
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 
void endRun (const edm::Run &run, const edm::EventSetup &c)
 
HcalDetId HashToHDI (int thehash)
 
int hashup (uint32_t d=0, uint32_t s=0, uint32_t c=1)
 
void mapChannproblem (int dcc, int spigot, int htrchan)
 
void mapDCCproblem (int dcc)
 
void mapHTRproblem (int dcc, int spigot)
 
void processEvent (const FEDRawDataCollection &rawraw, const HcalUnpackerReport &report)
 
void reset (void)
 
void setup (void)
 
void stashHDI (int thehash, HcalDetId thehcaldetid)
 
void unpack (const FEDRawData &raw)
 
void whosebad (int subdet)
 
- Protected Member Functions inherited from HcalBaseDQMonitor
virtual void beginJob ()
 
virtual void cleanup (void)
 
void getLogicalMap (const edm::EventSetup &c)
 
bool IsAllowedCalibType ()
 
bool LumiInOrder (int lumisec)
 
void SetupEtaPhiHists (EtaPhiHists &hh, std::string Name, std::string Units)
 
- Protected Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Protected Attributes

edm::InputTag digiLabel_
 
edm::InputTag FEDRawDataCollection_
 
uint64_t problemcount [ETABINS][PHIBINS][DEPTHBINS]
 
bool problemfound [ETABINS][PHIBINS][DEPTHBINS]
 
const HcalElectronicsMapreadoutMap_
 
uint64_t uniqcounter [ETABINS][PHIBINS][DEPTHBINS]
 
- Protected Attributes inherited from HcalBaseDQMonitor
std::vector< int > AllowedCalibTypes_
 
int badChannelStatusMask_
 
int currentLS
 
int currenttype_
 
DQMStoredbe_
 
int debug_
 
bool enableCleanup_
 
bool eventAllowed_
 
bool HBpresent_
 
bool HEpresent_
 
bool HFpresent_
 
bool HOpresent_
 
int ievt_
 
std::map< unsigned int, int > KnownBadCells_
 
int levt_
 
HcalLogicalMaplogicalMap_
 
bool makeDiagnostics_
 
MonitorElementmeIevt_
 
MonitorElementmeLevt_
 
bool mergeRuns_
 
MonitorElementmeTevt_
 
MonitorElementmeTevtHist_
 
bool needLogicalMap_
 
int NLumiBlocks_
 
bool Online_
 
std::string prefixME_
 
MonitorElementProblemsCurrentLB
 
MonitorElementProblemsVsLB
 
MonitorElementProblemsVsLB_HB
 
MonitorElementProblemsVsLB_HBHEHF
 
MonitorElementProblemsVsLB_HE
 
MonitorElementProblemsVsLB_HF
 
MonitorElementProblemsVsLB_HO
 
bool skipOutOfOrderLS_
 
std::string subdir_
 
int tevt_
 

Private Member Functions

void HTRPrint (const HcalHTRData &htr, int prtlvl)
 
void label_xChanns (MonitorElement *me_ptr, int xbins)
 
void label_xFEDs (MonitorElement *me_ptr, int xbins)
 
void label_ySpigots (MonitorElement *me_ptr, int ybins)
 
void labelHTRBits (MonitorElement *mePlot, unsigned int axisType)
 
void UpdateMEs (void)
 

Private Attributes

std::map< int, short >::iterator CDFReservedBits_it
 
std::map< int, short > CDFReservedBits_list
 
std::map< int, short >::iterator CDFvers_it
 
std::map< int, short > CDFversionNumber_list
 
float Chann_DataIntegrityCheck_ [NUMDCCS][TWO_CHANN][TWO__SPGT]
 
float ChannSumm_DataIntegrityCheck_ [TWO___FED][TWO__SPGT]
 
float DataFlowInd_ [TWO___FED][THREE_SPG]
 
std::map< int, short >::iterator DCCEvtFormat_it
 
std::map< int, short > DCCEvtFormat_list
 
bool excludeHORing2_
 
float HalfHTRDataCorruptionIndicators_ [THREE_FED][THREE_SPG]
 
HcalDetId hashedHcalDetId_ [NUMDCCS *NUMSPIGS *HTRCHANMAX]
 
MonitorElementHTR_StatusWd_HBHE
 
MonitorElementHTR_StatusWd_HF
 
MonitorElementHTR_StatusWd_HO
 
float LRBDataCorruptionIndicators_ [THREE_FED][THREE_SPG]
 
MonitorElementmeBCN_
 
MonitorElementmeBCNCheck_
 
MonitorElementmeBCNSynch_
 
MonitorElementmeBCNwhenOrNDiff_
 
MonitorElementmeCDFErrorFound_
 
MonitorElementmeCh_DataIntegrityFED00_
 
MonitorElementmeCh_DataIntegrityFED01_
 
MonitorElementmeCh_DataIntegrityFED02_
 
MonitorElementmeCh_DataIntegrityFED03_
 
MonitorElementmeCh_DataIntegrityFED04_
 
MonitorElementmeCh_DataIntegrityFED05_
 
MonitorElementmeCh_DataIntegrityFED06_
 
MonitorElementmeCh_DataIntegrityFED07_
 
MonitorElementmeCh_DataIntegrityFED08_
 
MonitorElementmeCh_DataIntegrityFED09_
 
MonitorElementmeCh_DataIntegrityFED10_
 
MonitorElementmeCh_DataIntegrityFED11_
 
MonitorElementmeCh_DataIntegrityFED12_
 
MonitorElementmeCh_DataIntegrityFED13_
 
MonitorElementmeCh_DataIntegrityFED14_
 
MonitorElementmeCh_DataIntegrityFED15_
 
MonitorElementmeCh_DataIntegrityFED16_
 
MonitorElementmeCh_DataIntegrityFED17_
 
MonitorElementmeCh_DataIntegrityFED18_
 
MonitorElementmeCh_DataIntegrityFED19_
 
MonitorElementmeCh_DataIntegrityFED20_
 
MonitorElementmeCh_DataIntegrityFED21_
 
MonitorElementmeCh_DataIntegrityFED22_
 
MonitorElementmeCh_DataIntegrityFED23_
 
MonitorElementmeCh_DataIntegrityFED24_
 
MonitorElementmeCh_DataIntegrityFED25_
 
MonitorElementmeCh_DataIntegrityFED26_
 
MonitorElementmeCh_DataIntegrityFED27_
 
MonitorElementmeCh_DataIntegrityFED28_
 
MonitorElementmeCh_DataIntegrityFED29_
 
MonitorElementmeCh_DataIntegrityFED30_
 
MonitorElementmeCh_DataIntegrityFED31_
 
MonitorElementmeChann_DataIntegrityCheck_ [NUMDCCS]
 
MonitorElementmeChannSumm_DataIntegrityCheck_
 
MonitorElementmeCrate0HTRStatus_
 
MonitorElementmeCrate10HTRStatus_
 
MonitorElementmeCrate11HTRStatus_
 
MonitorElementmeCrate12HTRStatus_
 
MonitorElementmeCrate13HTRStatus_
 
MonitorElementmeCrate14HTRStatus_
 
MonitorElementmeCrate15HTRStatus_
 
MonitorElementmeCrate17HTRStatus_
 
MonitorElementmeCrate1HTRStatus_
 
MonitorElementmeCrate2HTRStatus_
 
MonitorElementmeCrate3HTRStatus_
 
MonitorElementmeCrate4HTRStatus_
 
MonitorElementmeCrate5HTRStatus_
 
MonitorElementmeCrate6HTRStatus_
 
MonitorElementmeCrate7HTRStatus_
 
MonitorElementmeCrate9HTRStatus_
 
MonitorElementmeDataFlowInd_
 
MonitorElementmedccBCN_
 
MonitorElementmeDCCEventFormatError_
 
MonitorElementmeDCCVersion_
 
MonitorElementmeEvFragSize2_
 
MonitorElementmeEvFragSize_
 
MonitorElementmeEvtNCheck_
 
MonitorElementmeEvtNumberSynch_
 
MonitorElementmefedEntries_
 
MonitorElementmeFEDRawDataSizes_
 
MonitorElementmeFib1OrbMsgBCN_
 
MonitorElementmeFib2OrbMsgBCN_
 
MonitorElementmeFib3OrbMsgBCN_
 
MonitorElementmeFib4OrbMsgBCN_
 
MonitorElementmeFib5OrbMsgBCN_
 
MonitorElementmeFib6OrbMsgBCN_
 
MonitorElementmeFib7OrbMsgBCN_
 
MonitorElementmeFib8OrbMsgBCN_
 
MonitorElementmeFibBCN_
 
MonitorElementmeHalfHTRDataCorruptionIndicators_
 
MonitorElementmeHTRFWVersion_
 
MonitorElementmeInvHTRData_
 
MonitorElementmeLRBDataCorruptionIndicators_
 
MonitorElementmeOrNCheck_
 
MonitorElementmeOrNSynch_
 
MonitorElementmeStatusWdCrate_
 
MonitorElementmeUSFractSpigs_
 
int NumBadHB
 
int NumBadHE
 
int NumBadHF
 
int NumBadHFLUMI
 
int NumBadHO
 
int NumBadHO0
 
int NumBadHO12
 
uint64_t UScount [NUMDCCS][NUMSPIGS]
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Detailed Description

Date:
2012/06/21 13:40:22
Revision:
1.6
Author
J. St. John - Boston University

Definition at line 34 of file HcalRawDataMonitor.h.

Constructor & Destructor Documentation

HcalRawDataMonitor::HcalRawDataMonitor ( const edm::ParameterSet ps)

Definition at line 9 of file HcalRawDataMonitor.cc.

References HcalBaseDQMonitor::AllowedCalibTypes_, HcalBaseDQMonitor::debug_, digiLabel_, HcalBaseDQMonitor::enableCleanup_, excludeHORing2_, FEDRawDataCollection_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HcalBaseDQMonitor::makeDiagnostics_, meCh_DataIntegrityFED00_, meCh_DataIntegrityFED01_, meCh_DataIntegrityFED02_, meCh_DataIntegrityFED03_, meCh_DataIntegrityFED04_, meCh_DataIntegrityFED05_, meCh_DataIntegrityFED06_, meCh_DataIntegrityFED07_, meCh_DataIntegrityFED08_, meCh_DataIntegrityFED09_, meCh_DataIntegrityFED10_, meCh_DataIntegrityFED11_, meCh_DataIntegrityFED12_, meCh_DataIntegrityFED13_, meCh_DataIntegrityFED14_, meCh_DataIntegrityFED15_, meCh_DataIntegrityFED16_, meCh_DataIntegrityFED17_, meCh_DataIntegrityFED18_, meCh_DataIntegrityFED19_, meCh_DataIntegrityFED20_, meCh_DataIntegrityFED21_, meCh_DataIntegrityFED22_, meCh_DataIntegrityFED23_, meCh_DataIntegrityFED24_, meCh_DataIntegrityFED25_, meCh_DataIntegrityFED26_, meCh_DataIntegrityFED27_, meCh_DataIntegrityFED28_, meCh_DataIntegrityFED29_, meCh_DataIntegrityFED30_, meCh_DataIntegrityFED31_, meChann_DataIntegrityCheck_, HcalBaseDQMonitor::mergeRuns_, HcalBaseDQMonitor::NLumiBlocks_, HcalBaseDQMonitor::Online_, HcalBaseDQMonitor::prefixME_, reset(), HcalBaseDQMonitor::skipOutOfOrderLS_, AlCaHLTBitMon_QueryRunRegistry::string, and HcalBaseDQMonitor::subdir_.

9  {
10  Online_ = ps.getParameter<bool>("online");
11  mergeRuns_ = ps.getParameter<bool>("mergeRuns");
12  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup");
13  debug_ = ps.getUntrackedParameter<int>("debug",0);
14  prefixME_ = ps.getUntrackedParameter<std::string>("subSystemFolder", "Hcal/"); // Hcal
15  if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/")
16  prefixME_.append("/");
17  subdir_ = ps.getUntrackedParameter<std::string>("TaskFolder", "RawDataMonitor_Hcal/"); // RawDataMonitor_Hcal
18  if (subdir_.size()>0 && subdir_.substr(subdir_.size()-1,subdir_.size())!="/")
19  subdir_.append("/");
20  subdir_=prefixME_+subdir_;
21  AllowedCalibTypes_ = ps.getUntrackedParameter<std::vector<int> > ("AllowedCalibTypes");
22  skipOutOfOrderLS_ = ps.getUntrackedParameter<bool>("skipOutOfOrderLS",true);
23  NLumiBlocks_ = ps.getUntrackedParameter<int>("NLumiBlocks",-1);
24  makeDiagnostics_ = ps.getUntrackedParameter<bool>("makeDiagnostics",false);
25 
26  FEDRawDataCollection_ = ps.getUntrackedParameter<edm::InputTag>("FEDRawDataCollection");
28 
29  excludeHORing2_ = ps.getUntrackedParameter<bool>("excludeHORing2",false);
30 
31  //inputLabelReport_ = ps.getUntrackedParameter<edm::InputTag>("UnpackerReport");
32 
33  // Initialize an array of MonitorElements
35  meChann_DataIntegrityCheck_[1] =meCh_DataIntegrityFED01_;
36  meChann_DataIntegrityCheck_[2] =meCh_DataIntegrityFED02_;
37  meChann_DataIntegrityCheck_[3] =meCh_DataIntegrityFED03_;
38  meChann_DataIntegrityCheck_[4] =meCh_DataIntegrityFED04_;
39  meChann_DataIntegrityCheck_[5] =meCh_DataIntegrityFED05_;
40  meChann_DataIntegrityCheck_[6] =meCh_DataIntegrityFED06_;
41  meChann_DataIntegrityCheck_[7] =meCh_DataIntegrityFED07_;
42  meChann_DataIntegrityCheck_[8] =meCh_DataIntegrityFED08_;
43  meChann_DataIntegrityCheck_[9] =meCh_DataIntegrityFED09_;
44  meChann_DataIntegrityCheck_[10]=meCh_DataIntegrityFED10_;
45  meChann_DataIntegrityCheck_[11]=meCh_DataIntegrityFED11_;
46  meChann_DataIntegrityCheck_[12]=meCh_DataIntegrityFED12_;
47  meChann_DataIntegrityCheck_[13]=meCh_DataIntegrityFED13_;
48  meChann_DataIntegrityCheck_[14]=meCh_DataIntegrityFED14_;
49  meChann_DataIntegrityCheck_[15]=meCh_DataIntegrityFED15_;
50  meChann_DataIntegrityCheck_[16]=meCh_DataIntegrityFED16_;
51  meChann_DataIntegrityCheck_[17]=meCh_DataIntegrityFED17_;
52  meChann_DataIntegrityCheck_[18]=meCh_DataIntegrityFED18_;
53  meChann_DataIntegrityCheck_[19]=meCh_DataIntegrityFED19_;
54  meChann_DataIntegrityCheck_[20]=meCh_DataIntegrityFED20_;
55  meChann_DataIntegrityCheck_[21]=meCh_DataIntegrityFED21_;
56  meChann_DataIntegrityCheck_[22]=meCh_DataIntegrityFED22_;
57  meChann_DataIntegrityCheck_[23]=meCh_DataIntegrityFED23_;
58  meChann_DataIntegrityCheck_[24]=meCh_DataIntegrityFED24_;
59  meChann_DataIntegrityCheck_[25]=meCh_DataIntegrityFED25_;
60  meChann_DataIntegrityCheck_[26]=meCh_DataIntegrityFED26_;
61  meChann_DataIntegrityCheck_[27]=meCh_DataIntegrityFED27_;
62  meChann_DataIntegrityCheck_[28]=meCh_DataIntegrityFED28_;
63  meChann_DataIntegrityCheck_[29]=meCh_DataIntegrityFED29_;
64  meChann_DataIntegrityCheck_[30]=meCh_DataIntegrityFED30_;
65  meChann_DataIntegrityCheck_[31]=meCh_DataIntegrityFED31_;
66 
67  this->reset();
68 } // HcalRawDataMonitor::HcalRawDataMonitor()
MonitorElement * meCh_DataIntegrityFED04_
MonitorElement * meCh_DataIntegrityFED27_
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meCh_DataIntegrityFED23_
MonitorElement * meCh_DataIntegrityFED25_
MonitorElement * meCh_DataIntegrityFED13_
MonitorElement * meCh_DataIntegrityFED02_
MonitorElement * meCh_DataIntegrityFED05_
MonitorElement * meCh_DataIntegrityFED09_
std::vector< int > AllowedCalibTypes_
MonitorElement * meCh_DataIntegrityFED03_
MonitorElement * meCh_DataIntegrityFED14_
edm::InputTag FEDRawDataCollection_
MonitorElement * meCh_DataIntegrityFED24_
MonitorElement * meCh_DataIntegrityFED06_
MonitorElement * meChann_DataIntegrityCheck_[NUMDCCS]
MonitorElement * meCh_DataIntegrityFED11_
MonitorElement * meCh_DataIntegrityFED17_
MonitorElement * meCh_DataIntegrityFED30_
MonitorElement * meCh_DataIntegrityFED12_
MonitorElement * meCh_DataIntegrityFED10_
MonitorElement * meCh_DataIntegrityFED19_
MonitorElement * meCh_DataIntegrityFED08_
MonitorElement * meCh_DataIntegrityFED29_
MonitorElement * meCh_DataIntegrityFED00_
MonitorElement * meCh_DataIntegrityFED26_
MonitorElement * meCh_DataIntegrityFED16_
MonitorElement * meCh_DataIntegrityFED07_
MonitorElement * meCh_DataIntegrityFED28_
MonitorElement * meCh_DataIntegrityFED20_
MonitorElement * meCh_DataIntegrityFED01_
MonitorElement * meCh_DataIntegrityFED15_
MonitorElement * meCh_DataIntegrityFED31_
edm::InputTag digiLabel_
MonitorElement * meCh_DataIntegrityFED21_
MonitorElement * meCh_DataIntegrityFED18_
MonitorElement * meCh_DataIntegrityFED22_
HcalRawDataMonitor::HcalRawDataMonitor ( )
inline

Definition at line 38 of file HcalRawDataMonitor.h.

38 {};
HcalRawDataMonitor::~HcalRawDataMonitor ( )

Definition at line 71 of file HcalRawDataMonitor.cc.

71 {}

Member Function Documentation

void HcalRawDataMonitor::analyze ( const edm::Event e,
const edm::EventSetup c 
)
protectedvirtual

NumBadHE+= problemcount[eta][phi][d];

Reimplemented from HcalBaseDQMonitor.

Definition at line 524 of file HcalRawDataMonitor.cc.

References abs, HcalBaseDQMonitor::analyze(), HcalObjRepresent::CalcIeta(), gather_cfg::cout, HcalBaseDQMonitor::debug_, DEPTHBINS, digiLabel_, eta(), ETABINS, FEDRawDataCollection_, edm::Event::getByLabel(), HcalBarrel, HcalEmpty, HcalEndcap, HcalForward, HcalOuter, HcalBaseDQMonitor::ievt_, HcalBaseDQMonitor::IsAllowedCalibType(), isHB(), isHE(), isHF(), isHO(), HcalBaseDQMonitor::LumiInOrder(), edm::EventBase::luminosityBlock(), NumBadHB, NumBadHE, NumBadHF, NumBadHFLUMI, NumBadHO, NumBadHO0, NumBadHO12, phi, PHIBINS, problemcount, processEvent(), zeeHLT_cff::report, and uniqcounter.

524  {
525  if (!IsAllowedCalibType()) return;
526  if (LumiInOrder(e.luminosityBlock())==false) return;
527 
528  HcalBaseDQMonitor::analyze(e,s); // base class increments ievt_, etc. counters
529 
530  // try to get die Data
532  if (!(e.getByLabel(FEDRawDataCollection_,rawraw)))
533  // if (!(e.getByType(rawraw)))
534  {
535  edm::LogWarning("HcalRawDataMonitor")<<" raw data with label "<<FEDRawDataCollection_ <<" not available";
536  return;
537  }
539  if (!(e.getByLabel(digiLabel_,report)))
540  {
541  edm::LogWarning("HcalRawDataMonitor")<<" Unpacker Report "<<digiLabel_<<" not available";
542  return;
543  }
544 
545  // all objects grabbed; event is good
546  if (debug_>1) std::cout <<"\t<HcalRawDataMonitor::analyze> Processing good event! event # = "<<ievt_<<std::endl;
547 
548  // Raw Data collection was grabbed successfully; process the Event
549  processEvent(*rawraw, *report);
550 
551  //Loop over all cells, tallying problem counts before resetting
552  //Extract the subdetector region given the location
553  for (int d=0; d<DEPTHBINS; d++) {
554  for (int eta=0; eta<ETABINS; eta++) {
555  int ieta=CalcIeta(eta,d+1);
556  if (ieta==-9999) continue;
557  for (int phi=0; phi<PHIBINS; phi++){
558  if (problemcount[eta][phi][d]) {
559  // std::cout<<" "<<eta<<","<<phi<<","<<d<<" count:"<<problemcount[eta][phi][d]<<std::endl;
560  HcalSubdetector subdet=HcalEmpty;
561  if (isHB(eta,d+1))subdet=HcalBarrel;
562  else if (isHE(eta,d+1)) subdet=HcalEndcap;
563  else if (isHF(eta,d+1)) subdet=HcalForward;
564  else if (isHO(eta,d+1)) subdet=HcalOuter;
565  if (subdet!=HcalEmpty){
566  if (subdet==HcalBarrel) {if(uniqcounter[eta][phi][d]<1) NumBadHB+= problemcount[eta][phi][d]; uniqcounter[eta][phi][d]++; }
567  else if (subdet==HcalEndcap) {if(uniqcounter[eta][phi][d]<1) NumBadHE+= problemcount[eta][phi][d]; uniqcounter[eta][phi][d]++; }
569  else if (subdet==HcalOuter)
570  {
571  if(uniqcounter[eta][phi][d]<1)
572  NumBadHO += problemcount[eta][phi][d];
573  uniqcounter[eta][phi][d]++;
574  if (abs(ieta)<5) NumBadHO0+= problemcount[eta][phi][d];
575  else NumBadHO12+= problemcount[eta][phi][d];
576  }
577  else if (subdet==HcalForward)
578  {
579  if(uniqcounter[eta][phi][d]<1)
580  NumBadHF+= problemcount[eta][phi][d];
581  uniqcounter[eta][phi][d]++;
582  if (d==1 && (abs(ieta)==33 || abs(ieta)==34))
584  else if (d==2 && (abs(ieta)==35 || abs(ieta)==36))
586  }
587  }
588  problemcount[eta][phi][d]=0;
589  }
590  }
591  }
592  }
593 }
bool isHO(int etabin, int depth)
bool LumiInOrder(int lumisec)
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
void processEvent(const FEDRawDataCollection &rawraw, const HcalUnpackerReport &report)
#define abs(x)
Definition: mlp_lapack.h:159
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:59
bool isHE(int etabin, int depth)
uint64_t problemcount[ETABINS][PHIBINS][DEPTHBINS]
T eta() const
#define DEPTHBINS
tuple report
Definition: zeeHLT_cff.py:9
edm::InputTag FEDRawDataCollection_
int CalcIeta(int subdet, int eta, int depth)
HcalSubdetector
Definition: HcalAssistant.h:32
bool isHB(int etabin, int depth)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:361
bool isHF(int etabin, int depth)
#define ETABINS
#define PHIBINS
tuple cout
Definition: gather_cfg.py:121
uint64_t uniqcounter[ETABINS][PHIBINS][DEPTHBINS]
edm::InputTag digiLabel_
Definition: DDAxes.h:10
void HcalRawDataMonitor::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
)
protectedvirtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 168 of file HcalRawDataMonitor.cc.

References HcalBaseDQMonitor::beginLuminosityBlock(), HcalBaseDQMonitor::LumiInOrder(), edm::LuminosityBlockBase::luminosityBlock(), HcalBaseDQMonitor::ProblemsCurrentLB, and MonitorElement::Reset().

169  {
170  if (LumiInOrder(lumiSeg.luminosityBlock())==false) return;
172  //zeroCounters(); // zero hot cell counters at the start of each luminosity block
174  return;
175 }
bool LumiInOrder(int lumisec)
MonitorElement * ProblemsCurrentLB
LuminosityBlockNumber_t luminosityBlock() const
virtual void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
void Reset(void)
reset ME (ie. contents, errors, etc)
void HcalRawDataMonitor::beginRun ( const edm::Run run,
const edm::EventSetup c 
)
protectedvirtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 127 of file HcalRawDataMonitor.cc.

References HcalElectronicsMap::allElectronicsIdPrecision(), HcalBaseDQMonitor::beginRun(), DetId::det(), edm::EventSetup::get(), hashup(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HcalElectronicsMap::lookup(), DetId::null(), readoutMap_, stashHDI(), and DetId::subdetId().

127  {
130  c.get<HcalDbRecord>().get( pSetup );
131 
132  readoutMap_=pSetup->getHcalMapping();
133  DetId detid_;
134  HcalDetId hcaldetid_;
135 
136  // Build a map of readout hardware unit to calorimeter channel
137  std::vector <HcalElectronicsId> AllElIds = readoutMap_->allElectronicsIdPrecision();
138  uint32_t itsdcc =0;
139  uint32_t itsspigot =0;
140  uint32_t itshtrchan=0;
141 
142  // by looping over all precision (non-trigger) items.
143  for (std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin();
144  eid != AllElIds.end();
145  eid++) {
146 
147  //Get the HcalDetId from the HcalElectronicsId
148  detid_ = readoutMap_->lookup(*eid);
149  // NULL if illegal; ignore
150  if (!detid_.null()) {
151  if (detid_.det()!=4) continue; //not Hcal
152  if (detid_.subdetId()!=HcalBarrel &&
153  detid_.subdetId()!=HcalEndcap &&
154  detid_.subdetId()!=HcalOuter &&
155  detid_.subdetId()!=HcalForward) continue;
156 
157  itsdcc =(uint32_t) eid->dccid();
158  itsspigot =(uint32_t) eid->spigot();
159  itshtrchan=(uint32_t) eid->htrChanId();
160  hcaldetid_ = HcalDetId(detid_);
161  stashHDI(hashup(itsdcc,itsspigot,itshtrchan),
162  hcaldetid_);
163  } // if (!detid_.null())
164  }
165 }
std::vector< HcalElectronicsId > allElectronicsIdPrecision() const
void stashHDI(int thehash, HcalDetId thehcaldetid)
virtual void beginRun(const edm::Run &run, const edm::EventSetup &c)
const HcalElectronicsMap * readoutMap_
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
Definition: DetId.h:20
const T & get() const
Definition: EventSetup.h:55
bool null() const
is this a null id ?
Definition: DetId.h:47
Detector det() const
get the detector field from this detid
Definition: DetId.h:37
int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1)
const DetId lookup(HcalElectronicsId fId) const
lookup the logical detid associated with the given electronics id
void HcalRawDataMonitor::endJob ( void  )
protectedvirtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 1295 of file HcalRawDataMonitor.cc.

References HcalBaseDQMonitor::cleanup(), gather_cfg::cout, HcalBaseDQMonitor::debug_, and HcalBaseDQMonitor::enableCleanup_.

1295  {
1296  if (debug_>0) std::cout <<"HcalRawDataMonitor::endJob()"<<std::endl;
1297  if (enableCleanup_) cleanup(); // when do we force cleanup?
1298 }
virtual void cleanup(void)
tuple cout
Definition: gather_cfg.py:121
void HcalRawDataMonitor::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
)
protectedvirtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 1253 of file HcalRawDataMonitor.cc.

References DEPTHBINS, eta(), ETABINS, MonitorElement::Fill(), HcalBaseDQMonitor::levt_, edm::LuminosityBlockBase::luminosityBlock(), NumBadHB, NumBadHE, NumBadHF, NumBadHFLUMI, NumBadHO, NumBadHO0, NumBadHO12, phi, PHIBINS, HcalBaseDQMonitor::ProblemsCurrentLB, HcalBaseDQMonitor::ProblemsVsLB, HcalBaseDQMonitor::ProblemsVsLB_HB, HcalBaseDQMonitor::ProblemsVsLB_HBHEHF, HcalBaseDQMonitor::ProblemsVsLB_HE, HcalBaseDQMonitor::ProblemsVsLB_HF, HcalBaseDQMonitor::ProblemsVsLB_HO, MonitorElement::Reset(), MonitorElement::setBinContent(), uniqcounter, and UpdateMEs().

1254  {
1255 
1256 
1263 
1264  // Reset current LS histogram, if it exists
1265  if (ProblemsCurrentLB)
1267  if (ProblemsCurrentLB)
1268  {
1269 
1270  ProblemsCurrentLB->setBinContent(0,0, levt_); // underflow bin contains number of events
1278 
1279  }
1280 
1281  for (int d=0; d<DEPTHBINS; d++) {
1282  for (int eta=0; eta<ETABINS; eta++) {
1283  for (int phi=0; phi<PHIBINS; phi++){
1284  uniqcounter[eta][phi][d] = 0.0;
1285  }
1286  }
1287  }
1288 
1289  UpdateMEs();
1290 }
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * ProblemsCurrentLB
MonitorElement * ProblemsVsLB_HF
T eta() const
void Fill(long long x)
LuminosityBlockNumber_t luminosityBlock() const
#define DEPTHBINS
MonitorElement * ProblemsVsLB_HBHEHF
MonitorElement * ProblemsVsLB_HB
#define ETABINS
MonitorElement * ProblemsVsLB_HE
#define PHIBINS
MonitorElement * ProblemsVsLB_HO
MonitorElement * ProblemsVsLB
uint64_t uniqcounter[ETABINS][PHIBINS][DEPTHBINS]
void Reset(void)
reset ME (ie. contents, errors, etc)
Definition: DDAxes.h:10
void HcalRawDataMonitor::endRun ( const edm::Run run,
const edm::EventSetup c 
)
protectedvirtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 1292 of file HcalRawDataMonitor.cc.

1292 {}
HcalDetId HcalRawDataMonitor::HashToHDI ( int  thehash)
inlineprotected

Definition at line 67 of file HcalRawDataMonitor.h.

References hashedHcalDetId_, HTRCHANMAX, NUMDCCS, NUMSPIGS, and HcalDetId::Undefined.

Referenced by mapChannproblem().

67  {
68  return ( ( (thehash<0) || (thehash>(NUMDCCS*NUMSPIGS*HTRCHANMAX)) )
70  :(hashedHcalDetId_[thehash]));
71  };
static const HcalDetId Undefined
Definition: HcalDetId.h:52
#define NUMDCCS
HcalDetId hashedHcalDetId_[NUMDCCS *NUMSPIGS *HTRCHANMAX]
#define NUMSPIGS
#define HTRCHANMAX
int HcalRawDataMonitor::hashup ( uint32_t  d = 0,
uint32_t  s = 0,
uint32_t  c = 1 
)
inlineprotected

Definition at line 63 of file HcalRawDataMonitor.h.

References trackerHits::c, HTRCHANMAX, NUMSPIGS, and alignCSCRings::s.

Referenced by beginRun(), mapChannproblem(), mapDCCproblem(), mapHTRproblem(), and unpack().

63  {
64  return (int) ( (d*NUMSPIGS*HTRCHANMAX)+(s*HTRCHANMAX)+(c)); }
#define NUMSPIGS
#define HTRCHANMAX
void HcalRawDataMonitor::HTRPrint ( const HcalHTRData htr,
int  prtlvl 
)
private

Definition at line 1360 of file HcalRawDataMonitor.cc.

References HcalHTRData::getBunchNumber(), HcalHTRData::getErrorsWord(), HcalHTRData::getFib1OrbMsgBCN(), HcalHTRData::getFib2OrbMsgBCN(), HcalHTRData::getFib3OrbMsgBCN(), HcalHTRData::getFib4OrbMsgBCN(), HcalHTRData::getFib5OrbMsgBCN(), HcalHTRData::getFib6OrbMsgBCN(), HcalHTRData::getFib7OrbMsgBCN(), HcalHTRData::getFib8OrbMsgBCN(), HcalHTRData::getL1ANumber(), HcalHTRData::htrSlot(), HcalHTRData::htrTopBottom(), and HcalHTRData::readoutVMECrateId().

Referenced by unpack().

1360  {
1361  if (prtlvl == 1){
1362  int cratenum = htr.readoutVMECrateId();
1363  float slotnum = htr.htrSlot() + 0.5*htr.htrTopBottom();
1364  printf("Crate,Slot,ErrWord,Evt#,BCN: %3i %4.1f %6X %7i %4X \n", cratenum,slotnum,htr.getErrorsWord(),htr.getL1ANumber(),htr.getBunchNumber());
1365  // printf(" DLLunlk,TTCrdy:%2i %2i \n",htr.getDLLunlock(),htr.getTTCready());
1366  }
1367  // This one needs new version of HcalHTRData.h to activate
1368  else if (prtlvl == 2){
1369  int cratenum = htr.readoutVMECrateId();
1370  float slotnum = htr.htrSlot() + 0.5*htr.htrTopBottom();
1371  printf("Crate, Slot:%3i %4.1f \n", cratenum,slotnum);
1372  // printf(" Ext Hdr: %4X %4X %4X %4X %4X %4X %4X %4X \n",htr.getExtHdr1(),htr.getExtHdr2(),htr.getExtHdr3(),htr.getExtHdr4(),htr.getExtHdr5(),htr.getExtHdr6(),htr.getExtHdr7(),htr.getExtHdr8());
1373  }
1374 
1375  else if (prtlvl == 3){
1376  int cratenum = htr.readoutVMECrateId();
1377  float slotnum = htr.htrSlot() + 0.5*htr.htrTopBottom();
1378  printf("Crate, Slot:%3i %4.1f", cratenum,slotnum);
1379  printf(" FibOrbMsgBCNs: %4X %4X %4X %4X %4X %4X %4X %4X \n",htr.getFib1OrbMsgBCN(),htr.getFib2OrbMsgBCN(),htr.getFib3OrbMsgBCN(),htr.getFib4OrbMsgBCN(),htr.getFib5OrbMsgBCN(),htr.getFib6OrbMsgBCN(),htr.getFib7OrbMsgBCN(),htr.getFib8OrbMsgBCN());
1380  }
1381 
1382  return;
1383 }
unsigned int getFib6OrbMsgBCN() const
Definition: HcalHTRData.h:203
unsigned int getFib1OrbMsgBCN() const
Get the BCN of the Fiber Orbit Messages.
Definition: HcalHTRData.h:184
unsigned int htrTopBottom() const
HcalElectronicsId-style HTR top/bottom (1=top/0=bottom)
Definition: HcalHTRData.cc:344
unsigned int getFib8OrbMsgBCN() const
Definition: HcalHTRData.h:211
unsigned int htrSlot() const
HcalElectronicsId-style HTR slot.
Definition: HcalHTRData.cc:340
unsigned int getFib7OrbMsgBCN() const
Definition: HcalHTRData.h:207
unsigned int getFib3OrbMsgBCN() const
Definition: HcalHTRData.h:191
unsigned int getFib5OrbMsgBCN() const
Definition: HcalHTRData.h:199
unsigned int getErrorsWord() const
Get the errors word.
Definition: HcalHTRData.h:158
unsigned int readoutVMECrateId() const
HcalElectronicsId-style VME crate number.
Definition: HcalHTRData.cc:348
unsigned int getFib4OrbMsgBCN() const
Definition: HcalHTRData.h:195
unsigned int getBunchNumber() const
Get the HTR bunch number.
Definition: HcalHTRData.h:116
unsigned int getFib2OrbMsgBCN() const
Definition: HcalHTRData.h:187
unsigned int getL1ANumber() const
Get the HTR event number.
Definition: HcalHTRData.h:112
void HcalRawDataMonitor::label_xChanns ( MonitorElement me_ptr,
int  xbins 
)
private

Definition at line 1310 of file HcalRawDataMonitor.cc.

References HcalHTRData::CHANNELS_PER_SPIGOT, diffTwoXMLs::label, and MonitorElement::setBinLabel().

Referenced by setup().

1310  {
1311  char label[32];
1312  for (int ch=0; ch<HcalHTRData::CHANNELS_PER_SPIGOT; ch++) {
1313  snprintf(label, 32, "Ch %02d", ch+1);
1314  me_ptr->setBinLabel((2+(ch*xbins)), label, 1); //margin of 3 at low value
1315  }
1316 }
const double xbins[]
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)
static const int CHANNELS_PER_SPIGOT
Definition: HcalHTRData.h:20
void HcalRawDataMonitor::label_xFEDs ( MonitorElement me_ptr,
int  xbins 
)
private

Definition at line 1319 of file HcalRawDataMonitor.cc.

References diffTwoXMLs::label, NUMDCCS, and MonitorElement::setBinLabel().

Referenced by setup().

1319  {
1320  char label[32];
1321  for (int thfed=0; thfed<NUMDCCS; thfed++) {
1322  snprintf(label, 32, "%03d", thfed+700);
1323  me_ptr->setBinLabel((2+(thfed*xbins)), label, 1); //margin of 1 at low value
1324  }
1325 }
const double xbins[]
#define NUMDCCS
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)
void HcalRawDataMonitor::label_ySpigots ( MonitorElement me_ptr,
int  ybins 
)
private

Definition at line 1301 of file HcalRawDataMonitor.cc.

References diffTwoXMLs::label, MonitorElement::setBinLabel(), and HcalDCCHeader::SPIGOT_COUNT.

Referenced by setup().

1301  {
1302  char label[32];
1303  for (int spig=0; spig<HcalDCCHeader::SPIGOT_COUNT; spig++) {
1304  snprintf(label, 32, "Spgt %02d", spig);
1305  me_ptr->setBinLabel((2+(spig*ybins)), label, 2); //margin of 1 at low value
1306  }
1307 }
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)
static const int SPIGOT_COUNT
Definition: HcalDCCHeader.h:21
void HcalRawDataMonitor::labelHTRBits ( MonitorElement mePlot,
unsigned int  axisType 
)
private

Definition at line 1327 of file HcalRawDataMonitor.cc.

Referenced by setup().

1327  {
1328 
1329  if (axisType !=1 && axisType != 2) return;
1330 
1331  mePlot -> setBinLabel(1,"Overflow Warn",axisType);
1332  mePlot -> setBinLabel(2,"Buffer Busy",axisType);
1333  mePlot -> setBinLabel(3,"Empty Event",axisType);
1334  mePlot -> setBinLabel(4,"Rejected L1A",axisType);
1335  mePlot -> setBinLabel(5,"Invalid Stream",axisType);
1336  mePlot -> setBinLabel(6,"Latency Warn",axisType);
1337  mePlot -> setBinLabel(7,"OptDat Err",axisType);
1338  mePlot -> setBinLabel(8,"Clock Err",axisType);
1339  mePlot -> setBinLabel(9,"Bunch Err",axisType);
1340  mePlot -> setBinLabel(10,"b9",axisType);
1341  mePlot -> setBinLabel(11,"b10",axisType);
1342  mePlot -> setBinLabel(12,"b11",axisType);
1343  mePlot -> setBinLabel(13,"Test Mode",axisType);
1344  mePlot -> setBinLabel(14,"Histo Mode",axisType);
1345  mePlot -> setBinLabel(15,"Calib Trig",axisType);
1346  mePlot -> setBinLabel(16,"Bit15 Err",axisType);
1347 
1348  return;
1349 }
void HcalRawDataMonitor::mapChannproblem ( int  dcc,
int  spigot,
int  htrchan 
)
protected

Definition at line 1520 of file HcalRawDataMonitor.cc.

References abs, CalcEtaBin(), gather_cfg::cout, HcalBaseDQMonitor::debug_, HcalDetId::depth(), excludeHORing2_, HashToHDI(), hashup(), i, HcalDetId::ieta(), HcalDetId::iphi(), isSiPM(), problemfound, HcalDetId::subdet(), and HcalDetId::Undefined.

Referenced by unpack().

1520  {
1521  int myeta = 0;
1522  int myphi =-1;
1523  int mydepth = 0;
1524  HcalDetId HDI;
1525  //Light up the affected cell.
1526  int i=hashup(dcc,spigot,htrchan);
1527  HDI = HashToHDI(i);
1528  if (HDI==HcalDetId::Undefined) {
1529  return; // Do nothing at all, instead.
1530  }
1531  mydepth = HDI.depth();
1532  myphi = HDI.iphi();
1533  myeta = CalcEtaBin(HDI.subdet(),
1534  HDI.ieta(),
1535  mydepth);
1536  //Protect against indexing off array
1537  if (myeta>=0 && myeta<85 &&
1538  (myphi-1)>=0 && (myphi-1)<72 &&
1539  (mydepth-1)>=0 && (mydepth-1)<4){
1540  problemfound[myeta][myphi-1][mydepth-1] = true;
1541 
1542  //exlcude the decommissioned HO ring2, except SiPMs
1543  if(mydepth==4 && excludeHORing2_==true)
1544  if (abs(HDI.ieta())>=11 && abs(HDI.ieta())<=15 && !isSiPM(HDI.ieta(),HDI.iphi(),mydepth))
1545  problemfound[myeta][myphi-1][mydepth-1] = false;
1546 
1547  if (debug_>0)
1548  std::cout<<" mapDCCproblem found error! "<<HDI.subdet()<<"("<<HDI.ieta()<<", "<<HDI.iphi()<<", "<<HDI.depth()<<")"<<std::endl;
1549  }
1550 } // void HcalRawDataMonitor::mapChannproblem(...)
static const HcalDetId Undefined
Definition: HcalDetId.h:52
int i
Definition: DBlmapReader.cc:9
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:32
#define abs(x)
Definition: mlp_lapack.h:159
bool isSiPM(int ieta, int iphi, int depth)
int depth() const
get the tower depth
Definition: HcalDetId.h:42
int ieta() const
get the cell ieta
Definition: HcalDetId.h:38
bool problemfound[ETABINS][PHIBINS][DEPTHBINS]
int iphi() const
get the cell iphi
Definition: HcalDetId.h:40
int CalcEtaBin(int subdet, int ieta, int depth)
tuple cout
Definition: gather_cfg.py:121
HcalDetId HashToHDI(int thehash)
int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1)
void HcalRawDataMonitor::mapDCCproblem ( int  dcc)
protected

Definition at line 1451 of file HcalRawDataMonitor.cc.

References abs, CalcEtaBin(), gather_cfg::cout, HcalBaseDQMonitor::debug_, HcalDetId::depth(), excludeHORing2_, hashedHcalDetId_, hashup(), HTRCHANMAX, i, HcalDetId::ieta(), HcalDetId::iphi(), isSiPM(), NUMSPIGS, problemfound, HcalDetId::subdet(), and HcalDetId::Undefined.

Referenced by unpack().

1451  {
1452  int myeta = 0;
1453  int myphi =-1;
1454  int mydepth = 0;
1455  HcalDetId HDI;
1456  //Light up all affected cells.
1457  for (int i=hashup(dcc);
1458  i<hashup(dcc)+(NUMSPIGS*HTRCHANMAX);
1459  i++) {
1460  HDI = hashedHcalDetId_[i];
1461  if (HDI==HcalDetId::Undefined)
1462  continue;
1463  mydepth = HDI.depth();
1464  myphi = HDI.iphi();
1465  myeta = CalcEtaBin(HDI.subdet(),
1466  HDI.ieta(),
1467  mydepth);
1468  //Protect against indexing off array
1469  if (myeta>=0 && myeta<85 &&
1470  (myphi-1)>=0 && (myphi-1)<72 &&
1471  (mydepth-1)>=0 && (mydepth-1)<4){
1472  problemfound[myeta][myphi-1][mydepth-1] = true;
1473 
1474  //exlcude the decommissioned HO ring2, except SiPMs
1475  if(mydepth==4 && excludeHORing2_==true)
1476  if (abs(HDI.ieta())>=11 && abs(HDI.ieta())<=15 && !isSiPM(HDI.ieta(),HDI.iphi(),mydepth))
1477  problemfound[myeta][myphi-1][mydepth-1] = false;
1478 
1479  if (debug_>0)
1480  std::cout<<" mapDCCproblem found error! "<<HDI.subdet()<<"("<<HDI.ieta()<<", "<<HDI.iphi()<<", "<<HDI.depth()<<")"<<std::endl;
1481  }
1482  }
1483 }
static const HcalDetId Undefined
Definition: HcalDetId.h:52
int i
Definition: DBlmapReader.cc:9
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:32
#define HTRCHANMAX
#define abs(x)
Definition: mlp_lapack.h:159
HcalDetId hashedHcalDetId_[NUMDCCS *NUMSPIGS *HTRCHANMAX]
#define NUMSPIGS
bool isSiPM(int ieta, int iphi, int depth)
int depth() const
get the tower depth
Definition: HcalDetId.h:42
int ieta() const
get the cell ieta
Definition: HcalDetId.h:38
bool problemfound[ETABINS][PHIBINS][DEPTHBINS]
int iphi() const
get the cell iphi
Definition: HcalDetId.h:40
int CalcEtaBin(int subdet, int ieta, int depth)
tuple cout
Definition: gather_cfg.py:121
int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1)
void HcalRawDataMonitor::mapHTRproblem ( int  dcc,
int  spigot 
)
protected

Definition at line 1484 of file HcalRawDataMonitor.cc.

References abs, CalcEtaBin(), gather_cfg::cout, HcalBaseDQMonitor::debug_, HcalDetId::depth(), excludeHORing2_, hashedHcalDetId_, hashup(), HTRCHANMAX, i, HcalDetId::ieta(), HcalDetId::iphi(), isSiPM(), problemfound, HcalDetId::subdet(), and HcalDetId::Undefined.

Referenced by unpack().

1484  {
1485  int myeta = 0;
1486  int myphi =-1;
1487  int mydepth = 0;
1488  HcalDetId HDI;
1489  //Light up all affected cells.
1490  for (int i=hashup(dcc,spigot);
1491  i<hashup(dcc,spigot)+(HTRCHANMAX); //nice, linear hash....
1492  i++) {
1493  HDI = hashedHcalDetId_[i];
1494  if (HDI==HcalDetId::Undefined) {
1495  continue;
1496  }
1497  mydepth = HDI.depth();
1498  myphi = HDI.iphi();
1499  myeta = CalcEtaBin(HDI.subdet(),
1500  HDI.ieta(),
1501  mydepth);
1502  //Protect against indexing off array
1503  if (myeta>=0 && myeta<85 &&
1504  (myphi-1)>=0 && (myphi-1)<72 &&
1505  (mydepth-1)>=0 && (mydepth-1)<4){
1506  problemfound[myeta][myphi-1][mydepth-1] = true;
1507 
1508  //exlcude the decommissioned HO ring2, except SiPMs
1509  if(mydepth==4 && excludeHORing2_==true)
1510  if (abs(HDI.ieta())>=11 && abs(HDI.ieta())<=15 && !isSiPM(HDI.ieta(),HDI.iphi(),mydepth))
1511  problemfound[myeta][myphi-1][mydepth-1] = false;
1512 
1513  if (debug_>0)
1514  std::cout<<" mapDCCproblem found error! "<<HDI.subdet()<<"("<<HDI.ieta()<<", "<<HDI.iphi()<<", "<<HDI.depth()<<")"<<std::endl;
1515  }
1516 
1517  }
1518 } // void HcalRawDataMonitor::mapHTRproblem(...)
static const HcalDetId Undefined
Definition: HcalDetId.h:52
int i
Definition: DBlmapReader.cc:9
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:32
#define HTRCHANMAX
#define abs(x)
Definition: mlp_lapack.h:159
HcalDetId hashedHcalDetId_[NUMDCCS *NUMSPIGS *HTRCHANMAX]
bool isSiPM(int ieta, int iphi, int depth)
int depth() const
get the tower depth
Definition: HcalDetId.h:42
int ieta() const
get the cell ieta
Definition: HcalDetId.h:38
bool problemfound[ETABINS][PHIBINS][DEPTHBINS]
int iphi() const
get the cell iphi
Definition: HcalDetId.h:40
int CalcEtaBin(int subdet, int ieta, int depth)
tuple cout
Definition: gather_cfg.py:121
int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1)
void HcalRawDataMonitor::processEvent ( const FEDRawDataCollection rawraw,
const HcalUnpackerReport report 
)
protected

Definition at line 595 of file HcalRawDataMonitor.cc.

References HcalBaseDQMonitor::dbe_, HcalBaseDQMonitor::debug_, DEPTHBINS, ETABINS, f, FEDRawDataCollection::FEDData(), i, FEDNumbering::MAXHCALFEDID, meChann_DataIntegrityCheck_, meChannSumm_DataIntegrityCheck_, meDataFlowInd_, meHalfHTRDataCorruptionIndicators_, meLRBDataCorruptionIndicators_, FEDNumbering::MINHCALFEDID, NUMDCCS, PHIBINS, problemcount, problemfound, FEDRawData::size(), unpack(), update, MonitorElement::update(), x, detailsBasic3DVector::y, and detailsBasic3DVector::z.

Referenced by analyze().

596  {
597  if(!dbe_) {
598  if (debug_>1)
599  printf("HcalRawDataMonitor::processEvent DQMStore not instantiated!\n");
600  return;}
601 
602  // Fill event counters (underflow bins of histograms)
606  for (int f=0; f<NUMDCCS; f++)
609 
610  // Loop over all FEDs reporting the event, unpacking if good.
612  const FEDRawData& fed = rawraw.FEDData(i);
613  if (fed.size()<12) continue; //At least the size of headers and trailers of a DCC.
614  unpack(fed); //Interpret data, fill histograms, everything.
615  }
616 
617  //increment problemcount[] where problemfound[], and clear problemfound[]
618  for (int x=0; x<ETABINS; x++)
619  for (int y=0; y<PHIBINS; y++)
620  for (int z=0; z<DEPTHBINS; z++)
621  if (problemfound[x][y][z]) {
622  problemcount[x][y][z]++;
623  problemfound[x][y][z]=false;
624  }
625  return;
626 } //void HcalRawDataMonitor::processEvent()
int i
Definition: DBlmapReader.cc:9
#define NUMDCCS
MonitorElement * meChannSumm_DataIntegrityCheck_
void update(void)
Mark the object updated.
uint64_t problemcount[ETABINS][PHIBINS][DEPTHBINS]
float float float z
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:49
MonitorElement * meDataFlowInd_
#define DEPTHBINS
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
void unpack(const FEDRawData &raw)
MonitorElement * meChann_DataIntegrityCheck_[NUMDCCS]
double f[11][100]
bool problemfound[ETABINS][PHIBINS][DEPTHBINS]
MonitorElement * meLRBDataCorruptionIndicators_
#define ETABINS
#define update(a, b)
#define PHIBINS
Definition: DDAxes.h:10
MonitorElement * meHalfHTRDataCorruptionIndicators_
void HcalRawDataMonitor::reset ( void  )
protectedvirtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 74 of file HcalRawDataMonitor.cc.

References Chann_DataIntegrityCheck_, ChannSumm_DataIntegrityCheck_, DataFlowInd_, DEPTHBINS, eta(), ETABINS, f, HalfHTRDataCorruptionIndicators_, hashedHcalDetId_, HTRCHANMAX, i, LRBDataCorruptionIndicators_, NumBadHB, NumBadHE, NumBadHF, NumBadHFLUMI, NumBadHO, NumBadHO0, NumBadHO12, NUMDCCS, NUMSPIGS, phi, PHIBINS, problemcount, problemfound, alignCSCRings::s, THREE_FED, THREE_SPG, TWO___FED, TWO__SPGT, TWO_CHANN, HcalDetId::Undefined, uniqcounter, UScount, x, and detailsBasic3DVector::y.

Referenced by HcalRawDataMonitor().

75 {
76 
77  for (int f=0; f<NUMDCCS; f++) {
78  for (int s=0; s<15; s++) {
79  UScount[f][s]=0;}}
80 
81  for (int x=0; x<THREE_FED; x++)
82  for (int y=0; y<THREE_SPG; y++)
84 
85  for (int x=0; x<THREE_FED; x++)
86  for (int y=0; y<THREE_SPG; y++)
88 
89  for (int x=0; x<TWO___FED; x++)
90  for (int y=0; y<TWO__SPGT; y++)
92 
93  for (int x=0; x<TWO___FED; x++)
94  for (int y=0; y<THREE_SPG; y++)
95  DataFlowInd_[x][y]=0;
96 
97  for (int f=0; f<NUMDCCS; f++)
98  for (int x=0; x< TWO_CHANN; x++)
99  for (int y=0; y<TWO__SPGT; y++)
101 
102  for (int i=0; i<(NUMDCCS * NUMSPIGS * HTRCHANMAX); i++)
104 
105  for (int d=0; d<DEPTHBINS; d++) {
106  for (int eta=0; eta<ETABINS; eta++) {
107  for (int phi=0; phi<PHIBINS; phi++){
108  uniqcounter[eta][phi][d] = 0.0;
109  problemcount[eta][phi][d] = 0.0;
110  problemfound[eta][phi][d] = false;
111  }
112  }
113  }
114 
115  // Properly initialze bylumi counters.
116  NumBadHB=0;
117  NumBadHE=0;
118  NumBadHO=0;
119  NumBadHF=0;
120  NumBadHFLUMI=0;
121  NumBadHO0=0;
122  NumBadHO12=0;
123 
124 } // HcalRawDataMonitor::HcalRawDataMonitor()
float ChannSumm_DataIntegrityCheck_[TWO___FED][TWO__SPGT]
static const HcalDetId Undefined
Definition: HcalDetId.h:52
int i
Definition: DBlmapReader.cc:9
#define TWO_CHANN
#define THREE_FED
#define HTRCHANMAX
#define NUMDCCS
HcalDetId hashedHcalDetId_[NUMDCCS *NUMSPIGS *HTRCHANMAX]
uint64_t problemcount[ETABINS][PHIBINS][DEPTHBINS]
T eta() const
#define NUMSPIGS
#define DEPTHBINS
float LRBDataCorruptionIndicators_[THREE_FED][THREE_SPG]
#define TWO__SPGT
double f[11][100]
bool problemfound[ETABINS][PHIBINS][DEPTHBINS]
#define TWO___FED
#define ETABINS
float HalfHTRDataCorruptionIndicators_[THREE_FED][THREE_SPG]
#define THREE_SPG
uint64_t UScount[NUMDCCS][NUMSPIGS]
#define PHIBINS
float Chann_DataIntegrityCheck_[NUMDCCS][TWO_CHANN][TWO__SPGT]
Definition: DDAxes.h:10
uint64_t uniqcounter[ETABINS][PHIBINS][DEPTHBINS]
float DataFlowInd_[TWO___FED][THREE_SPG]
Definition: DDAxes.h:10
void HcalRawDataMonitor::setup ( void  )
protectedvirtual

Below, "Corruption" FOLDER

Reimplemented from HcalBaseDQMonitor.

Definition at line 177 of file HcalRawDataMonitor.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookInt(), DQMStore::bookProfile(), gather_cfg::cout, HcalBaseDQMonitor::dbe_, HcalBaseDQMonitor::debug_, excludeHORing2_, f, MonitorElement::Fill(), MonitorElement::getTProfile(), HTR_StatusWd_HBHE, HTR_StatusWd_HF, HTR_StatusWd_HO, diffTwoXMLs::label, label_xChanns(), label_xFEDs(), label_ySpigots(), labelHTRBits(), meBCN_, meBCNCheck_, meBCNSynch_, meBCNwhenOrNDiff_, meCDFErrorFound_, meChann_DataIntegrityCheck_, meChannSumm_DataIntegrityCheck_, meCrate0HTRStatus_, meCrate10HTRStatus_, meCrate11HTRStatus_, meCrate12HTRStatus_, meCrate13HTRStatus_, meCrate14HTRStatus_, meCrate15HTRStatus_, meCrate17HTRStatus_, meCrate1HTRStatus_, meCrate2HTRStatus_, meCrate3HTRStatus_, meCrate4HTRStatus_, meCrate5HTRStatus_, meCrate6HTRStatus_, meCrate7HTRStatus_, meCrate9HTRStatus_, meDataFlowInd_, medccBCN_, meDCCEventFormatError_, meDCCVersion_, meEvFragSize2_, meEvFragSize_, meEvtNCheck_, meEvtNumberSynch_, mefedEntries_, meFEDRawDataSizes_, meFib1OrbMsgBCN_, meFib2OrbMsgBCN_, meFib3OrbMsgBCN_, meFib4OrbMsgBCN_, meFib5OrbMsgBCN_, meFib6OrbMsgBCN_, meFib7OrbMsgBCN_, meFib8OrbMsgBCN_, meFibBCN_, meHalfHTRDataCorruptionIndicators_, meHTRFWVersion_, meInvHTRData_, meLRBDataCorruptionIndicators_, meOrNCheck_, meOrNSynch_, meStatusWdCrate_, meUSFractSpigs_, HcalBaseDQMonitor::NLumiBlocks_, NUMDCCS, HcalBaseDQMonitor::ProblemsVsLB, HcalBaseDQMonitor::ProblemsVsLB_HB, HcalBaseDQMonitor::ProblemsVsLB_HBHEHF, HcalBaseDQMonitor::ProblemsVsLB_HE, HcalBaseDQMonitor::ProblemsVsLB_HF, HcalBaseDQMonitor::ProblemsVsLB_HO, alignCSCRings::s, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), HcalBaseDQMonitor::setup(), HcalDCCHeader::SPIGOT_COUNT, AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQMonitor::subdir_, THREE_FED, THREE_SPG, TWO___FED, TWO__SPGT, and TWO_CHANN.

177  {
178  // Call base class setup
180  if (!dbe_) {
181  if (debug_>1)
182  std::cout <<"<HcalRawDataMonitor::setup> No DQMStore instance available. Bailing out."<<std::endl;
183  return;}
184 
185  /******* Set up all histograms ********/
186  if (debug_>1)
187  std::cout <<"<HcalRawDataMonitor::beginRun> Setting up histograms"<<std::endl;
188 
190  ProblemsVsLB=dbe_->bookProfile("RAW_Problems_HCAL_vs_LS",
191  "Total HCAL RAW Problems vs lumi section",
192  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000);
193 
194  ProblemsVsLB_HB=dbe_->bookProfile("Total_RAW_Problems_HB_vs_LS",
195  "Total HB RAW Problems vs lumi section",
196  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);
197  ProblemsVsLB_HE=dbe_->bookProfile("Total_RAW_Problems_HE_vs_LS",
198  "Total HE RAW Problems vs lumi section",
199  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);
200  ProblemsVsLB_HO=dbe_->bookProfile("Total_RAW_Problems_HO_vs_LS",
201  "Total HO RAW Problems vs lumi section",
202  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);
203  ProblemsVsLB_HF=dbe_->bookProfile("Total_RAW_Problems_HF_vs_LS",
204  "Total HF RAW Problems vs lumi section",
205  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,2000);
206  ProblemsVsLB_HBHEHF=dbe_->bookProfile("Total_RAW_Problems_HBHEHF_vs_LS",
207  "Total HBHEHF RAW Problems vs lumi section",
208  NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,2000);
209 
210  ProblemsVsLB->getTProfile()->SetMarkerStyle(20);
211  ProblemsVsLB_HB->getTProfile()->SetMarkerStyle(20);
212  ProblemsVsLB_HE->getTProfile()->SetMarkerStyle(20);
213  ProblemsVsLB_HO->getTProfile()->SetMarkerStyle(20);
214  ProblemsVsLB_HF->getTProfile()->SetMarkerStyle(20);
215  ProblemsVsLB_HBHEHF->getTProfile()->SetMarkerStyle(20);
216  MonitorElement* excludeHO2=dbe_->bookInt("ExcludeHOring2");
217  // Fill with 0 if ring is not to be excluded; fill with 1 if it is to be excluded
218  if (excludeHO2) excludeHO2->Fill(excludeHORing2_==true ? 1 : 0);
219 
220 
221  // Already done in base class:
222  //dbe_->setCurrentFolder(subdir_);
223  //meIevt_ = dbe_->bookInt("EventsProcessed");
224  //if (meIevt_) meIevt_->Fill(-1);
225  //meLevt_ = dbe_->bookInt("EventsProcessed_currentLS");
226  //if (meLevt_) meLevt_->Fill(-1);
227  //meTevt_ = dbe_->bookInt("EventsProcessed_All");
228  //if (meTevt_) meTevt_->Fill(-1);
229  //meTevtHist_=dbe_->book1D("EventsProcessed_AllHists","Counter of Events Processed By This Task",1,0.5,1.5);
230  //if (meTevtHist_) meTevtHist_->Reset();
231 
233 
234  dbe_->setCurrentFolder(subdir_ + "Corruption");
235  type = "01 Common Data Format violations";
236  meCDFErrorFound_ = dbe_->book2D(type,type,32,699.5,731.5,9,0.5,9.5);
237  meCDFErrorFound_->setAxisTitle("HCAL FED ID", 1);
238  meCDFErrorFound_->setBinLabel(1, "Hdr1BitUnset", 2);
239  meCDFErrorFound_->setBinLabel(2, "FmtNumChange", 2);
240  meCDFErrorFound_->setBinLabel(3, "BOE not '0x5'", 2);
241  meCDFErrorFound_->setBinLabel(4, "Hdr2Bit Set", 2);
242  meCDFErrorFound_->setBinLabel(5, "Hdr1 36-55", 2);
243  meCDFErrorFound_->setBinLabel(6, "BOE not 0", 2);
244  meCDFErrorFound_->setBinLabel(7, "Trlr1Bit Set", 2);
245  meCDFErrorFound_->setBinLabel(8, "Size Error", 2);
246  meCDFErrorFound_->setBinLabel(9, "TrailerBad", 2);
247 
248  type = "02 DCC Event Format violation";
249  meDCCEventFormatError_ = dbe_->book2D(type,type,32,699.5,731.5,6,0.5,6.5);
250  meDCCEventFormatError_->setAxisTitle("HCAL FED ID", 1);
251  meDCCEventFormatError_->setBinLabel(1, "FmtVers Changed", 2);
252  meDCCEventFormatError_->setBinLabel(2, "StrayBits Changed", 2);
253  meDCCEventFormatError_->setBinLabel(3, "HTRStatusPad", 2);
254  meDCCEventFormatError_->setBinLabel(4, "32bitPadErr", 2);
255  meDCCEventFormatError_->setBinLabel(5, "Number Mismatch Bit Miscalc", 2);
256  meDCCEventFormatError_->setBinLabel(6, "Low 8 HTR Status Bits Miscopy", 2);
257 
258  type = "04 HTR BCN when OrN Diff";
259  meBCNwhenOrNDiff_ = dbe_->book1D(type,type,3564,-0.5,3563.5);
261  meBCNwhenOrNDiff_->setAxisTitle("# of Entries",2);
262 
263  type = "03 OrN NonZero Difference HTR - DCC";
264  meOrNCheck_ = dbe_->book1D(type,type,65,-32.5,32.5);
265  meOrNCheck_->setAxisTitle("htr OrN - dcc OrN",1);
266 
267  type = "03 OrN Inconsistent - HTR vs DCC";
268  meOrNSynch_= dbe_->book2D(type,type,32,700,732, 15,0,15);
269  meOrNSynch_->setAxisTitle("FED #",1);
270  meOrNSynch_->setAxisTitle("Spigot #",2);
271 
272  type = "05 BCN NonZero Difference HTR - DCC";
273  meBCNCheck_ = dbe_->book1D(type,type,501,-250.5,250.5);
274  meBCNCheck_->setAxisTitle("htr BCN - dcc BCN",1);
275 
276  type = "05 BCN Inconsistent - HTR vs DCC";
277  meBCNSynch_= dbe_->book2D(type,type,32,700,732, 15,0,15);
278  meBCNSynch_->setAxisTitle("FED #",1);
279  meBCNSynch_->setAxisTitle("Slot #",2);
280 
281  type = "06 EvN NonZero Difference HTR - DCC";
282  meEvtNCheck_ = dbe_->book1D(type,type,601,-300.5,300.5);
283  meEvtNCheck_->setAxisTitle("htr Evt # - dcc Evt #",1);
284 
285  type = "06 EvN Inconsistent - HTR vs DCC";
286  meEvtNumberSynch_= dbe_->book2D(type,type,32,700,732, 15,0,15);
287  meEvtNumberSynch_->setAxisTitle("FED #",1);
288  meEvtNumberSynch_->setAxisTitle("Slot #",2);
289 
290  // ----------------
291  // | E!P | UE | TR |
292  // ----| ND | OV | ID |
293  // | T | CRC | ST | ODD|
294  // --------------------
295  type="07 LRB Data Corruption Indicators";
298  THREE_SPG,0,THREE_SPG);
299  label_xFEDs (meLRBDataCorruptionIndicators_, 4); // 3 bins + 1 margin per ch.
300  label_ySpigots(meLRBDataCorruptionIndicators_, 4); // 3 bins + 1 margin each spgt
301 
302  // ----------------
303  // | CT | BE | |
304  // | HM | 15 | WW | (Wrong Wordcount)
305  // | TM | CK | IW | (Illegal Wordcount)
306  // ----------------
307  type="08 Half-HTR Data Corruption Indicators";
310  THREE_SPG,0,THREE_SPG);
311  label_xFEDs (meHalfHTRDataCorruptionIndicators_, 4); // 3 bins + 1 margin per ch.
312  label_ySpigots(meHalfHTRDataCorruptionIndicators_, 4); // 3 bins + 1 margin each spgt
313 
314  // ------------
315  // | !DV | Er |
316  // | NTS | Cap |
317  // ------------
318  type = "09 Channel Integrity Summarized by Spigot";
321  TWO__SPGT,0,TWO__SPGT);
322  label_xFEDs (meChannSumm_DataIntegrityCheck_, 3); // 2 bins + 1 margin per ch.
323  label_ySpigots(meChannSumm_DataIntegrityCheck_, 3); // 2 bins + 1 margin per spgt
324 
325  dbe_->setCurrentFolder(subdir_ + "Corruption/Channel Data Integrity");
326  char label[256];
327  for (int f=0; f<NUMDCCS; f++){
328  snprintf(label, 256, "FED %03d Channel Integrity", f+700);
329  meChann_DataIntegrityCheck_[f] = dbe_->book2D(label,label,
331  TWO__SPGT,0,TWO__SPGT);
332  label_xChanns (meChann_DataIntegrityCheck_[f], 3); // 2 bins + 1 margin per ch.
333  label_ySpigots(meChann_DataIntegrityCheck_[f], 3); // 2 bins + 1 margin per spgt
334  ;}
335 
336  dbe_->setCurrentFolder(subdir_ + "Data Flow");
337  type="DCC Event Counts";
338  mefedEntries_ = dbe_->book1D(type,type,32,699.5,731.5);
339 
340  type = "BCN from DCCs";
341  medccBCN_ = dbe_->book1D(type,type,3564,-0.5,3563.5);
342  medccBCN_->setAxisTitle("BCN",1);
343  medccBCN_->setAxisTitle("# of Entries",2);
344 
345  type = "BCN from HTRs";
346  meBCN_ = dbe_->book1D(type,type,3564,-0.5,3563.5);
347  meBCN_->setAxisTitle("BCN",1);
348  meBCN_->setAxisTitle("# of Entries",2);
349 
350  type = "DCC Data Block Size Distribution";
351  meFEDRawDataSizes_=dbe_->book1D(type,type,1200,-0.5,12000.5);
352  meFEDRawDataSizes_->setAxisTitle("# of bytes",1);
353  meFEDRawDataSizes_->setAxisTitle("# of Data Blocks",2);
354 
355  type = "DCC Data Block Size Profile";
356  meEvFragSize_ = dbe_->bookProfile(type,type,32,699.5,731.5,100,-1000.0,12000.0,"");
357  type = "DCC Data Block Size Each FED";
358  meEvFragSize2_ = dbe_->book2D(type,type,64,699.5,731.5, 240,0,12000);
359 
360  // ------------
361  // | OW | OFW | "Two Caps HTR; Three Caps FED."
362  // | BZ | BSY |
363  // | EE | RL |
364  // ----------------
365  // | CE | (corrected error, Hamming code)
366  // ------
367  type = "01 Data Flow Indicators";
368  meDataFlowInd_= dbe_->book2D(type,type,
370  THREE_SPG,0,THREE_SPG);
371  label_xFEDs (meDataFlowInd_, 3); // 2 bins + 1 margin per ch.
372  label_ySpigots(meDataFlowInd_, 4); // 3 bins + 1 margin each spgt
373 
374  dbe_->setCurrentFolder(subdir_ + "Diagnostics");
375 
376  type = "DCC Firmware Version";
377  meDCCVersion_ = dbe_->bookProfile(type,type, 32, 699.5, 731.5, 256, -0.5, 255.5);
378  meDCCVersion_ ->setAxisTitle("FED ID", 1);
379 
380  type = "HTR Status Word HBHE";
381  HTR_StatusWd_HBHE = dbe_->book1D(type,type,16,-0.5,15.5);
383 
384  type = "HTR Status Word HF";
385  HTR_StatusWd_HF = dbe_->book1D(type,type,16,-0.5,15.5);
387 
388  type = "HTR Status Word HO";
389  HTR_StatusWd_HO = dbe_->book1D(type,type,16,-0.5,15.5);
391 
392  int maxbits = 16;//Look at all 16 bits of the Error Words
393  type = "HTR Status Word by Crate";
394  meStatusWdCrate_ = dbe_->book2D(type,type,18,-0.5,17.5,maxbits,-0.5,maxbits-0.5);
395  meStatusWdCrate_ -> setAxisTitle("Crate #",1);
397 
398  type = "Unpacking - HcalHTRData check failures";
399  meInvHTRData_= dbe_->book2D(type,type,16,-0.5,15.5,32,699.5,731.5);
400  meInvHTRData_->setAxisTitle("Spigot #",1);
401  meInvHTRData_->setAxisTitle("DCC #",2);
402 
403  type = "HTR Fiber Orbit Message BCN";
404  meFibBCN_ = dbe_->book1D(type,type,3564,-0.5,3563.5);
405  meFibBCN_->setAxisTitle("BCN of Fib Orb Msg",1);
406 
407  type = "HTR Status Word - Crate 0";
408  meCrate0HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
409  meCrate0HTRStatus_ ->setAxisTitle("Slot #",1);
411 
412  type = "HTR Status Word - Crate 1";
413  meCrate1HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
414  meCrate1HTRStatus_ ->setAxisTitle("Slot #",1);
416 
417  type = "HTR Status Word - Crate 2";
418  meCrate2HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
419  meCrate2HTRStatus_ ->setAxisTitle("Slot #",1);
421 
422  type = "HTR Status Word - Crate 3";
423  meCrate3HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
424  meCrate3HTRStatus_ ->setAxisTitle("Slot #",1);
426 
427  type = "HTR Status Word - Crate 4";
428  meCrate4HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
429  meCrate4HTRStatus_ ->setAxisTitle("Slot #",1);
431 
432  type = "HTR Status Word - Crate 5";
433  meCrate5HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
434  meCrate5HTRStatus_ ->setAxisTitle("Slot #",1);
436 
437  type = "HTR Status Word - Crate 6";
438  meCrate6HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
439  meCrate6HTRStatus_ ->setAxisTitle("Slot #",1);
441 
442  type = "HTR Status Word - Crate 7";
443  meCrate7HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
444  meCrate7HTRStatus_ ->setAxisTitle("Slot #",1);
446 
447  type = "HTR Status Word - Crate 9";
448  meCrate9HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
449  meCrate9HTRStatus_ ->setAxisTitle("Slot #",1);
451 
452  type = "HTR Status Word - Crate 10";
453  meCrate10HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
454  meCrate10HTRStatus_ ->setAxisTitle("Slot #",1);
456 
457  type = "HTR Status Word - Crate 11";
458  meCrate11HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
459  meCrate11HTRStatus_ ->setAxisTitle("Slot #",1);
461 
462  type = "HTR Status Word - Crate 12";
463  meCrate12HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
464  meCrate12HTRStatus_ ->setAxisTitle("Slot #",1);
466 
467  type = "HTR Status Word - Crate 13";
468  meCrate13HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
469  meCrate13HTRStatus_ ->setAxisTitle("Slot #",1);
471 
472  type = "HTR Status Word - Crate 14";
473  meCrate14HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
474  meCrate14HTRStatus_ ->setAxisTitle("Slot #",1);
476 
477  type = "HTR Status Word - Crate 15";
478  meCrate15HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
479  meCrate15HTRStatus_ ->setAxisTitle("Slot #",1);
481 
482  type = "HTR Status Word - Crate 17";
483  meCrate17HTRStatus_ = dbe_->book2D(type,type,40,-0.25,19.75,maxbits,-0.5,maxbits-0.5);
484  meCrate17HTRStatus_ ->setAxisTitle("Slot #",1);
486 
487  type = "HTR UnSuppressed Event Fractions";
488  meUSFractSpigs_ = dbe_->book1D(type,type,481,0,481);
489  for(int f=0; f<NUMDCCS; f++) {
490  snprintf(label, 256, "FED 7%02d", f);
492  for(int s=1; s<HcalDCCHeader::SPIGOT_COUNT; s++) {
493  snprintf(label, 256, "sp%02d", s);
494  meUSFractSpigs_->setBinLabel(1+(HcalDCCHeader::SPIGOT_COUNT*f)+s, label);}}
495 
496  // Firmware version
497  type = "HTR Firmware Version";
498  // Maybe change to Profile histo eventually
499  //meHTRFWVersion_ = dbe_->bookProfile(type,type,18,-0.5,17.5,245,10.0,255.0,"");
500  meHTRFWVersion_ = dbe_->book2D(type,type ,18,-0.5,17.5,180,75.5,255.5);
501  meHTRFWVersion_->setAxisTitle("Crate #",1);
502  meHTRFWVersion_->setAxisTitle("HTR Firmware Version",2);
503 
504  type = "HTR Fiber 1 Orbit Message BCNs";
505  meFib1OrbMsgBCN_= dbe_->book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
506  type = "HTR Fiber 2 Orbit Message BCNs";
507  meFib2OrbMsgBCN_= dbe_->book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
508  type = "HTR Fiber 3 Orbit Message BCNs";
509  meFib3OrbMsgBCN_= dbe_->book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
510  type = "HTR Fiber 4 Orbit Message BCNs";
511  meFib4OrbMsgBCN_= dbe_->book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
512  type = "HTR Fiber 5 Orbit Message BCNs";
513  meFib5OrbMsgBCN_= dbe_->book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
514  type = "HTR Fiber 6 Orbit Message BCNs";
515  meFib6OrbMsgBCN_= dbe_->book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
516  type = "HTR Fiber 7 Orbit Message BCNs";
517  meFib7OrbMsgBCN_= dbe_->book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
518  type = "HTR Fiber 8 Orbit Message BCNs";
519  meFib8OrbMsgBCN_= dbe_->book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
520 
521 }
type
Definition: HCALResponse.h:21
MonitorElement * meUSFractSpigs_
MonitorElement * meBCN_
MonitorElement * meCDFErrorFound_
MonitorElement * meCrate7HTRStatus_
void label_xFEDs(MonitorElement *me_ptr, int xbins)
MonitorElement * meCrate4HTRStatus_
MonitorElement * meEvtNumberSynch_
#define TWO_CHANN
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:722
MonitorElement * meCrate3HTRStatus_
MonitorElement * meFib5OrbMsgBCN_
#define THREE_FED
MonitorElement * ProblemsVsLB_HF
MonitorElement * meBCNCheck_
#define NUMDCCS
MonitorElement * meCrate17HTRStatus_
MonitorElement * meChannSumm_DataIntegrityCheck_
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)
MonitorElement * meOrNCheck_
MonitorElement * meCrate2HTRStatus_
void label_xChanns(MonitorElement *me_ptr, int xbins)
MonitorElement * meBCNSynch_
MonitorElement * meCrate14HTRStatus_
void labelHTRBits(MonitorElement *mePlot, unsigned int axisType)
MonitorElement * meCrate15HTRStatus_
MonitorElement * meDataFlowInd_
void Fill(long long x)
#define TWO__SPGT
MonitorElement * meCrate6HTRStatus_
MonitorElement * ProblemsVsLB_HBHEHF
MonitorElement * ProblemsVsLB_HB
MonitorElement * HTR_StatusWd_HO
MonitorElement * meCrate5HTRStatus_
MonitorElement * meCrate0HTRStatus_
MonitorElement * meChann_DataIntegrityCheck_[NUMDCCS]
MonitorElement * meOrNSynch_
double f[11][100]
void label_ySpigots(MonitorElement *me_ptr, int ybins)
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1036
MonitorElement * meCrate12HTRStatus_
MonitorElement * meFibBCN_
MonitorElement * meDCCEventFormatError_
MonitorElement * medccBCN_
#define TWO___FED
MonitorElement * HTR_StatusWd_HBHE
MonitorElement * meFib4OrbMsgBCN_
MonitorElement * meInvHTRData_
MonitorElement * meEvtNCheck_
MonitorElement * meBCNwhenOrNDiff_
MonitorElement * meFib1OrbMsgBCN_
MonitorElement * meCrate11HTRStatus_
MonitorElement * meFib8OrbMsgBCN_
MonitorElement * meLRBDataCorruptionIndicators_
MonitorElement * meCrate1HTRStatus_
MonitorElement * meStatusWdCrate_
MonitorElement * meFib7OrbMsgBCN_
MonitorElement * ProblemsVsLB_HE
#define THREE_SPG
static const int SPIGOT_COUNT
Definition: HcalDCCHeader.h:21
MonitorElement * meEvFragSize_
MonitorElement * HTR_StatusWd_HF
TProfile * getTProfile(void) const
MonitorElement * meFib2OrbMsgBCN_
MonitorElement * meEvFragSize2_
tuple cout
Definition: gather_cfg.py:121
MonitorElement * meDCCVersion_
MonitorElement * ProblemsVsLB_HO
MonitorElement * meCrate10HTRStatus_
MonitorElement * ProblemsVsLB
MonitorElement * meHTRFWVersion_
MonitorElement * meFEDRawDataSizes_
MonitorElement * bookInt(const char *name)
Book int.
Definition: DQMStore.cc:629
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:850
MonitorElement * mefedEntries_
virtual void setup(void)
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * meHalfHTRDataCorruptionIndicators_
MonitorElement * meFib3OrbMsgBCN_
MonitorElement * meFib6OrbMsgBCN_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:434
MonitorElement * meCrate9HTRStatus_
void HcalRawDataMonitor::stashHDI ( int  thehash,
HcalDetId  thehcaldetid 
)
protected

Definition at line 1351 of file HcalRawDataMonitor.cc.

References hashedHcalDetId_, HTRCHANMAX, NUMDCCS, and NUMSPIGS.

Referenced by beginRun().

1351  {
1352  //Let's not allow indexing off the array...
1353  if ((thehash<0)||(thehash>(NUMDCCS*NUMSPIGS*HTRCHANMAX)))return;
1354  //...but still do the job requested.
1355  hashedHcalDetId_[thehash] = thehcaldetid;
1356 }
#define HTRCHANMAX
#define NUMDCCS
HcalDetId hashedHcalDetId_[NUMDCCS *NUMSPIGS *HTRCHANMAX]
#define NUMSPIGS
void HcalRawDataMonitor::unpack ( const FEDRawData raw)
protected

check that all HTRs have the same L1A number.

check that all HTRs have the same BCN

check that all HTRs have the same OrN

branch point between 2006-2011 data format and 2012+ data format

Definition at line 629 of file HcalRawDataMonitor.cc.

References HcalDCCHeader::BOEshouldBe5Always(), HcalDCCHeader::BOEshouldBeZeroAlways(), HcalQIESample::capid(), CDFReservedBits_it, CDFReservedBits_list, CDFvers_it, CDFversionNumber_list, Chann_DataIntegrityCheck_, ChannSumm_DataIntegrityCheck_, FEDTrailer::check(), HcalHTRData::check(), gather_cfg::cout, FEDRawData::data(), DataFlowInd_, HcalHTRData::dataPointers(), DCCEvtFormat_it, DCCEvtFormat_list, HcalBaseDQMonitor::debug_, HcalQIESample::dv(), HcalQIESample::er(), HcalQIESample::fiber(), HcalQIESample::fiberChan(), MonitorElement::Fill(), HcalObjRepresent::Fill(), HcalDCCHeader::getAcceptTimeTTS(), HcalDCCHeader::getBunchId(), HcalHTRData::getBunchNumber(), HcalDCCHeader::getBxMismatchWithDCC(), HcalDCCHeader::getCDFversionNumber(), HcalDCCHeader::getDCCDataFormatVersion(), HcalDCCHeader::getDCCEventNumber(), HcalHTRData::getErrorsWord(), HcalHTRData::getExtHdr6(), HcalHTRData::getExtHdr7(), HcalHTRData::getFib1OrbMsgBCN(), HcalHTRData::getFib2OrbMsgBCN(), HcalHTRData::getFib3OrbMsgBCN(), HcalHTRData::getFib4OrbMsgBCN(), HcalHTRData::getFib5OrbMsgBCN(), HcalHTRData::getFib6OrbMsgBCN(), HcalHTRData::getFib7OrbMsgBCN(), HcalHTRData::getFib8OrbMsgBCN(), HcalHTRData::getFirmwareRevision(), HcalHTRData::getFormatVersion(), HcalHTRData::getL1ANumber(), HcalDCCHeader::getLRBErrorBits(), HcalHTRData::getNDD(), HcalDCCHeader::getOrbitNumber(), HcalHTRData::getOrbitNumber(), HcalHTRData::getRawData(), HcalHTRData::getRawLength(), HcalDCCHeader::getSlink64ReservedBits(), HcalDCCHeader::getSourceId(), HcalDCCHeader::getSpigotCRCError(), HcalDCCHeader::getSpigotData(), HcalDCCHeader::getSpigotDataLength(), HcalDCCHeader::getSpigotDataTruncated(), HcalDCCHeader::getSpigotEnabled(), HcalDCCHeader::getSpigotErrorBits(), HcalDCCHeader::getSpigotPresent(), HcalDCCHeader::getSpigotSummary(), HcalDCCHeader::getSpigotValid(), HalfHTRDataCorruptionIndicators_, hashedHcalDetId_, hashup(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HTR_StatusWd_HBHE, HTR_StatusWd_HF, HTR_StatusWd_HO, HTRPrint(), HcalHTRData::htrSlot(), HcalHTRData::htrTopBottom(), i, HcalHTRData::is_channel_header(), HcalHTRData::isHistogramEvent(), FEDTrailer::lenght(), LRBDataCorruptionIndicators_, mapChannproblem(), mapDCCproblem(), mapHTRproblem(), max(), meBCN_, meBCNCheck_, meBCNSynch_, meBCNwhenOrNDiff_, meCDFErrorFound_, meCrate0HTRStatus_, meCrate10HTRStatus_, meCrate11HTRStatus_, meCrate12HTRStatus_, meCrate13HTRStatus_, meCrate14HTRStatus_, meCrate15HTRStatus_, meCrate17HTRStatus_, meCrate1HTRStatus_, meCrate2HTRStatus_, meCrate3HTRStatus_, meCrate4HTRStatus_, meCrate5HTRStatus_, meCrate6HTRStatus_, meCrate7HTRStatus_, meCrate9HTRStatus_, medccBCN_, meDCCEventFormatError_, meDCCVersion_, meEvFragSize2_, meEvFragSize_, meEvtNCheck_, meEvtNumberSynch_, mefedEntries_, meFEDRawDataSizes_, meFib1OrbMsgBCN_, meFib2OrbMsgBCN_, meFib3OrbMsgBCN_, meFib4OrbMsgBCN_, meFib5OrbMsgBCN_, meFib6OrbMsgBCN_, meFib7OrbMsgBCN_, meFib8OrbMsgBCN_, meFibBCN_, meHTRFWVersion_, meInvHTRData_, meOrNCheck_, meOrNSynch_, meStatusWdCrate_, meUSFractSpigs_, min, FEDTrailer::moreTrailers(), NULL, HcalQIESample::raw(), HcalHTRData::readoutVMECrateId(), FEDRawData::size(), HcalDCCHeader::SPIGOT_COUNT, DetId::subdetId(), HcalDCCHeader::thereIsASecondCDFHeaderWord(), HcalDCCHeader::thereIsAThirdCDFHeaderWord(), FEDTrailer::ttsBits(), HcalDetId::Undefined, HcalHTRData::unpack_per_channel_header(), and UScount.

Referenced by processEvent().

629  {
630 
631  // get the DCC header & trailer (or bail out)
632  const HcalDCCHeader* dccHeader=(const HcalDCCHeader*)(raw.data());
633  if(!dccHeader) return;
634  unsigned char* trailer_ptr = (unsigned char*) (raw.data()+raw.size()-sizeof(uint64_t));
635  FEDTrailer trailer = FEDTrailer(trailer_ptr);
636 
637  // FED id declared in the header
638  int dccid=dccHeader->getSourceId();
639  //Force 0<= dcc_ <= 31
640  int dcc_=std::max(0,dccid-700);
641  dcc_ = std::min(dcc_,31);
642  if(debug_>1) std::cout << "DCC " << dccid << std::endl;
643  uint64_t* dccfw= (uint64_t*) (raw.data()+(sizeof(uint64_t)*2)); //64-bit DAQ word number 2 (from 0)
644  int dcc_fw = ( ((*dccfw)>>(6*8))&0x00000000000000FF ); //Shift right 6 bytes, get that low byte.
645  meDCCVersion_ -> Fill(dccid,dcc_fw);
646 
647  //Before all else, how much data are we dealing with here?
648  uint64_t* lastDataWord = (uint64_t*) ( raw.data()+(raw.size())-(1*sizeof(uint64_t)) );
649  int EvFragLength = (int) (*lastDataWord>>(4*8)) & 0x0000000000FFFFFF ; //Shift right 4 bytes, get low 3 bytes.
650  meFEDRawDataSizes_->Fill(EvFragLength*8); //# 64-bit DAQ words *8 = # bytes.
651  meEvFragSize_ ->Fill(dccid, EvFragLength*8); //# 64-bit DAQ words *8 = # bytes.
652  meEvFragSize2_ ->Fill(dccid, EvFragLength*8); //# 64-bit DAQ words *8 = # bytes.
653 
654  //Orbit, BunchCount, and Event Numbers
655  unsigned long dccEvtNum = dccHeader->getDCCEventNumber();
656  int dccBCN = dccHeader->getBunchId();
657  //Mask down to 5 bits, since only used for comparison to HTR's five bit number...
658  unsigned int dccOrN = (unsigned int) (dccHeader->getOrbitNumber() & 0x0000001F);
659  medccBCN_ -> Fill(dccBCN);
660 
662  bool CDFProbThisDCC = false;
663  /* 1 */ //There should always be a second CDF header word indicated.
664  if (!dccHeader->thereIsASecondCDFHeaderWord()
665  //TESTME_HCALRAWDATA//
666  //|| ((dccid==702)&&(tevt_%2==0))
667  ) {
668  meCDFErrorFound_->Fill(dccid, 1);
669  CDFProbThisDCC = true;
670  }
671  /* 2 */ //Make sure a reference CDF Version value has been recorded for this dccid
672  CDFvers_it = CDFversionNumber_list.find(dccid);
673  if (CDFvers_it == CDFversionNumber_list.end()) {
674  CDFversionNumber_list.insert(std::pair<int,short>
675  (dccid,dccHeader->getCDFversionNumber() ) );
676  CDFvers_it = CDFversionNumber_list.find(dccid);
677  } // then check against it.
678  if (dccHeader->getCDFversionNumber()!= CDFvers_it->second) {
679  meCDFErrorFound_->Fill(dccid,2);
680  CDFProbThisDCC = true;
681  }
682  /* 3 */ //There should always be a '5' in CDF Header word 0, bits [63:60]
683  if (dccHeader->BOEshouldBe5Always()!=5) {
684  meCDFErrorFound_->Fill(dccid, 3);
685  CDFProbThisDCC = true;
686  }
687  /* 4 */ //There should never be a third CDF Header word indicated.
688  if (dccHeader->thereIsAThirdCDFHeaderWord()) {
689  meCDFErrorFound_->Fill(dccid, 4);
690  CDFProbThisDCC = true;
691  }
692  /* 5 */ //Make sure a reference value of Reserved Bits has been recorded for this dccid
695  CDFReservedBits_list.insert(std::pair<int,short>
696  (dccid,dccHeader->getSlink64ReservedBits() & 0x0000FFFF ) );
698  } // then check against it.
699  if (((int) dccHeader->getSlink64ReservedBits() & 0x0000FFFF ) != CDFReservedBits_it->second) {
700  meCDFErrorFound_->Fill(dccid,5);
701  //CDFProbThisDCC = true;
702  }
703  /* 6 */ //There should always be 0x0 in CDF Header word 1, bits [63:60]
704  if (dccHeader->BOEshouldBeZeroAlways() !=0) {
705  meCDFErrorFound_->Fill(dccid, 6);
706  CDFProbThisDCC = true;
707  }
708  /* 7 */ //There should only be one trailer
709  if (trailer.moreTrailers()) {
710  meCDFErrorFound_->Fill(dccid, 7);
711  CDFProbThisDCC = true;
712  }
713  // if trailer.
714  /* 8 */ //CDF Trailer [55:30] should be the # 64-bit words in the EvFragment
715  if ((uint64_t) raw.size() != ( (uint64_t) trailer.lenght()*sizeof(uint64_t)) ) //The function name is a typo! Awesome.
716  {
717  meCDFErrorFound_->Fill(dccid, 8);
718  CDFProbThisDCC = true;
719  }
720  /* 9 */ //There is a rudimentary sanity check built into the FEDTrailer class
721  if (!trailer.check()) {
722  meCDFErrorFound_->Fill(dccid, 9);
723  CDFProbThisDCC = true;
724  }
725  if (CDFProbThisDCC) {
726  //Set the problem flag for the ieta, iphi of any channel in this DCC
727  mapDCCproblem(dcc_);
728  if (debug_>0) std::cout <<"CDFProbThisDCC"<<std::endl;
729  }
730 
731  mefedEntries_->Fill(dccid);
732 
733  CDFProbThisDCC = false; // reset for the next go-round.
734 
735  char CRC_err;
736  for(int i=0; i<HcalDCCHeader::SPIGOT_COUNT; i++) {
737  CRC_err = ((dccHeader->getSpigotSummary(i) >> 10) & 0x00000001);
738  if (CRC_err) {
739  mapDCCproblem(dcc_);
740  //Set the problem flag for the ieta, iphi of any channel in this DCC
741  if (debug_>0) std::cout <<"HTR Problem: CRC_err"<<std::endl;
742  }
743  }
744 
745  // The DCC TTS state at event-sending time
746  char TTS_state = (char)trailer.ttsBits();
747  // The DCC TTS state at time L1A received (event enqueued to be built)
748  char L1AtimeTTS_state=(char) dccHeader->getAcceptTimeTTS();
749  if (TTS_state==L1AtimeTTS_state) ;//party
750 
752  /* 1 */ //Make sure a reference value of the DCC Event Format version has been noted for this dcc.
753  DCCEvtFormat_it = DCCEvtFormat_list.find(dccid);
754  if (DCCEvtFormat_it == DCCEvtFormat_list.end()) {
755  DCCEvtFormat_list.insert(std::pair<int,short>
756  (dccid,dccHeader->getDCCDataFormatVersion() ) );
757  DCCEvtFormat_it = DCCEvtFormat_list.find(dccid);
758  } // then check against it.
759  if (dccHeader->getDCCDataFormatVersion()!= DCCEvtFormat_it->second) {
760  meDCCEventFormatError_->Fill(dccid,1);
761  mapDCCproblem(dcc_);
762  if (debug_>0)std::cout <<"DCC Error Type 1"<<std::endl;
763  }
764  /* 2 */ //Check for ones where there should always be zeros
765  if (false) //dccHeader->getByte1Zeroes() || dccHeader->getByte3Zeroes() || dccHeader->getByte567Zeroes())
766  {
767  meDCCEventFormatError_->Fill(dccid,2);
768  mapDCCproblem(dcc_);
769  if (debug_>0)std::cout <<"DCC Error Type 2"<<std::endl;
770  }
771  /* 3 */ //Check that there are zeros following the HTR Status words.
772  int SpigotPad = HcalDCCHeader::SPIGOT_COUNT;
773  if ( (((uint64_t) dccHeader->getSpigotSummary(SpigotPad) )
774  | ((uint64_t) dccHeader->getSpigotSummary(SpigotPad+1))
775  | ((uint64_t) dccHeader->getSpigotSummary(SpigotPad+2))) != 0){
776  meDCCEventFormatError_->Fill(dccid,3);
777  mapDCCproblem(dcc_);
778  if (debug_>0)std::cout <<"DCC Error Type 3"<<std::endl;
779  }
780  /* 4 */ //Check that there are zeros following the HTR Payloads, if needed.
781  int nHTR32BitWords=0;
782  // add up all the declared HTR Payload lengths
783  for(int i=0; i<HcalDCCHeader::SPIGOT_COUNT; i++) {
784  nHTR32BitWords += dccHeader->getSpigotDataLength(i); }
785  // if it's an odd number, check for the padding zeroes
786  if (( nHTR32BitWords % 2) == 1) {
787  uint64_t* lastDataWord = (uint64_t*) ( raw.data()+raw.size()-(2*sizeof(uint64_t)) );
788  if ((*lastDataWord>>32) != 0x00000000){
789  meDCCEventFormatError_->Fill(dccid, 4);
790  mapDCCproblem(dcc_);
791  if (debug_>0)std::cout <<"DCC Error Type 4"<<std::endl;
792  }
793  }
794 
795  //unsigned char HTRErrorList=0;
796  //for(int j=0; j<HcalDCCHeader::SPIGOT_COUNT; j++) {
797  // HTRErrorList=dccHeader->getSpigotErrorBits(j);
798  //}
799 
800  // These will be used in FED-vs-spigot 2D Histograms
801  const int fed3offset = 1 + (4*dcc_); //3 bins, plus one of margin, each DCC
802  const int fed2offset = 1 + (3*dcc_); //2 bins, plus one of margin, each DCC
803  if (TTS_state & 0x8) /*RDY*/
804  ;
805  if (TTS_state & 0x2) /*SYN*/
806  {
807  mapDCCproblem(dcc_);
808  if (debug_>0)std::cout <<"TTS_state Error:sync"<<std::endl;
809  }
810  //Histogram per-Spigot bits from the DCC Header
811  int WholeErrorList=0;
812  for(int spigot=0; spigot<HcalDCCHeader::SPIGOT_COUNT; spigot++) {
813  if (!( dccHeader->getSpigotEnabled((unsigned int) spigot)) )
814  continue; //skip when not enabled
815  // This will be used in FED-vs-spigot 2D Histograms
816  const int spg3offset = 1 + (4*spigot); //3 bins, plus one of margin, each spigot
817 
818  if (TTS_state & 0x4) /*BSY*/
819  ++DataFlowInd_[fed2offset+1][spg3offset+1];
820  if (TTS_state & 0x1) /*OFW*/
821  ++DataFlowInd_[fed2offset+1][spg3offset+2];
822 
823  WholeErrorList=dccHeader->getLRBErrorBits((unsigned int) spigot);
824  if (WholeErrorList!=0) {
825  if ((WholeErrorList>>0)&0x01) //HammingCode Corrected -- Not data corruption!
826  DataFlowInd_[fed2offset-1][spg3offset-1]++;
827  if (((WholeErrorList>>1)&0x01)!=0) {//HammingCode Uncorrected Error
828  LRBDataCorruptionIndicators_[fed3offset+1][spg3offset+2]++;
829  mapHTRproblem(dcc_,spigot);
830  }
831  if (((WholeErrorList>>2)&0x01)!=0) {//Truncated data coming into LRB
832  LRBDataCorruptionIndicators_[fed3offset+2][spg3offset+2]++;
833  mapHTRproblem(dcc_,spigot);
834  }
835  if (((WholeErrorList>>3)&0x01)!=0) {//FIFO Overflow
836  LRBDataCorruptionIndicators_[fed3offset+1][spg3offset+1]++;
837  mapHTRproblem(dcc_,spigot);
838  }
839  if (((WholeErrorList>>4)&0x01)!=0) {//ID (EvN Mismatch), htr payload metadeta
840  LRBDataCorruptionIndicators_[fed3offset+2][spg3offset+1]++;
841  mapHTRproblem(dcc_,spigot);
842  }
843  if (((WholeErrorList>>5)&0x01)!=0) {//STatus: hdr/data/trlr error
844  LRBDataCorruptionIndicators_[fed3offset+1][spg3offset+0]++;
845  mapHTRproblem(dcc_,spigot);
846  }
847  if (((WholeErrorList>>6)&0x01)!=0) {//ODD 16-bit word count from HTR
848  LRBDataCorruptionIndicators_[fed3offset+2][spg3offset+0]++;
849  mapHTRproblem(dcc_,spigot);
850  }
851  }
852  if (!dccHeader->getSpigotPresent((unsigned int) spigot)){
853  LRBDataCorruptionIndicators_[fed3offset+0][spg3offset+2]++; //Enabled, but data not present!
854  mapHTRproblem(dcc_,spigot);
855  if (debug_>0)std::cout <<"HTR Problem: Spigot Not Present"<<std::endl;
856  } else {
857  if ( dccHeader->getSpigotDataTruncated((unsigned int) spigot)) {
858  LRBDataCorruptionIndicators_[fed3offset-1][spg3offset+0]++; // EventBuilder truncated babbling LRB
859  mapHTRproblem(dcc_,spigot);
860  if (debug_>0)std::cout <<"HTR Problem: Spigot Data Truncated"<<std::endl;
861  }
862  if ( dccHeader->getSpigotCRCError((unsigned int) spigot)) {
863  LRBDataCorruptionIndicators_[fed3offset+0][spg3offset+0]++;
864  mapHTRproblem(dcc_,spigot);
865  }
866  } //else spigot marked "Present"
867  if (dccHeader->getSpigotDataLength(spigot) <(unsigned long)4) {
868  LRBDataCorruptionIndicators_[fed3offset+0][spg3offset+1]++; //Lost HTR Data for sure.
869  mapHTRproblem(dcc_,spigot);
870  if (debug_>0)std::cout <<"HTR Problem: Spigot Data Length too small"<<std::endl;
871  }
872  }
873 
874  // Walk through the HTR data...
875  HcalHTRData htr;
876  for (int spigot=0; spigot<HcalDCCHeader::SPIGOT_COUNT; spigot++) {
877  const int spg3offset = 1 + (4*spigot); //3 bins, plus one of margin, each spigot
878  const int spg2offset = 1 + (3*spigot); //3 bins, plus one of margin, each spigot
879  if (!dccHeader->getSpigotPresent(spigot)) continue;
880 
881  // Load the given decoder with the pointer and length from this spigot.
882  // i.e. initialize htr, within dcc raw data size.
883  dccHeader->getSpigotData(spigot,htr, raw.size());
884  const unsigned short* HTRraw = htr.getRawData();
885 
886  // check min length, correct wordcount, empty event, or total length if histo event.
887  if (!htr.check()) {
888  meInvHTRData_ -> Fill(spigot,dccid);
889  mapHTRproblem(dcc_,spigot);
890  if (debug_>0)std::cout <<"HTR Problem: HTR check fails"<<std::endl;
891  }
892 
893  unsigned short HTRwdcount = htr.getRawLength();
894 
895  // Size checks for internal consistency
896  // getNTP(), get NDD() seems to be mismatched with format. Manually:
897  int NTP = ((htr.getExtHdr6() >> 8) & 0x00FF);
898  int NDAQ = (HTRraw[htr.getRawLength() - 4] & 0x7FF);
899 
900  if ( ! ((HTRwdcount != 8) ||
901  (HTRwdcount != 12 + NTP + NDAQ) ||
902  (HTRwdcount != 20 + NTP + NDAQ) )) {
903  ++HalfHTRDataCorruptionIndicators_[fed3offset+2][spg3offset+0];
904  mapHTRproblem(dcc_,spigot);
905  if (debug_>0)std::cout <<"HTR Problem: NTP+NDAQ size consistency check fails"<<std::endl;
906  //incompatible Sizes declared. Skip it.
907  continue; }
908  bool EE = ((dccHeader->getSpigotErrorBits(spigot) >> 2) & 0x01);
909  if (EE) {
910  if (HTRwdcount != 8) { //incompatible Sizes declared. Skip it.
911  ++HalfHTRDataCorruptionIndicators_[fed3offset+2][spg3offset+1];
912  if (debug_>0)std::cout <<"HTR Problem: HTRwdcount !=8"<<std::endl;
913  }
914  DataFlowInd_[fed2offset+0][spg3offset+0]++;
915  continue;}
916  else{ //For non-EE, both CompactMode and !CompactMode
917  bool CM = (htr.getExtHdr7() >> 14)&0x0001;
918  int paddingsize = ((NDAQ+NTP)%2); //Extra padding to make HTRwdcount even
919  if (( CM && ( (HTRwdcount-NDAQ-NTP-paddingsize) != 12) )
920  ||
921  (!CM && ( (HTRwdcount-NDAQ-NTP-paddingsize) != 20) ) ) { //incompatible Sizes declared. Skip it.
922  ++HalfHTRDataCorruptionIndicators_[fed3offset+2][spg3offset+1];
923  mapHTRproblem(dcc_,spigot);
924  continue;} }
925 
926  if (htr.isHistogramEvent()) continue;
927 
928  //We trust the data now. Finish with the check against DCCHeader
929  unsigned int htrOrN = htr.getOrbitNumber();
930  unsigned int htrBCN = htr.getBunchNumber();
931  unsigned int htrEvtN = htr.getL1ANumber();
932  meBCN_->Fill(htrBCN); //The only periodic number for whole events.
933 
934  if (( (htrOrN == dccOrN ) &&
935  (htrBCN == (unsigned int) dccBCN) )
936  != (dccHeader->getBxMismatchWithDCC(spigot)) ){
937  meDCCEventFormatError_->Fill(dccid,5);
938  mapHTRproblem(dcc_,spigot);
939  if (debug_>0)std::cout <<"Orbit or BCN HTR/DCC mismatch"<<std::endl;
940  }
941  if ( (htrEvtN == dccEvtNum) !=
942  dccHeader->getSpigotValid(spigot) ) {
943  meDCCEventFormatError_->Fill(dccid,5);
944  mapHTRproblem(dcc_,spigot);
945  if (debug_>0)std::cout <<"DCC invalid spigot"<<std::endl;
946  }
947  int cratenum = htr.readoutVMECrateId();
948  float slotnum = htr.htrSlot() + 0.5*htr.htrTopBottom();
949  if (debug_ > 0) HTRPrint(htr,debug_);
950  unsigned int htrFWVer = htr.getFirmwareRevision() & 0xFF;
951  meHTRFWVersion_->Fill(cratenum,htrFWVer);
952 
954  int EvtNdiff = htrEvtN - dccEvtNum;
955  if (EvtNdiff!=0) {
956  meEvtNumberSynch_->Fill(dccid,spigot);
957  mapHTRproblem(dcc_,spigot);
958  meEvtNCheck_->Fill(EvtNdiff);
959  if (debug_ == 1)std::cout << "++++ Evt # out of sync, ref, this HTR: "<< dccEvtNum << " "<<htrEvtN <<std::endl;
960  }
961 
963  int BCNdiff = htrBCN-dccBCN;
964  if ((BCNdiff!=0)
965  //TESTME_HCALRAWDATA//
966  //|| ((dccid==727) && (spigot==8) && (dccEvtNum%3==0))
967  ){
968  meBCNSynch_->Fill(dccid,spigot);
969  mapHTRproblem(dcc_,spigot);
970  meBCNCheck_->Fill(BCNdiff);
971  if (debug_==1)std::cout << "++++ BCN # out of sync, ref, this HTR: "<< dccBCN << " "<<htrBCN <<std::endl;
972  }
973 
975  int OrNdiff = htrOrN-dccOrN;
976  if (OrNdiff!=0) {
977  meOrNSynch_->Fill(dccid,spigot);
978  mapHTRproblem(dcc_,spigot);
979  meOrNCheck_->Fill(OrNdiff);
980  meBCNwhenOrNDiff_->Fill(htrBCN); // Are there special BCN where OrN mismatched occur? Let's see.
981  if (debug_==1)std::cout << "++++ OrN # out of sync, ref, this HTR: "<< dccOrN << " "<<htrOrN <<std::endl;
982  }
983 
984  bool htrUnSuppressed=(HTRraw[6]>>15 & 0x0001);
985  if (htrUnSuppressed) {
986  UScount[dcc_][spigot]++;
987  int here=1+(HcalDCCHeader::SPIGOT_COUNT*(dcc_))+spigot;
988  meUSFractSpigs_->Fill(here,
989  ((double)UScount[dcc_][spigot]));}
990 
991  MonitorElement* tmpErr = 0;
992  HcalDetId HDI = hashedHcalDetId_[hashup(dcc_,spigot)];
993  if (HDI != HcalDetId::Undefined) {
994  switch (HDI.subdetId()) {
995  case (HcalBarrel): {
996  tmpErr = HTR_StatusWd_HBHE;
997  } break;
998  case (HcalEndcap): {
999  tmpErr = HTR_StatusWd_HBHE;
1000  } break;
1001  case (HcalOuter): {
1002  tmpErr = HTR_StatusWd_HO;
1003  } break;
1004  case (HcalForward): {
1005  tmpErr = HTR_StatusWd_HF;
1006  } break;
1007  default: break;
1008  }
1009  }
1010 
1011  int errWord = htr.getErrorsWord() & 0xFFFF;
1012  if ( (((dccHeader->getSpigotSummary( spigot))>>24)&0x00FF)
1013  != (errWord&0x00FF) ){
1014  meDCCEventFormatError_->Fill(dccid,6);//Low 8 bits miscopied into DCCHeader
1015  mapHTRproblem(dcc_,spigot);
1016  if (debug_>0)std::cout <<"DCC spigot summary error or HTR error word"<<std::endl;
1017  //What other problems may lurk? Spooky.
1018  }
1019  if(tmpErr!=NULL){
1020  for(int i=0; i<16; i++){
1021  int errbit = errWord&(0x01<<i);
1022  // Bit 15 should always be 1; consider it an error if it isn't.
1023  if (i==15) errbit = errbit - 0x8000;
1024  if (errbit !=0) {
1025  tmpErr->Fill(i);
1026  //Only certain bits indicate corrupted data:
1027  switch (i) {
1028  case (14): //CT (obsolete Calibration Trigger scheme used)
1029  HalfHTRDataCorruptionIndicators_[fed3offset+0][spg3offset+2]++;
1030  mapHTRproblem(dcc_,spigot);
1031  if (debug_>0)std::cout <<"HTR Problem: Case 14"<<std::endl;
1032  break;
1033  case (13): //HM
1034  HalfHTRDataCorruptionIndicators_[fed3offset+0][spg3offset+1]++;
1035  mapHTRproblem(dcc_,spigot);
1036  if (debug_>0)std::cout <<"HTR Problem: Case 13"<<std::endl;
1037  break;
1038  case (12): //TM
1039  HalfHTRDataCorruptionIndicators_[fed3offset+0][spg3offset+0]++;
1040  mapHTRproblem(dcc_,spigot);
1041  if (debug_>0)std::cout <<"HTR Problem: Case 12"<<std::endl;
1042  break;
1043  case ( 8): //BE
1044  HalfHTRDataCorruptionIndicators_[fed3offset+1][spg3offset+2]++;
1045  mapHTRproblem(dcc_,spigot);
1046  if (debug_>0)std::cout <<"HTR Problem: Case 8"<<std::endl;
1047  break;
1048  case (15): //b15
1049  HalfHTRDataCorruptionIndicators_[fed3offset+1][spg3offset+1]++;
1050  mapHTRproblem(dcc_,spigot);
1051  break;
1052  case ( 7): //CK
1053  HalfHTRDataCorruptionIndicators_[fed3offset+1][spg3offset+0]++;
1054  mapHTRproblem(dcc_,spigot);
1055  if (debug_>0)std::cout <<"HTR Problem: Case 7"<<std::endl;
1056  break;
1057  //\\case ( 5): //LW removed 2010.02.16
1058  //\\ HalfHTRDataCorruptionIndicators_[fed3offset+2][spg3offset+2]++;
1059  //\\ //Sometimes set spuriously at startup, per-fiber, .: Leniency: 8
1060  //\\ if (HalfHTRDataCorruptionIndicators_[fed3offset+2][spg3offset+2] > 8) {
1061  //\\ if (debug_>0)std::cout <<"HTR Problem: Case 5"<<std::endl;
1062  //\\ break;
1063  //\\ }
1064  case ( 3): //L1 (previous L1A violated trigger rules)
1065  DataFlowInd_[fed2offset+1][spg3offset+0]++; break;
1066  case ( 1): //BZ
1067  DataFlowInd_[fed2offset+0][spg3offset+1]++; break;
1068  case ( 0): //OW
1069  DataFlowInd_[fed2offset+0][spg3offset+2]++;
1070  default: break;
1071  }
1072  meStatusWdCrate_->Fill(cratenum,i);
1073  if (cratenum == 0) meCrate0HTRStatus_ -> Fill(slotnum,i);
1074  else if (cratenum == 1) meCrate1HTRStatus_ -> Fill(slotnum,i);
1075  else if (cratenum == 2) meCrate2HTRStatus_ -> Fill(slotnum,i);
1076  else if (cratenum == 3) meCrate3HTRStatus_ -> Fill(slotnum,i);
1077  else if (cratenum == 4) meCrate4HTRStatus_ -> Fill(slotnum,i);
1078  else if (cratenum == 5) meCrate5HTRStatus_ -> Fill(slotnum,i);
1079  else if (cratenum == 6) meCrate6HTRStatus_ -> Fill(slotnum,i);
1080  else if (cratenum == 7) meCrate7HTRStatus_ -> Fill(slotnum,i);
1081  else if (cratenum == 9) meCrate9HTRStatus_ -> Fill(slotnum,i);
1082  else if (cratenum ==10)meCrate10HTRStatus_ -> Fill(slotnum,i);
1083  else if (cratenum ==11)meCrate11HTRStatus_ -> Fill(slotnum,i);
1084  else if (cratenum ==12)meCrate12HTRStatus_ -> Fill(slotnum,i);
1085  else if (cratenum ==13)meCrate13HTRStatus_ -> Fill(slotnum,i);
1086  else if (cratenum ==14)meCrate14HTRStatus_ -> Fill(slotnum,i);
1087  else if (cratenum ==15)meCrate15HTRStatus_ -> Fill(slotnum,i);
1088  else if (cratenum ==17)meCrate17HTRStatus_ -> Fill(slotnum,i);
1089  }
1090  }
1091  }
1092 
1093  // Fish out Front-End Errors from the precision channels
1094  const short unsigned int* daq_first, *daq_last, *tp_first, *tp_last;
1095  const HcalQIESample* qie_begin, *qie_end, *qie_work;
1096 
1097  // get pointers
1098  htr.dataPointers(&daq_first,&daq_last,&tp_first,&tp_last);
1099  qie_begin=(HcalQIESample*)daq_first;
1100  qie_end=(HcalQIESample*)(daq_last+1); // one beyond last..
1101 
1102  //TESTME_HCALRAWDATA//if (dccid==715 && spigot==5 && tevt_%3==0)
1103  //TESTME_HCALRAWDATA// Chann_DataIntegrityCheck_[dcc_][16][spg2offset]++;
1104 
1106  if (htr.getFormatVersion() < 6 ) { //HcalHTRData::FORMAT_VERSION_COMPACT_DATA is 6
1107 
1108  int lastcapid=-1;
1109  int samplecounter=-1;
1110  int htrchan=-1; // Valid: [1,24]
1111  int chn2offset=0;
1112  int NTS = htr.getNDD(); //number time slices, in precision channels
1113 
1114  ChannSumm_DataIntegrityCheck_ [fed2offset-1][spg2offset+0]=-NTS;//For normalization by client - NB! negative!
1115  // Run over DAQ words for this spigot
1116  for (qie_work=qie_begin; qie_work!=qie_end; qie_work++) {
1117  if (qie_work->raw()==0xFFFF) // filler word
1118  continue;
1119  //Beginning a channel's samples?
1120  if (( 1 + ( 3* (qie_work->fiber()-1) ) + qie_work->fiberChan() ) != htrchan) { //new channel starting
1121  // A fiber [1..8] carries three fiber channels, each is [0..2]. Make htrchan [1..24]
1122  htrchan= (3* (qie_work->fiber()-1) ) + qie_work->fiberChan();
1123  chn2offset = (htrchan*3)+1;
1124  --ChannSumm_DataIntegrityCheck_ [fed2offset-1][spg2offset-1];//event tally -- NB! negative!
1125  --Chann_DataIntegrityCheck_[dcc_][chn2offset-1][spg2offset-1];//event tally -- NB! negative!
1126  if (samplecounter !=-1) { //Wrap up the previous channel if there is one
1127  //Check the previous digi for number of timeslices
1128  if (((samplecounter != NTS) &&
1129  (samplecounter != 1) )
1130  //||
1131  //((htrchan==5) && (spigot==5) && (dcc_==5))
1132  )
1133  { //Wrong DigiSize
1134  ++ChannSumm_DataIntegrityCheck_ [fed2offset+0][spg2offset+0];
1135  ++Chann_DataIntegrityCheck_[dcc_][chn2offset+0][spg2offset+0];
1136  mapChannproblem(dcc_,spigot,htrchan);
1137  if (debug_)std::cout <<"mapChannelProblem: Wrong Digi Size"<<std::endl;
1138  }
1139  }
1140  //set up for this new channel
1141  lastcapid=qie_work->capid();
1142  samplecounter=1;} // fi (qie_work->fiberAndChan() != lastfibchan)
1143  else { //precision samples not the first timeslice
1144  int hope = lastcapid +1;// What capid would we hope for here?
1145  if (hope==4) hope = 0; // What capid would we hope for here?
1146  if (qie_work->capid() != hope){
1147  ++ChannSumm_DataIntegrityCheck_ [fed2offset+1][spg2offset+0];
1148  ++Chann_DataIntegrityCheck_[dcc_][chn2offset+1][spg2offset+0];
1149  mapChannproblem(dcc_,spigot,htrchan);
1150  if (debug_)std::cout <<"mapChannelProblem: Wrong Cap ID"<<std::endl;
1151  }
1152  lastcapid=qie_work->capid();
1153  samplecounter++;}
1154  //For every sample, whether the first of the channel or not, !DV, Er
1155  if (!(qie_work->dv())){
1156  ++ChannSumm_DataIntegrityCheck_ [fed2offset+0][spg2offset+1];
1157  ++Chann_DataIntegrityCheck_[dcc_][chn2offset+0][spg2offset+1];
1158  }
1159  if (qie_work->er()) { // FEE - Front End Error
1160  ++ChannSumm_DataIntegrityCheck_ [fed2offset+1][spg2offset+1];
1161  ++Chann_DataIntegrityCheck_[dcc_][chn2offset+1][spg2offset+1];
1162  mapChannproblem(dcc_,spigot,htrchan);
1163  if (debug_)std::cout <<"mapChannelProblem: FE Error"<<std::endl;
1164  }
1165  } // for (qie_work = qie_begin;...) end loop over all timesamples in this spigot
1166  //Wrap up the last channel
1167  //Check the last digi for number of timeslices
1168  if ((samplecounter != NTS) &&
1169  (samplecounter != 1) &&
1170  (samplecounter !=-1) ) { //Wrong DigiSize (unexpected num. timesamples)
1171  ++ChannSumm_DataIntegrityCheck_ [fed2offset+0][spg2offset+0];
1172  ++Chann_DataIntegrityCheck_[dcc_][chn2offset+0][spg2offset+0];
1173  mapChannproblem(dcc_,spigot,htrchan);
1174  if (debug_)std::cout <<"mapChannelProblem: Wrong Digi Size (last digi)"<<std::endl;
1175  }
1176  } else { // this is the branch for unpacking the compact data format with per-channel headers
1177  const unsigned short* ptr_header=daq_first;
1178  const unsigned short* ptr_end=daq_last+1;
1179  int flavor, error_flags, capid0, channelid;
1180  // int samplecounter=-1; // for a digisize check
1181  int htrchan=-1; // Valid: [1,24]
1182  int chn2offset=0;
1183  int NTS = htr.getNDD(); //number time slices, in precision channels
1184  int Nchan = 3; // 3 channels per fiber
1185  while (ptr_header!=ptr_end) {
1186  if (*ptr_header==0xFFFF) { // impossible filler word
1187  ptr_header++;
1188  continue;
1189  }
1190  error_flags = capid0 = channelid = 0;
1191  // unpack the header word
1192  bool isheader=HcalHTRData::unpack_per_channel_header(*ptr_header,flavor,error_flags,capid0,channelid);
1193  if (!isheader) {
1194  ptr_header++;
1195  continue;
1196  }
1197  // A fiber [1..8] carries three fiber channels, each is [0..2]. Make htrchan [1..24]
1198  int fiber = 1 + ((channelid & 0x1C) >> 2); //Mask and shift to get bits [2:4]
1199  int chan = channelid & 0x3; //bits [0:1]
1200  htrchan = ((fiber -1) * Nchan) + chan + 1; //ta-dah! I really wish everything counted from zero...
1201  chn2offset = ((htrchan-1)*3)+1; //For placing the errors on the histogram. Also very tidy. Sorry.
1202  //debug// if (error_flags) std::cout<<fiber<<","<<chan<<" = "<<htrchan<<" @"<<chn2offset<<std::endl;
1203  ChannSumm_DataIntegrityCheck_ [fed2offset-1][spg2offset-1] -= NTS;//event tally -- NB: negative!
1204  Chann_DataIntegrityCheck_[dcc_][chn2offset-1][spg2offset-1] -= NTS;//event tally -- NB: negative!
1205  if (error_flags & 2) { //a CapId violation (non correct rotation)
1206  ++ChannSumm_DataIntegrityCheck_ [fed2offset+1][spg2offset+0];
1207  ++Chann_DataIntegrityCheck_[dcc_][chn2offset+1][spg2offset+0];
1208  mapChannproblem(dcc_,spigot,htrchan);
1209  }
1210  if (error_flags & 1) { //an asserted Link-Error (Er)
1211  ++ChannSumm_DataIntegrityCheck_ [fed2offset+1][spg2offset+1];
1212  ++Chann_DataIntegrityCheck_[dcc_][chn2offset+1][spg2offset+1];
1213  mapChannproblem(dcc_,spigot,htrchan);
1214  }
1215 
1216  for (ptr_header++;
1217  ptr_header!=ptr_end && !HcalHTRData::is_channel_header(*ptr_header);
1218  ptr_header++);
1219  }
1220  }
1221  unsigned int fib1BCN = htr.getFib1OrbMsgBCN();
1222  unsigned int fib2BCN = htr.getFib2OrbMsgBCN();
1223  unsigned int fib3BCN = htr.getFib3OrbMsgBCN();
1224  unsigned int fib4BCN = htr.getFib4OrbMsgBCN();
1225  unsigned int fib5BCN = htr.getFib5OrbMsgBCN();
1226  unsigned int fib6BCN = htr.getFib6OrbMsgBCN();
1227  unsigned int fib7BCN = htr.getFib7OrbMsgBCN();
1228  unsigned int fib8BCN = htr.getFib8OrbMsgBCN();
1229  meFibBCN_->Fill(fib1BCN);
1230  meFibBCN_->Fill(fib2BCN);
1231  meFibBCN_->Fill(fib3BCN);
1232  meFibBCN_->Fill(fib4BCN);
1233  meFibBCN_->Fill(fib5BCN);
1234  meFibBCN_->Fill(fib6BCN);
1235  meFibBCN_->Fill(fib7BCN);
1236  meFibBCN_->Fill(fib8BCN);
1237  // Disable for now?
1238  meFib1OrbMsgBCN_->Fill(slotnum, cratenum, fib1BCN);
1239  meFib2OrbMsgBCN_->Fill(slotnum, cratenum, fib2BCN);
1240  meFib3OrbMsgBCN_->Fill(slotnum, cratenum, fib3BCN);
1241  meFib4OrbMsgBCN_->Fill(slotnum, cratenum, fib4BCN);
1242  meFib5OrbMsgBCN_->Fill(slotnum, cratenum, fib5BCN);
1243  meFib6OrbMsgBCN_->Fill(slotnum, cratenum, fib6BCN);
1244  meFib7OrbMsgBCN_->Fill(slotnum, cratenum, fib7BCN);
1245  meFib8OrbMsgBCN_->Fill(slotnum, cratenum, fib8BCN);
1246 
1247  } // loop over spigots
1248  return;
1249 } // loop over DCCs void HcalRawDataMonitor::unpack(
float ChannSumm_DataIntegrityCheck_[TWO___FED][TWO__SPGT]
unsigned int getFib6OrbMsgBCN() const
Definition: HcalHTRData.h:203
static const HcalDetId Undefined
Definition: HcalDetId.h:52
MonitorElement * meUSFractSpigs_
int i
Definition: DBlmapReader.cc:9
MonitorElement * meBCN_
int getSpigotSummary(int nspigot) const
Definition: HcalDCCHeader.h:84
MonitorElement * meCDFErrorFound_
int getNDD() const
Get the number of daq data samples per channel when not zero-suppressed.
Definition: HcalHTRData.cc:390
unsigned int getFib1OrbMsgBCN() const
Get the BCN of the Fiber Orbit Messages.
Definition: HcalHTRData.h:184
MonitorElement * meCrate7HTRStatus_
MonitorElement * meCrate4HTRStatus_
bool check()
Definition: FEDTrailer.cc:66
unsigned int getSlink64ReservedBits() const
Definition: HcalDCCHeader.h:50
unsigned char getSpigotErrorBits(unsigned int nspigot) const
Access the HTR error bits (decoding tbd)
unsigned int getSpigotDataLength(int nspigot) const
Definition: HcalDCCHeader.h:98
uint16_t raw() const
get the raw word
Definition: HcalQIESample.h:22
bool check() const
Check for a good event Requires a minimum length, matching wordcount and length, not an empty event...
Definition: HcalHTRData.cc:64
MonitorElement * meEvtNumberSynch_
MonitorElement * meCrate3HTRStatus_
unsigned int htrTopBottom() const
HcalElectronicsId-style HTR top/bottom (1=top/0=bottom)
Definition: HcalHTRData.cc:344
MonitorElement * meFib5OrbMsgBCN_
int getAcceptTimeTTS() const
Definition: HcalDCCHeader.h:60
int fiberChan() const
get the fiber channel number
Definition: HcalQIESample.h:36
MonitorElement * meBCNCheck_
MonitorElement * meCrate17HTRStatus_
bool getSpigotCRCError(unsigned int nspigot) const
Read the &quot;CRC-Mismatch&quot; bit for this spigot.
bool moreTrailers()
Definition: FEDTrailer.cc:39
MonitorElement * meCrate13HTRStatus_
bool dv() const
is the Data Valid bit set?
Definition: HcalQIESample.h:30
std::map< int, short > CDFversionNumber_list
MonitorElement * meOrNCheck_
HcalDetId hashedHcalDetId_[NUMDCCS *NUMSPIGS *HTRCHANMAX]
unsigned int getExtHdr6() const
Definition: HcalHTRData.h:228
#define NULL
Definition: scimark2.h:8
unsigned int getFib8OrbMsgBCN() const
Definition: HcalHTRData.h:211
#define min(a, b)
Definition: mlp_lapack.h:161
MonitorElement * meCrate2HTRStatus_
std::map< int, short > CDFReservedBits_list
MonitorElement * meBCNSynch_
bool thereIsAThirdCDFHeaderWord() const
Definition: HcalDCCHeader.h:46
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)
Definition: HcalHTRData.cc:435
MonitorElement * meCrate14HTRStatus_
int getSpigotData(int nspigot, HcalHTRData &decodeTool, int validSize) const
unsigned char getLRBErrorBits(unsigned int nspigot) const
Access the Link Receiver Board error bits (decoding tbd)
unsigned int getOrbitNumber() const
Get the HTR orbit number.
Definition: HcalHTRData.cc:326
int getFormatVersion() const
Get the version number of this event.
Definition: HcalHTRData.h:35
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:49
MonitorElement * meCrate15HTRStatus_
void Fill(long long x)
std::map< int, short >::iterator CDFReservedBits_it
unsigned int getOrbitNumber() const
Definition: HcalDCCHeader.h:48
float LRBDataCorruptionIndicators_[THREE_FED][THREE_SPG]
int getBunchId() const
Definition: HcalDCCHeader.h:36
unsigned int htrSlot() const
HcalElectronicsId-style HTR slot.
Definition: HcalHTRData.cc:340
MonitorElement * meCrate6HTRStatus_
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
Definition: HcalHTRData.h:92
bool getBxMismatchWithDCC(unsigned int nspigot) const
Read the &quot;BxID FAILS TO MATCH WITH DCC&quot; bit for this spigot.
const T & max(const T &a, const T &b)
unsigned int getFib7OrbMsgBCN() const
Definition: HcalHTRData.h:207
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * HTR_StatusWd_HO
MonitorElement * meCrate5HTRStatus_
MonitorElement * meCrate0HTRStatus_
const int getRawLength() const
Get the length of the raw data.
Definition: HcalHTRData.h:41
MonitorElement * meOrNSynch_
int fiber() const
get the fiber number
Definition: HcalQIESample.h:34
bool getSpigotPresent(unsigned int nspigot) const
Read the &quot;PRESENT&quot; bit for this spigot.
MonitorElement * meCrate12HTRStatus_
std::map< int, short >::iterator CDFvers_it
MonitorElement * meFibBCN_
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
MonitorElement * meDCCEventFormatError_
MonitorElement * medccBCN_
unsigned int getFib3OrbMsgBCN() const
Definition: HcalHTRData.h:191
MonitorElement * HTR_StatusWd_HBHE
bool getSpigotEnabled(unsigned int nspigot) const
Read the &quot;ENABLED&quot; bit for this spigot.
MonitorElement * meFib4OrbMsgBCN_
int ttsBits()
Current value of the Trigger Throttling System bitsAQ).
Definition: FEDTrailer.cc:34
MonitorElement * meInvHTRData_
int getSourceId() const
Definition: HcalDCCHeader.h:34
void mapHTRproblem(int dcc, int spigot)
MonitorElement * meEvtNCheck_
MonitorElement * meBCNwhenOrNDiff_
MonitorElement * meFib1OrbMsgBCN_
void HTRPrint(const HcalHTRData &htr, int prtlvl)
unsigned long long uint64_t
Definition: Time.h:15
MonitorElement * meCrate11HTRStatus_
int capid() const
get the Capacitor id
Definition: HcalQIESample.h:28
MonitorElement * meFib8OrbMsgBCN_
unsigned int getFib5OrbMsgBCN() const
Definition: HcalHTRData.h:199
const unsigned short * getRawData() const
Get a pointer to the raw data.
Definition: HcalHTRData.h:38
int lenght()
The length of the event fragment counted in 64-bit words including header and trailer.
Definition: FEDTrailer.cc:19
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.
Definition: HcalHTRData.cc:155
unsigned int getErrorsWord() const
Get the errors word.
Definition: HcalHTRData.h:158
float HalfHTRDataCorruptionIndicators_[THREE_FED][THREE_SPG]
MonitorElement * meCrate1HTRStatus_
unsigned int getExtHdr7() const
Definition: HcalHTRData.h:230
MonitorElement * meStatusWdCrate_
MonitorElement * meFib7OrbMsgBCN_
short BOEshouldBeZeroAlways() const
Definition: HcalDCCHeader.h:52
void mapChannproblem(int dcc, int spigot, int htrchan)
unsigned int readoutVMECrateId() const
HcalElectronicsId-style VME crate number.
Definition: HcalHTRData.cc:348
bool getSpigotValid(unsigned int nspigot) const
Read the &quot;VALID&quot; bit for this spigot; TTC EvN matched HTR EvN.
unsigned int getFib4OrbMsgBCN() const
Definition: HcalHTRData.h:195
static const int SPIGOT_COUNT
Definition: HcalDCCHeader.h:21
uint64_t UScount[NUMDCCS][NUMSPIGS]
MonitorElement * meEvFragSize_
MonitorElement * HTR_StatusWd_HF
unsigned int getBunchNumber() const
Get the HTR bunch number.
Definition: HcalHTRData.h:116
unsigned int getFib2OrbMsgBCN() const
Definition: HcalHTRData.h:187
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:29
MonitorElement * meFib2OrbMsgBCN_
float Chann_DataIntegrityCheck_[NUMDCCS][TWO_CHANN][TWO__SPGT]
MonitorElement * meEvFragSize2_
bool getSpigotDataTruncated(unsigned int nspigot) const
Read the &quot;TRUNCATED&quot; bit for this spigot; LRB truncated data (took too long)
tuple cout
Definition: gather_cfg.py:121
short getCDFversionNumber() const
Definition: HcalDCCHeader.h:32
short getDCCDataFormatVersion() const
Definition: HcalDCCHeader.h:59
MonitorElement * meDCCVersion_
std::map< int, short > DCCEvtFormat_list
MonitorElement * meCrate10HTRStatus_
unsigned int getFirmwareRevision() const
Get the HTR firmware version.
Definition: HcalHTRData.cc:408
MonitorElement * meHTRFWVersion_
MonitorElement * meFEDRawDataSizes_
unsigned short BOEshouldBe5Always() const
Definition: HcalDCCHeader.h:42
MonitorElement * mefedEntries_
float DataFlowInd_[TWO___FED][THREE_SPG]
unsigned int getL1ANumber() const
Get the HTR event number.
Definition: HcalHTRData.h:112
bool thereIsASecondCDFHeaderWord() const
Definition: HcalDCCHeader.h:30
unsigned long getDCCEventNumber() const
Definition: HcalDCCHeader.h:38
int hashup(uint32_t d=0, uint32_t s=0, uint32_t c=1)
MonitorElement * meFib3OrbMsgBCN_
bool er() const
is the error bit set?
Definition: HcalQIESample.h:32
MonitorElement * meFib6OrbMsgBCN_
bool isHistogramEvent() const
Is this event a histogram event? (do not call standard unpack in this case!!!!!)
Definition: HcalHTRData.cc:387
MonitorElement * meCrate9HTRStatus_
void HcalRawDataMonitor::UpdateMEs ( void  )
private

Definition at line 1386 of file HcalRawDataMonitor.cc.

References Chann_DataIntegrityCheck_, ChannSumm_DataIntegrityCheck_, DataFlowInd_, f, MonitorElement::getBinContent(), HalfHTRDataCorruptionIndicators_, LRBDataCorruptionIndicators_, meChann_DataIntegrityCheck_, meChannSumm_DataIntegrityCheck_, meDataFlowInd_, meHalfHTRDataCorruptionIndicators_, meLRBDataCorruptionIndicators_, HcalBaseDQMonitor::meTevtHist_, NumBadHB, NumBadHE, NumBadHF, NumBadHFLUMI, NumBadHO, NumBadHO0, NumBadHO12, NUMDCCS, MonitorElement::setBinContent(), HcalBaseDQMonitor::tevt_, THREE_FED, THREE_SPG, TWO___FED, TWO__SPGT, TWO_CHANN, x, and detailsBasic3DVector::y.

Referenced by endLuminosityBlock().

1386  {
1387  tevt_=0;
1388  if (meTevtHist_) tevt_= (int)meTevtHist_->getBinContent(1);
1389  NumBadHB=0;
1390  NumBadHE=0;
1391  NumBadHO=0;
1392  NumBadHF=0;
1393  NumBadHFLUMI=0;
1394  NumBadHO0=0;
1395  NumBadHO12=0;
1396 
1397 
1399  for (int x=0; x<THREE_FED; x++)
1400  for (int y=0; y<THREE_SPG; y++)
1403 
1405  for (int x=0; x<THREE_FED; x++)
1406  for (int y=0; y<THREE_SPG; y++)
1409 
1411  for (int x=0; x<TWO___FED; x++)
1412  for (int y=0; y<TWO__SPGT; y++)
1415 
1416  for (int f=0; f<NUMDCCS; f++){
1418  for (int x=0; x<TWO_CHANN; x++)
1419  for (int y=0; y<TWO__SPGT; y++)
1420  if (Chann_DataIntegrityCheck_[f][x][y])
1422  }
1423 
1425  for (int x=0; x<TWO___FED; x++)
1426  for (int y=0; y<THREE_SPG; y++)
1427  if (DataFlowInd_[x][y])
1429 } //UpdateMEs
float ChannSumm_DataIntegrityCheck_[TWO___FED][TWO__SPGT]
void setBinContent(int binx, double content)
set content of bin (1-D)
#define TWO_CHANN
#define THREE_FED
#define NUMDCCS
MonitorElement * meChannSumm_DataIntegrityCheck_
MonitorElement * meDataFlowInd_
float LRBDataCorruptionIndicators_[THREE_FED][THREE_SPG]
#define TWO__SPGT
MonitorElement * meTevtHist_
MonitorElement * meChann_DataIntegrityCheck_[NUMDCCS]
double f[11][100]
#define TWO___FED
MonitorElement * meLRBDataCorruptionIndicators_
float HalfHTRDataCorruptionIndicators_[THREE_FED][THREE_SPG]
#define THREE_SPG
double getBinContent(int binx) const
get content of bin (1-D)
float Chann_DataIntegrityCheck_[NUMDCCS][TWO_CHANN][TWO__SPGT]
Definition: DDAxes.h:10
float DataFlowInd_[TWO___FED][THREE_SPG]
MonitorElement * meHalfHTRDataCorruptionIndicators_
void HcalRawDataMonitor::whosebad ( int  subdet)
protected

Definition at line 1432 of file HcalRawDataMonitor.cc.

1432  {
1433 // if (subdet==HcalBarrel) ++NumBadHB;
1434 // else if (subdet==HcalEndcap) ++NumBadHE;
1435 // else if (subdet==HcalOuter)
1436 // {
1437 // ++NumBadHO;
1438 // if (abs(ieta)<5) ++NumBadHO0;
1439 // else ++NumBadHO12;
1440 // }
1441 // else if (subdet==HcalForward)
1442 // {
1443 // ++NumBadHF;
1444 // if (depth==1 && (abs(ieta)==33 || abs(ieta)==34))
1445 // ++NumBadHFLUMI;
1446 // else if (depth==2 && (abs(ieta)==35 || abs(ieta)==36))
1447 // ++NumBadHFLUMI;
1448 // }
1449 }

Member Data Documentation

std::map<int, short>::iterator HcalRawDataMonitor::CDFReservedBits_it
private

Definition at line 142 of file HcalRawDataMonitor.h.

Referenced by unpack().

std::map<int, short> HcalRawDataMonitor::CDFReservedBits_list
private

Definition at line 141 of file HcalRawDataMonitor.h.

Referenced by unpack().

std::map<int, short>::iterator HcalRawDataMonitor::CDFvers_it
private

Definition at line 140 of file HcalRawDataMonitor.h.

Referenced by unpack().

std::map<int, short> HcalRawDataMonitor::CDFversionNumber_list
private

Definition at line 139 of file HcalRawDataMonitor.h.

Referenced by unpack().

float HcalRawDataMonitor::Chann_DataIntegrityCheck_[NUMDCCS][TWO_CHANN][TWO__SPGT]
private

Definition at line 120 of file HcalRawDataMonitor.h.

Referenced by reset(), unpack(), and UpdateMEs().

float HcalRawDataMonitor::ChannSumm_DataIntegrityCheck_[TWO___FED][TWO__SPGT]
private

Definition at line 119 of file HcalRawDataMonitor.h.

Referenced by reset(), unpack(), and UpdateMEs().

float HcalRawDataMonitor::DataFlowInd_[TWO___FED][THREE_SPG]
private

Definition at line 121 of file HcalRawDataMonitor.h.

Referenced by reset(), unpack(), and UpdateMEs().

std::map<int, short>::iterator HcalRawDataMonitor::DCCEvtFormat_it
private

Definition at line 144 of file HcalRawDataMonitor.h.

Referenced by unpack().

std::map<int, short> HcalRawDataMonitor::DCCEvtFormat_list
private

Definition at line 143 of file HcalRawDataMonitor.h.

Referenced by unpack().

edm::InputTag HcalRawDataMonitor::digiLabel_
protected

Definition at line 60 of file HcalRawDataMonitor.h.

Referenced by analyze(), and HcalRawDataMonitor().

bool HcalRawDataMonitor::excludeHORing2_
private
edm::InputTag HcalRawDataMonitor::FEDRawDataCollection_
protected

Definition at line 59 of file HcalRawDataMonitor.h.

Referenced by analyze(), and HcalRawDataMonitor().

float HcalRawDataMonitor::HalfHTRDataCorruptionIndicators_[THREE_FED][THREE_SPG]
private

Definition at line 117 of file HcalRawDataMonitor.h.

Referenced by reset(), unpack(), and UpdateMEs().

HcalDetId HcalRawDataMonitor::hashedHcalDetId_[NUMDCCS *NUMSPIGS *HTRCHANMAX]
private

Definition at line 133 of file HcalRawDataMonitor.h.

Referenced by HashToHDI(), mapDCCproblem(), mapHTRproblem(), reset(), stashHDI(), and unpack().

MonitorElement* HcalRawDataMonitor::HTR_StatusWd_HBHE
private

Definition at line 171 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::HTR_StatusWd_HF
private

Definition at line 172 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::HTR_StatusWd_HO
private

Definition at line 173 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

float HcalRawDataMonitor::LRBDataCorruptionIndicators_[THREE_FED][THREE_SPG]
private

Definition at line 118 of file HcalRawDataMonitor.h.

Referenced by reset(), unpack(), and UpdateMEs().

MonitorElement* HcalRawDataMonitor::meBCN_
private

Definition at line 152 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meBCNCheck_
private

Definition at line 154 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meBCNSynch_
private

Definition at line 155 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meBCNwhenOrNDiff_
private

Definition at line 162 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCDFErrorFound_
private

Definition at line 148 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED00_
private

Definition at line 81 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED01_
private

Definition at line 82 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED02_
private

Definition at line 83 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED03_
private

Definition at line 84 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED04_
private

Definition at line 85 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED05_
private

Definition at line 86 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED06_
private

Definition at line 87 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED07_
private

Definition at line 88 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED08_
private

Definition at line 89 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED09_
private

Definition at line 90 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED10_
private

Definition at line 91 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED11_
private

Definition at line 92 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED12_
private

Definition at line 93 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED13_
private

Definition at line 94 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED14_
private

Definition at line 95 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED15_
private

Definition at line 96 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED16_
private

Definition at line 97 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED17_
private

Definition at line 98 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED18_
private

Definition at line 99 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED19_
private

Definition at line 100 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED20_
private

Definition at line 101 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED21_
private

Definition at line 102 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED22_
private

Definition at line 103 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED23_
private

Definition at line 104 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED24_
private

Definition at line 105 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED25_
private

Definition at line 106 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED26_
private

Definition at line 107 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED27_
private

Definition at line 108 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED28_
private

Definition at line 109 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED29_
private

Definition at line 110 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED30_
private

Definition at line 111 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED31_
private

Definition at line 112 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meChann_DataIntegrityCheck_[NUMDCCS]
private

Definition at line 114 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor(), processEvent(), setup(), and UpdateMEs().

MonitorElement* HcalRawDataMonitor::meChannSumm_DataIntegrityCheck_
private

Definition at line 125 of file HcalRawDataMonitor.h.

Referenced by processEvent(), setup(), and UpdateMEs().

MonitorElement* HcalRawDataMonitor::meCrate0HTRStatus_
private

Definition at line 180 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate10HTRStatus_
private

Definition at line 189 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate11HTRStatus_
private

Definition at line 190 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate12HTRStatus_
private

Definition at line 191 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate13HTRStatus_
private

Definition at line 192 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate14HTRStatus_
private

Definition at line 193 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate15HTRStatus_
private

Definition at line 194 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate17HTRStatus_
private

Definition at line 195 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate1HTRStatus_
private

Definition at line 181 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate2HTRStatus_
private

Definition at line 182 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate3HTRStatus_
private

Definition at line 183 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate4HTRStatus_
private

Definition at line 184 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate5HTRStatus_
private

Definition at line 185 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate6HTRStatus_
private

Definition at line 186 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate7HTRStatus_
private

Definition at line 187 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate9HTRStatus_
private

Definition at line 188 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meDataFlowInd_
private

Definition at line 126 of file HcalRawDataMonitor.h.

Referenced by processEvent(), setup(), and UpdateMEs().

MonitorElement* HcalRawDataMonitor::medccBCN_
private

Definition at line 153 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meDCCEventFormatError_
private

Definition at line 149 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meDCCVersion_
private

Definition at line 168 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meEvFragSize2_
private

Definition at line 167 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meEvFragSize_
private

Definition at line 166 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meEvtNCheck_
private

Definition at line 157 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meEvtNumberSynch_
private

Definition at line 158 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::mefedEntries_
private

Definition at line 164 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFEDRawDataSizes_
private

Definition at line 165 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib1OrbMsgBCN_
private

Definition at line 199 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib2OrbMsgBCN_
private

Definition at line 200 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib3OrbMsgBCN_
private

Definition at line 201 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib4OrbMsgBCN_
private

Definition at line 202 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib5OrbMsgBCN_
private

Definition at line 203 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib6OrbMsgBCN_
private

Definition at line 204 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib7OrbMsgBCN_
private

Definition at line 205 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib8OrbMsgBCN_
private

Definition at line 206 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFibBCN_
private

Definition at line 176 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meHalfHTRDataCorruptionIndicators_
private

Definition at line 123 of file HcalRawDataMonitor.h.

Referenced by processEvent(), setup(), and UpdateMEs().

MonitorElement* HcalRawDataMonitor::meHTRFWVersion_
private

Definition at line 198 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meInvHTRData_
private

Definition at line 175 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meLRBDataCorruptionIndicators_
private

Definition at line 124 of file HcalRawDataMonitor.h.

Referenced by processEvent(), setup(), and UpdateMEs().

MonitorElement* HcalRawDataMonitor::meOrNCheck_
private

Definition at line 160 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meOrNSynch_
private

Definition at line 161 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meStatusWdCrate_
private

Definition at line 174 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meUSFractSpigs_
private

Definition at line 197 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

int HcalRawDataMonitor::NumBadHB
private

Definition at line 208 of file HcalRawDataMonitor.h.

Referenced by analyze(), endLuminosityBlock(), reset(), and UpdateMEs().

int HcalRawDataMonitor::NumBadHE
private

Definition at line 208 of file HcalRawDataMonitor.h.

Referenced by analyze(), endLuminosityBlock(), reset(), and UpdateMEs().

int HcalRawDataMonitor::NumBadHF
private

Definition at line 208 of file HcalRawDataMonitor.h.

Referenced by analyze(), endLuminosityBlock(), reset(), and UpdateMEs().

int HcalRawDataMonitor::NumBadHFLUMI
private

Definition at line 208 of file HcalRawDataMonitor.h.

Referenced by analyze(), endLuminosityBlock(), reset(), and UpdateMEs().

int HcalRawDataMonitor::NumBadHO
private

Definition at line 208 of file HcalRawDataMonitor.h.

Referenced by analyze(), endLuminosityBlock(), reset(), and UpdateMEs().

int HcalRawDataMonitor::NumBadHO0
private

Definition at line 208 of file HcalRawDataMonitor.h.

Referenced by analyze(), endLuminosityBlock(), reset(), and UpdateMEs().

int HcalRawDataMonitor::NumBadHO12
private

Definition at line 208 of file HcalRawDataMonitor.h.

Referenced by analyze(), endLuminosityBlock(), reset(), and UpdateMEs().

uint64_t HcalRawDataMonitor::problemcount[ETABINS][PHIBINS][DEPTHBINS]
protected

Definition at line 73 of file HcalRawDataMonitor.h.

Referenced by analyze(), processEvent(), and reset().

bool HcalRawDataMonitor::problemfound[ETABINS][PHIBINS][DEPTHBINS]
protected
const HcalElectronicsMap* HcalRawDataMonitor::readoutMap_
protected

Definition at line 61 of file HcalRawDataMonitor.h.

Referenced by beginRun().

uint64_t HcalRawDataMonitor::uniqcounter[ETABINS][PHIBINS][DEPTHBINS]
protected

Definition at line 71 of file HcalRawDataMonitor.h.

Referenced by analyze(), endLuminosityBlock(), and reset().

uint64_t HcalRawDataMonitor::UScount[NUMDCCS][NUMSPIGS]
private

Definition at line 116 of file HcalRawDataMonitor.h.

Referenced by reset(), and unpack().