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 DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase 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 DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) 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 bookHistograms (DQMStore::IBooker &ib, 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 (DQMStore::IBooker &)
 
void stashHDI (int thehash, HcalDetId thehcaldetid)
 
void unpack (const FEDRawData &raw)
 
void whosebad (int subdet)
 
- Protected Member Functions inherited from HcalBaseDQMonitor
virtual void cleanup (void)
 
virtual void dqmBeginRun (const edm::Run &run, const edm::EventSetup &c)
 
void getLogicalMap (const edm::EventSetup &c)
 
bool IsAllowedCalibType ()
 
bool LumiInOrder (int lumisec)
 
void SetupEtaPhiHists (DQMStore::IBooker &ib, EtaPhiHists &hh, std::string Name, std::string Units)
 
- 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 [85][72][4]
 
bool problemfound [85][72][4]
 
const HcalElectronicsMapreadoutMap_
 
edm::EDGetTokenT
< FEDRawDataCollection
tok_raw_
 
edm::EDGetTokenT
< HcalUnpackerReport
tok_unpack_
 
uint64_t uniqcounter [85][72][4]
 
- Protected Attributes inherited from HcalBaseDQMonitor
std::vector< int > AllowedCalibTypes_
 
int badChannelStatusMask_
 
int currentLS
 
int currenttype_
 
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_ [32][(1+((2+1)*24))][(1+((2+1)*15))]
 
float ChannSumm_DataIntegrityCheck_ [(1+((2+1)*32))][(1+((2+1)*15))]
 
float DataFlowInd_ [(1+((2+1)*32))][(1+((3+1)*15))]
 
std::map< int, short >::iterator DCCEvtFormat_it
 
std::map< int, short > DCCEvtFormat_list
 
bool excludeHORing2_
 
float HalfHTRDataCorruptionIndicators_ [(1+((3+1)*32))][(1+((3+1)*15))]
 
HcalDetId hashedHcalDetId_ [32 *15 *24]
 
MonitorElementHTR_StatusWd_HBHE
 
MonitorElementHTR_StatusWd_HF
 
MonitorElementHTR_StatusWd_HO
 
float LRBDataCorruptionIndicators_ [(1+((3+1)*32))][(1+((3+1)*15))]
 
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_ [32]
 
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 [32][15]
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Detailed Description

Author
J. St. John - Boston University

Definition at line 32 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::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, HcalBaseDQMonitor::subdir_, tok_raw_, and tok_unpack_.

9  :HcalBaseDQMonitor(ps) {
10  Online_ = ps.getUntrackedParameter<bool>("online");
11  mergeRuns_ = ps.getUntrackedParameter<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  // register for data access
68  tok_raw_ = consumes<FEDRawDataCollection>(FEDRawDataCollection_);
69  tok_unpack_ = consumes<HcalUnpackerReport>(digiLabel_);
70 
71  this->reset();
72 } // HcalRawDataMonitor::HcalRawDataMonitor()
MonitorElement * meCh_DataIntegrityFED04_
MonitorElement * meCh_DataIntegrityFED27_
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_
edm::EDGetTokenT< FEDRawDataCollection > tok_raw_
MonitorElement * meCh_DataIntegrityFED06_
MonitorElement * meCh_DataIntegrityFED11_
MonitorElement * meCh_DataIntegrityFED17_
MonitorElement * meCh_DataIntegrityFED30_
MonitorElement * meCh_DataIntegrityFED12_
MonitorElement * meCh_DataIntegrityFED10_
MonitorElement * meCh_DataIntegrityFED19_
MonitorElement * meCh_DataIntegrityFED08_
edm::EDGetTokenT< HcalUnpackerReport > tok_unpack_
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 * meChann_DataIntegrityCheck_[32]
MonitorElement * meCh_DataIntegrityFED21_
MonitorElement * meCh_DataIntegrityFED18_
MonitorElement * meCh_DataIntegrityFED22_
HcalRawDataMonitor::HcalRawDataMonitor ( )
inline

Definition at line 36 of file HcalRawDataMonitor.h.

36 {};
HcalRawDataMonitor::~HcalRawDataMonitor ( )

Definition at line 75 of file HcalRawDataMonitor.cc.

75 {}

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 funct::abs(), HcalBaseDQMonitor::analyze(), HcalObjRepresent::CalcIeta(), gather_cfg::cout, ztail::d, HcalBaseDQMonitor::debug_, DEPTHBINS, digiLabel_, eta, ETABINS, FEDRawDataCollection_, edm::Event::getByToken(), 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, tok_raw_, tok_unpack_, and uniqcounter.

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

Reimplemented from HcalBaseDQMonitor.

Definition at line 172 of file HcalRawDataMonitor.cc.

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

173  {
174  if (LumiInOrder(lumiSeg.luminosityBlock())==false) return;
176  //zeroCounters(); // zero hot cell counters at the start of each luminosity block
178  return;
179 }
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::bookHistograms ( DQMStore::IBooker ib,
const edm::Run run,
const edm::EventSetup c 
)
protectedvirtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 131 of file HcalRawDataMonitor.cc.

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

131  {
134  c.get<HcalDbRecord>().get( pSetup );
135 
136  readoutMap_=pSetup->getHcalMapping();
137  DetId detid_;
138  HcalDetId hcaldetid_;
139 
140  // Build a map of readout hardware unit to calorimeter channel
141  std::vector <HcalElectronicsId> AllElIds = readoutMap_->allElectronicsIdPrecision();
142  uint32_t itsdcc =0;
143  uint32_t itsspigot =0;
144  uint32_t itshtrchan=0;
145 
146  // by looping over all precision (non-trigger) items.
147  for (std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin();
148  eid != AllElIds.end();
149  eid++) {
150 
151  //Get the HcalDetId from the HcalElectronicsId
152  detid_ = readoutMap_->lookup(*eid);
153  // NULL if illegal; ignore
154  if (!detid_.null()) {
155  if (detid_.det()!=4) continue; //not Hcal
156  if (detid_.subdetId()!=HcalBarrel &&
157  detid_.subdetId()!=HcalEndcap &&
158  detid_.subdetId()!=HcalOuter &&
159  detid_.subdetId()!=HcalForward) continue;
160 
161  itsdcc =(uint32_t) eid->dccid();
162  itsspigot =(uint32_t) eid->spigot();
163  itshtrchan=(uint32_t) eid->htrChanId();
164  hcaldetid_ = HcalDetId(detid_);
165  stashHDI(hashup(itsdcc,itsspigot,itshtrchan),
166  hcaldetid_);
167  } // if (!detid_.null())
168  }
169 }
std::vector< HcalElectronicsId > allElectronicsIdPrecision() const
void stashHDI(int thehash, HcalDetId thehcaldetid)
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
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:37
Definition: DetId.h:18
const T & get() const
Definition: EventSetup.h:56
bool null() const
is this a null id ?
Definition: DetId.h:45
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
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  )
protected

