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 | Private Types | Private Attributes
CastorMonitorModule Class Reference

#include <CastorMonitorModule.h>

Inheritance diagram for CastorMonitorModule:
one::DQMEDAnalyzer< T > one::dqmimplementation::DQMBaseClass< T... >

Public Member Functions

 CastorMonitorModule (const edm::ParameterSet &ps)
 
 ~CastorMonitorModule () override
 
- Public Member Functions inherited from one::DQMEDAnalyzer< T >
 DQMEDAnalyzer ()=default
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > const &)=delete
 
 DQMEDAnalyzer (DQMEDAnalyzer< T... > &&)=delete
 
 ~DQMEDAnalyzer () override=default
 

Protected Member Functions

void analyze (const edm::Event &iEvent, const edm::EventSetup &eventSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
void endRun (const edm::Run &run, const edm::EventSetup &eventSetup) override
 

Private Types

typedef std::vector< reco::BasicJetBasicJetCollection
 
typedef std::vector< reco::CastorTowerCastorTowerCollection
 

Private Attributes

MonitorElementCastorEventProduct
 
edm::CPUTimer cpu_timer
 
std::unique_ptr< CastorDigiMonitorDigiMon_
 
int fVerbosity
 
MonitorElementhunpkrep
 
int ievt_
 
edm::EDGetTokenT< CastorTowerCollectioninputTokenCastorTowers_
 
edm::EDGetTokenT< CastorDigiCollectioninputTokenDigi_
 
edm::EDGetTokenT< FEDRawDataCollectioninputTokenRaw_
 
edm::EDGetTokenT< CastorRecHitCollectioninputTokenRecHitCASTOR_
 
edm::EDGetTokenT< HcalUnpackerReportinputTokenReport_
 
edm::EDGetTokenT< BasicJetCollectionJetAlgorithm
 
std::unique_ptr< CastorLEDMonitorLedMon_
 
std::unique_ptr< CastorRecHitMonitorRecHitMon_
 
bool showTiming_
 
std::string subsystemname_
 
edm::EDGetTokenT< edm::TriggerResultstokenTriggerResults
 

Detailed Description

Definition at line 73 of file CastorMonitorModule.h.

Member Typedef Documentation

Definition at line 105 of file CastorMonitorModule.h.

Definition at line 103 of file CastorMonitorModule.h.

Constructor & Destructor Documentation

CastorMonitorModule::CastorMonitorModule ( const edm::ParameterSet ps)

Definition at line 29 of file CastorMonitorModule.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

29  {
30  fVerbosity = ps.getUntrackedParameter<int>("debug", 0);
32  ps.getUntrackedParameter<std::string>("subSystemFolder", "Castor");
33  inputTokenRaw_ = consumes<FEDRawDataCollection>(
34  ps.getParameter<edm::InputTag>("rawLabel"));
35  inputTokenReport_ = consumes<HcalUnpackerReport>(
36  ps.getParameter<edm::InputTag>("unpackerReportLabel"));
37  inputTokenDigi_ = consumes<CastorDigiCollection>(
38  ps.getParameter<edm::InputTag>("digiLabel"));
39  inputTokenRecHitCASTOR_ = consumes<CastorRecHitCollection>(
40  ps.getParameter<edm::InputTag>("CastorRecHitLabel"));
41  inputTokenCastorTowers_ = consumes<CastorTowerCollection>(
42  ps.getParameter<edm::InputTag>("CastorTowerLabel"));
43  JetAlgorithm = consumes<BasicJetCollection>(
44  ps.getParameter<edm::InputTag>("CastorBasicJetsLabel"));
45  tokenTriggerResults = consumes<edm::TriggerResults>(
46  ps.getParameter<edm::InputTag>("tagTriggerResults"));
47 
48  showTiming_ = ps.getUntrackedParameter<bool>("showTiming", false);
49 
50  if (ps.getUntrackedParameter<bool>("DigiMonitor", false))
51  DigiMon_ = std::make_unique<CastorDigiMonitor>(ps);
52 
53  if (ps.getUntrackedParameter<bool>("RecHitMonitor", false))
54  RecHitMon_ = std::make_unique<CastorRecHitMonitor>(ps);
55 
56  if (ps.getUntrackedParameter<bool>("LEDMonitor", false))
57  LedMon_ = std::make_unique<CastorLEDMonitor>(ps);
58 
59  ievt_ = 0;
60 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< edm::TriggerResults > tokenTriggerResults
std::unique_ptr< CastorLEDMonitor > LedMon_
edm::EDGetTokenT< FEDRawDataCollection > inputTokenRaw_
edm::EDGetTokenT< CastorDigiCollection > inputTokenDigi_
edm::EDGetTokenT< CastorTowerCollection > inputTokenCastorTowers_
std::unique_ptr< CastorDigiMonitor > DigiMon_
edm::EDGetTokenT< BasicJetCollection > JetAlgorithm
edm::EDGetTokenT< HcalUnpackerReport > inputTokenReport_
std::unique_ptr< CastorRecHitMonitor > RecHitMon_
edm::EDGetTokenT< CastorRecHitCollection > inputTokenRecHitCASTOR_
CastorMonitorModule::~CastorMonitorModule ( )
override

Definition at line 62 of file CastorMonitorModule.cc.

62  {
63 }

Member Function Documentation

void CastorMonitorModule::analyze ( const edm::Event iEvent,
const edm::EventSetup eventSetup 
)
overrideprotected

Definition at line 116 of file CastorMonitorModule.cc.

References HcalUnpackerReport::badQualityDigis(), HcalUnpackerReport::busySpigots(), gather_cfg::cout, DEFINE_FWK_MODULE, HcalUnpackerReport::emptyEventSpigots(), objects.autophobj::float, edm::EventSetup::get(), edm::Event::getByToken(), edm::HandleBase::isValid(), fwrapper::jets, ecaldqm::nTowers, HcalUnpackerReport::OFWSpigots(), edmIntegrityCheck::report, edm::SortedCollection< T, SORT >::size(), and HcalUnpackerReport::spigotFormatErrors().

117  {
118  if (fVerbosity > 1) LogPrint("CastorMonitorModule") << "analyze (start)";
119 
120  ievt_++;
121 
122  bool rawOK_ = true;
123  bool digiOK_ = true;
124  bool rechitOK_ = true, towerOK_ = true, jetsOK_ = true;
125  int nDigi = 0, nrecHits = 0, nTowers = 0, nJets = 0;
126 
128  iEvent.getByToken(tokenTriggerResults, TrigResults);
129 
131  iEvent.getByToken(inputTokenRaw_, RawData);
132  if (!RawData.isValid()) rawOK_ = false;
133 
134  float fedsUnpacked = 0.;
136  iEvent.getByToken(inputTokenReport_, report);
137  if (!report.isValid())
138  rawOK_ = false;
139  else {
140  const std::vector<int> feds = (*report).getFedsUnpacked();
141  fedsUnpacked = float(feds.size());
142  hunpkrep->Fill(0, fedsUnpacked);
143  hunpkrep->Fill(1, report->spigotFormatErrors());
144  hunpkrep->Fill(2, report->emptyEventSpigots());
145  hunpkrep->Fill(3, report->busySpigots());
146  hunpkrep->Fill(4, report->OFWSpigots());
147  hunpkrep->Fill(5, report->badQualityDigis());
148  }
149 
151  iEvent.getByToken(inputTokenDigi_, CastorDigi);
152  if (CastorDigi.isValid())
153  nDigi = CastorDigi->size();
154  else
155  digiOK_ = false;
156 
158  iEvent.getByToken(inputTokenRecHitCASTOR_, CastorHits);
159  if (CastorHits.isValid())
160  nrecHits = CastorHits->size();
161  else
162  rechitOK_ = false;
163 
165  iEvent.getByToken(inputTokenCastorTowers_, castorTowers);
166  if (castorTowers.isValid())
167  nTowers = castorTowers->size();
168  else
169  towerOK_ = false;
170 
172  iEvent.getByToken(JetAlgorithm, jets);
173  if (jets.isValid())
174  nJets = jets->size();
175  else
176  jetsOK_ = false;
177 
178  if (fVerbosity > 0)
179  LogPrint("CastorMonitorModule")
180  << "CastorProductValid(size): RawDataValid=" << RawData.isValid()
181  << " Digi=" << digiOK_ << "(" << nDigi << ") Hits=" << rechitOK_ << "("
182  << nrecHits << ")"
183  << " Towers=" << towerOK_ << "(" << nTowers << ")"
184  << " Jets=" << jetsOK_ << "(" << nJets << ")";
185 
186  CastorEventProduct->Fill(0, fedsUnpacked / 3.);
187  CastorEventProduct->Fill(1, rawOK_);
188  CastorEventProduct->Fill(2, digiOK_);
189  CastorEventProduct->Fill(3, rechitOK_);
190  CastorEventProduct->Fill(4, towerOK_);
191  CastorEventProduct->Fill(5, jetsOK_);
192 
193  if (digiOK_) {
195  iSetup.get<CastorDbRecord>().get(conditions);
196 
197  DigiMon_->processEvent(iEvent, *CastorDigi, *TrigResults, *conditions);
198  }
199  if (showTiming_) {
200  cpu_timer.stop();
201  if (DigiMon_ != nullptr)
202  std::cout << "TIMER:: DIGI MONITOR ->" << cpu_timer.cpuTime()
203  << std::endl;
204  cpu_timer.reset();
205  cpu_timer.start();
206  }
207 
208  if (rechitOK_) RecHitMon_->processEvent(*CastorHits);
209  if (showTiming_) {
210  cpu_timer.stop();
211  if (RecHitMon_ != nullptr)
212  std::cout << "TIMER:: RECHIT MONITOR->" << cpu_timer.cpuTime()
213  << std::endl;
214  cpu_timer.reset();
215  cpu_timer.start();
216  }
217 
218  if (towerOK_) RecHitMon_->processEventTowers(*castorTowers);
219  if (jetsOK_) RecHitMon_->processEventJets(*jets);
220 
221  if (fVerbosity > 0 && ievt_ % 100 == 0)
222  LogPrint("CastorMonitorModule") << "processed " << ievt_ << " events";
223  return;
224 }
int spigotFormatErrors() const
edm::EDGetTokenT< edm::TriggerResults > tokenTriggerResults
void start()
Definition: CPUTimer.cc:74
int emptyEventSpigots() const
edm::EDGetTokenT< FEDRawDataCollection > inputTokenRaw_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:579
MonitorElement * hunpkrep
void reset()
Definition: CPUTimer.cc:107
void Fill(long long x)
edm::EDGetTokenT< CastorDigiCollection > inputTokenDigi_
edm::EDGetTokenT< CastorTowerCollection > inputTokenCastorTowers_
std::unique_ptr< CastorDigiMonitor > DigiMon_
vector< PseudoJet > jets
Times stop()
Definition: CPUTimer.cc:94
bool isValid() const
Definition: HandleBase.h:74
double cpuTime() const
Definition: CPUTimer.cc:158
edm::EDGetTokenT< BasicJetCollection > JetAlgorithm
int badQualityDigis() const
MonitorElement * CastorEventProduct
size_type size() const
edm::EDGetTokenT< HcalUnpackerReport > inputTokenReport_
std::unique_ptr< CastorRecHitMonitor > RecHitMon_
edm::EDGetTokenT< CastorRecHitCollection > inputTokenRecHitCASTOR_
int busySpigots() const
void CastorMonitorModule::bookHistograms ( DQMStore::IBooker ,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprotected

Definition at line 71 of file CastorMonitorModule.cc.

References DQMStore::IBooker::book1DD(), DQMStore::IBooker::bookProfile(), MonitorElement::getTH1D(), MonitorElement::getTProfile(), alignCSCRings::s, and DQMStore::IBooker::setCurrentFolder().

73  {
74  if (DigiMon_ ) {
75  DigiMon_->bookHistograms(ibooker, iRun, iSetup);
76  }
77  if (RecHitMon_ ) {
78  RecHitMon_->bookHistograms(ibooker, iRun, iSetup);
79  }
80  if (LedMon_ ) {
81  LedMon_->bookHistograms(ibooker, iRun, iSetup);
82  }
83 
84  ibooker.setCurrentFolder(subsystemname_);
85  char s[60];
86  sprintf(s, "CastorEventProducts");
87  CastorEventProduct = ibooker.book1DD(s, s, 6, -0.5, 5.5);
88  CastorEventProduct->getTH1D()->GetYaxis()->SetTitle("Events");
89  TAxis* xa = CastorEventProduct->getTH1D()->GetXaxis();
90  xa->SetBinLabel(1, "FEDs/3");
91  xa->SetBinLabel(2, "RawData");
92  xa->SetBinLabel(3, "Digi");
93  xa->SetBinLabel(4, "RecHits");
94  xa->SetBinLabel(5, "Towers");
95  xa->SetBinLabel(6, "Jets");
96 
97  sprintf(s, "CASTORUnpackReport");
98  hunpkrep = ibooker.bookProfile(s, s, 6, -0.5, 5.5, 100, 0, 1.e10, "");
99  xa = hunpkrep->getTProfile()->GetXaxis();
100  xa->SetBinLabel(1, "N_FEDs");
101  xa->SetBinLabel(2, "SPIGOT_Err");
102  xa->SetBinLabel(3, "empty");
103  xa->SetBinLabel(4, "busy");
104  xa->SetBinLabel(5, "OvF");
105  xa->SetBinLabel(6, "BadDigis");
106  return;
107 }
TProfile * getTProfile() const
std::unique_ptr< CastorLEDMonitor > LedMon_
MonitorElement * hunpkrep
std::unique_ptr< CastorDigiMonitor > DigiMon_
MonitorElement * CastorEventProduct
TH1D * getTH1D() const
std::unique_ptr< CastorRecHitMonitor > RecHitMon_
void CastorMonitorModule::dqmBeginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
overrideprotected

Definition at line 65 of file CastorMonitorModule.cc.

66  {
67  if (fVerbosity > 0) LogPrint("CastorMonitorModule") << "dqmBeginRun(start)";
68 
69 }
void CastorMonitorModule::endRun ( const edm::Run run,
const edm::EventSetup eventSetup 
)
overrideprotected

Definition at line 109 of file CastorMonitorModule.cc.

110  {
111  if (DigiMon_) {
112  DigiMon_->endRun();
113  }
114 }
std::unique_ptr< CastorDigiMonitor > DigiMon_

Member Data Documentation

MonitorElement* CastorMonitorModule::CastorEventProduct
private

Definition at line 116 of file CastorMonitorModule.h.

edm::CPUTimer CastorMonitorModule::cpu_timer
private

Definition at line 120 of file CastorMonitorModule.h.

std::unique_ptr<CastorDigiMonitor> CastorMonitorModule::DigiMon_
private

Definition at line 111 of file CastorMonitorModule.h.

int CastorMonitorModule::fVerbosity
private

Definition at line 91 of file CastorMonitorModule.h.

MonitorElement* CastorMonitorModule::hunpkrep
private

Definition at line 117 of file CastorMonitorModule.h.

int CastorMonitorModule::ievt_
private

Definition at line 94 of file CastorMonitorModule.h.

edm::EDGetTokenT<CastorTowerCollection> CastorMonitorModule::inputTokenCastorTowers_
private

Definition at line 104 of file CastorMonitorModule.h.

edm::EDGetTokenT<CastorDigiCollection> CastorMonitorModule::inputTokenDigi_
private

Definition at line 101 of file CastorMonitorModule.h.

edm::EDGetTokenT<FEDRawDataCollection> CastorMonitorModule::inputTokenRaw_
private

Definition at line 99 of file CastorMonitorModule.h.

edm::EDGetTokenT<CastorRecHitCollection> CastorMonitorModule::inputTokenRecHitCASTOR_
private

Definition at line 102 of file CastorMonitorModule.h.

edm::EDGetTokenT<HcalUnpackerReport> CastorMonitorModule::inputTokenReport_
private

Definition at line 100 of file CastorMonitorModule.h.

edm::EDGetTokenT<BasicJetCollection> CastorMonitorModule::JetAlgorithm
private

Definition at line 106 of file CastorMonitorModule.h.

std::unique_ptr<CastorLEDMonitor> CastorMonitorModule::LedMon_
private

Definition at line 112 of file CastorMonitorModule.h.

std::unique_ptr<CastorRecHitMonitor> CastorMonitorModule::RecHitMon_
private

Definition at line 110 of file CastorMonitorModule.h.

bool CastorMonitorModule::showTiming_
private

Definition at line 119 of file CastorMonitorModule.h.

std::string CastorMonitorModule::subsystemname_
private

Definition at line 92 of file CastorMonitorModule.h.

edm::EDGetTokenT<edm::TriggerResults> CastorMonitorModule::tokenTriggerResults
private

Definition at line 98 of file CastorMonitorModule.h.