CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
RPCMonitorRaw Class Reference

#include <RPCMonitorRaw.h>

Inheritance diagram for RPCMonitorRaw:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 RPCMonitorRaw (const edm::ParameterSet &cfg)
 
 ~RPCMonitorRaw () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Attributes

MonitorElementme_e [3]
 
MonitorElementme_mapBadEvents
 
MonitorElementme_mapGoodEvents
 
MonitorElementme_t [3]
 
edm::EDGetTokenT< RPCRawDataCountsrpcRawDataCountsTag_
 
edm::ParameterSet theConfig
 
unsigned int theWatchedErrorHistoPos [10]
 
std::vector< MonitorElement * > theWatchedErrorHistos [3]
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Analyse errors in raw data stream as RPCRawDataCounts produced by RPCRawToDigi

Definition at line 22 of file RPCMonitorRaw.h.

Constructor & Destructor Documentation

◆ RPCMonitorRaw()

RPCMonitorRaw::RPCMonitorRaw ( const edm::ParameterSet cfg)
explicit

Definition at line 27 of file RPCMonitorRaw.cc.

27  : theConfig(cfg) {
28  rpcRawDataCountsTag_ = consumes<RPCRawDataCounts>(cfg.getParameter<edm::InputTag>("rpcRawDataCountsTag"));
29 
30  for (unsigned int i = 0; i < 10; i++)
32  std::vector<int> algos = cfg.getUntrackedParameter<std::vector<int> >("watchedErrors");
33  for (std::vector<int>::const_iterator it = algos.begin(); it != algos.end(); ++it) {
34  unsigned int ialgo = *it;
35  if (ialgo < 10)
36  theWatchedErrorHistoPos[ialgo] = 1; // real position initialisain is in begin job. here mark just switched on.
37  }
38 }

References jets_cff::algos, looper::cfg, mps_fire::i, rpcRawDataCountsTag_, and theWatchedErrorHistoPos.

◆ ~RPCMonitorRaw()

RPCMonitorRaw::~RPCMonitorRaw ( )
override

Definition at line 40 of file RPCMonitorRaw.cc.

40 { LogTrace("") << "RPCMonitorRaw destructor"; }

References LogTrace.

Member Function Documentation

◆ analyze()