Definition at line 1292 of file HcalRawDataMonitor.cc.

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

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

Reimplemented from HcalBaseDQMonitor.

Definition at line 1250 of file HcalRawDataMonitor.cc.

References ztail::d, 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().

1251  {
1252 
1253 
1260 
1261  // Reset current LS histogram, if it exists
1262  if (ProblemsCurrentLB)
1264  if (ProblemsCurrentLB)
1265  {
1266 
1267  ProblemsCurrentLB->setBinContent(0,0, levt_); // underflow bin contains number of events
1275 
1276  }
1277 
1278  for (int d=0; d<DEPTHBINS; d++) {
1279  for (int eta=0; eta<ETABINS; eta++) {
1280  for (int phi=0; phi<PHIBINS; phi++){
1281  uniqcounter[eta][phi][d] = 0.0;
1282  }
1283  }
1284  }
1285 
1286  UpdateMEs();
1287 }
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * ProblemsCurrentLB
MonitorElement * ProblemsVsLB_HF
void Fill(long long x)
LuminosityBlockNumber_t luminosityBlock() const
#define DEPTHBINS
tuple d
Definition: ztail.py:151
MonitorElement * ProblemsVsLB_HBHEHF
MonitorElement * ProblemsVsLB_HB
uint64_t uniqcounter[85][72][4]
#define ETABINS
MonitorElement * ProblemsVsLB_HE
#define PHIBINS
MonitorElement * ProblemsVsLB_HO
MonitorElement * ProblemsVsLB
void Reset(void)
reset ME (ie. contents, errors, etc)
void HcalRawDataMonitor::endRun ( const edm::Run run,
const edm::EventSetup c 
)
protectedvirtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 1289 of file HcalRawDataMonitor.cc.

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

Definition at line 69 of file HcalRawDataMonitor.h.

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

Referenced by mapChannproblem().

69  {
70  return ( ( (thehash<0) || (thehash>(NUMDCCS*NUMSPIGS*HTRCHANMAX)) )
72  :(hashedHcalDetId_[thehash]));
73  };
static const HcalDetId Undefined
Definition: HcalDetId.h:80
#define NUMDCCS
#define NUMSPIGS
#define HTRCHANMAX
HcalDetId hashedHcalDetId_[32 *15 *24]
int HcalRawDataMonitor::hashup ( uint32_t  d = 0,
uint32_t  s = 0,
uint32_t  c = 1 
)
inlineprotected

Definition at line 65 of file HcalRawDataMonitor.h.

References EnergyCorrector::c, ztail::d, HTRCHANMAX, NUMSPIGS, and alignCSCRings::s.

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

65  {
66  return (int) ( (d*NUMSPIGS*HTRCHANMAX)+(s*HTRCHANMAX)+(c)); }
#define NUMSPIGS
tuple d
Definition: ztail.py:151
#define HTRCHANMAX
void HcalRawDataMonitor::HTRPrint ( const HcalHTRData htr,
int  prtlvl 
)
private

Definition at line 1357 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().

