CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EBIntegrityTask.cc
Go to the documentation of this file.
1 /*
2  * \file EBIntegrityTask.cc
3  *
4  * \author G. Della Ricca
5  *
6  */
7 
8 #include <iostream>
9 #include <fstream>
10 
13 
15 
17 
19 
21 
23 
25 
26  init_ = false;
27 
29 
30  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
31 
32  subfolder_ = ps.getUntrackedParameter<std::string>("subfolder", "");
33 
34  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
35 
36  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
37 
38  EBDetIdCollection1_ = consumes<EBDetIdCollection>(ps.getParameter<edm::InputTag>("EBDetIdCollection1"));
39  EBDetIdCollection2_ = consumes<EBDetIdCollection>(ps.getParameter<edm::InputTag>("EBDetIdCollection2"));
40  EBDetIdCollection3_ = consumes<EBDetIdCollection>(ps.getParameter<edm::InputTag>("EBDetIdCollection3"));
41  EcalElectronicsIdCollection1_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection1"));
42  EcalElectronicsIdCollection2_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection2"));
43  EcalElectronicsIdCollection3_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection3"));
44  EcalElectronicsIdCollection4_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection4"));
45  EcalElectronicsIdCollection5_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection5"));
46  EcalElectronicsIdCollection6_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection6"));
47 
49  for (int i = 0; i < 36; i++) {
50  meIntegrityGain[i] = 0;
51  meIntegrityChId[i] = 0;
53  meIntegrityTTId[i] = 0;
55  meIntegrityMemChId[i] = 0;
56  meIntegrityMemGain[i] = 0;
57  meIntegrityMemTTId[i] = 0;
59  }
61 
62 }
63 
64 
66 
67 }
68 
70 
71  ievt_ = 0;
72 
73  if ( dqmStore_ ) {
74  dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask");
75  if(subfolder_.size())
76  dqmStore_->setCurrentFolder(prefixME_ + "/EBIntegrityTask/" + subfolder_);
77  dqmStore_->rmdir(prefixME_ + "/EBIntegrityTask");
78  }
79 
80 }
81 
83 
85 
86 }
87 
89 }
90 
92 
93  Numbers::initGeometry(c, false);
94 
95  if ( ! mergeRuns_ ) this->reset();
96 
97 }
98 
100 
101 }
102 
104 
106  for (int i = 0; i < 36; i++) {
108  if ( meIntegrityChId[i] ) meIntegrityChId[i]->Reset();
110  if ( meIntegrityTTId[i] ) meIntegrityTTId[i]->Reset();
116  }
118 
119 }
120 
122 
123  init_ = true;
124 
127 
128  if ( dqmStore_ ) {
129 
130  dir = prefixME_ + "/EBIntegrityTask";
131  if(subfolder_.size())
132  dir += "/" + subfolder_;
133 
135 
136  // checking when number of towers in data different than expected from header
137  name = "EBIT DCC size error";
138  meIntegrityDCCSize = dqmStore_->book1D(name, name, 36, 1., 37.);
139  for (int i = 0; i < 36; i++) {
141  }
142 
143  // checking the number of integrity errors in each DCC for each lumi
144  // crystal integrity error is weighted by 1/1700
145  // tower integrity error is weighted by 1/68
146  // bin 0 contains the number of processed events in the lumi (for normalization)
147  name = "EBIT weighted integrity errors by lumi";
148  meIntegrityErrorsByLumi = dqmStore_->book1D(name, name, 36, 1., 37.);
150  for (int i = 0; i < 36; i++) {
152  }
153 
154  // checking when the gain is 0
155  dqmStore_->setCurrentFolder(dir + "/Gain");
156  for (int i = 0; i < 36; i++) {
157  name = "EBIT gain " + Numbers::sEB(i+1);
158  meIntegrityGain[i] = dqmStore_->book2D(name, name, 85, 0., 85., 20, 0., 20.);
159  meIntegrityGain[i]->setAxisTitle("ieta", 1);
160  meIntegrityGain[i]->setAxisTitle("iphi", 2);
161  dqmStore_->tag(meIntegrityGain[i], i+1);
162  }
163 
164  // checking when channel has unexpected or invalid ID
165  dqmStore_->setCurrentFolder(dir + "/ChId");
166  for (int i = 0; i < 36; i++) {
167  name = "EBIT ChId " + Numbers::sEB(i+1);
168  meIntegrityChId[i] = dqmStore_->book2D(name, name, 85, 0., 85., 20, 0., 20.);
169  meIntegrityChId[i]->setAxisTitle("ieta", 1);
170  meIntegrityChId[i]->setAxisTitle("iphi", 2);
171  dqmStore_->tag(meIntegrityChId[i], i+1);
172  }
173 
174  // checking when channel has unexpected or invalid ID
175  dqmStore_->setCurrentFolder(dir + "/GainSwitch");
176  for (int i = 0; i < 36; i++) {
177  name = "EBIT gain switch " + Numbers::sEB(i+1);
178  meIntegrityGainSwitch[i] = dqmStore_->book2D(name, name, 85, 0., 85., 20, 0., 20.);
179  meIntegrityGainSwitch[i]->setAxisTitle("ieta", 1);
180  meIntegrityGainSwitch[i]->setAxisTitle("iphi", 2);
182  }
183 
184  // checking when trigger tower has unexpected or invalid ID
185  dqmStore_->setCurrentFolder(dir + "/TTId");
186  for (int i = 0; i < 36; i++) {
187  name = "EBIT TTId " + Numbers::sEB(i+1);
188  meIntegrityTTId[i] = dqmStore_->book2D(name, name, 17, 0., 17., 4, 0., 4.);
189  meIntegrityTTId[i]->setAxisTitle("ieta'", 1);
190  meIntegrityTTId[i]->setAxisTitle("iphi'", 2);
191  dqmStore_->tag(meIntegrityTTId[i], i+1);
192  }
193 
194  // checking when trigger tower has unexpected or invalid size
195  dqmStore_->setCurrentFolder(dir + "/TTBlockSize");
196  for (int i = 0; i < 36; i++) {
197  name = "EBIT TTBlockSize " + Numbers::sEB(i+1);
198  meIntegrityTTBlockSize[i] = dqmStore_->book2D(name, name, 17, 0., 17., 4, 0., 4.);
199  meIntegrityTTBlockSize[i]->setAxisTitle("ieta'", 1);
200  meIntegrityTTBlockSize[i]->setAxisTitle("iphi'", 2);
202  }
203 
204  // checking when mem channels have unexpected ID
205  dqmStore_->setCurrentFolder(dir + "/MemChId");
206  for (int i = 0; i < 36; i++) {
207  name = "EBIT MemChId " + Numbers::sEB(i+1);
208  meIntegrityMemChId[i] = dqmStore_->book2D(name, name, 10, 0., 10., 5, 0., 5.);
209  meIntegrityMemChId[i]->setAxisTitle("pseudo-strip", 1);
210  meIntegrityMemChId[i]->setAxisTitle("channel", 2);
212  }
213 
214  // checking when mem samples have second bit encoding the gain different from 0
215  // note: strictly speaking, this does not corrupt the mem sample gain value (since only first bit is considered)
216  // but indicates that data are not completely correct
217  dqmStore_->setCurrentFolder(dir + "/MemGain");
218  for (int i = 0; i < 36; i++) {
219  name = "EBIT MemGain " + Numbers::sEB(i+1);
220  meIntegrityMemGain[i] = dqmStore_->book2D(name, name, 10, 0., 10., 5, 0., 5.);
221  meIntegrityMemGain[i]->setAxisTitle("pseudo-strip", 1);
222  meIntegrityMemGain[i]->setAxisTitle("channel", 2);
224  }
225 
226  // checking when mem tower block has unexpected ID
227  dqmStore_->setCurrentFolder(dir + "/MemTTId");
228  for (int i = 0; i < 36; i++) {
229  name = "EBIT MemTTId " + Numbers::sEB(i+1);
230  meIntegrityMemTTId[i] = dqmStore_->book2D(name, name, 2, 0., 2., 1, 0., 1.);
231  meIntegrityMemTTId[i]->setAxisTitle("pseudo-strip", 1);
232  meIntegrityMemTTId[i]->setAxisTitle("channel", 2);
234  }
235 
236  // checking when mem tower block has invalid size
237  dqmStore_->setCurrentFolder(dir + "/MemSize");
238  for (int i = 0; i < 36; i++) {
239  name = "EBIT MemSize " + Numbers::sEB(i+1);
240  meIntegrityMemTTBlockSize[i] = dqmStore_->book2D(name, name, 2, 0., 2., 1, 0., 1.);
241  meIntegrityMemTTBlockSize[i]->setAxisTitle("pseudo-strip", 1);
242  meIntegrityMemTTBlockSize[i]->setAxisTitle("pseudo-strip", 1);
243  meIntegrityMemTTBlockSize[i]->setAxisTitle("channel", 2);
245  }
246 
247  }
248 
249 }
250 
252 
253  if ( ! init_ ) return;
254 
255  if ( dqmStore_ ) {
257 
258  dir = prefixME_ + "/EBIntegrityTask";
259  if(subfolder_.size())
260  dir += "/" + subfolder_;
261 
262  dqmStore_->setCurrentFolder(dir + "");
263 
265  meIntegrityDCCSize = 0;
266 
269 
270  dqmStore_->setCurrentFolder(dir + "/Gain");
271  for (int i = 0; i < 36; i++) {
272  if ( meIntegrityGain[i] ) dqmStore_->removeElement( meIntegrityGain[i]->getName() );
273  meIntegrityGain[i] = 0;
274  }
275 
276  dqmStore_->setCurrentFolder(dir + "/ChId");
277  for (int i = 0; i < 36; i++) {
278  if ( meIntegrityChId[i] ) dqmStore_->removeElement( meIntegrityChId[i]->getName() );
279  meIntegrityChId[i] = 0;
280  }
281 
282  dqmStore_->setCurrentFolder(dir + "/GainSwitch");
283  for (int i = 0; i < 36; i++) {
286  }
287 
288  dqmStore_->setCurrentFolder(dir + "/TTId");
289  for (int i = 0; i < 36; i++) {
290  if ( meIntegrityTTId[i] ) dqmStore_->removeElement( meIntegrityTTId[i]->getName() );
291  meIntegrityTTId[i] = 0;
292  }
293 
294  dqmStore_->setCurrentFolder(dir + "/TTBlockSize");
295  for (int i = 0; i < 36; i++) {
298  }
299 
300  dqmStore_->setCurrentFolder(dir + "/MemChId");
301  for (int i = 0; i < 36; i++) {
303  meIntegrityMemChId[i] = 0;
304  }
305 
306  dqmStore_->setCurrentFolder(dir + "/MemGain");
307  for (int i = 0; i < 36; i++) {
309  meIntegrityMemGain[i] = 0;
310  }
311 
312  dqmStore_->setCurrentFolder(dir + "/MemTTId");
313  for (int i = 0; i < 36; i++) {
315  meIntegrityMemTTId[i] = 0;
316  }
317 
318  dqmStore_->setCurrentFolder(dir + "/MemSize");
319  for (int i = 0; i < 36; i++) {
322  }
323 
324  }
325 
326  init_ = false;
327 
328 }
329 
331 
332  edm::LogInfo("EBIntegrityTask") << "analyzed " << ievt_ << " events";
333 
334  if ( enableCleanup_ ) this->cleanup();
335 
336 }
337 
339 
340  if ( ! init_ ) this->setup();
341 
342  ievt_++;
343 
344  // fill bin 0 with number of events in the lumi
346 
348 
349  if ( e.getByToken(EBDetIdCollection1_, ids1) ) {
350 
351  for ( EBDetIdCollection::const_iterator idItr = ids1->begin(); idItr != ids1->end(); ++idItr ) {
352 
353  EBDetId id = (*idItr);
354 
355  int ic = id.ic();
356  int ie = (ic-1)/20 + 1;
357  int ip = (ic-1)%20 + 1;
358 
359  int ism = Numbers::iSM( id );
360  float xism = ism + 0.5;
361 
362  float xie = ie - 0.5;
363  float xip = ip - 0.5;
364 
365  if ( meIntegrityGain[ism-1] ) meIntegrityGain[ism-1]->Fill(xie, xip);
366  if ( meIntegrityErrorsByLumi ) meIntegrityErrorsByLumi->Fill(xism, 1./1700.);
367 
368  }
369 
370  } else {
371 
372  edm::LogWarning("EBIntegrityTask") << "EBDetIdCollection1 not available";
373 
374  }
375 
377 
378  if ( e.getByToken(EBDetIdCollection2_, ids2) ) {
379 
380  for ( EBDetIdCollection::const_iterator idItr = ids2->begin(); idItr != ids2->end(); ++idItr ) {
381 
382  EBDetId id = (*idItr);
383 
384  int ic = id.ic();
385  int ie = (ic-1)/20 + 1;
386  int ip = (ic-1)%20 + 1;
387 
388  int ism = Numbers::iSM( id );
389  float xism = ism + 0.5;
390 
391  float xie = ie - 0.5;
392  float xip = ip - 0.5;
393 
394  if ( meIntegrityChId[ism-1] ) meIntegrityChId[ism-1]->Fill(xie, xip);
395  if ( meIntegrityErrorsByLumi ) meIntegrityErrorsByLumi->Fill(xism, 1./1700.);
396 
397  }
398 
399  } else {
400 
401  edm::LogWarning("EBIntegrityTask") << "EBDetIdCollection2 not available";
402 
403  }
404 
406 
407  if ( e.getByToken(EBDetIdCollection3_, ids3) ) {
408 
409  for ( EBDetIdCollection::const_iterator idItr = ids3->begin(); idItr != ids3->end(); ++idItr ) {
410 
411  EBDetId id = (*idItr);
412 
413  int ic = id.ic();
414  int ie = (ic-1)/20 + 1;
415  int ip = (ic-1)%20 + 1;
416 
417  int ism = Numbers::iSM( id );
418  float xism = ism + 0.5;
419 
420  float xie = ie - 0.5;
421  float xip = ip - 0.5;
422 
423  if ( meIntegrityGainSwitch[ism-1] ) meIntegrityGainSwitch[ism-1]->Fill(xie, xip);
424  if ( meIntegrityErrorsByLumi ) meIntegrityErrorsByLumi->Fill(xism, 1./1700.);
425 
426  }
427 
428  } else {
429 
430  edm::LogWarning("EBIntegrityTask") << "EBDetIdCollection3 not available";
431 
432  }
433 
435 
436  if ( e.getByToken(EcalElectronicsIdCollection1_, ids4) ) {
437 
438  for ( EcalElectronicsIdCollection::const_iterator idItr = ids4->begin(); idItr != ids4->end(); ++idItr ) {
439 
440  if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
441 
442  int itt = idItr->towerId();
443 
444  int iet = (itt-1)/4 + 1;
445  int ipt = (itt-1)%4 + 1;
446 
447  int ismt = Numbers::iSM( *idItr );
448  float xismt = ismt + 0.5;
449 
450  float xiet = iet - 0.5;
451  float xipt = ipt - 0.5;
452 
453  if ( meIntegrityTTId[ismt-1] ) meIntegrityTTId[ismt-1]->Fill(xiet, xipt);
455 
456  }
457 
458  } else {
459 
460  edm::LogWarning("EBIntegrityTask") << "EcalElectronicsIdCollection1 not available";
461 
462  }
463 
465 
466  if ( e.getByToken(EcalElectronicsIdCollection2_, ids5) ) {
467 
468  for ( EcalElectronicsIdCollection::const_iterator idItr = ids5->begin(); idItr != ids5->end(); ++idItr ) {
469 
470  if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
471 
472  int itt = idItr->towerId();
473 
474  int iet = (itt-1)/4 + 1;
475  int ipt = (itt-1)%4 + 1;
476 
477  int ismt = Numbers::iSM( *idItr );
478  float xismt = ismt + 0.5;
479 
480  float xiet = iet - 0.5;
481  float xipt = ipt - 0.5;
482 
483  if ( meIntegrityTTBlockSize[ismt-1] ) meIntegrityTTBlockSize[ismt-1]->Fill(xiet, xipt);
485 
486  }
487 
488  } else {
489 
490  edm::LogWarning("EBIntegrityTask") << "EcalElectronicsIdCollection2 not available";
491 
492  }
493 
495 
496  if ( e.getByToken(EcalElectronicsIdCollection3_, ids6) ) {
497 
498  for ( EcalElectronicsIdCollection::const_iterator idItr = ids6->begin(); idItr != ids6->end(); ++idItr ) {
499 
500  if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
501 
502  int ism = Numbers::iSM( *idItr );
503 
504  int itt = idItr->towerId();
505  float iTt = itt + 0.5 - 69;
506 
507  if ( meIntegrityMemTTId[ism-1] ) meIntegrityMemTTId[ism-1]->Fill(iTt,0);
508 
509  }
510 
511  } else {
512 
513  edm::LogWarning("EBIntegrityTask") << "EcalElectronicsIdCollection3 not available";
514 
515  }
516 
518 
519  if ( e.getByToken(EcalElectronicsIdCollection4_, ids7) ) {
520 
521  for ( EcalElectronicsIdCollection::const_iterator idItr = ids7->begin(); idItr != ids7->end(); ++idItr ) {
522 
523  if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
524 
525  int ism = Numbers::iSM( *idItr );
526 
527  int itt = idItr->towerId();
528  float iTt = itt + 0.5 - 69;
529 
530  if ( meIntegrityMemTTBlockSize[ism-1] ) meIntegrityMemTTBlockSize[ism-1]->Fill(iTt,0);
531 
532  }
533 
534  } else {
535 
536  edm::LogWarning("EBIntegrityTask") << "EcalElectronicsIdCollection4 not available";
537 
538  }
539 
541 
542  if ( e.getByToken(EcalElectronicsIdCollection5_, ids8) ) {
543 
544  for ( EcalElectronicsIdCollection::const_iterator idItr = ids8->begin(); idItr != ids8->end(); ++idItr ) {
545 
546  if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
547 
548  int ism = Numbers::iSM( *idItr );
549 
550  int chid = idItr->channelId();
551  int ie = EBIntegrityTask::chMemAbscissa[chid-1];
552  int ip = EBIntegrityTask::chMemOrdinate[chid-1];
553 
554  int itt = idItr->towerId();
555  ie += (itt-69)*5;
556 
557  float xie = ie - 0.5;
558  float xip = ip - 0.5;
559 
560  if ( meIntegrityMemChId[ism-1] ) meIntegrityMemChId[ism-1]->Fill(xie,xip);
561 
562  }
563 
564  } else {
565 
566  edm::LogWarning("EBIntegrityTask") << "EcalElectronicsIdCollection5 not available";
567 
568  }
569 
571 
572  if ( e.getByToken(EcalElectronicsIdCollection6_, ids9) ) {
573 
574  for ( EcalElectronicsIdCollection::const_iterator idItr = ids9->begin(); idItr != ids9->end(); ++idItr ) {
575 
576  if ( Numbers::subDet( *idItr ) != EcalBarrel ) continue;
577 
578  int ism = Numbers::iSM( *idItr );
579 
580  int chid = idItr->channelId();
581  int ie = EBIntegrityTask::chMemAbscissa[chid-1];
582  int ip = EBIntegrityTask::chMemOrdinate[chid-1];
583 
584  int itt = idItr->towerId();
585  ie += (itt-69)*5;
586 
587  float xie = ie - 0.5;
588  float xip = ip - 0.5;
589 
590  if ( meIntegrityMemGain[ism-1] ) meIntegrityMemGain[ism-1]->Fill(xie,xip);
591 
592  }
593 
594  } else {
595 
596  edm::LogWarning("EBIntegrityTask") << "EcalElectronicsIdCollection6 not available";
597 
598  }
599 
600 }// end analyze
601 
602 const int EBIntegrityTask::chMemAbscissa [25] = {
603  1, 1, 1, 1, 1,
604  2, 2, 2, 2, 2,
605  3, 3, 3, 3, 3,
606  4, 4, 4, 4, 4,
607  5, 5, 5, 5, 5
608 };
609 
610 const int EBIntegrityTask::chMemOrdinate [25] = {
611  1, 2, 3, 4, 5,
612  5, 4, 3, 2, 1,
613  1, 2, 3, 4, 5,
614  5, 4, 3, 2, 1,
615  1, 2, 3, 4, 5
616 };
617 
T getParameter(std::string const &) const
edm::EDGetTokenT< EBDetIdCollection > EBDetIdCollection2_
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
int i
Definition: DBlmapReader.cc:9
std::string subfolder_
edm::EDGetTokenT< EBDetIdCollection > EBDetIdCollection1_
edm::EDGetTokenT< EBDetIdCollection > EBDetIdCollection3_
MonitorElement * meIntegrityTTBlockSize[36]
MonitorElement * meIntegrityMemTTBlockSize[36]
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:873
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2731
virtual ~EBIntegrityTask()
Destructor.
void reset(void)
Reset.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
Some &quot;id&quot; conversions.
static std::string sEB(const unsigned ism)
Definition: Numbers.cc:91
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 * meIntegrityGainSwitch[36]
void endLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
EndLuminosityBlock.
EBIntegrityTask(const edm::ParameterSet &ps)
Constructor.
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection6_
MonitorElement * meIntegrityMemGain[36]
static const int chMemAbscissa[25]
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection4_
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
void Fill(long long x)
void tag(MonitorElement *me, unsigned int myTag)
Definition: DQMStore.cc:1510
MonitorElement * meIntegrityGain[36]
std::string prefixME_
void setup(void)
Setup.
MonitorElement * meIntegrityErrorsByLumi
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
MonitorElement * meIntegrityMemTTId[36]
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection2_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2773
DQMStore * dqmStore_
MonitorElement * meIntegrityMemChId[36]
int ic() const
get ECAL/crystal number inside SM
Definition: EBDetId.cc:46
MonitorElement * meIntegrityTTId[36]
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection1_
void beginLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
BeginLuminosityBlock.
static const int chMemOrdinate[25]
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:47
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
void endJob(void)
EndJob.
MonitorElement * meIntegrityDCCSize
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection3_
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
Definition: Numbers.cc:243
MonitorElement * meIntegrityChId[36]
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection5_
dbl *** dir
Definition: mlp_gen.cc:35
static EcalSubdetector subDet(const EBDetId &id)
Definition: Numbers.cc:142
void cleanup(void)
Cleanup.
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
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:1001
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:585
Definition: Run.h:41
void beginJob(void)
BeginJob.
std::vector< EBDetId >::const_iterator const_iterator
Definition: EDCollection.h:19