void RPCMonitorRaw::analyze ( const edm::Event ev,
const edm::EventSetup es 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 81 of file RPCMonitorRaw.cc.

81  {
83  ev.getByToken(rpcRawDataCountsTag_, rawCounts);
84  const RPCRawDataCounts& counts = *rawCounts.product();
85 
86  //
87  // record type
88  //
89  for (IT it = counts.theRecordTypes.begin(); it != counts.theRecordTypes.end(); ++it)
90  me_t[it->first.first - 790]->Fill(it->first.second, it->second);
91 
92  //
93  // good events topology
94  //
95  for (IT it = counts.theGoodEvents.begin(); it != counts.theGoodEvents.end(); ++it)
96  me_mapGoodEvents->Fill(it->first.second, it->first.first, it->second);
97 
98  //
99  // bad events topology
100  //
101  for (IT it = counts.theBadEvents.begin(); it != counts.theBadEvents.end(); ++it)
102  me_mapBadEvents->Fill(it->first.second, it->first.first, it->second);
103 
104  //
105  // readout errors
106  //
107  for (IT it = counts.theReadoutErrors.begin(); it != counts.theReadoutErrors.end(); ++it) {
108  rpcrawtodigi::ReadoutError error(it->first.second);
109  LinkBoardElectronicIndex ele = error.where();
111 
112  int fed = it->first.first;
113  me_e[fed - 790]->Fill(type, it->second);
114 
115  //
116  // in addition fill location map for selected errors
117  //
118  int idx = theWatchedErrorHistoPos[type] - 1;
119  if (idx >= 0) {
120  std::vector<MonitorElement*>& wh = theWatchedErrorHistos[fed - 790];
121  MonitorElement* me = wh[idx];
122  me->Fill(ele.dccInputChannelNum, ele.tbLinkInputNum, it->second);
123  }
124  }
125 
126  // for (int i=0; i<3; ++i) {
127  // me_t[i]->update();
128  // me_e[i]->update();
129  // std::vector<MonitorElement* > & wh = theWatchedErrorHistos[i];
130  // for (std::vector<MonitorElement* >::iterator it=wh.begin(); it != wh.end(); ++it) (*it)->update();
131  // }
132  // me_mapGoodEvents->update();
133  // me_mapBadEvents->update();
134 }

References dqmiodumpmetadata::counts, LinkBoardElectronicIndex::dccInputChannelNum, relativeConstraints::error, ev, dqm::impl::MonitorElement::Fill(), heavyIonCSV_trainingSettings::idx, hlt_dqm_clientPB-live_cfg::me, me_e, me_mapBadEvents, me_mapGoodEvents, me_t, edm::Handle< T >::product(), rpcRawDataCountsTag_, LinkBoardElectronicIndex::tbLinkInputNum, theWatchedErrorHistoPos, and theWatchedErrorHistos.

◆ bookHistograms()

void RPCMonitorRaw::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 42 of file RPCMonitorRaw.cc.

42  {
43  ibooker.cd();
44  ibooker.setCurrentFolder("RPC/LinkMonitor");
45 
46  me_t[0] = ibooker.book1D("recordType_790", RPCRawDataCountsHistoMaker::emptyRecordTypeHisto(790));
47  me_t[1] = ibooker.book1D("recordType_791", RPCRawDataCountsHistoMaker::emptyRecordTypeHisto(791));
48  me_t[2] = ibooker.book1D("recordType_792", RPCRawDataCountsHistoMaker::emptyRecordTypeHisto(792));
49  for (int i = 0; i < 3; ++i)
50  me_t[i]->getTH1F()->SetStats(false);
51 
52  me_e[0] = ibooker.book1D("readoutErrors_790", RPCRawDataCountsHistoMaker::emptyReadoutErrorHisto(790));
53  me_e[1] = ibooker.book1D("readoutErrors_791", RPCRawDataCountsHistoMaker::emptyReadoutErrorHisto(791));
54  me_e[2] = ibooker.book1D("readoutErrors_792", RPCRawDataCountsHistoMaker::emptyReadoutErrorHisto(792));
55  for (int i = 0; i < 3; ++i)
56  me_e[i]->getTH1F()->SetStats(false);
57 
58  me_mapGoodEvents = ibooker.book2D("mapGoodRecords", "mapGoodRecords", 36, -0.5, 35.5, 3, 789.5, 792.5);
59  me_mapGoodEvents->getTH2F()->SetNdivisions(3, "y");
61  me_mapGoodEvents->getTH2F()->SetYTitle("fed");
62  me_mapGoodEvents->getTH2F()->SetStats(false);
63  me_mapBadEvents = ibooker.book2D("mapErrorRecords", "mapErrorRecords", 36, -0.5, 35.5, 3, 789.5, 792.5);
65  me_mapBadEvents->getTH2F()->SetYTitle("rmb");
66  me_mapBadEvents->getTH2F()->SetNdivisions(3, "y");
67  me_mapBadEvents->getTH2F()->SetStats(false);
68 
69  for (unsigned int i = 0; i <= 9; ++i) {
71  for (unsigned int fed = 790; fed <= 792; ++fed) {
73  MonitorElement* watched = ibooker.book2D(histo->GetName(), histo);
74  theWatchedErrorHistos[fed - 790].push_back(watched);
75  theWatchedErrorHistoPos[i] = theWatchedErrorHistos[fed - 790].size();
76  }
77  }
78  }
79 }

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), dqm::implementation::NavigatorBase::cd(), RPCRawDataCountsHistoMaker::emptyReadoutErrorHisto(), RPCRawDataCountsHistoMaker::emptyReadoutErrorMapHisto(), RPCRawDataCountsHistoMaker::emptyRecordTypeHisto(), dqm::impl::MonitorElement::getTH2F(), timingPdfMaker::histo, mps_fire::i, me_e, me_mapBadEvents, me_mapGoodEvents, me_t, dqm::impl::MonitorElement::setAxisTitle(), dqm::implementation::NavigatorBase::setCurrentFolder(), theWatchedErrorHistoPos, and theWatchedErrorHistos.

Member Data Documentation

◆ me_e

MonitorElement* RPCMonitorRaw::me_e[3]
private

Definition at line 32 of file RPCMonitorRaw.h.

Referenced by analyze(), and bookHistograms().

◆ me_mapBadEvents

MonitorElement* RPCMonitorRaw::me_mapBadEvents
private

Definition at line 34 of file RPCMonitorRaw.h.

Referenced by analyze(), and bookHistograms().

◆ me_mapGoodEvents

MonitorElement* RPCMonitorRaw::me_mapGoodEvents
private

Definition at line 33 of file RPCMonitorRaw.h.

Referenced by analyze(), and bookHistograms().

◆ me_t

MonitorElement* RPCMonitorRaw::me_t[3]
private

Definition at line 31 of file RPCMonitorRaw.h.

Referenced by analyze(), and bookHistograms().

◆ rpcRawDataCountsTag_