1357  {
1358  if (prtlvl == 1){
1359  int cratenum = htr.readoutVMECrateId();
1360  float slotnum = htr.htrSlot() + 0.5*htr.htrTopBottom();
1361  printf("Crate,Slot,ErrWord,Evt#,BCN: %3i %4.1f %6X %7i %4X \n", cratenum,slotnum,htr.getErrorsWord(),htr.getL1ANumber(),htr.getBunchNumber());
1362  // printf(" DLLunlk,TTCrdy:%2i %2i \n",htr.getDLLunlock(),htr.getTTCready());
1363  }
1364  // This one needs new version of HcalHTRData.h to activate
1365  else if (prtlvl == 2){
1366  int cratenum = htr.readoutVMECrateId();
1367  float slotnum = htr.htrSlot() + 0.5*htr.htrTopBottom();
1368  printf("Crate, Slot:%3i %4.1f \n", cratenum,slotnum);
1369  // 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());
1370  }
1371 
1372  else if (prtlvl == 3){
1373  int cratenum = htr.readoutVMECrateId();
1374  float slotnum = htr.htrSlot() + 0.5*htr.htrTopBottom();
1375  printf("Crate, Slot:%3i %4.1f", cratenum,slotnum);
1376  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());
1377  }
1378 
1379  return;
1380 }
unsigned int getFib6OrbMsgBCN() const
Definition: HcalHTRData.h:202
unsigned int getFib1OrbMsgBCN() const
Get the BCN of the Fiber Orbit Messages.
Definition: HcalHTRData.h:183
unsigned int htrTopBottom() const
HcalElectronicsId-style HTR top/bottom (1=top/0=bottom)
Definition: HcalHTRData.cc:342
unsigned int getFib8OrbMsgBCN() const
Definition: HcalHTRData.h:210
unsigned int htrSlot() const
HcalElectronicsId-style HTR slot.
Definition: HcalHTRData.cc:338
unsigned int getFib7OrbMsgBCN() const
Definition: HcalHTRData.h:206
unsigned int getFib3OrbMsgBCN() const
Definition: HcalHTRData.h:190
unsigned int getFib5OrbMsgBCN() const
Definition: HcalHTRData.h:198
unsigned int getErrorsWord() const
Get the errors word.
Definition: HcalHTRData.h:157
unsigned int readoutVMECrateId() const
HcalElectronicsId-style VME crate number.
Definition: HcalHTRData.cc:346
unsigned int getFib4OrbMsgBCN() const
Definition: HcalHTRData.h:194
unsigned int getBunchNumber() const
Get the HTR bunch number.
Definition: HcalHTRData.h:115
unsigned int getFib2OrbMsgBCN() const
Definition: HcalHTRData.h:186
unsigned int getL1ANumber() const
Get the HTR event number.
Definition: HcalHTRData.h:111
void HcalRawDataMonitor::label_xChanns ( MonitorElement me_ptr,
int  xbins 
)
private

Definition at line 1307 of file HcalRawDataMonitor.cc.

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

Referenced by setup().

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

Definition at line 1316 of file HcalRawDataMonitor.cc.

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

Referenced by setup().

1316  {
1317  char label[32];
1318  for (int thfed=0; thfed<NUMDCCS; thfed++) {
1319  snprintf(label, 32, "%03d", thfed+700);
1320  me_ptr->setBinLabel((2+(thfed*xbins)), label, 1); //margin of 1 at low value
1321  }
1322 }
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 1298 of file HcalRawDataMonitor.cc.

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

Referenced by setup().

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

Definition at line 1324 of file HcalRawDataMonitor.cc.

Referenced by setup().

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

Definition at line 1517 of file HcalRawDataMonitor.cc.

References funct::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().

1517  {
1518  int myeta = 0;
1519  int myphi =-1;
1520  int mydepth = 0;
1521  HcalDetId HDI;
1522  //Light up the affected cell.
1523  int i=hashup(dcc,spigot,htrchan);
1524  HDI = HashToHDI(i);
1525  if (HDI==HcalDetId::Undefined) {
1526  return; // Do nothing at all, instead.
1527  }
1528  mydepth = HDI.depth();
1529  myphi = HDI.iphi();
1530  myeta = CalcEtaBin(HDI.subdet(),
1531  HDI.ieta(),
1532  mydepth);
1533  //Protect against indexing off array
1534  if (myeta>=0 && myeta<85 &&
1535  (myphi-1)>=0 && (myphi-1)<72 &&
1536  (mydepth-1)>=0 && (mydepth-1)<4){
1537  problemfound[myeta][myphi-1][mydepth-1] = true;
1538 
1539  //exlcude the decommissioned HO ring2, except SiPMs
1540  if(mydepth==4 && excludeHORing2_==true)
1541  if (abs(HDI.ieta())>=11 && abs(HDI.ieta())<=15 && !isSiPM(HDI.ieta(),HDI.iphi(),mydepth))
1542  problemfound[myeta][myphi-1][mydepth-1] = false;
1543 
1544  if (debug_>0)
1545  std::cout<<" mapDCCproblem found error! "<<HDI.subdet()<<"("<<HDI.ieta()<<", "<<HDI.iphi()<<", "<<HDI.depth()<<")"<<std::endl;
1546  }
1547 } // void HcalRawDataMonitor::mapChannproblem(...)
static const HcalDetId Undefined
Definition: HcalDetId.h:80
int i
Definition: DBlmapReader.cc:9
bool problemfound[85][72][4]
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:49
bool isSiPM(int ieta, int iphi, int depth)
int depth() const
get the tower depth
Definition: HcalDetId.cc:106
int ieta() const
get the cell ieta
Definition: HcalDetId.h:56
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int iphi() const
get the cell iphi
Definition: HcalDetId.cc:101
int CalcEtaBin(int subdet, int ieta, int depth)
tuple cout
Definition: gather_cfg.py:145
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 1448 of file HcalRawDataMonitor.cc.

References funct::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().

