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 Attributes | Static Private Attributes
EEIntegrityTask Class Reference

#include <EEIntegrityTask.h>

Inheritance diagram for EEIntegrityTask:
edm::EDAnalyzer

Public Member Functions

 EEIntegrityTask (const edm::ParameterSet &ps)
 Constructor. More...
 
virtual ~EEIntegrityTask ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 Analyze. More...
 
void beginJob (void)
 BeginJob. More...
 
void beginLuminosityBlock (const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
 BeginLuminosityBlock. More...
 
void beginRun (const edm::Run &r, const edm::EventSetup &c)
 BeginRun. More...
 
void cleanup (void)
 Cleanup. More...
 
void endJob (void)
 EndJob. More...
 
void endLuminosityBlock (const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
 EndLuminosityBlock. More...
 
void endRun (const edm::Run &r, const edm::EventSetup &c)
 EndRun. More...
 
void reset (void)
 Reset. More...
 
void setup (void)
 Setup. More...
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Private Attributes

DQMStoredqmStore_
 
edm::InputTag EcalElectronicsIdCollection1_
 
edm::InputTag EcalElectronicsIdCollection2_
 
edm::InputTag EcalElectronicsIdCollection3_
 
edm::InputTag EcalElectronicsIdCollection4_
 
edm::InputTag EcalElectronicsIdCollection5_
 
edm::InputTag EcalElectronicsIdCollection6_
 
edm::InputTag EEDetIdCollection0_
 
edm::InputTag EEDetIdCollection1_
 
edm::InputTag EEDetIdCollection2_
 
edm::InputTag EEDetIdCollection3_
 
edm::InputTag EEDetIdCollection4_
 
bool enableCleanup_
 
int ievt_
 
bool init_
 
MonitorElementmeIntegrityChId [18]
 
MonitorElementmeIntegrityDCCSize
 
MonitorElementmeIntegrityErrorsByLumi
 
MonitorElementmeIntegrityGain [18]
 
MonitorElementmeIntegrityGainSwitch [18]
 
MonitorElementmeIntegrityMemChId [18]
 
MonitorElementmeIntegrityMemGain [18]
 
MonitorElementmeIntegrityMemTTBlockSize [18]
 
MonitorElementmeIntegrityMemTTId [18]
 
MonitorElementmeIntegrityTTBlockSize [18]
 
MonitorElementmeIntegrityTTId [18]
 
bool mergeRuns_
 
std::string prefixME_
 

Static Private Attributes

static const int chMemAbscissa [25]
 
static const int chMemOrdinate [25]
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 

Detailed Description

Definition at line 21 of file EEIntegrityTask.h.

Constructor & Destructor Documentation

EEIntegrityTask::EEIntegrityTask ( const edm::ParameterSet ps)

Constructor.

Definition at line 29 of file EEIntegrityTask.cc.

References dqmStore_, EcalElectronicsIdCollection1_, EcalElectronicsIdCollection2_, EcalElectronicsIdCollection3_, EcalElectronicsIdCollection4_, EcalElectronicsIdCollection5_, EcalElectronicsIdCollection6_, EEDetIdCollection0_, EEDetIdCollection1_, EEDetIdCollection2_, EEDetIdCollection3_, enableCleanup_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), i, init_, meIntegrityChId, meIntegrityDCCSize, meIntegrityErrorsByLumi, meIntegrityGain, meIntegrityGainSwitch, meIntegrityMemChId, meIntegrityMemGain, meIntegrityMemTTBlockSize, meIntegrityMemTTId, meIntegrityTTBlockSize, meIntegrityTTId, mergeRuns_, cmsCodeRules.cppFunctionSkipper::operator, and prefixME_.

29  {
30 
31  init_ = false;
32 
34 
35  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
36 
37  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
38 
39  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
40 
41  EEDetIdCollection0_ = ps.getParameter<edm::InputTag>("EEDetIdCollection0");
42  EEDetIdCollection1_ = ps.getParameter<edm::InputTag>("EEDetIdCollection1");
43  EEDetIdCollection2_ = ps.getParameter<edm::InputTag>("EEDetIdCollection2");
44  EEDetIdCollection3_ = ps.getParameter<edm::InputTag>("EEDetIdCollection3");
45  EcalElectronicsIdCollection1_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection1");
46  EcalElectronicsIdCollection2_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection2");
47  EcalElectronicsIdCollection3_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection3");
48  EcalElectronicsIdCollection4_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection4");
49  EcalElectronicsIdCollection5_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection5");
50  EcalElectronicsIdCollection6_ = ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection6");
51 
53  for (int i = 0; i < 18; i++) {
54  meIntegrityGain[i] = 0;
55  meIntegrityChId[i] = 0;
57  meIntegrityTTId[i] = 0;
59  meIntegrityMemChId[i] = 0;
60  meIntegrityMemGain[i] = 0;
61  meIntegrityMemTTId[i] = 0;
63  }
65 }
edm::InputTag EEDetIdCollection3_
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
edm::InputTag EEDetIdCollection2_
MonitorElement * meIntegrityTTId[18]
edm::InputTag EEDetIdCollection0_
MonitorElement * meIntegrityErrorsByLumi
MonitorElement * meIntegrityTTBlockSize[18]
MonitorElement * meIntegrityDCCSize
edm::InputTag EcalElectronicsIdCollection1_
edm::InputTag EcalElectronicsIdCollection3_
edm::InputTag EcalElectronicsIdCollection5_
std::string prefixME_
MonitorElement * meIntegrityGainSwitch[18]
MonitorElement * meIntegrityMemChId[18]
edm::InputTag EEDetIdCollection1_
MonitorElement * meIntegrityGain[18]
edm::InputTag EcalElectronicsIdCollection4_
MonitorElement * meIntegrityMemTTId[18]
DQMStore * dqmStore_
edm::InputTag EcalElectronicsIdCollection6_
MonitorElement * meIntegrityMemGain[18]
MonitorElement * meIntegrityChId[18]
edm::InputTag EcalElectronicsIdCollection2_
MonitorElement * meIntegrityMemTTBlockSize[18]
EEIntegrityTask::~EEIntegrityTask ( )
virtual

Destructor.

Definition at line 68 of file EEIntegrityTask.cc.

68  {
69 
70 }

Member Function Documentation

void EEIntegrityTask::analyze ( const edm::Event e,
const edm::EventSetup c 
)
protectedvirtual

Analyze.

Implements edm::EDAnalyzer.

Definition at line 331 of file EEIntegrityTask.cc.

References chMemAbscissa, chMemOrdinate, Numbers::crystals(), EcalElectronicsIdCollection1_, EcalElectronicsIdCollection2_, EcalElectronicsIdCollection3_, EcalElectronicsIdCollection4_, EcalElectronicsIdCollection5_, EcalElectronicsIdCollection6_, EcalEndcap, EEDetIdCollection0_, EEDetIdCollection1_, EEDetIdCollection2_, EEDetIdCollection3_, MonitorElement::Fill(), edm::Event::getByLabel(), i, ievt_, init_, ecalpyutils::ism(), Numbers::iSM(), EEDetId::ix(), meIntegrityChId, meIntegrityDCCSize, meIntegrityErrorsByLumi, meIntegrityGain, meIntegrityGainSwitch, meIntegrityMemChId, meIntegrityMemGain, meIntegrityMemTTBlockSize, meIntegrityMemTTId, meIntegrityTTBlockSize, meIntegrityTTId, setup(), and Numbers::subDet().

331  {
332 
333  if ( ! init_ ) this->setup();
334 
335  ievt_++;
336 
337  // fill bin 0 with number of events in the lumi
339 
341 
342  if ( e.getByLabel(EEDetIdCollection0_, ids0) ) {
343 
344  for ( EEDetIdCollection::const_iterator idItr = ids0->begin(); idItr != ids0->end(); ++idItr ) {
345 
346  int ism = Numbers::iSM( *idItr );
347 
348  float xism = ism + 0.5;
349 
351 
352  }
353 
354  } else {
355 
356 // edm::LogWarning("EEIntegrityTask") << EEDetIdCollection0_ << " not available";
357 
358  }
359 
361 
362  if ( e.getByLabel(EEDetIdCollection1_, ids1) ) {
363 
364  for ( EEDetIdCollection::const_iterator idItr = ids1->begin(); idItr != ids1->end(); ++idItr ) {
365 
366  EEDetId id = (*idItr);
367 
368  int ix = id.ix();
369  int iy = id.iy();
370 
371  int ism = Numbers::iSM( id );
372  float xism = ism + 0.5;
373 
374  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
375 
376  float xix = ix - 0.5;
377  float xiy = iy - 0.5;
378 
379  if ( meIntegrityGain[ism-1] ) meIntegrityGain[ism-1]->Fill(xix, xiy);
381 
382  }
383 
384  } else {
385 
386  edm::LogWarning("EEIntegrityTask") << EEDetIdCollection1_ << " not available";
387 
388  }
389 
391 
392  if ( e.getByLabel(EEDetIdCollection2_, ids2) ) {
393 
394  for ( EEDetIdCollection::const_iterator idItr = ids2->begin(); idItr != ids2->end(); ++idItr ) {
395 
396  EEDetId id = (*idItr);
397 
398  int ix = id.ix();
399  int iy = id.iy();
400 
401  int ism = Numbers::iSM( id );
402  float xism = ism + 0.5;
403 
404  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
405 
406  float xix = ix - 0.5;
407  float xiy = iy - 0.5;
408 
409  if ( meIntegrityChId[ism-1] ) meIntegrityChId[ism-1]->Fill(xix, xiy);
411 
412  }
413 
414  } else {
415 
416  edm::LogWarning("EEIntegrityTask") << EEDetIdCollection2_ << " not available";
417 
418  }
419 
421 
422  if ( e.getByLabel(EEDetIdCollection3_, ids3) ) {
423 
424  for ( EEDetIdCollection::const_iterator idItr = ids3->begin(); idItr != ids3->end(); ++idItr ) {
425 
426  EEDetId id = (*idItr);
427 
428  int ix = id.ix();
429  int iy = id.iy();
430 
431  int ism = Numbers::iSM( id );
432  float xism = ism + 0.5;
433 
434  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
435 
436  float xix = ix - 0.5;
437  float xiy = iy - 0.5;
438 
439  if ( meIntegrityGainSwitch[ism-1] ) meIntegrityGainSwitch[ism-1]->Fill(xix, xiy);
441 
442  }
443 
444  } else {
445 
446  edm::LogWarning("EEIntegrityTask") << EEDetIdCollection3_ << " not available";
447 
448  }
449 
451 
452  if ( e.getByLabel(EcalElectronicsIdCollection1_, ids4) ) {
453 
454  for ( EcalElectronicsIdCollection::const_iterator idItr = ids4->begin(); idItr != ids4->end(); ++idItr ) {
455 
456  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
457 
458  int ism = Numbers::iSM( *idItr );
459  float xism = ism + 0.5;
460 
461  std::vector<DetId>* crystals = Numbers::crystals( *idItr );
462 
463  for ( unsigned int i=0; i<crystals->size(); i++ ) {
464 
465  EEDetId id = (*crystals)[i];
466 
467  int ix = id.ix();
468  int iy = id.iy();
469 
470  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
471 
472  float xix = ix - 0.5;
473  float xiy = iy - 0.5;
474 
475  if ( meIntegrityTTId[ism-1] ) meIntegrityTTId[ism-1]->Fill(xix, xiy);
476  if ( meIntegrityErrorsByLumi ) meIntegrityErrorsByLumi->Fill(xism, 1./34./crystals->size());
477 
478  }
479 
480  }
481 
482  } else {
483 
484  edm::LogWarning("EEIntegrityTask") << EcalElectronicsIdCollection1_ << " not available";
485 
486  }
487 
489 
490  if ( e.getByLabel(EcalElectronicsIdCollection2_, ids5) ) {
491 
492  for ( EcalElectronicsIdCollection::const_iterator idItr = ids5->begin(); idItr != ids5->end(); ++idItr ) {
493 
494  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
495 
496  int ism = Numbers::iSM( *idItr );
497  float xism = ism + 0.5;
498 
499  std::vector<DetId>* crystals = Numbers::crystals( *idItr );
500 
501  for ( unsigned int i=0; i<crystals->size(); i++ ) {
502 
503  EEDetId id = (*crystals)[i];
504 
505  int ix = id.ix();
506  int iy = id.iy();
507 
508  if ( ism >= 1 && ism <= 9 ) ix = 101 - ix;
509 
510  float xix = ix - 0.5;
511  float xiy = iy - 0.5;
512 
513  if ( meIntegrityTTBlockSize[ism-1] ) meIntegrityTTBlockSize[ism-1]->Fill(xix, xiy);
514  if ( meIntegrityErrorsByLumi ) meIntegrityErrorsByLumi->Fill(xism, 1./34./crystals->size());
515 
516  }
517 
518  }
519 
520  } else {
521 
522  edm::LogWarning("EEIntegrityTask") << EcalElectronicsIdCollection2_ << " not available";
523 
524  }
525 
527 
528  if ( e.getByLabel(EcalElectronicsIdCollection3_, ids6) ) {
529 
530  for ( EcalElectronicsIdCollection::const_iterator idItr = ids6->begin(); idItr != ids6->end(); ++idItr ) {
531 
532  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
533 
534  int ism = Numbers::iSM( *idItr );
535 
536  int itt = idItr->towerId();
537  float iTt = itt + 0.5 - 69;
538 
539  if ( meIntegrityMemTTId[ism-1] ) meIntegrityMemTTId[ism-1]->Fill(iTt,0);
540 
541  }
542 
543  } else {
544 
545  edm::LogWarning("EEIntegrityTask") << EcalElectronicsIdCollection3_ << " not available";
546 
547  }
548 
550 
551  if ( e.getByLabel(EcalElectronicsIdCollection4_, ids7) ) {
552 
553  for ( EcalElectronicsIdCollection::const_iterator idItr = ids7->begin(); idItr != ids7->end(); ++idItr ) {
554 
555  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
556 
557  int ism = Numbers::iSM( *idItr );
558 
559  int itt = idItr->towerId();
560  float iTt = itt + 0.5 - 69;
561 
562  if ( meIntegrityMemTTBlockSize[ism-1] ) meIntegrityMemTTBlockSize[ism-1]->Fill(iTt,0);
563 
564  }
565 
566  } else {
567 
568  edm::LogWarning("EEIntegrityTask") << EcalElectronicsIdCollection4_ << " not available";
569 
570  }
571 
573 
574  if ( e.getByLabel(EcalElectronicsIdCollection5_, ids8) ) {
575 
576  for ( EcalElectronicsIdCollection::const_iterator idItr = ids8->begin(); idItr != ids8->end(); ++idItr ) {
577 
578  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
579 
580  int ism = Numbers::iSM( *idItr );
581 
582  int chid = idItr->channelId();
583  int ie = EEIntegrityTask::chMemAbscissa[chid-1];
584  int ip = EEIntegrityTask::chMemOrdinate[chid-1];
585 
586  int itt = idItr->towerId();
587  ie += (itt-69)*5;
588 
589  float xix = ie - 0.5;
590  float xiy = ip - 0.5;
591 
592  if ( meIntegrityMemChId[ism-1] ) meIntegrityMemChId[ism-1]->Fill(xix,xiy);
593 
594  }
595 
596  } else {
597 
598  edm::LogWarning("EEIntegrityTask") << EcalElectronicsIdCollection5_ << " not available";
599 
600  }
601 
603 
604  if ( e.getByLabel(EcalElectronicsIdCollection6_, ids9) ) {
605 
606  for ( EcalElectronicsIdCollection::const_iterator idItr = ids9->begin(); idItr != ids9->end(); ++idItr ) {
607 
608  if ( Numbers::subDet( *idItr ) != EcalEndcap ) continue;
609 
610  int ism = Numbers::iSM( *idItr );
611 
612  int chid = idItr->channelId();
613  int ie = EEIntegrityTask::chMemAbscissa[chid-1];
614  int ip = EEIntegrityTask::chMemOrdinate[chid-1];
615 
616  int itt = idItr->towerId();
617  ie += (itt-69)*5;
618 
619  float xix = ie - 0.5;
620  float xiy = ip - 0.5;
621 
622  if ( meIntegrityMemGain[ism-1] ) meIntegrityMemGain[ism-1]->Fill(xix,xiy);
623 
624  }
625 
626  } else {
627 
628  edm::LogWarning("EEIntegrityTask") << EcalElectronicsIdCollection6_ << " not available";
629 
630  }
631 
632 }// end analyze
edm::InputTag EEDetIdCollection3_
int i
Definition: DBlmapReader.cc:9
edm::InputTag EEDetIdCollection2_
MonitorElement * meIntegrityTTId[18]
int ix() const
Definition: EEDetId.h:71
edm::InputTag EEDetIdCollection0_
MonitorElement * meIntegrityErrorsByLumi
MonitorElement * meIntegrityTTBlockSize[18]
MonitorElement * meIntegrityDCCSize
edm::InputTag EcalElectronicsIdCollection1_
edm::InputTag EcalElectronicsIdCollection3_
void Fill(long long x)
void setup(void)
Setup.
edm::InputTag EcalElectronicsIdCollection5_
static std::vector< DetId > * crystals(const EcalTrigTowerDetId &id)
Definition: Numbers.cc:734
MonitorElement * meIntegrityGainSwitch[18]
static int iSM(const int ism, const EcalSubdetector subdet)
Definition: Numbers.cc:216
MonitorElement * meIntegrityMemChId[18]
edm::InputTag EEDetIdCollection1_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
static const int chMemAbscissa[25]
MonitorElement * meIntegrityGain[18]
edm::InputTag EcalElectronicsIdCollection4_
MonitorElement * meIntegrityMemTTId[18]
static const int chMemOrdinate[25]
edm::InputTag EcalElectronicsIdCollection6_
MonitorElement * meIntegrityMemGain[18]
static EcalSubdetector subDet(const EBDetId &id)
Definition: Numbers.cc:130
MonitorElement * meIntegrityChId[18]
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:47
edm::InputTag EcalElectronicsIdCollection2_
MonitorElement * meIntegrityMemTTBlockSize[18]
std::vector< T >::const_iterator const_iterator
Definition: EDCollection.h:20
void EEIntegrityTask::beginJob ( void  )
protectedvirtual

BeginJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 72 of file EEIntegrityTask.cc.

References dqmStore_, ievt_, prefixME_, DQMStore::rmdir(), and DQMStore::setCurrentFolder().

72  {
73 
74  ievt_ = 0;
75 
76  if ( dqmStore_ ) {
77  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask");
78  dqmStore_->rmdir(prefixME_ + "/EEIntegrityTask");
79  }
80 
81 }
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2296
std::string prefixME_
DQMStore * dqmStore_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:237
void EEIntegrityTask::beginLuminosityBlock ( const edm::LuminosityBlock lumiBlock,
const edm::EventSetup iSetup 
)
protectedvirtual

BeginLuminosityBlock.

Reimplemented from edm::EDAnalyzer.

Definition at line 83 of file EEIntegrityTask.cc.

References meIntegrityErrorsByLumi, and MonitorElement::Reset().

83  {
84 
86 
87 }
MonitorElement * meIntegrityErrorsByLumi
void Reset(void)
reset ME (ie. contents, errors, etc)
void EEIntegrityTask::beginRun ( const edm::Run r,
const edm::EventSetup c 
)
protectedvirtual

BeginRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 92 of file EEIntegrityTask.cc.

References Numbers::initGeometry(), mergeRuns_, and reset().

92  {
93 
94  Numbers::initGeometry(c, false);
95 
96  if ( ! mergeRuns_ ) this->reset();
97 
98 }
void reset(void)
Reset.
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:43
void EEIntegrityTask::cleanup ( void  )
protected

Cleanup.

Definition at line 250 of file EEIntegrityTask.cc.

References dqmStore_, edm::getName(), MonitorElement::getName(), i, init_, meIntegrityChId, meIntegrityDCCSize, meIntegrityErrorsByLumi, meIntegrityGain, meIntegrityGainSwitch, meIntegrityMemChId, meIntegrityMemGain, meIntegrityMemTTBlockSize, meIntegrityMemTTId, meIntegrityTTBlockSize, meIntegrityTTId, prefixME_, DQMStore::removeElement(), and DQMStore::setCurrentFolder().

Referenced by endJob().

250  {
251 
252  if ( ! init_ ) return;
253 
254  if ( dqmStore_ ) {
255  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask");
256 
258  meIntegrityDCCSize = 0;
259 
262 
263  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/Gain");
264  for (int i = 0; i < 18; i++) {
266  meIntegrityGain[i] = 0;
267  }
268 
269  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/ChId");
270  for (int i = 0; i < 18; i++) {
272  meIntegrityChId[i] = 0;
273  }
274 
275  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/GainSwitch");
276  for (int i = 0; i < 18; i++) {
279  }
280 
281  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/TTId");
282  for (int i = 0; i < 18; i++) {
284  meIntegrityTTId[i] = 0;
285  }
286 
287  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/TTBlockSize");
288  for (int i = 0; i < 18; i++) {
291  }
292 
293  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/MemChId");
294  for (int i = 0; i < 18; i++) {
296  meIntegrityMemChId[i] = 0;
297  }
298 
299  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/MemGain");
300  for (int i = 0; i < 18; i++) {
302  meIntegrityMemGain[i] = 0;
303  }
304 
305  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/MemTTId");
306  for (int i = 0; i < 18; i++) {
308  meIntegrityMemTTId[i] = 0;
309  }
310 
311  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/MemSize");
312  for (int i = 0; i < 18; i++) {
315  }
316 
317  }
318 
319  init_ = false;
320 
321 }
const std::string & getName(void) const
get name of ME
int i
Definition: DBlmapReader.cc:9
MonitorElement * meIntegrityTTId[18]
MonitorElement * meIntegrityErrorsByLumi
MonitorElement * meIntegrityTTBlockSize[18]
MonitorElement * meIntegrityDCCSize
std::string prefixME_
MonitorElement * meIntegrityGainSwitch[18]
MonitorElement * meIntegrityMemChId[18]
void removeElement(const std::string &name)
Definition: DQMStore.cc:2338
std::string getName(Reflex::Type &cc)
Definition: ClassFiller.cc:18
MonitorElement * meIntegrityGain[18]
MonitorElement * meIntegrityMemTTId[18]
DQMStore * dqmStore_
MonitorElement * meIntegrityMemGain[18]
MonitorElement * meIntegrityChId[18]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:237
MonitorElement * meIntegrityMemTTBlockSize[18]
void EEIntegrityTask::endJob ( void  )
protectedvirtual

EndJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 323 of file EEIntegrityTask.cc.

References cleanup(), enableCleanup_, and ievt_.

323  {
324 
325  edm::LogInfo("EEIntegrityTask") << "analyzed " << ievt_ << " events";
326 
327  if ( enableCleanup_ ) this->cleanup();
328 
329 }
void cleanup(void)
Cleanup.
void EEIntegrityTask::endLuminosityBlock ( const edm::LuminosityBlock lumiBlock,
const edm::EventSetup iSetup 
)
protectedvirtual

EndLuminosityBlock.

Reimplemented from edm::EDAnalyzer.

Definition at line 89 of file EEIntegrityTask.cc.

89  {
90 }
void EEIntegrityTask::endRun ( const edm::Run r,
const edm::EventSetup c 
)
protectedvirtual

EndRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 100 of file EEIntegrityTask.cc.

100  {
101 
102 }
void EEIntegrityTask::reset ( void  )
protected

Reset.

Definition at line 104 of file EEIntegrityTask.cc.

References i, meIntegrityChId, meIntegrityDCCSize, meIntegrityErrorsByLumi, meIntegrityGain, meIntegrityGainSwitch, meIntegrityMemChId, meIntegrityMemGain, meIntegrityMemTTBlockSize, meIntegrityMemTTId, meIntegrityTTBlockSize, meIntegrityTTId, and MonitorElement::Reset().

Referenced by beginRun().

104  {
105 
107  for (int i = 0; i < 18; i++) {
109  if ( meIntegrityChId[i] ) meIntegrityChId[i]->Reset();
111  if ( meIntegrityTTId[i] ) meIntegrityTTId[i]->Reset();
117  }
119 
120 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * meIntegrityTTId[18]
MonitorElement * meIntegrityErrorsByLumi
MonitorElement * meIntegrityTTBlockSize[18]
MonitorElement * meIntegrityDCCSize
MonitorElement * meIntegrityGainSwitch[18]
MonitorElement * meIntegrityMemChId[18]
MonitorElement * meIntegrityGain[18]
MonitorElement * meIntegrityMemTTId[18]
MonitorElement * meIntegrityMemGain[18]
MonitorElement * meIntegrityChId[18]
void Reset(void)
reset ME (ie. contents, errors, etc)
MonitorElement * meIntegrityMemTTBlockSize[18]
void EEIntegrityTask::setup ( void  )
protected

Setup.

Definition at line 122 of file EEIntegrityTask.cc.

References DQMStore::book1D(), DQMStore::book2D(), dqmStore_, trackerHits::histo, i, init_, Numbers::ix0EE(), Numbers::iy0EE(), meIntegrityChId, meIntegrityDCCSize, meIntegrityErrorsByLumi, meIntegrityGain, meIntegrityGainSwitch, meIntegrityMemChId, meIntegrityMemGain, meIntegrityMemTTBlockSize, meIntegrityMemTTId, meIntegrityTTBlockSize, meIntegrityTTId, prefixME_, Numbers::sEE(), MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), MonitorElement::setLumiFlag(), and DQMStore::tag().

Referenced by analyze().

122  {
123 
124  init_ = true;
125 
126  char histo[200];
127 
128  if ( dqmStore_ ) {
129  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask");
130 
131  // checking when number of towers in data different than expected from header
132  sprintf(histo, "EEIT DCC size error");
133  meIntegrityDCCSize = dqmStore_->book1D(histo, histo, 18, 1., 19.);
134  for (int i = 0; i < 18; i++) {
135  meIntegrityDCCSize->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
136  }
137 
138  // checking the number of integrity errors in each DCC for each lumi
139  // crystal integrity error is weighted by 1/850
140  // tower integrity error is weighted by 1/34
141  // bin 0 contains the number of processed events in the lumi (for normalization)
142  sprintf(histo, "EEIT weighted integrity errors by lumi");
143  meIntegrityErrorsByLumi = dqmStore_->book1D(histo, histo, 18, 1., 19.);
145  for (int i = 0; i < 18; i++) {
147  }
148 
149  // checking when the gain is 0
150  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/Gain");
151  for (int i = 0; i < 18; i++) {
152  sprintf(histo, "EEIT gain %s", Numbers::sEE(i+1).c_str());
153  meIntegrityGain[i] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
154  meIntegrityGain[i]->setAxisTitle("ix", 1);
155  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityGain[i]->setAxisTitle("101-ix", 1);
156  meIntegrityGain[i]->setAxisTitle("iy", 2);
157  dqmStore_->tag(meIntegrityGain[i], i+1);
158  }
159 
160  // checking when channel has unexpected or invalid ID
161  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/ChId");
162  for (int i = 0; i < 18; i++) {
163  sprintf(histo, "EEIT ChId %s", Numbers::sEE(i+1).c_str());
164  meIntegrityChId[i] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
165  meIntegrityChId[i]->setAxisTitle("ix", 1);
166  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityChId[i]->setAxisTitle("101-ix", 1);
167  meIntegrityChId[i]->setAxisTitle("iy", 2);
168  dqmStore_->tag(meIntegrityChId[i], i+1);
169  }
170 
171  // checking when channel has unexpected or invalid ID
172  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/GainSwitch");
173  for (int i = 0; i < 18; i++) {
174  sprintf(histo, "EEIT gain switch %s", Numbers::sEE(i+1).c_str());
175  meIntegrityGainSwitch[i] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
177  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityGainSwitch[i]->setAxisTitle("101-ix", 1);
180  }
181 
182  // checking when trigger tower has unexpected or invalid ID
183  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/TTId");
184  for (int i = 0; i < 18; i++) {
185  sprintf(histo, "EEIT TTId %s", Numbers::sEE(i+1).c_str());
186  meIntegrityTTId[i] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
187  meIntegrityTTId[i]->setAxisTitle("ix", 1);
188  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityTTId[i]->setAxisTitle("101-ix", 1);
189  meIntegrityTTId[i]->setAxisTitle("iy", 2);
190  dqmStore_->tag(meIntegrityTTId[i], i+1);
191  }
192 
193  // checking when trigger tower has unexpected or invalid size
194  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/TTBlockSize");
195  for (int i = 0; i < 18; i++) {
196  sprintf(histo, "EEIT TTBlockSize %s", Numbers::sEE(i+1).c_str());
197  meIntegrityTTBlockSize[i] = dqmStore_->book2D(histo, histo, 50, Numbers::ix0EE(i+1)+0., Numbers::ix0EE(i+1)+50., 50, Numbers::iy0EE(i+1)+0., Numbers::iy0EE(i+1)+50.);
199  if ( i+1 >= 1 && i+1 <= 9 ) meIntegrityTTBlockSize[i]->setAxisTitle("101-ix", 1);
202  }
203 
204  // checking when mem channels have unexpected ID
205  dqmStore_->setCurrentFolder(prefixME_ + "/EEIntegrityTask/MemChId");
206  for (int i = 0; i < 18; i++) {
207  sprintf(histo, "EEIT MemChId %s", Numbers::sEE(i+1).c_str());
208  meIntegrityMemChId[i] = dqmStore_->book2D(histo, histo, 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(prefixME_ + "/EEIntegrityTask/MemGain");
218  for (int i = 0; i < 18; i++) {
219  sprintf(histo, "EEIT MemGain %s", Numbers::sEE(i+1).c_str());
220  meIntegrityMemGain[i] = dqmStore_->book2D(histo, histo, 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(prefixME_ + "/EEIntegrityTask/MemTTId");
228  for (int i = 0; i < 18; i++) {
229  sprintf(histo, "EEIT MemTTId %s", Numbers::sEE(i+1).c_str());
230  meIntegrityMemTTId[i] = dqmStore_->book2D(histo, histo, 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(prefixME_ + "/EEIntegrityTask/MemSize");
238  for (int i = 0; i < 18; i++) {
239  sprintf(histo, "EEIT MemSize %s", Numbers::sEE(i+1).c_str());
240  meIntegrityMemTTBlockSize[i] = dqmStore_->book2D(histo, histo, 2, 0., 2., 1, 0., 1.);
241  meIntegrityMemTTBlockSize[i]->setAxisTitle("pseudo-strip", 1);
242  meIntegrityMemTTBlockSize[i]->setAxisTitle("channel", 2);
244  }
245 
246  }
247 
248 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * meIntegrityTTId[18]
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:519
static int iy0EE(const int ism)
Definition: Numbers.cc:964
static std::string sEE(const int ism)
Definition: Numbers.cc:199
MonitorElement * meIntegrityErrorsByLumi
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]
MonitorElement * meIntegrityDCCSize
tuple histo
Definition: trackerHits.py:12
void tag(MonitorElement *me, unsigned int myTag)
Definition: DQMStore.cc:1156
std::string prefixME_
MonitorElement * meIntegrityGainSwitch[18]
MonitorElement * meIntegrityMemChId[18]
MonitorElement * meIntegrityGain[18]
MonitorElement * meIntegrityMemTTId[18]
DQMStore * dqmStore_
static int ix0EE(const int ism)
Definition: Numbers.cc:946
MonitorElement * meIntegrityMemGain[18]
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:647
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:237
MonitorElement * meIntegrityMemTTBlockSize[18]

Member Data Documentation

const int EEIntegrityTask::chMemAbscissa
staticprivate
Initial value:
= {
1, 1, 1, 1, 1,
2, 2, 2, 2, 2,
3, 3, 3, 3, 3,
4, 4, 4, 4, 4,
5, 5, 5, 5, 5
}

Definition at line 101 of file EEIntegrityTask.h.

Referenced by analyze().

const int EEIntegrityTask::chMemOrdinate
staticprivate
Initial value:
= {
1, 2, 3, 4, 5,
5, 4, 3, 2, 1,
1, 2, 3, 4, 5,
5, 4, 3, 2, 1,
1, 2, 3, 4, 5
}

Definition at line 102 of file EEIntegrityTask.h.

Referenced by analyze().

DQMStore* EEIntegrityTask::dqmStore_
private

Definition at line 67 of file EEIntegrityTask.h.

Referenced by beginJob(), cleanup(), EEIntegrityTask(), and setup().

edm::InputTag EEIntegrityTask::EcalElectronicsIdCollection1_
private

Definition at line 80 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EcalElectronicsIdCollection2_
private

Definition at line 81 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EcalElectronicsIdCollection3_
private

Definition at line 82 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EcalElectronicsIdCollection4_
private

Definition at line 83 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EcalElectronicsIdCollection5_
private

Definition at line 84 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EcalElectronicsIdCollection6_
private

Definition at line 85 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EEDetIdCollection0_
private

Definition at line 75 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EEDetIdCollection1_
private

Definition at line 76 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EEDetIdCollection2_
private

Definition at line 77 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EEDetIdCollection3_
private

Definition at line 78 of file EEIntegrityTask.h.

Referenced by analyze(), and EEIntegrityTask().

edm::InputTag EEIntegrityTask::EEDetIdCollection4_
private

Definition at line 79 of file EEIntegrityTask.h.

bool EEIntegrityTask::enableCleanup_
private

Definition at line 71 of file EEIntegrityTask.h.

Referenced by EEIntegrityTask(), and endJob().

int EEIntegrityTask::ievt_
private

Definition at line 65 of file EEIntegrityTask.h.

Referenced by analyze(), beginJob(), and endJob().

bool EEIntegrityTask::init_
private

Definition at line 99 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityChId[18]
private

Definition at line 87 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityDCCSize
private

Definition at line 96 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityErrorsByLumi
private

Definition at line 97 of file EEIntegrityTask.h.

Referenced by analyze(), beginLuminosityBlock(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityGain[18]
private

Definition at line 88 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityGainSwitch[18]
private

Definition at line 89 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityMemChId[18]
private

Definition at line 92 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityMemGain[18]
private

Definition at line 93 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityMemTTBlockSize[18]
private

Definition at line 95 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityMemTTId[18]
private

Definition at line 94 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityTTBlockSize[18]
private

Definition at line 91 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

MonitorElement* EEIntegrityTask::meIntegrityTTId[18]
private

Definition at line 90 of file EEIntegrityTask.h.

Referenced by analyze(), cleanup(), EEIntegrityTask(), reset(), and setup().

bool EEIntegrityTask::mergeRuns_
private

Definition at line 73 of file EEIntegrityTask.h.

Referenced by beginRun(), and EEIntegrityTask().

std::string EEIntegrityTask::prefixME_
private

Definition at line 69 of file EEIntegrityTask.h.

Referenced by beginJob(), cleanup(), EEIntegrityTask(), and setup().