CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EEIntegrityTask.cc
Go to the documentation of this file.
1 /*
2  * \file EEIntegrityTask.cc
3  *
4  * \author G. Della Ricca
5  *
6  */
7 
8 #include <iostream>
9 #include <fstream>
10 #include <vector>
11 
14 
16 
18 
20 
22 
24 
26 
27  init_ = false;
28 
30 
31  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
32 
33  subfolder_ = ps.getUntrackedParameter<std::string>("subfolder", "");
34 
35  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
36 
37  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
38 
39  EEDetIdCollection1_ = consumes<EEDetIdCollection>(ps.getParameter<edm::InputTag>("EEDetIdCollection1"));
40  EEDetIdCollection2_ = consumes<EEDetIdCollection>(ps.getParameter<edm::InputTag>("EEDetIdCollection2"));
41  EEDetIdCollection3_ = consumes<EEDetIdCollection>(ps.getParameter<edm::InputTag>("EEDetIdCollection3"));
42  EcalElectronicsIdCollection1_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection1"));
43  EcalElectronicsIdCollection2_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection2"));
44  EcalElectronicsIdCollection3_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection3"));
45  EcalElectronicsIdCollection4_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection4"));
46  EcalElectronicsIdCollection5_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection5"));
47  EcalElectronicsIdCollection6_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection6"));
48 
50  for (int i = 0; i < 18; i++) {
51  meIntegrityGain[i] = 0;
52  meIntegrityChId[i] = 0;
54  meIntegrityTTId[i] = 0;
56  meIntegrityMemChId[i] = 0;
57  meIntegrityMemGain[i] = 0;
58  meIntegrityMemTTId[i] = 0;
60  }
62 }
63 
64 
66 
67 }
68 
70 
71  ievt_ = 0;
72 
73  if ( dqmStore_ ) {
74  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask");
75  if(subfolder_.size())
76  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/" + subfolder_);
77  dqmStore_->rmdir(prefixME_ + "/EEIntegrityTask");
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 < 18; 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_ + "/EEIntegrityTask";
131  if(subfolder_.size())
132  dir += "/" + subfolder_;
133 
135 
136  // checking when number of towers in data different than expected from header
137  name = "EEIT DCC size error";
138  meIntegrityDCCSize = dqmStore_->book1D(name, name, 18, 1., 19.);
139  for (int i = 0; i < 18; i++) {
140  meIntegrityDCCSize->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
141  }
142 
143  // checking the number of integrity errors in each DCC for each lumi
144  // crystal integrity error is weighted by 1/850
145  // tower integrity error is weighted by 1/34
146  // bin 0 contains the number of processed events in the lumi (for normalization)
147  name = "EEIT weighted integrity errors by lumi";
148  meIntegrityErrorsByLumi = dqmStore_->book1D(name, name, 18, 1., 19.);
150  for (int i = 0; i < 18; i++) {
152  }
153 
154  // checking when the gain is 0
155  dqmStore_->setCurrentFolder(dir + "/Gain");
156  for (int i = 0; i < 18; i++) {
157  name = "EEIT gain " + Numbers::sEE(i+1);
158  meIntegrityGain[i] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
159  meIntegrityGain[i]->setAxisTitle("ix", 1);
160  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityGain[i]->setAxisTitle("101-ix", 1);
161  meIntegrityGain[i]->setAxisTitle("iy", 2);
162  dqmStore_->tag(meIntegrityGain[i], i+1);
163  }
164 
165  // checking when channel has unexpected or invalid ID
166  dqmStore_->setCurrentFolder(dir + "/ChId");
167  for (int i = 0; i < 18; i++) {
168  name = "EEIT ChId " + Numbers::sEE(i+1);
169  meIntegrityChId[i] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
170  meIntegrityChId[i]->setAxisTitle("ix", 1);
171  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityChId[i]->setAxisTitle("101-ix", 1);
172  meIntegrityChId[i]->setAxisTitle("iy", 2);
173  dqmStore_->tag(meIntegrityChId[i], i+1);
174  }
175 
176  // checking when channel has unexpected or invalid ID
177  dqmStore_->setCurrentFolder(dir + "/GainSwitch");
178  for (int i = 0; i < 18; i++) {
179  name = "EEIT gain switch " + Numbers::sEE(i+1);
180  meIntegrityGainSwitch[i] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
182  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityGainSwitch[i]->setAxisTitle("101-ix", 1);
185  }
186 
187  // checking when trigger tower has unexpected or invalid ID
188  dqmStore_->setCurrentFolder(dir + "/TTId");
189  for (int i = 0; i < 18; i++) {
190  name = "EEIT TTId " + Numbers::sEE(i+1);
191  meIntegrityTTId[i] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
192  meIntegrityTTId[i]->setAxisTitle("ix", 1);
193  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityTTId[i]->setAxisTitle("101-ix", 1);
194  meIntegrityTTId[i]->setAxisTitle("iy", 2);
195  dqmStore_->tag(meIntegrityTTId[i], i+1);
196  }
197 
198  // checking when trigger tower has unexpected or invalid size
199  dqmStore_->setCurrentFolder(dir + "/TTBlockSize");
200  for (int i = 0; i < 18; i++) {
201  name = "EEIT TTBlockSize " + Numbers::sEE(i+1);
202  meIntegrityTTBlockSize[i] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
204  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityTTBlockSize[i]->setAxisTitle("101-ix", 1);
207  }
208 
209  // checking when mem channels have unexpected ID
210  dqmStore_->setCurrentFolder(dir + "/MemChId");
211  for (int i = 0; i < 18; i++) {
212  name = "EEIT MemChId " + Numbers::sEE(i+1);
213  meIntegrityMemChId[i] = dqmStore_->book2D(name, name, 10, 0., 10., 5, 0., 5.);
214  meIntegrityMemChId[i]->setAxisTitle("pseudo-strip", 1);
215  meIntegrityMemChId[i]->setAxisTitle("channel", 2);
217  }
218 
219  // checking when mem samples have second bit encoding the gain different from 0
220  // note: strictly speaking, this does not corrupt the mem sample gain value (since only first bit is considered)
221  // but indicates that data are not completely correct
222  dqmStore_->setCurrentFolder(dir + "/MemGain");
223  for (int i = 0; i < 18; i++) {
224  name = "EEIT MemGain " + Numbers::sEE(i+1);
225  meIntegrityMemGain[i] = dqmStore_->book2D(name, name, 10, 0., 10., 5, 0., 5.);
226  meIntegrityMemGain[i]->setAxisTitle("pseudo-strip", 1);
227  meIntegrityMemGain[i]->setAxisTitle("channel", 2);
229  }
230 
231  // checking when mem tower block has unexpected ID
232  dqmStore_->setCurrentFolder(dir + "/MemTTId");
233  for (int i = 0; i < 18; i++) {
234  name = "EEIT MemTTId " + Numbers::sEE(i+1);
235  meIntegrityMemTTId[i] = dqmStore_->book2D(name, name, 2, 0., 2., 1, 0., 1.);
236  meIntegrityMemTTId[i]->setAxisTitle("pseudo-strip", 1);
237  meIntegrityMemTTId[i]->setAxisTitle("channel", 2);
239  }
240 
241  // checking when mem tower block has invalid size
242  dqmStore_->setCurrentFolder(dir + "/MemSize");
243  for (int i = 0; i < 18; i++) {
244  name = "EEIT MemSize " + Numbers::sEE(i+1);
245  meIntegrityMemTTBlockSize[i] = dqmStore_->book2D(name, name, 2, 0., 2., 1, 0., 1.);
246  meIntegrityMemTTBlockSize[i]->setAxisTitle("pseudo-strip", 1);
247  meIntegrityMemTTBlockSize[i]->setAxisTitle("channel", 2);
249  }
250 
251  }
252 
253 }
254 
256 
257  if ( ! init_ ) return;
258 
259  if ( dqmStore_ ) {
260 
262 
263  dir = prefixME_ + "/EEIntegrityTask";
264  if(subfolder_.size())
265  dir += "/" + subfolder_;
266 
267  dqmStore_->setCurrentFolder(dir + "");
268 
270  meIntegrityDCCSize = 0;
271 
274 
275  dqmStore_->setCurrentFolder(dir + "/Gain");
276  for (int i = 0; i < 18; i++) {
277  if ( meIntegrityGain[i] ) dqmStore_->removeElement( meIntegrityGain[i]->getName() );
278  meIntegrityGain[i] = 0;
279  }
280 
281  dqmStore_->setCurrentFolder(dir + "/ChId");
282  for (int i = 0; i < 18; i++) {
283  if ( meIntegrityChId[i] ) dqmStore_->removeElement( meIntegrityChId[i]->getName() );
284  meIntegrityChId[i] = 0;
285  }
286 
287  dqmStore_->setCurrentFolder(dir + "/GainSwitch");
288  for (int i = 0; i < 18; i++) {
291  }
292 
293  dqmStore_->setCurrentFolder(dir + "/TTId");
294  for (int i = 0; i < 18; i++) {
295  if ( meIntegrityTTId[i] ) dqmStore_->removeElement( meIntegrityTTId[i]->getName() );
296  meIntegrityTTId[i] = 0;
297  }
298 
299  dqmStore_->setCurrentFolder(dir + "/TTBlockSize");
300  for (int i = 0; i < 18; i++) {
303  }
304 
305  dqmStore_->setCurrentFolder(dir + "/MemChId");
306  for (int i = 0; i < 18; i++) {
308  meIntegrityMemChId[i] = 0;
309  }
310 
311  dqmStore_->setCurrentFolder(dir + "/MemGain");
312  for (int i = 0; i < 18; i++) {
314  meIntegrityMemGain[i] = 0;
315  }
316 
317  dqmStore_->setCurrentFolder(dir + "/MemTTId");
318  for (int i = 0; i < 18; i++) {
320  meIntegrityMemTTId[i] = 0;
321  }
322 
323  dqmStore_->setCurrentFolder(dir + "/MemSize");
324  for (int i = 0; i < 18; i++) {
327  }
328 
329  }
330 
331  init_ = false;
332 
333 }
334 
336 
337  edm::LogInfo("EEIntegrityTask") << "analyzed " << ievt_ << " events";
338 
339  if ( enableCleanup_ ) this->cleanup();
340 
341 }
342 
344 
345  if ( ! init_ ) this->setup();
346 
347  ievt_++;
348 
349  // fill bin 0 with number of events in the lumi
351 
353 
354  if ( e.getByToken(EEDetIdCollection1_, ids1) ) {
355 
356  for ( EEDetIdCollection::const_iterator idItr = ids1->begin(); idItr != ids1->end(); ++idItr ) {
357 
358  EEDetId id = (*idItr);
359 
360  int ix = id.ix();
361  int iy = id.iy();
362 
363  int ism = Numbers::iSM( id );
364  float xism = ism + 0.5;
365 
366  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
367 
368  float xix = ix - 0.5;
369  float xiy = iy - 0.5;
370 
371  if ( meIntegrityGain[ism-1] ) meIntegrityGain[ism-1]->Fill(xix, xiy);
373 
374  }
375 
376  } else {
377 
378  edm::LogWarning("EEIntegrityTask") << "EEDetIdCollection1 not available";
379 
380  }
381 
383 
384  if ( e.getByToken(EEDetIdCollection2_, ids2) ) {
385 
386  for ( EEDetIdCollection::const_iterator idItr = ids2->begin(); idItr != ids2->end(); ++idItr ) {
387 
388  EEDetId id = (*idItr);
389 
390  int ix = id.ix();
391  int iy = id.iy();
392 
393  int ism = Numbers::iSM( id );
394  float xism = ism + 0.5;
395 
396  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
397 
398  float xix = ix - 0.5;
399  float xiy = iy - 0.5;
400 
401  if ( meIntegrityChId[ism-1] ) meIntegrityChId[ism-1]->Fill(xix, xiy);
403 
404  }
405 
406  } else {
407 
408  edm::LogWarning("EEIntegrityTask") << "EEDetIdCollection2 not available";
409 
410  }
411 
413 
414  if ( e.getByToken(EEDetIdCollection3_, ids3) ) {
415 
416  for ( EEDetIdCollection::const_iterator idItr = ids3->begin(); idItr != ids3->end(); ++idItr ) {
417 
418  EEDetId id = (*idItr);
419 
420  int ix = id.ix();
421  int iy = id.iy();
422 
423  int ism = Numbers::iSM( id );
424  float xism = ism + 0.5;
425 
426  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
427 
428  float xix = ix - 0.5;
429  float xiy = iy - 0.5;
430 
431  if ( meIntegrityGainSwitch[ism-1] ) meIntegrityGainSwitch[ism-1]->Fill(xix, xiy);
433 
434  }
435 
436  } else {
437 
438  edm::LogWarning("EEIntegrityTask") << "EEDetIdCollection3 not available";
439 
440  }
441 
443 
444  if ( e.getByToken(EcalElectronicsIdCollection1_, ids4) ) {
445 
446  for ( EcalElectronicsIdCollection::const_iterator idItr = ids4->begin(); idItr != ids4->end(); ++idItr ) {
447 
448  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
449 
450  int ism = Numbers::iSM( *idItr );
451  float xism = ism + 0.5;
452 
453  std::vector<DetId>* crystals = Numbers::crystals( *idItr );
454 
455  for ( unsigned int i=0; i<crystals->size(); i++ ) {
456 
457  EEDetId id = (*crystals)[i];
458 
459  int ix = id.ix();
460  int iy = id.iy();
461 
462  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
463 
464  float xix = ix - 0.5;
465  float xiy = iy - 0.5;
466 
467  if ( meIntegrityTTId[ism-1] ) meIntegrityTTId[ism-1]->Fill(xix, xiy);
468  if ( meIntegrityErrorsByLumi ) meIntegrityErrorsByLumi->Fill(xism, 1./34./crystals->size());
469 
470  }
471 
472  }
473 
474  } else {
475 
476  edm::LogWarning("EEIntegrityTask") << "EcalElectronicsIdCollection1 not available";
477 
478  }
479 
481 
482  if ( e.getByToken(EcalElectronicsIdCollection2_, ids5) ) {
483 
484  for ( EcalElectronicsIdCollection::const_iterator idItr = ids5->begin(); idItr != ids5->end(); ++idItr ) {
485 
486  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
487 
488  int ism = Numbers::iSM( *idItr );
489  float xism = ism + 0.5;
490 
491  std::vector<DetId>* crystals = Numbers::crystals( *idItr );
492 
493  for ( unsigned int i=0; i<crystals->size(); i++ ) {
494 
495  EEDetId id = (*crystals)[i];
496 
497  int ix = id.ix();
498  int iy = id.iy();
499 
500  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
501 
502  float xix = ix - 0.5;
503  float xiy = iy - 0.5;
504 
505  if ( meIntegrityTTBlockSize[ism-1] ) meIntegrityTTBlockSize[ism-1]->Fill(xix, xiy);
506  if ( meIntegrityErrorsByLumi ) meIntegrityErrorsByLumi->Fill(xism, 1./34./crystals->size());
507 
508  }
509 
510  }
511 
512  } else {
513 
514  edm::LogWarning("EEIntegrityTask") << "EcalElectronicsIdCollection2 not available";
515 
516  }
517 
519 
520  if ( e.getByToken(EcalElectronicsIdCollection3_, ids6) ) {
521 
522  for ( EcalElectronicsIdCollection::const_iterator idItr = ids6->begin(); idItr != ids6->end(); ++idItr ) {
523 
524  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
525 
526  int ism = Numbers::iSM( *idItr );
527 
528  int itt = idItr->towerId();
529  float iTt = itt + 0.5 - 69;
530 
531  if ( meIntegrityMemTTId[ism-1] ) meIntegrityMemTTId[ism-1]->Fill(iTt,0);
532 
533  }
534 
535  } else {
536 
537  edm::LogWarning("EEIntegrityTask") << "EcalElectronicsIdCollection3 not available";
538 
539  }
540 
542 
543  if ( e.getByToken(EcalElectronicsIdCollection4_, ids7) ) {
544 
545  for ( EcalElectronicsIdCollection::const_iterator idItr = ids7->begin(); idItr != ids7->end(); ++idItr ) {
546 
547  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
548 
549  int ism = Numbers::iSM( *idItr );
550 
551  int itt = idItr->towerId();
552  float iTt = itt + 0.5 - 69;
553 
554  if ( meIntegrityMemTTBlockSize[ism-1] ) meIntegrityMemTTBlockSize[ism-1]->Fill(iTt,0);
555 
556  }
557 
558  } else {
559 
560  edm::LogWarning("EEIntegrityTask") << "EcalElectronicsIdCollection4 not available";
561 
562  }
563 
565 
566  if ( e.getByToken(EcalElectronicsIdCollection5_, ids8) ) {
567 
568  for ( EcalElectronicsIdCollection::const_iterator idItr = ids8->begin(); idItr != ids8->end(); ++idItr ) {
569 
570  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
571 
572  int ism = Numbers::iSM( *idItr );
573 
574  int chid = idItr->channelId();
575  int ie = EEIntegrityTask::chMemAbscissa[chid-1];
576  int ip = EEIntegrityTask::chMemOrdinate[chid-1];
577 
578  int itt = idItr->towerId();
579  ie += (itt-69)*5;
580 
581  float xix = ie - 0.5;
582  float xiy = ip - 0.5;
583 
584  if ( meIntegrityMemChId[ism-1] ) meIntegrityMemChId[ism-1]->Fill(xix,xiy);
585 
586  }
587 
588  } else {
589 
590  edm::LogWarning("EEIntegrityTask") << "EcalElectronicsIdCollection5 not available";
591 
592  }
593 
595 
596  if ( e.getByToken(EcalElectronicsIdCollection6_, ids9) ) {
597 
598  for ( EcalElectronicsIdCollection::const_iterator idItr = ids9->begin(); idItr != ids9->end(); ++idItr ) {
599 
600  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
601 
602  int ism = Numbers::iSM( *idItr );
603 
604  int chid = idItr->channelId();
605  int ie = EEIntegrityTask::chMemAbscissa[chid-1];
606  int ip = EEIntegrityTask::chMemOrdinate[chid-1];
607 
608  int itt = idItr->towerId();
609  ie += (itt-69)*5;
610 
611  float xix = ie - 0.5;
612  float xiy = ip - 0.5;
613 
614  if ( meIntegrityMemGain[ism-1] ) meIntegrityMemGain[ism-1]->Fill(xix,xiy);
615 
616  }
617 
618  } else {
619 
620  edm::LogWarning("EEIntegrityTask") << "EcalElectronicsIdCollection6 not available";
621 
622  }
623 
624 }// end analyze
625 
626 const int EEIntegrityTask::chMemAbscissa [25] = {
627  1, 1, 1, 1, 1,
628  2, 2, 2, 2, 2,
629  3, 3, 3, 3, 3,
630  4, 4, 4, 4, 4,
631  5, 5, 5, 5, 5
632 };
633 
634 const int EEIntegrityTask::chMemOrdinate [25] = {
635  1, 2, 3, 4, 5,
636  5, 4, 3, 2, 1,
637  1, 2, 3, 4, 5,
638  5, 4, 3, 2, 1,
639  1, 2, 3, 4, 5
640 };
641 
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
static std::string sEE(const unsigned ism)
Definition: Numbers.cc:223
int i
Definition: DBlmapReader.cc:9
MonitorElement * meIntegrityTTId[18]
int ix() const
Definition: EEDetId.h:76
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2730
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
Some &quot;id&quot; conversions.
MonitorElement * meIntegrityErrorsByLumi
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
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 * meIntegrityTTBlockSize[18]
void cleanup(void)
Cleanup.
MonitorElement * meIntegrityDCCSize
void beginLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
BeginLuminosityBlock.
static int ix0EE(const unsigned ism)
Definition: Numbers.cc:770
edm::EDGetTokenT< EEDetIdCollection > EEDetIdCollection3_
static int iy0EE(const unsigned ism)
Definition: Numbers.cc:809
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection5_
void Fill(long long x)
void setup(void)
Setup.
void tag(MonitorElement *me, unsigned int myTag)
Definition: DQMStore.cc:1509
std::string prefixME_
static std::vector< DetId > * crystals(const EcalTrigTowerDetId &id)
Definition: Numbers.cc:582
MonitorElement * meIntegrityGainSwitch[18]
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection1_
void beginJob(void)
BeginJob.
MonitorElement * meIntegrityMemChId[18]
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
void reset(void)
Reset.
edm::EDGetTokenT< EEDetIdCollection > EEDetIdCollection2_
static const int chMemAbscissa[25]
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection6_
MonitorElement * meIntegrityGain[18]
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
MonitorElement * meIntegrityMemTTId[18]
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:47
static const int chMemOrdinate[25]
DQMStore * dqmStore_
EEIntegrityTask(const edm::ParameterSet &ps)
Constructor.
void endJob(void)
EndJob.
static unsigned iSM(const unsigned ism, const EcalSubdetector subdet)
Definition: Numbers.cc:243
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection2_
std::string subfolder_
void endLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
EndLuminosityBlock.
MonitorElement * meIntegrityMemGain[18]
dbl *** dir
Definition: mlp_gen.cc:35
static EcalSubdetector subDet(const EBDetId &id)
Definition: Numbers.cc:142
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
MonitorElement * meIntegrityChId[18]
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:1000
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection4_
edm::EDGetTokenT< EEDetIdCollection > EEDetIdCollection1_
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)
virtual ~EEIntegrityTask()
Destructor.
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
Definition: Run.h:41
MonitorElement * meIntegrityMemTTBlockSize[18]
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection3_
std::vector< EEDetId >::const_iterator const_iterator
Definition: EDCollection.h:19