1448  {
1449  int myeta = 0;
1450  int myphi =-1;
1451  int mydepth = 0;
1452  HcalDetId HDI;
1453  //Light up all affected cells.
1454  for (int i=hashup(dcc);
1455  i<hashup(dcc)+(NUMSPIGS*HTRCHANMAX);
1456  i++) {
1457  HDI = hashedHcalDetId_[i];
1458  if (HDI==HcalDetId::Undefined)
1459  continue;
1460  mydepth = HDI.depth();
1461  myphi = HDI.iphi();
1462  myeta = CalcEtaBin(HDI.subdet(),
1463  HDI.ieta(),
1464  mydepth);
1465  //Protect against indexing off array
1466  if (myeta>=0 && myeta<85 &&
1467  (myphi-1)>=0 && (myphi-1)<72 &&
1468  (mydepth-1)>=0 && (mydepth-1)<4){
1469  problemfound[myeta][myphi-1][mydepth-1] = true;
1470 
1471  //exlcude the decommissioned HO ring2, except SiPMs
1472  if(mydepth==4 && excludeHORing2_==true)
1473  if (abs(HDI.ieta())>=11 && abs(HDI.ieta())<=15 && !isSiPM(HDI.ieta(),HDI.iphi(),mydepth))
1474  problemfound[myeta][myphi-1][mydepth-1] = false;
1475 
1476  if (debug_>0)
1477  std::cout<<" mapDCCproblem found error! "<<HDI.subdet()<<"("<<HDI.ieta()<<", "<<HDI.iphi()<<", "<<HDI.depth()<<")"<<std::endl;
1478  }
1479  }
1480 }
static const HcalDetId Undefined
Definition: HcalDetId.h:80
int i
Definition: DBlmapReader.cc:9
bool problemfound[85][72][4]
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:49
#define HTRCHANMAX
#define NUMSPIGS
bool isSiPM(int ieta, int iphi, int depth)
int depth() const
get the tower depth
Definition: HcalDetId.cc:106
HcalDetId hashedHcalDetId_[32 *15 *24]
int ieta() const
get the cell ieta
Definition: HcalDetId.h:56
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int iphi() const
get the cell iphi
Definition: HcalDetId.cc:101
int CalcEtaBin(int subdet, int ieta, int depth)
tuple cout
Definition: gather_cfg.py:145
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 1481 of file HcalRawDataMonitor.cc.

References funct::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().

1481  {
1482  int myeta = 0;
1483  int myphi =-1;
1484  int mydepth = 0;
1485  HcalDetId HDI;
1486  //Light up all affected cells.
1487  for (int i=hashup(dcc,spigot);
1488  i<hashup(dcc,spigot)+(HTRCHANMAX); //nice, linear hash....
1489  i++) {
1490  HDI = hashedHcalDetId_[i];
1491  if (HDI==HcalDetId::Undefined) {
1492  continue;
1493  }
1494  mydepth = HDI.depth();
1495  myphi = HDI.iphi();
1496  myeta = CalcEtaBin(HDI.subdet(),
1497  HDI.ieta(),
1498  mydepth);
1499  //Protect against indexing off array
1500  if (myeta>=0 && myeta<85 &&
1501  (myphi-1)>=0 && (myphi-1)<72 &&
1502  (mydepth-1)>=0 && (mydepth-1)<4){
1503  problemfound[myeta][myphi-1][mydepth-1] = true;
1504 
1505  //exlcude the decommissioned HO ring2, except SiPMs
1506  if(mydepth==4 && excludeHORing2_==true)
1507  if (abs(HDI.ieta())>=11 && abs(HDI.ieta())<=15 && !isSiPM(HDI.ieta(),HDI.iphi(),mydepth))
1508  problemfound[myeta][myphi-1][mydepth-1] = false;
1509 
1510  if (debug_>0)
1511  std::cout<<" mapDCCproblem found error! "<<HDI.subdet()<<"("<<HDI.ieta()<<", "<<HDI.iphi()<<", "<<HDI.depth()<<")"<<std::endl;
1512  }
1513 
1514  }
1515 } // void HcalRawDataMonitor::mapHTRproblem(...)
static const HcalDetId Undefined
Definition: HcalDetId.h:80
int i
Definition: DBlmapReader.cc:9
bool problemfound[85][72][4]
HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:49
#define HTRCHANMAX
bool isSiPM(int ieta, int iphi, int depth)
int depth() const
get the tower depth
Definition: HcalDetId.cc:106
HcalDetId hashedHcalDetId_[32 *15 *24]
int ieta() const
get the cell ieta
Definition: HcalDetId.h:56
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int iphi() const
get the cell iphi
Definition: HcalDetId.cc:101
int CalcEtaBin(int subdet, int ieta, int depth)
tuple cout
Definition: gather_cfg.py:145
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 597 of file HcalRawDataMonitor.cc.

References 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, y, and z.

Referenced by analyze().

598  {
599  // Fill event counters (underflow bins of histograms)
603  for (int f=0; f<NUMDCCS; f++)
606 
607  // Loop over all FEDs reporting the event, unpacking if good.
609  const FEDRawData& fed = rawraw.FEDData(i);
610  if (fed.size()<12) continue; //At least the size of headers and trailers of a DCC.
611  unpack(fed); //Interpret data, fill histograms, everything.
612  }
613 
614  //increment problemcount[] where problemfound[], and clear problemfound[]
615  for (int x=0; x<ETABINS; x++)
616  for (int y=0; y<PHIBINS; y++)
617  for (int z=0; z<DEPTHBINS; z++)
618  if (problemfound[x][y][z]) {
619  problemcount[x][y][z]++;
620  problemfound[x][y][z]=false;
621  }
622  return;
623 } //void HcalRawDataMonitor::processEvent()
int i
Definition: DBlmapReader.cc:9
bool problemfound[85][72][4]
#define NUMDCCS
MonitorElement * meChannSumm_DataIntegrityCheck_
void update(void)
Mark the object updated.
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
uint64_t problemcount[85][72][4]
MonitorElement * meDataFlowInd_
#define DEPTHBINS
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
void unpack(const FEDRawData &raw)
double f[11][100]
MonitorElement * meLRBDataCorruptionIndicators_
#define ETABINS
#define update(a, b)
#define PHIBINS
MonitorElement * meHalfHTRDataCorruptionIndicators_
MonitorElement * meChann_DataIntegrityCheck_[32]
void HcalRawDataMonitor::reset ( void  )
protectedvirtual

Reimplemented from HcalBaseDQMonitor.

Definition at line 78 of file HcalRawDataMonitor.cc.

References Chann_DataIntegrityCheck_, ChannSumm_DataIntegrityCheck_, ztail::d, 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 y.

