CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CastorMonitorModule.cc
Go to the documentation of this file.
6 
7 //**************************************************************//
8 //***************** CastorMonitorModule ******************//
9 //***************** Author: Dmytro Volyanskyy ******************//
10 //***************** Date : 22.11.2008 (first version) *********//
11 //**************************************************************//
16 
17 //==================================================================//
18 //======================= Constructor ==============================//
19 //==================================================================//
21 
22 
23 
24 
26  inputLabelRaw_ = ps.getParameter<edm::InputTag>("rawLabel");
27  inputLabelDigi_ = ps.getParameter<edm::InputTag>("digiLabel");
28  inputLabelRecHitCASTOR_ = ps.getParameter<edm::InputTag>("CastorRecHitLabel");
29  fVerbosity = ps.getUntrackedParameter<int>("debug", 0); //-- show debug
30  showTiming_ = ps.getUntrackedParameter<bool>("showTiming", false); //-- show CPU time
31  dump2database_ = ps.getUntrackedParameter<bool>("dump2database",false); //-- dumps output to database file
32  EDMonOn_= ps.getUntrackedParameter<bool>("EDMonitor", false);
33 
34  if(fVerbosity>0) std::cout << "CastorMonitorModule Constructor (start)" << std::endl;
35 
37  irun_=0;
38  ilumisec_=0;
39  ievent_=0;
40  itime_=0;
41  ibunch_=0;
42  actonLS_=false;
43 
44  meStatus_=0; meRunType_=0;
45  meEvtMask_=0; meFEDS_=0;
46  // meLatency_=0; // PK: eliminate - proposed change from reproducibility tests; is it needed?
47  meQuality_=0;
48  fedsListed_ = false;
49 
50  RecHitMon_ = NULL;
51  DigiMon_ = NULL;
52  LedMon_ = NULL;
53  PSMon_ = NULL;
54  CQMon_ = NULL;
55  EDMon_ = NULL;
56  HIMon_ = NULL;
57 
60 
63 
64 
65  //---------------------- DigiMonitor ----------------------//
66  if ( ps.getUntrackedParameter<bool>("DigiMonitor", false) ) {
67  if(fVerbosity>0) std::cout << "CastorMonitorModule: Digi monitor flag is on...." << std::endl;
69  DigiMon_->setup(ps, dbe_);
70  }
71  //------------------------------------------------------------//
72 
74  if ( ps.getUntrackedParameter<bool>("RecHitMonitor", false) ) {
75  if(fVerbosity>0) std::cout << "CastorMonitorModule: RecHit monitor flag is on...." << std::endl;
77  RecHitMon_->setup(ps, dbe_);
78  }
79  //-------------------------------------------------------------//
80 
81 
83  if ( ps.getUntrackedParameter<bool>("HIMonitor", false) ) {
84  if(fVerbosity>0) std::cout << "CastorMonitorModule: HI monitor flag is on...." << std::endl;
85  HIMon_ = new CastorHIMonitor();
86  HIMon_->setup(ps, dbe_);
87  }
88  //-------------------------------------------------------------//
89 
91  if ( ps.getUntrackedParameter<bool>("ChannelQualityMonitor", false) ) {
92  if(fVerbosity>0) std::cout << "CastorChannelQualityMonitor: CQ monitor flag is on...." << std::endl;
94  CQMon_->setup(ps, dbe_);
95  }
96  //-------------------------------------------------------------//
97  /* // take it away for the time being
99  if ( ps.getUntrackedParameter<bool>("LEDMonitor", false) ) {
100  if(fVerbosity>0) std::cout << "CastorMonitorModule: LED monitor flag is on...." << std::endl;
101  LedMon_ = new CastorLEDMonitor();
102  LedMon_->setup(ps, dbe_);
103  }
104  //-------------------------------------------------------------//
105  */
106  //---------------------- PSMonitor ----------------------//
107  if ( ps.getUntrackedParameter<bool>("PSMonitor", false) ) {
108  if(fVerbosity>0) std::cout << "CastorMonitorModule: PS monitor flag is on...." << std::endl;
109  PSMon_ = new CastorPSMonitor();
110  PSMon_->setup(ps, dbe_);
111  }
112  //------------------------------------------------------------//
113 
114  //---------------------- EDMonitor ----------------------//
115  if ( ps.getUntrackedParameter<bool>("EDMonitor", false) ) {
116  if(fVerbosity>0) std::cout << "CastorMonitorModule: ED monitor flag is on...." << std::endl;
117  EDMon_ = new CastorEventDisplay();
118  EDMon_->setup(ps, dbe_);
119  }
120  //------------------------------------------------------------//
121 
122 
123 
124 
125 
127 
129  prescaleEvt_ = ps.getUntrackedParameter<int>("diagnosticPrescaleEvt", -1);
130  if(fVerbosity>0) std::cout << "===>CastorMonitor event prescale = " << prescaleEvt_ << " event(s)"<< std::endl;
131 
132  prescaleLS_ = ps.getUntrackedParameter<int>("diagnosticPrescaleLS", -1);
133  if(fVerbosity>0) std::cout << "===>CastorMonitor lumi section prescale = " << prescaleLS_ << " lumi section(s)"<< std::endl;
134  if (prescaleLS_>0) actonLS_=true;
135 
136  prescaleUpdate_ = ps.getUntrackedParameter<int>("diagnosticPrescaleUpdate", -1);
137  if(fVerbosity>0) std::cout << "===>CastorMonitor update prescale = " << prescaleUpdate_ << " update(s)"<< std::endl;
138 
139  prescaleTime_ = ps.getUntrackedParameter<int>("diagnosticPrescaleTime", -1);
140  if(fVerbosity>1) std::cout << "===>CastorMonitor time prescale = " << prescaleTime_ << " minute(s)"<< std::endl;
141 
143  std::string subsystemname = ps.getUntrackedParameter<std::string>("subSystemFolder", "Castor") ;
144  if(fVerbosity>0) std::cout << "===>CastorMonitor name = " << subsystemname << std::endl;
145  rootFolder_ = subsystemname + "/";
146 
147  if ( dbe_ != NULL ){
149  }
150 
151 
152  gettimeofday(&psTime_.updateTV,NULL);
154  psTime_.updateTime = (psTime_.updateTV.tv_sec*1000.0+psTime_.updateTV.tv_usec/1000.0);
155  psTime_.updateTime /= 1000.0;
156  psTime_.elapsedTime=0;
157  psTime_.vetoTime=psTime_.updateTime;
158 
159  if(fVerbosity>0) std::cout << "CastorMonitorModule Constructor (end)" << std::endl;
160 
161 }
162 
163 
164 //==================================================================//
165 //======================= Destructor ===============================//
166 //==================================================================//
168 
169 // if (dbe_){
170 // if(DigiMon_!=NULL) { DigiMon_->clearME();}
171 // if(RecHitMon_!=NULL) { RecHitMon_->clearME();}
172 // if(LedMon_!=NULL) { LedMon_->clearME();}
173 // if(PSMon_!=NULL) { LedMon_->clearME();}
174 // if(HIMon_!=NULL) { HIMon_->clearME();}
175 // dbe_->setCurrentFolder(rootFolder_);
176 // dbe_->removeContents();
177 // }
178 //
179 // if(DigiMon_!=NULL) { delete DigiMon_; DigiMon_=NULL; }
180 // if(RecHitMon_!=NULL) { delete RecHitMon_; RecHitMon_=NULL; }
181 // if(HIMon_!=NULL) { delete HIMon_; HIMon_=NULL; }
182 // if(LedMon_!=NULL) { delete LedMon_; LedMon_=NULL; }
183 // delete evtSel_; evtSel_ = NULL;
184 
185 }
186 
187 
188 //=================================================================//
189 //========================== beginJob =============================//
190 //================================================================//
192  ievt_ = 0;
193  ievt_pre_=0;
194 
195  if(fVerbosity>0) std::cout << "CastorMonitorModule::beginJob (start)" << std::endl;
196 
197  if ( dbe_ != NULL ){
198 
199 
201  dbe_->setCurrentFolder(rootFolder_+"CastorEventProducts");
202  meEVT_ = dbe_->bookInt("Event Number");
203  CastorEventProduct =dbe_->book2D("CastorEventProduct","CastorEventProduct",3,0,3,1,0,1);
204  TH2F* hCastorEventProduct =CastorEventProduct->getTH2F();
205  hCastorEventProduct->GetXaxis()->SetBinLabel(1,"RawData");
206  hCastorEventProduct->GetXaxis()->SetBinLabel(2,"CastorDigi");
207  hCastorEventProduct->GetXaxis()->SetBinLabel(3,"CastorRecHits");
208  hCastorEventProduct->GetYaxis()->SetBinLabel(1,"Status");
209  hCastorEventProduct->SetBinContent(1,1,-1);
210  hCastorEventProduct->SetBinContent(2,1,-1);
211  hCastorEventProduct->SetBinContent(3,1,-1);
212  hCastorEventProduct->SetOption("textcolz");
213 
214 
215  dbe_->setCurrentFolder(rootFolder_+"DQM Job Status" );
216  meStatus_ = dbe_->bookInt("STATUS");
217  meRunType_ = dbe_->bookInt("RUN TYPE");
218  meEvtMask_ = dbe_->bookInt("EVT MASK");
219  meFEDS_ = dbe_->book1D("FEDs Unpacked","FEDs Unpacked",100,660,759);
220  meCASTOR_ = dbe_->bookInt("CASTORpresent");
222  // meLatency_ = dbe_->book1D("Process Latency","Process Latency",2000,0,10); // PK: eliminate
223  meQuality_ = dbe_->book1D("Quality Status","Quality Status",100,0,1);
224  meStatus_->Fill(0);
225  meRunType_->Fill(-1);
226  meEvtMask_->Fill(-1);
228  meCASTOR_->Fill(0);
229  }
230  else{
231  if(fVerbosity>0) std::cout << "CastorMonitorModule::beginJob - NO DQMStore service" << std::endl;
232  }
233 
234  if(fVerbosity>0) std::cout << "CastorMonitorModule::beginJob (end)" << std::endl;
235 
236  return;
237 }
238 
239 
240 //=================================================================//
241 //========================== beginRun =============================//
242 //================================================================//
243 void CastorMonitorModule::beginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) {
244 
245  fedsListed_ = false;
246  reset();
247 
249  iSetup.get<CastorDbRecord>().get(conditions_);
250 
252  iSetup.get<CastorPedestalsRcd>().get(dbPedestals);
253  if(!dbPedestals.isValid() && fVerbosity>0) std::cout << "CASTOR has no CastorPedestals in the CondDB !!!" << std::endl;
254 
256  float sigma_averaged;
257  unsigned int iChannel = 0;
258  std::vector<DetId> channels = dbPedestals->getAllChannels();
259 
261  for (std::vector<DetId>::iterator ch=channels.begin(); ch!=channels.end(); ch++) {
262  const CastorPedestal * pedestals_mean = dbPedestals->getValues(*ch);
263  sigma_averaged = 0.;
264 
266  for (short unsigned int iCapId = 0; iCapId < 4; iCapId++){
267  sigma_averaged += sqrt(pedestals_mean->getWidth(iCapId));
268  };
269 
271  fPedestalNSigmaAverage[HcalCastorDetId(*ch).module()-1][HcalCastorDetId(*ch).sector()-1] = sigma_averaged/4;
272  iChannel++;
273  };
274 
275  if(iChannel<224 && fVerbosity>0) std::cout << "There are less that 224 channels in CastorPedestalsRcd record !!!" << std::endl;
276 
277  return;
278 }
279 
280 //=================================================================//
281 //========================== beginLuminosityBlock ================//
282 //================================================================//
284  const edm::EventSetup& context) {
285 
286  if(actonLS_ && !prescale()){
288  }
289 }
290 
291 
292 //================================================================//
293 //========================== endLuminosityBlock ==================//
294 //================================================================//
296  const edm::EventSetup& context) {
297  if(actonLS_ && !prescale()){
299  }
300 }
301 
302 //=================================================================//
303 //========================== endRun ===============================//
304 //=================================================================//
306 {
307  if (fVerbosity>0) std::cout <<"CastorMonitorModule::endRun(...) "<<std::endl;
309  if (DigiMon_!=NULL) //************ DigiMon_->fillPedestalHistos(); //FIX
310  return;
311 }
312 
313 //=================================================================//
314 //========================== endJob ===============================//
315 //=================================================================//
317 
318  //if ( meStatus_ ) meStatus_->Fill(2);
319 
320  if(RecHitMon_!=NULL) RecHitMon_->done();
321  if(DigiMon_!=NULL) DigiMon_->done();
322  if(LedMon_!=NULL) LedMon_->done();
323  if(CQMon_!=NULL) CQMon_->done();
324  if(PSMon_!=NULL) PSMon_->done();
325  if(EDMon_!=NULL) EDMon_->done();
326  if(HIMon_!=NULL) RecHitMon_->done();
327 
328  /* LEAVE IT OUT FOR THE MOMENT
329  // TO DUMP THE OUTPUT TO DATABASE FILE
330  if (dump2database_){
331 
332  }
333  */
334  return;
335 }
336 
337 
338 //=================================================================//
339 //========================== reset ===============================//
340 //=================================================================//
342 
343  if(DigiMon_!=NULL) DigiMon_->reset();
345  if(LedMon_!=NULL) LedMon_->reset();
346  if(CQMon_!=NULL) CQMon_->reset();
347  if(PSMon_!=NULL) PSMon_->reset();
348  if(EDMon_!=NULL) EDMon_->reset();
349  if(HIMon_!=NULL) HIMon_->reset();
350 
351 }
352 
353 
354 //=================================================================//
355 //========================== analyze ===============================//
356 //=================================================================//
358 
359  using namespace edm;
360 
361 
363  irun_ = iEvent.id().run();
364  ilumisec_ = iEvent.luminosityBlock();
365  ievent_ = iEvent.id().event();
366  itime_ = iEvent.time().value();
367  ibunch_ = iEvent.bunchCrossing();
368 
369 
370  if (fVerbosity>0) {
371  std::cout << "==> CastorMonitorModule: evts: "<< nevt_ << ", run: " << irun_ << ", LS: " << ilumisec_ << std::endl;
372  std::cout << " evt: " << ievent_ << ", time: " << itime_ <<"\t counter = "<< ievt_pre_<< "\t total count = "<<ievt_<<std::endl;
373  }
374 
376  ievt_++;
377 
379  ievt_pre_++; // need to increment counter before calling prescale
380  if(prescale()) return;
381 
382 
383  // meLatency_->Fill(psTime_.elapsedTime);
384 
385 
387  // add in DO_HCAL_TPMON, DO_HCAL_CTMON ?(in CastorMonitorSelector.h)
388  /* FIX
389  // int trigMask=0;
390  if(mtccMon_==NULL){
391  evtSel_->processEvent(e);
392  evtMask = evtSel_->getEventMask();
393  // trigMask = evtSel_->getTriggerMask();
394  }
395  */
396  if ( dbe_ ){
397  meStatus_->Fill(1);
398  meEvtMask_->Fill(evtMask);
399  }
400 
402  bool rawOK_ = true;
403  bool digiOK_ = true;
404  bool rechitOK_ = true;
405 
406  //-- TAKE IT AWAY for the time being
408  //edm::Handle<FEDRawDataCollection> RawData;
409  //iEvent.getByLabel(inputLabelRaw_,RawData);
410  //if (!RawData.isValid()) {
411  // rawOK_=false;
412  //}
413 
414  /*
415  edm::Handle<HcalUnpackerReport> report;
416  iEvent.getByType(report);
417  if (!report.isValid()) {
418  rawOK_=false;
419  }
420  else
421  {
422  if(!fedsListed_){
423  const std::vector<int> feds = (*report).getFedsUnpacked();
424  for(unsigned int f=0; f<feds.size(); f++){
425  meFEDS_->Fill(feds[f]);
426  }
427  fedsListed_ = true;
428  }
429  }
430  */
431  //---------------------------------------------------------------//
432  //------------------- try to get digis ------------------------//
433  //---------------------------------------------------------------//
434 
436  iEvent.getByLabel(inputLabelDigi_,CastorDigi);
437  if (!CastorDigi.isValid()) {
438  digiOK_=false;
439  }
440 
441 
442 
445  //if ( checkCASTOR_ )
446  // CheckCastorStatus(*RawData,*report,*readoutMap_,*CastorDigi);
447 
448 
449  //---------------------------------------------------------------//
450  //------------------- try to get RecHits ------------------------//
451  //---------------------------------------------------------------//
453  iEvent.getByLabel(inputLabelRecHitCASTOR_,CastorHits);
454  if (!CastorHits.isValid()) {
455  rechitOK_ = false;
456  }
457 
458 
460  if(ievt_%10 == 0) {
461 
462  TH2F* hCastorEventProduct=CastorEventProduct->getTH2F();
463  hCastorEventProduct->SetBinContent(1,1,int(rawOK_));
464  hCastorEventProduct->SetBinContent(2,1,int(digiOK_));
465  hCastorEventProduct->SetBinContent(3,1,int(rechitOK_));
466 
467  if(fVerbosity>0) {
468  std::cout << " RAW Data ==> " << rawOK_<< std::endl;
469  std::cout << " Digis ==> " << digiOK_<< std::endl;
470  std::cout << " RecHits ==> " << rechitOK_<< std::endl;
471  }
472 
473  }
474 
475  //------------------------------------------------------------//
476  //---------------- Run the configured tasks ------------------//
477  //-------------- protect against missing products -----------//
478  //-----------------------------------------------------------//
479 
480  if (showTiming_){
482  }
483 
484  //----------------- Digi monitor task ------------------//
485  // if((DigiMon_!=NULL) && (evtMask&DO_CASTOR_PED_CALIBMON) && digiOK_)
486  if(digiOK_) DigiMon_->processEvent(*CastorDigi,*conditions_);
487  if (showTiming_){
488  cpu_timer.stop();
489  if (DigiMon_!=NULL) std::cout <<"TIMER:: DIGI MONITOR ->"<<cpu_timer.cpuTime()<<std::endl;
491  }
492 
493 
494  //----------------- Rec Hit monitor task -------------------------//
495  // if((RecHitMon_ != NULL) && (evtMask&DO_CASTOR_RECHITMON) && rechitOK_)
496  if(rechitOK_) RecHitMon_->processEvent(*CastorHits);
497  if (showTiming_){
498  cpu_timer.stop();
499  if (RecHitMon_!=NULL) std::cout <<"TIMER:: RECHIT MONITOR ->"<<cpu_timer.cpuTime()<<std::endl;
501  }
502 
503  //----------------- Channel Quality Monitor task -------------------------//
504  if(rechitOK_) CQMon_->processEvent(*CastorHits);
505  if (showTiming_){
506  cpu_timer.stop();
507  if (CQMon_!=NULL) std::cout <<"TIMER:: CHANNELQUALITY MONITOR ->"<<cpu_timer.cpuTime()<<std::endl;
509  }
510 
512  /*
513  //---------------- LED monitor task ------------------------//
514  // if((LedMon_!=NULL) && (evtMask&DO_HCAL_LED_CALIBMON) && digiOK_)
515  if(digiOK_) LedMon_->processEvent(*CastorDigi,*conditions_);
516  if (showTiming_){
517  cpu_timer.stop();
518  if (LedMon_!=NULL) std::cout <<"TIMER:: LED MONITOR ->"<<cpu_timer.cpuTime()<<std::endl;
519  cpu_timer.reset(); cpu_timer.start();
520  }
521  */
522  //---------------- Pulse Shape monitor task ------------------------//
524 
526  eventSetup.get<CastorElectronicsMapRcd>().get(refEMap);
527  const CastorElectronicsMap* myRefEMap = refEMap.product();
528  listEMap = myRefEMap->allPrecisionId();
530  if (showTiming_) {
531  cpu_timer.stop();
532  if (PSMon_!=NULL) std::cout <<"TIMER:: PULSE SHAPE ->"<<cpu_timer.cpuTime()<<std::endl;
534  }
535 
536 
537  //---------------- EventDisplay monitor task ------------------------//
539  edm::ESHandle<CaloGeometry> caloGeometry;
540  eventSetup.get<CaloGeometryRecord>().get(caloGeometry);
541 
542  if(rechitOK_ && EDMonOn_) EDMon_->processEvent(*CastorHits, *caloGeometry);
543  if (showTiming_){
544  cpu_timer.stop();
545  if (EDMon_!=NULL) std::cout <<"TIMER:: EVENTDISPLAY MONITOR ->"<<cpu_timer.cpuTime()<<std::endl;
547  }
548 
549 //----------------- Heavy Ion monitor task -------------------------//
550  if(rechitOK_ && digiOK_ ) HIMon_->processEvent(*CastorHits, *CastorDigi, *conditions_);
551  if (showTiming_){
552  cpu_timer.stop();
553  if (HIMon_!=NULL) std::cout <<"TIMER:: HI MONITOR ->"<<cpu_timer.cpuTime()<<std::endl;
555  }
556 
557 
558  if(fVerbosity>0 && ievt_%100 == 0)
559  std::cout << "CastorMonitorModule: processed " << ievt_ << " events" << std::endl;
560 
561 
563  meEVT_->Fill(ievt_);
564 
565 
566 
567  return;
568 }
569 
570 
571 
572 
573 //=====================================================================//
574 //========================== prescale ===============================//
575 //===================================================================//
579 {
580  if (fVerbosity>0) std::cout <<"CastorMonitorModule::prescale"<<std::endl;
581 
582  gettimeofday(&psTime_.updateTV,NULL);
583  double time = (psTime_.updateTV.tv_sec*1000.0+psTime_.updateTV.tv_usec/1000.0);
584  time/= (1000.0);
585  psTime_.elapsedTime = time - psTime_.updateTime;
586  psTime_.updateTime = time;
588  bool evtPS = prescaleEvt_>0;
589  bool lsPS = prescaleLS_>0;
590  bool timePS = prescaleTime_>0;
591  bool updatePS = prescaleUpdate_>0;
592 
594  if(!evtPS && !lsPS && !timePS && !updatePS)
595  {
596  return false;
597  }
599  if(lsPS && (ilumisec_%prescaleLS_)!=0) lsPS = false; //-- LS veto
600  //if(evtPS && (ievent_%prescaleEvt_)!=0) evtPS = false; //evt # veto
601  if (evtPS && (ievt_pre_%prescaleEvt_)!=0) evtPS = false;
602  if(timePS)
603  {
604  double elapsed = (psTime_.updateTime - psTime_.vetoTime)/60.0;
605  if(elapsed<prescaleTime_){
606  timePS = false; //-- timestamp veto
607  psTime_.vetoTime = psTime_.updateTime;
608  }
609  }
610 
611  // if(prescaleUpdate_>0 && (nupdates_%prescaleUpdate_)==0) updatePS=false; ///need to define what "updates" means
612 
613  if (fVerbosity>0)
614  {
615  std::cout<<"CastorMonitorModule::prescale evt: "<<ievent_<<"/"<<evtPS<<", ";
616  std::cout <<"ls: "<<ilumisec_<<"/"<<lsPS<<",";
617  std::cout <<"time: "<<psTime_.updateTime - psTime_.vetoTime<<"/"<<timePS<<std::endl;
618  }
620  if(evtPS || lsPS || timePS) return false;
621  return true;
622 }
623 
624 
625 
626 //====================================================================//
627 //=================== CheckCastorStatus =============================//
628 //====================================================================//
631 
633  const HcalUnpackerReport& report,
634  const CastorElectronicsMap& emap,
635  const CastorDigiCollection& CastorDigi
636  )
637 {
638 
640  //vector<int> fedUnpackList;
642  // for (int i=FEDNumbering::getHcalFEDIds().first; i<=FEDNumbering::getHcalFEDIds().second; i++)
643  // {
644  // fedUnpackList.push_back(i);
645  // }
646  // for (std::vector<int>::const_iterator i=fedUnpackList.begin(); i!=fedUnpackList.end();++i)
647  // {
648  // const FEDRawData& fed = RawData.FEDData(*i);
649  // if (fed.size()<12) continue; //-- Was 16 !
651  // const HcalDCCHeader* dccHeader=(const HcalDCCHeader*)(fed.data());
652  // if (!dccHeader) return;
653  // int dccid=dccHeader->getSourceId();
654 
656  // ////---- Castor FED numbering of DCCs= [690 -693]
657  // if (dccid >= 690 && dccid <=693){
658  // if ( CastorDigi.size()>0){
659  // meCASTOR_->Fill(1);
660  // }
661  // else {meCASTOR_->Fill(0); }
662  // }
663  // else{ meCASTOR_->Fill(-1); }
664  // }
665  return;
666 }
667 
671 
RunNumber_t run() const
Definition: EventID.h:42
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:44
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * meCASTOR_
MonitorElement * meQuality_
void processEvent(const CastorRecHitCollection &castorHits, const CastorDigiCollection &cast, const CastorDbService &cond)
void endRun(const edm::Run &run, const edm::EventSetup &eventSetup)
void start()
Definition: CPUTimer.cc:74
int sector() const
get the sector (1-16)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:717
void analyze(const edm::Event &iEvent, const edm::EventSetup &eventSetup)
void setup(const edm::ParameterSet &ps, DQMStore *dbe)
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &eventSetup)
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
edm::ESHandle< CastorDbService > conditions_
int bunchCrossing() const
Definition: EventBase.h:62
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:59
CastorLEDMonitor * LedMon_
void reset()
Definition: CPUTimer.cc:107
#define NULL
Definition: scimark2.h:8
void beginRun(const edm::Run &iRun, const edm::EventSetup &eventSetup)
MonitorElement * meRunType_
void setup(const edm::ParameterSet &ps, DQMStore *dbe)
int module() const
get the module (1-2 for EM, 1-12 for HAD)
edm::ESHandle< CastorPedestals > dbPedestals
float getWidth(int fCapId) const
get width for capId = 0..3
void Fill(long long x)
edm::InputTag inputLabelRaw_
tuple report
Definition: zeeHLT_cff.py:9
static const int DO_CASTOR_RECHITMON
edm::InputTag inputLabelDigi_
int iEvent
Definition: GenABIO.cc:243
std::vector< HcalGenericDetId > listEMap
struct CastorMonitorModule::@169 psTime_
CastorMonitorModule(const edm::ParameterSet &ps)
edm::InputTag inputLabelRecHitCASTOR_
T sqrt(T t)
Definition: SSEVec.h:46
CastorEventDisplay * EDMon_
void setup(const edm::ParameterSet &ps, DQMStore *dbe)
CastorMonitorSelector * evtSel_
CastorDigiMonitor * DigiMon_
Times stop()
Definition: CPUTimer.cc:94
void setup(const edm::ParameterSet &ps, DQMStore *dbe)
MonitorElement * meFEDS_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
MonitorElement * meEvtMask_
void setup(const edm::ParameterSet &ps, DQMStore *dbe)
void CheckCastorStatus(const FEDRawDataCollection &rawraw, const HcalUnpackerReport &report, const CastorElectronicsMap &emap, const CastorDigiCollection &castordigi)
MonitorElement * meStatus_
TimeValue_t value() const
Definition: Timestamp.cc:72
double cpuTime() const
Definition: CPUTimer.cc:157
void processEvent(const CastorRecHitCollection &castorHits)
const T & get() const
Definition: EventSetup.h:55
static const int DO_CASTOR_PED_CALIBMON
MonitorElement * CastorEventProduct
edm::EventID id() const
Definition: EventBase.h:56
CastorPSMonitor * PSMon_
CastorChannelQualityMonitor * CQMon_
void processEvent(const CastorRecHitCollection &castorHits, const CaloGeometry &caloGeometry)
void processEvent(const CastorDigiCollection &cast, const CastorDbService &cond)
float fPedestalNSigmaAverage[14][16]
CastorRecHitMonitor * RecHitMon_
tuple cout
Definition: gather_cfg.py:121
void processEvent(const CastorRecHitCollection &castorHits)
virtual void done()
void setup(const edm::ParameterSet &ps, DQMStore *dbe)
TH2F * getTH2F(void) const
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &eventSetup)
bool isValid() const
Definition: ESHandle.h:37
MonitorElement * bookInt(const char *name)
Book int.
Definition: DQMStore.cc:624
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:845
CastorHIMonitor * HIMon_
edm::Timestamp time() const
Definition: EventBase.h:57
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
void processEvent(const CastorDigiCollection &castorDigis, const CastorDbService &conditions, std::vector< HcalGenericDetId > listEMap, int iBunch, float PedSigmaInChannel[14][16])
Definition: Run.h:33
MonitorElement * meEVT_