edm::EDGetTokenT<RPCRawDataCounts> RPCMonitorRaw::rpcRawDataCountsTag_
private

Definition at line 45 of file RPCMonitorRaw.h.

Referenced by analyze(), and RPCMonitorRaw().

◆ theConfig

edm::ParameterSet RPCMonitorRaw::theConfig
private

Definition at line 36 of file RPCMonitorRaw.h.

◆ theWatchedErrorHistoPos

unsigned int RPCMonitorRaw::theWatchedErrorHistoPos[10]
private

Definition at line 40 of file RPCMonitorRaw.h.

Referenced by analyze(), bookHistograms(), and RPCMonitorRaw().

◆ theWatchedErrorHistos

std::vector<MonitorElement*> RPCMonitorRaw::theWatchedErrorHistos[3]
private

Definition at line 37 of file RPCMonitorRaw.h.

Referenced by analyze(), and bookHistograms().

rpcrawtodigi::ReadoutError::ReadoutErrorType
ReadoutErrorType
Definition: ReadoutError.h:10
mps_fire.i
i
Definition: mps_fire.py:428
RPCMonitorRaw::theWatchedErrorHistoPos
unsigned int theWatchedErrorHistoPos[10]
Definition: RPCMonitorRaw.h:40
RPCRawDataCountsHistoMaker::emptyRecordTypeHisto
static TH1F * emptyRecordTypeHisto(int fedId)
Definition: RPCRawDataCountsHistoMaker.cc:23
RPCRawDataCountsHistoMaker::emptyReadoutErrorHisto
static TH1F * emptyReadoutErrorHisto(int fedId)
Definition: RPCRawDataCountsHistoMaker.cc:12
edm::Handle::product
T const * product() const
Definition: Handle.h:70
RPCRawDataCounts
Definition: RPCRawDataCounts.h:15
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
timingPdfMaker.histo
histo
Definition: timingPdfMaker.py:279
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
rpcrawtodigi::ReadoutError
Definition: ReadoutError.h:8
edm::Handle
Definition: AssociativeIterator.h:50
relativeConstraints.error
error
Definition: relativeConstraints.py:53
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
RPCMonitorRaw::me_e
MonitorElement * me_e[3]
Definition: RPCMonitorRaw.h:32
dqm::impl::MonitorElement::getTH2F
virtual TH2F * getTH2F()
Definition: MonitorElement.cc:1004
LinkBoardElectronicIndex::dccInputChannelNum
int dccInputChannelNum
Definition: LinkBoardElectronicIndex.h:12
jets_cff.algos
algos
Definition: jets_cff.py:706
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
RPCMonitorRaw::me_mapBadEvents
MonitorElement * me_mapBadEvents
Definition: RPCMonitorRaw.h:34
LinkBoardElectronicIndex::tbLinkInputNum
int tbLinkInputNum
Definition: LinkBoardElectronicIndex.h:13
RPCMonitorRaw::theConfig
edm::ParameterSet theConfig
Definition: RPCMonitorRaw.h:36
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:40
RPCRawDataCountsHistoMaker::emptyReadoutErrorMapHisto
static TH2F * emptyReadoutErrorMapHisto(int fedId, int type)
Definition: RPCRawDataCountsHistoMaker.cc:35
IT
std::vector< LinkConnSpec >::const_iterator IT
Definition: TriggerBoardSpec.cc:5
looper.cfg
cfg
Definition: looper.py:297
LinkBoardElectronicIndex
Definition: LinkBoardElectronicIndex.h:10
RPCMonitorRaw::theWatchedErrorHistos
std::vector< MonitorElement * > theWatchedErrorHistos[3]
Definition: RPCMonitorRaw.h:37
dqm::implementation::IBooker::book2D
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:177
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
dqmiodumpmetadata.counts
counts
Definition: dqmiodumpmetadata.py:25
RPCMonitorRaw::me_mapGoodEvents
MonitorElement * me_mapGoodEvents
Definition: RPCMonitorRaw.h:33
RPCMonitorRaw::rpcRawDataCountsTag_
edm::EDGetTokenT< RPCRawDataCounts > rpcRawDataCountsTag_
Definition: RPCMonitorRaw.h:45
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
RPCMonitorRaw::me_t
MonitorElement * me_t[3]
Definition: RPCMonitorRaw.h:31
hlt_dqm_clientPB-live_cfg.me
me
Definition: hlt_dqm_clientPB-live_cfg.py:61
dqm::impl::MonitorElement::setAxisTitle
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
Definition: MonitorElement.cc:800
edm::InputTag
Definition: InputTag.h:15
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98