Referenced by HcalRawDataMonitor().

79 {
80 
81  for (int f=0; f<NUMDCCS; f++) {
82  for (int s=0; s<15; s++) {
83  UScount[f][s]=0;}}
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<THREE_FED; x++)
90  for (int y=0; y<THREE_SPG; y++)
92 
93  for (int x=0; x<TWO___FED; x++)
94  for (int y=0; y<TWO__SPGT; y++)
96 
97  for (int x=0; x<TWO___FED; x++)
98  for (int y=0; y<THREE_SPG; y++)
99  DataFlowInd_[x][y]=0;
100 
101  for (int f=0; f<NUMDCCS; f++)
102  for (int x=0; x< TWO_CHANN; x++)
103  for (int y=0; y<TWO__SPGT; y++)
105 
106  for (int i=0; i<(NUMDCCS * NUMSPIGS * HTRCHANMAX); i++)
108 
109  for (int d=0; d<DEPTHBINS; d++) {
110  for (int eta=0; eta<ETABINS; eta++) {
111  for (int phi=0; phi<PHIBINS; phi++){
112  uniqcounter[eta][phi][d] = 0.0;
113  problemcount[eta][phi][d] = 0.0;
114  problemfound[eta][phi][d] = false;
115  }
116  }
117  }
118 
119  // Properly initialze bylumi counters.
120  NumBadHB=0;
121  NumBadHE=0;
122  NumBadHO=0;
123  NumBadHF=0;
124  NumBadHFLUMI=0;
125  NumBadHO0=0;
126  NumBadHO12=0;
127 
128 } // HcalRawDataMonitor::HcalRawDataMonitor()
static const HcalDetId Undefined
Definition: HcalDetId.h:80
int i
Definition: DBlmapReader.cc:9
float HalfHTRDataCorruptionIndicators_[(1+((3+1)*32))][(1+((3+1)*15))]
bool problemfound[85][72][4]
#define TWO_CHANN
float ChannSumm_DataIntegrityCheck_[(1+((2+1)*32))][(1+((2+1)*15))]
#define THREE_FED
#define HTRCHANMAX
#define NUMDCCS
#define NUMSPIGS
uint64_t problemcount[85][72][4]
#define DEPTHBINS
tuple d
Definition: ztail.py:151
#define TWO__SPGT
HcalDetId hashedHcalDetId_[32 *15 *24]
double f[11][100]
uint64_t uniqcounter[85][72][4]
uint64_t UScount[32][15]
float Chann_DataIntegrityCheck_[32][(1+((2+1)*24))][(1+((2+1)*15))]
#define TWO___FED
#define ETABINS
float LRBDataCorruptionIndicators_[(1+((3+1)*32))][(1+((3+1)*15))]
#define THREE_SPG
#define PHIBINS
float DataFlowInd_[(1+((2+1)*32))][(1+((3+1)*15))]
void HcalRawDataMonitor::setup ( DQMStore::IBooker ib)
protectedvirtual

Below, "Corruption" FOLDER

Reimplemented from HcalBaseDQMonitor.

Definition at line 181 of file HcalRawDataMonitor.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookInt(), DQMStore::IBooker::bookProfile(), gather_cfg::cout, 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::IBooker::setCurrentFolder(), HcalBaseDQMonitor::setup(), HcalDCCHeader::SPIGOT_COUNT, AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQMonitor::subdir_, THREE_FED, THREE_SPG, TWO___FED, TWO__SPGT, and TWO_CHANN.

181  {
182  // Call base class setup
184 
185  /******* Set up all histograms ********/
186  if (debug_>1)
187  std::cout <<"<HcalRawDataMonitor::beginRun> Setting up histograms"<<std::endl;
188 
190  ProblemsVsLB=ib.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=ib.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=ib.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=ib.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=ib.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=ib.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=ib.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  //ib.setCurrentFolder(subdir_);
223  //meIevt_ = ib.bookInt("EventsProcessed");
224  //if (meIevt_) meIevt_->Fill(-1);
225  //meLevt_ = ib.bookInt("EventsProcessed_currentLS");
226  //if (meLevt_) meLevt_->Fill(-1);
227  //meTevt_ = ib.bookInt("EventsProcessed_All");
228  //if (meTevt_) meTevt_->Fill(-1);
229  //meTevtHist_=ib.book1D("EventsProcessed_AllHists","Counter of Events Processed By This Task",1,0.5,1.5);
230  //if (meTevtHist_) meTevtHist_->Reset();
231 
233 
234  ib.setCurrentFolder(subdir_ + "Corruption");
235  type = "01 Common Data Format violations";
236  meCDFErrorFound_ = ib.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_ = ib.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_ = ib.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_ = ib.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_= ib.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_ = ib.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_= ib.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_ = ib.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_= ib.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  ib.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] = ib.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  ib.setCurrentFolder(subdir_ + "Data Flow");
337  type="DCC Event Counts";
338  mefedEntries_ = ib.book1D(type,type,32,699.5,731.5);
339 
340  type = "BCN from DCCs";
341  medccBCN_ = ib.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_ = ib.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_=ib.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_ = ib.bookProfile(type,type,32,699.5,731.5,100,-1000.0,12000.0,"");
357  type = "DCC Data Block Size Each FED";
358  meEvFragSize2_ = ib.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_= ib.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  ib.setCurrentFolder(subdir_ + "Diagnostics");
375 
376  type = "DCC Firmware Version";
377  meDCCVersion_ = ib.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 = ib.book1D(type,type,16,-0.5,15.5);
383 
384  type = "HTR Status Word HF";
385  HTR_StatusWd_HF = ib.book1D(type,type,16,-0.5,15.5);
387 
388  type = "HTR Status Word HO";
389  HTR_StatusWd_HO = ib.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_ = ib.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_= ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.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_ = ib.bookProfile(type,type,18,-0.5,17.5,245,10.0,255.0,"");
500  meHTRFWVersion_ = ib.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_= ib.book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
506  type = "HTR Fiber 2 Orbit Message BCNs";
507  meFib2OrbMsgBCN_= ib.book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
508  type = "HTR Fiber 3 Orbit Message BCNs";
509  meFib3OrbMsgBCN_= ib.book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
510  type = "HTR Fiber 4 Orbit Message BCNs";
511  meFib4OrbMsgBCN_= ib.book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
512  type = "HTR Fiber 5 Orbit Message BCNs";
513  meFib5OrbMsgBCN_= ib.book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
514  type = "HTR Fiber 6 Orbit Message BCNs";
515  meFib6OrbMsgBCN_= ib.book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
516  type = "HTR Fiber 7 Orbit Message BCNs";
517  meFib7OrbMsgBCN_= ib.book2D(type,type,40,-0.25,19.75,18,-0.5,17.5);
518  type = "HTR Fiber 8 Orbit Message BCNs";
519  meFib8OrbMsgBCN_= ib.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 * meCrate3HTRStatus_
MonitorElement * meFib5OrbMsgBCN_
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
#define THREE_FED
MonitorElement * ProblemsVsLB_HF
MonitorElement * meBCNCheck_
#define NUMDCCS
MonitorElement * meCrate17HTRStatus_
MonitorElement * meChannSumm_DataIntegrityCheck_
MonitorElement * bookInt(Args &&...args)
Definition: DQMStore.h:103
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 * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * meOrNSynch_
double f[11][100]
void label_ySpigots(MonitorElement *me_ptr, int ybins)
MonitorElement * meCrate12HTRStatus_
MonitorElement * meFibBCN_
MonitorElement * meDCCEventFormatError_
MonitorElement * medccBCN_
#define TWO___FED
MonitorElement * HTR_StatusWd_HBHE
MonitorElement * meFib4OrbMsgBCN_
MonitorElement * meInvHTRData_
MonitorElement * meEvtNCheck_
MonitorElement * meBCNwhenOrNDiff_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:273
MonitorElement * meFib1OrbMsgBCN_
MonitorElement * meCrate11HTRStatus_
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * meFib8OrbMsgBCN_
MonitorElement * meLRBDataCorruptionIndicators_
MonitorElement * meCrate1HTRStatus_
MonitorElement * meStatusWdCrate_
MonitorElement * meFib7OrbMsgBCN_
MonitorElement * ProblemsVsLB_HE
#define THREE_SPG
static const int SPIGOT_COUNT
Definition: HcalDCCHeader.h:19
MonitorElement * meEvFragSize_
MonitorElement * HTR_StatusWd_HF
TProfile * getTProfile(void) const
MonitorElement * meFib2OrbMsgBCN_
MonitorElement * meEvFragSize2_
tuple cout
Definition: gather_cfg.py:145
MonitorElement * meDCCVersion_
MonitorElement * ProblemsVsLB_HO
MonitorElement * meCrate10HTRStatus_
MonitorElement * ProblemsVsLB
MonitorElement * meHTRFWVersion_
MonitorElement * meFEDRawDataSizes_
MonitorElement * mefedEntries_
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
virtual void setup(DQMStore::IBooker &)
MonitorElement * meHalfHTRDataCorruptionIndicators_
MonitorElement * meFib3OrbMsgBCN_
MonitorElement * meChann_DataIntegrityCheck_[32]
MonitorElement * meFib6OrbMsgBCN_
MonitorElement * meCrate9HTRStatus_
void HcalRawDataMonitor::stashHDI ( int  thehash,
HcalDetId  thehcaldetid 
)
protected

Definition at line 1348 of file HcalRawDataMonitor.cc.

References hashedHcalDetId_, HTRCHANMAX, NUMDCCS, and NUMSPIGS.

Referenced by bookHistograms().

1348  {
1349  //Let's not allow indexing off the array...
1350  if ((thehash<0)||(thehash>(NUMDCCS*NUMSPIGS*HTRCHANMAX)))return;
1351  //...but still do the job requested.
1352  hashedHcalDetId_[thehash] = thehcaldetid;
1353 }
#define HTRCHANMAX
#define NUMDCCS
#define NUMSPIGS
HcalDetId hashedHcalDetId_[32 *15 *24]
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 626 of file HcalRawDataMonitor.cc.

References HcalDCCHeader::BOEshouldBe5Always(), HcalDCCHeader::BOEshouldBeZeroAlways(), HcalQIESample::capid(), CDFReservedBits_it, CDFReservedBits_list, CDFvers_it, CDFversionNumber_list, Chann_DataIntegrityCheck_, ChannSumm_DataIntegrityCheck_, hitfit::char, 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(), bookConverter::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().

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

Definition at line 1383 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 y.

Referenced by endLuminosityBlock().

1383  {
1384  tevt_=0;
1385  if (meTevtHist_) tevt_= (int)meTevtHist_->getBinContent(1);
1386  NumBadHB=0;
1387  NumBadHE=0;
1388  NumBadHO=0;
1389  NumBadHF=0;
1390  NumBadHFLUMI=0;
1391  NumBadHO0=0;
1392  NumBadHO12=0;
1393 
1394 
1396  for (int x=0; x<THREE_FED; x++)
1397  for (int y=0; y<THREE_SPG; y++)
1400 
1402  for (int x=0; x<THREE_FED; x++)
1403  for (int y=0; y<THREE_SPG; y++)
1406 
1408  for (int x=0; x<TWO___FED; x++)
1409  for (int y=0; y<TWO__SPGT; y++)
1412 
1413  for (int f=0; f<NUMDCCS; f++){
1415  for (int x=0; x<TWO_CHANN; x++)
1416  for (int y=0; y<TWO__SPGT; y++)
1417  if (Chann_DataIntegrityCheck_[f][x][y])
1419  }
1420 
1422  for (int x=0; x<TWO___FED; x++)
1423  for (int y=0; y<THREE_SPG; y++)
1424  if (DataFlowInd_[x][y])
1426 } //UpdateMEs
void setBinContent(int binx, double content)
set content of bin (1-D)
float HalfHTRDataCorruptionIndicators_[(1+((3+1)*32))][(1+((3+1)*15))]
#define TWO_CHANN
float ChannSumm_DataIntegrityCheck_[(1+((2+1)*32))][(1+((2+1)*15))]
#define THREE_FED
#define NUMDCCS
MonitorElement * meChannSumm_DataIntegrityCheck_
MonitorElement * meDataFlowInd_
#define TWO__SPGT
MonitorElement * meTevtHist_
double f[11][100]
float Chann_DataIntegrityCheck_[32][(1+((2+1)*24))][(1+((2+1)*15))]
#define TWO___FED
MonitorElement * meLRBDataCorruptionIndicators_
float LRBDataCorruptionIndicators_[(1+((3+1)*32))][(1+((3+1)*15))]
#define THREE_SPG
double getBinContent(int binx) const
get content of bin (1-D)
float DataFlowInd_[(1+((2+1)*32))][(1+((3+1)*15))]
MonitorElement * meHalfHTRDataCorruptionIndicators_
MonitorElement * meChann_DataIntegrityCheck_[32]
void HcalRawDataMonitor::whosebad ( int  subdet)
protected

Definition at line 1429 of file HcalRawDataMonitor.cc.

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

Member Data Documentation

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

Definition at line 144 of file HcalRawDataMonitor.h.

Referenced by unpack().

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

Definition at line 143 of file HcalRawDataMonitor.h.

Referenced by unpack().

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

Definition at line 142 of file HcalRawDataMonitor.h.

Referenced by unpack().

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

Definition at line 141 of file HcalRawDataMonitor.h.

Referenced by unpack().

float HcalRawDataMonitor::Chann_DataIntegrityCheck_[32][(1+((2+1)*24))][(1+((2+1)*15))]
private

Definition at line 122 of file HcalRawDataMonitor.h.

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

float HcalRawDataMonitor::ChannSumm_DataIntegrityCheck_[(1+((2+1)*32))][(1+((2+1)*15))]
private

Definition at line 121 of file HcalRawDataMonitor.h.

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

float HcalRawDataMonitor::DataFlowInd_[(1+((2+1)*32))][(1+((3+1)*15))]
private

Definition at line 123 of file HcalRawDataMonitor.h.

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

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

Definition at line 146 of file HcalRawDataMonitor.h.

Referenced by unpack().

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

Definition at line 145 of file HcalRawDataMonitor.h.

Referenced by unpack().

edm::InputTag HcalRawDataMonitor::digiLabel_
protected

Definition at line 58 of file HcalRawDataMonitor.h.

Referenced by analyze(), and HcalRawDataMonitor().

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

Definition at line 57 of file HcalRawDataMonitor.h.

Referenced by analyze(), and HcalRawDataMonitor().

float HcalRawDataMonitor::HalfHTRDataCorruptionIndicators_[(1+((3+1)*32))][(1+((3+1)*15))]
private

Definition at line 119 of file HcalRawDataMonitor.h.

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

HcalDetId HcalRawDataMonitor::hashedHcalDetId_[32 *15 *24]
private

Definition at line 135 of file HcalRawDataMonitor.h.

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

MonitorElement* HcalRawDataMonitor::HTR_StatusWd_HBHE
private

Definition at line 173 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::HTR_StatusWd_HF
private

Definition at line 174 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::HTR_StatusWd_HO
private

Definition at line 175 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

float HcalRawDataMonitor::LRBDataCorruptionIndicators_[(1+((3+1)*32))][(1+((3+1)*15))]
private

Definition at line 120 of file HcalRawDataMonitor.h.

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

MonitorElement* HcalRawDataMonitor::meBCN_
private

Definition at line 154 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meBCNCheck_
private

Definition at line 156 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meBCNSynch_
private

Definition at line 157 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meBCNwhenOrNDiff_
private

Definition at line 164 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCDFErrorFound_
private

Definition at line 150 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED00_
private

Definition at line 83 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED01_
private

Definition at line 84 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED02_
private

Definition at line 85 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED03_
private

Definition at line 86 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED04_
private

Definition at line 87 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED05_
private

Definition at line 88 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED06_
private

Definition at line 89 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED07_
private

Definition at line 90 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED08_
private

Definition at line 91 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED09_
private

Definition at line 92 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED10_
private

Definition at line 93 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED11_
private

Definition at line 94 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED12_
private

Definition at line 95 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED13_
private

Definition at line 96 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED14_
private

Definition at line 97 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED15_
private

Definition at line 98 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED16_
private

Definition at line 99 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED17_
private

Definition at line 100 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED18_
private

Definition at line 101 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED19_
private

Definition at line 102 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED20_
private

Definition at line 103 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED21_
private

Definition at line 104 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED22_
private

Definition at line 105 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED23_
private

Definition at line 106 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED24_
private

Definition at line 107 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED25_
private

Definition at line 108 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED26_
private

Definition at line 109 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED27_
private

Definition at line 110 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED28_
private

Definition at line 111 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED29_
private

Definition at line 112 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED30_
private

Definition at line 113 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meCh_DataIntegrityFED31_
private

Definition at line 114 of file HcalRawDataMonitor.h.

Referenced by HcalRawDataMonitor().

MonitorElement* HcalRawDataMonitor::meChann_DataIntegrityCheck_[32]
private

Definition at line 116 of file HcalRawDataMonitor.h.

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

MonitorElement* HcalRawDataMonitor::meChannSumm_DataIntegrityCheck_
private

Definition at line 127 of file HcalRawDataMonitor.h.

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

MonitorElement* HcalRawDataMonitor::meCrate0HTRStatus_
private

Definition at line 182 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate10HTRStatus_
private

Definition at line 191 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate11HTRStatus_
private

Definition at line 192 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate12HTRStatus_
private

Definition at line 193 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate13HTRStatus_
private

Definition at line 194 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate14HTRStatus_
private

Definition at line 195 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate15HTRStatus_
private

Definition at line 196 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate17HTRStatus_
private

Definition at line 197 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate1HTRStatus_
private

Definition at line 183 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate2HTRStatus_
private

Definition at line 184 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate3HTRStatus_
private

Definition at line 185 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate4HTRStatus_
private

Definition at line 186 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate5HTRStatus_
private

Definition at line 187 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate6HTRStatus_
private

Definition at line 188 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate7HTRStatus_
private

Definition at line 189 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meCrate9HTRStatus_
private

Definition at line 190 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meDataFlowInd_
private

Definition at line 128 of file HcalRawDataMonitor.h.

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

MonitorElement* HcalRawDataMonitor::medccBCN_
private

Definition at line 155 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meDCCEventFormatError_
private

Definition at line 151 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meDCCVersion_
private

Definition at line 170 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meEvFragSize2_
private

Definition at line 169 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meEvFragSize_
private

Definition at line 168 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meEvtNCheck_
private

Definition at line 159 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meEvtNumberSynch_
private

Definition at line 160 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::mefedEntries_
private

Definition at line 166 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFEDRawDataSizes_
private

Definition at line 167 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib1OrbMsgBCN_
private

Definition at line 201 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib2OrbMsgBCN_
private

Definition at line 202 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib3OrbMsgBCN_
private

Definition at line 203 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib4OrbMsgBCN_
private

Definition at line 204 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib5OrbMsgBCN_
private

Definition at line 205 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib6OrbMsgBCN_
private

Definition at line 206 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib7OrbMsgBCN_
private

Definition at line 207 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFib8OrbMsgBCN_
private

Definition at line 208 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meFibBCN_
private

Definition at line 178 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meHalfHTRDataCorruptionIndicators_
private

Definition at line 125 of file HcalRawDataMonitor.h.

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

MonitorElement* HcalRawDataMonitor::meHTRFWVersion_
private

Definition at line 200 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meInvHTRData_
private

Definition at line 177 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meLRBDataCorruptionIndicators_
private

Definition at line 126 of file HcalRawDataMonitor.h.

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

MonitorElement* HcalRawDataMonitor::meOrNCheck_
private

Definition at line 162 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meOrNSynch_
private

Definition at line 163 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meStatusWdCrate_
private

Definition at line 176 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

MonitorElement* HcalRawDataMonitor::meUSFractSpigs_
private

Definition at line 199 of file HcalRawDataMonitor.h.

Referenced by setup(), and unpack().

int HcalRawDataMonitor::NumBadHB
private

Definition at line 210 of file HcalRawDataMonitor.h.

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

int HcalRawDataMonitor::NumBadHE
private

Definition at line 210 of file HcalRawDataMonitor.h.

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

int HcalRawDataMonitor::NumBadHF
private

Definition at line 210 of file HcalRawDataMonitor.h.

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

int HcalRawDataMonitor::NumBadHFLUMI
private

Definition at line 210 of file HcalRawDataMonitor.h.

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

int HcalRawDataMonitor::NumBadHO
private

Definition at line 210 of file HcalRawDataMonitor.h.

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

int HcalRawDataMonitor::NumBadHO0
private

Definition at line 210 of file HcalRawDataMonitor.h.

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

int HcalRawDataMonitor::NumBadHO12
private

Definition at line 210 of file HcalRawDataMonitor.h.

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

uint64_t HcalRawDataMonitor::problemcount[85][72][4]
protected

Definition at line 75 of file HcalRawDataMonitor.h.

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

bool HcalRawDataMonitor::problemfound[85][72][4]
protected
const HcalElectronicsMap* HcalRawDataMonitor::readoutMap_
protected

Definition at line 63 of file HcalRawDataMonitor.h.

Referenced by bookHistograms().

edm::EDGetTokenT<FEDRawDataCollection> HcalRawDataMonitor::tok_raw_
protected

Definition at line 60 of file HcalRawDataMonitor.h.

Referenced by analyze(), and HcalRawDataMonitor().

edm::EDGetTokenT<HcalUnpackerReport> HcalRawDataMonitor::tok_unpack_
protected

Definition at line 61 of file HcalRawDataMonitor.h.

Referenced by analyze(), and HcalRawDataMonitor().

uint64_t HcalRawDataMonitor::uniqcounter[85][72][4]
protected

Definition at line 73 of file HcalRawDataMonitor.h.

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

uint64_t HcalRawDataMonitor::UScount[32][15]
private

Definition at line 118 of file HcalRawDataMonitor.h.

Referenced by reset(), and unpack().