CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EERawDataTask.cc
Go to the documentation of this file.
1 /*
2  * \file EERawDataTask.cc
3  *
4  * $Date: 2010/08/11 14:57:35 $
5  * $Revision: 1.37 $
6  * \author E. Di Marco
7  *
8 */
9 
10 #include <iostream>
11 #include <vector>
12 
15 
17 
19 
27 
29 
31 
33 
34  init_ = false;
35 
37 
38  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
39 
40  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
41 
42  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
43 
44  FEDRawDataCollection_ = ps.getParameter<edm::InputTag>("FEDRawDataCollection");
45  EcalRawDataCollection_ = ps.getParameter<edm::InputTag>("EcalRawDataCollection");
46 
50  meEECRCErrors_ = 0;
57  meEEL1AFEErrors_ = 0;
63 
65 
66  calibrationBX_ = 3490;
67 
68 }
69 
71 }
72 
74 
75  ievt_ = 0;
76 
77  if ( dqmStore_ ) {
78  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask");
79  dqmStore_->rmdir(prefixME_ + "/EERawDataTask");
80  }
81 
82 }
83 
85 
87 
88 }
89 
91 
92  Numbers::initGeometry(c, false);
93 
94  if ( ! mergeRuns_ ) this->reset();
95 
96 }
97 
99 
100 }
101 
103 
121 
122 }
123 
125 
126  init_ = true;
127 
128  std::string name;
129 
130  if ( dqmStore_ ) {
131  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask");
132 
133  name = "EERDT event type pre calibration BX";
134  meEEEventTypePreCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
159 
160  name = "EERDT event type calibration BX";
161  meEEEventTypeCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
162  meEEEventTypeCalibrationBX_->setBinLabel(1, "UNKNOWN", 1);
186 
187  name = "EERDT event type post calibration BX";
188  meEEEventTypePostCalibrationBX_ = dqmStore_->book1D(name, name, 31, -1., 30.);
213 
214  name = "EERDT CRC errors";
215  meEECRCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
216  for (int i = 0; i < 18; i++) {
217  meEECRCErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
218  }
219 
220  name = "EERDT run number errors";
221  meEERunNumberErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
222  for (int i = 0; i < 18; i++) {
223  meEERunNumberErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
224  }
225 
226  name = "EERDT orbit number errors";
227  meEEOrbitNumberErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
228  for (int i = 0; i < 18; i++) {
230  }
231 
232  name = "EERDT trigger type errors";
233  meEETriggerTypeErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
234  for (int i = 0; i < 18; i++) {
236  }
237 
238  name = "EERDT calibration event errors";
239  meEECalibrationEventErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
240  for (int i = 0; i < 18; i++) {
242  }
243 
244  name = "EERDT L1A DCC errors";
245  meEEL1ADCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
246  for (int i = 0; i < 18; i++) {
247  meEEL1ADCCErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
248  }
249 
250  name = "EERDT bunch crossing DCC errors";
251  meEEBunchCrossingDCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
252  for (int i = 0; i < 18; i++) {
254  }
255 
256  name = "EERDT L1A FE errors";
257  meEEL1AFEErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
258  for (int i = 0; i < 18; i++) {
259  meEEL1AFEErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
260  }
261 
262  name = "EERDT bunch crossing FE errors";
263  meEEBunchCrossingFEErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
264  for (int i = 0; i < 18; i++) {
266  }
267 
268  name = "EERDT L1A TCC errors";
269  meEEL1ATCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
270  for (int i = 0; i < 18; i++) {
271  meEEL1ATCCErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
272  }
273 
274  name = "EERDT bunch crossing TCC errors";
275  meEEBunchCrossingTCCErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
276  for (int i = 0; i < 18; i++) {
278  }
279 
280  name = "EERDT L1A SRP errors";
281  meEEL1ASRPErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
282  for (int i = 0; i < 18; i++) {
283  meEEL1ASRPErrors_->setBinLabel(i+1, Numbers::sEE(i+1).c_str(), 1);
284  }
285 
286  name = "EERDT bunch crossing SRP errors";
287  meEEBunchCrossingSRPErrors_ = dqmStore_->book1D(name, name, 18, 1, 19);
288  for (int i = 0; i < 18; i++) {
290  }
291 
292  name = "EERDT FE synchronization errors by lumi";
293  meEESynchronizationErrorsByLumi_ = dqmStore_->book1D(name, name, 18, 1, 19);
295  for (int i = 0; i < 18; i++) {
297  }
298 
299  }
300 
301 }
302 
304 
305  if ( ! init_ ) return;
306 
307  if ( dqmStore_ ) {
308  dqmStore_->setCurrentFolder(prefixME_ + "/EERawDataTask");
309 
312 
315 
318 
320  meEECRCErrors_ = 0;
321 
324 
327 
330 
333 
335  meEEL1ADCCErrors_ = 0;
336 
339 
341  meEEL1AFEErrors_ = 0;
342 
345 
347  meEEL1ATCCErrors_ = 0;
348 
351 
353  meEEL1ASRPErrors_ = 0;
354 
357 
360 
361  }
362 
363  init_ = false;
364 
365 }
366 
368 }
369 
371 
372  edm::LogInfo("EERawDataTask") << "analyzed " << ievt_ << " events";
373 
374  if ( enableCleanup_ ) this->cleanup();
375 
376 }
377 
379 
380  if ( ! init_ ) this->setup();
381 
382  ievt_++;
383 
384  // fill bin 0 with number of events in the lumi
386 
387  int evt_runNumber = e.id().run();
388 
389  int GT_L1A=0, GT_OrbitNumber=0, GT_BunchCrossing=0, GT_TriggerType=0;
390 
391  edm::Handle<FEDRawDataCollection> allFedRawData;
392 
393  int gtFedDataSize = 0;
394 
395  int ECALDCC_L1A_MostFreqId = -1;
396  int ECALDCC_OrbitNumber_MostFreqId = -1;
397  int ECALDCC_BunchCrossing_MostFreqId = -1;
398  int ECALDCC_TriggerType_MostFreqId = -1;
399 
400  if ( e.getByLabel(FEDRawDataCollection_, allFedRawData) ) {
401 
402  // GT FED data
403  const FEDRawData& gtFedData = allFedRawData->FEDData(812);
404 
405  gtFedDataSize = gtFedData.size()/sizeof(uint64_t);
406 
407  if ( gtFedDataSize > 0 ) {
408 
409  FEDHeader header(gtFedData.data());
410 
411 #define H_L1_MASK 0xFFFFFF
412 #define H_ORBITCOUNTER_MASK 0xFFFFFFFF
413 #define H_BX_MASK 0xFFF
414 #define H_TTYPE_MASK 0xF
415 
416  GT_L1A = header.lvl1ID() & H_L1_MASK;
417  GT_OrbitNumber = e.orbitNumber() & H_ORBITCOUNTER_MASK;
418  GT_BunchCrossing = e.bunchCrossing() & H_BX_MASK;
419  GT_TriggerType = e.experimentType() & H_TTYPE_MASK;
420 
421  } else {
422 
423  // use the most frequent among the ECAL FEDs
424 
425  std::map<int,int> ECALDCC_L1A_FreqMap;
426  std::map<int,int> ECALDCC_OrbitNumber_FreqMap;
427  std::map<int,int> ECALDCC_BunchCrossing_FreqMap;
428  std::map<int,int> ECALDCC_TriggerType_FreqMap;
429 
430  int ECALDCC_L1A_MostFreqCounts = 0;
431  int ECALDCC_OrbitNumber_MostFreqCounts = 0;
432  int ECALDCC_BunchCrossing_MostFreqCounts = 0;
433  int ECALDCC_TriggerType_MostFreqCounts = 0;
434 
436 
437  if ( e.getByLabel(EcalRawDataCollection_, dcchs) ) {
438 
439  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
440 
441  if ( Numbers::subDet( *dcchItr ) != EcalEndcap ) continue;
442 
443  int ECALDCC_L1A = dcchItr->getLV1();
444  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
445  int ECALDCC_BunchCrossing = dcchItr->getBX();
446  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
447 
448  ++ECALDCC_L1A_FreqMap[ECALDCC_L1A];
449  ++ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
450  ++ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
451  ++ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
452 
453  if ( ECALDCC_L1A_FreqMap[ECALDCC_L1A] > ECALDCC_L1A_MostFreqCounts ) {
454  ECALDCC_L1A_MostFreqCounts = ECALDCC_L1A_FreqMap[ECALDCC_L1A];
455  ECALDCC_L1A_MostFreqId = ECALDCC_L1A;
456  }
457 
458  if ( ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber] > ECALDCC_OrbitNumber_MostFreqCounts ) {
459  ECALDCC_OrbitNumber_MostFreqCounts = ECALDCC_OrbitNumber_FreqMap[ECALDCC_OrbitNumber];
460  ECALDCC_OrbitNumber_MostFreqId = ECALDCC_OrbitNumber;
461  }
462 
463  if ( ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing] > ECALDCC_BunchCrossing_MostFreqCounts ) {
464  ECALDCC_BunchCrossing_MostFreqCounts = ECALDCC_BunchCrossing_FreqMap[ECALDCC_BunchCrossing];
465  ECALDCC_BunchCrossing_MostFreqId = ECALDCC_BunchCrossing;
466  }
467 
468  if ( ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType] > ECALDCC_TriggerType_MostFreqCounts ) {
469  ECALDCC_TriggerType_MostFreqCounts = ECALDCC_TriggerType_FreqMap[ECALDCC_TriggerType];
470  ECALDCC_TriggerType_MostFreqId = ECALDCC_TriggerType;
471  }
472 
473  }
474 
475  } else {
476  edm::LogWarning("EERawDataTask") << EcalRawDataCollection_ << " not available";
477  }
478 
479  }
480 
481  // ECAL endcap FEDs
482  int EEFirstFED[2];
483  EEFirstFED[0] = 601; // EE-
484  EEFirstFED[1] = 646; // EE+
485  for(int zside=0; zside<2; zside++) {
486 
487  int firstFedOnSide=EEFirstFED[zside];
488 
489  for(int i=0; i<9; i++) {
490 
491  const FEDRawData& fedData = allFedRawData->FEDData(firstFedOnSide+i);
492 
493  int length = fedData.size()/sizeof(uint64_t);
494 
495  if ( length > 0 ) {
496 
497  uint64_t * pData = (uint64_t *)(fedData.data());
498  uint64_t * fedTrailer = pData + (length - 1);
499  bool crcError = (*fedTrailer >> 2 ) & 0x1;
500 
501  if (crcError) meEECRCErrors_->Fill( i+1 );
502 
503  }
504 
505  }
506 
507  }
508 
509  } else {
510  edm::LogWarning("EERawDataTask") << FEDRawDataCollection_ << " not available";
511  }
512 
514 
515  if ( e.getByLabel(EcalRawDataCollection_, dcchs) ) {
516 
517  for ( EcalRawDataCollection::const_iterator dcchItr = dcchs->begin(); dcchItr != dcchs->end(); ++dcchItr ) {
518 
519  if ( Numbers::subDet( *dcchItr ) != EcalEndcap ) continue;
520 
521  int ism = Numbers::iSM( *dcchItr, EcalEndcap );
522  float xism = ism+0.5;
523 
524  int ECALDCC_runNumber = dcchItr->getRunNumber();
525 
526  int ECALDCC_L1A = dcchItr->getLV1();
527  int ECALDCC_OrbitNumber = dcchItr->getOrbit();
528  int ECALDCC_BunchCrossing = dcchItr->getBX();
529  int ECALDCC_TriggerType = dcchItr->getBasicTriggerType();
530 
531  if ( evt_runNumber != ECALDCC_runNumber ) meEERunNumberErrors_->Fill( xism );
532 
533  if ( gtFedDataSize > 0 ) {
534 
535  if ( GT_L1A != ECALDCC_L1A ) meEEL1ADCCErrors_->Fill( xism );
536 
537  if ( GT_BunchCrossing != ECALDCC_BunchCrossing ) meEEBunchCrossingDCCErrors_->Fill( xism );
538 
539  if ( GT_TriggerType != ECALDCC_TriggerType ) meEETriggerTypeErrors_->Fill ( xism );
540 
541  } else {
542 
543  if ( ECALDCC_L1A_MostFreqId != ECALDCC_L1A ) meEEL1ADCCErrors_->Fill( xism );
544 
545  if ( ECALDCC_BunchCrossing_MostFreqId != ECALDCC_BunchCrossing ) meEEBunchCrossingDCCErrors_->Fill( xism );
546 
547  if ( ECALDCC_TriggerType_MostFreqId != ECALDCC_TriggerType ) meEETriggerTypeErrors_->Fill ( xism );
548 
549  }
550 
551  if ( gtFedDataSize > 0 ) {
552 
553  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
554 
555  } else {
556 
557  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
558 
559  }
560 
561  // DCC vs. FE,TCC, SRP syncronization
562  const std::vector<short> feBxs = dcchItr->getFEBxs();
563  const std::vector<short> tccBx = dcchItr->getTCCBx();
564  const short srpBx = dcchItr->getSRPBx();
565  const std::vector<short> status = dcchItr->getFEStatus();
566 
567  std::vector<int> BxSynchStatus;
568  BxSynchStatus.reserve((int)feBxs.size());
569 
570  for(int fe=0; fe<(int)feBxs.size(); fe++) {
571  // do not consider desynch errors if the DCC detected them
572  if( ( status[fe] == 10 || status[fe] == 11 )) continue;
573  if(feBxs[fe] != ECALDCC_BunchCrossing && feBxs[fe] != -1 && ECALDCC_BunchCrossing != -1) {
574  meEEBunchCrossingFEErrors_->Fill( xism, 1/(float)feBxs.size());
575  BxSynchStatus[fe] = 0;
576  } else BxSynchStatus[fe] = 1;
577  }
578 
579  // vector of TCC channels has 4 elements for both EB and EE.
580  // EB uses [0], EE uses [0-3].
581  if(tccBx.size() == MAX_TCC_SIZE) {
582  for(int tcc=0; tcc<MAX_TCC_SIZE; tcc++) {
583  if(tccBx[tcc] != ECALDCC_BunchCrossing && tccBx[tcc] != -1 && ECALDCC_BunchCrossing != -1) meEEBunchCrossingTCCErrors_->Fill( xism, 1/(float)tccBx.size());
584  }
585  }
586 
587  if(srpBx != ECALDCC_BunchCrossing && srpBx != -1 && ECALDCC_BunchCrossing != -1) meEEBunchCrossingSRPErrors_->Fill( xism );
588 
589  const std::vector<short> feLv1 = dcchItr->getFELv1();
590  const std::vector<short> tccLv1 = dcchItr->getTCCLv1();
591  const short srpLv1 = dcchItr->getSRPLv1();
592 
593  // Lv1 in TCC,SRP,FE are limited to 12 bits(LSB), while in the DCC Lv1 has 24 bits
594  int ECALDCC_L1A_12bit = ECALDCC_L1A & 0xfff;
595  int feLv1Offset = ( e.isRealData() ) ? 1 : 0; // in MC FE Lv1A counter starts from 1, in data from 0
596 
597  for(int fe=0; fe<(int)feLv1.size(); fe++) {
598  // do not consider desynch errors if the DCC detected them
599  if( ( status[fe] == 9 || status[fe] == 11 )) continue;
600  if(feLv1[fe]+feLv1Offset != ECALDCC_L1A_12bit && feLv1[fe] != -1 && ECALDCC_L1A_12bit - 1 != -1) {
601  meEEL1AFEErrors_->Fill( xism, 1/(float)feLv1.size());
602  meEESynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
603  } else if( BxSynchStatus[fe]==0 ) meEESynchronizationErrorsByLumi_->Fill( xism, 1/(float)feLv1.size() );
604  }
605 
606  // vector of TCC channels has 4 elements for both EB and EE.
607  // EB uses [0], EE uses [0-3].
608  if(tccLv1.size() == MAX_TCC_SIZE) {
609  for(int tcc=0; tcc<MAX_TCC_SIZE; tcc++) {
610  if(tccLv1[tcc] != ECALDCC_L1A_12bit && tccLv1[tcc] != -1 && ECALDCC_L1A_12bit - 1 != -1) meEEL1ATCCErrors_->Fill( xism, 1/(float)tccLv1.size());
611  }
612  }
613 
614  if(srpLv1 != ECALDCC_L1A_12bit && srpLv1 != -1 && ECALDCC_L1A_12bit - 1 != -1) meEEL1ASRPErrors_->Fill( xism );
615 
616  if ( gtFedDataSize > 0 ) {
617 
618  if ( GT_OrbitNumber != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
619 
620  } else {
621 
622  if ( ECALDCC_OrbitNumber_MostFreqId != ECALDCC_OrbitNumber ) meEEOrbitNumberErrors_->Fill ( xism );
623 
624  }
625 
626  float evtType = dcchItr->getRunType();
627 
628  if ( evtType < 0 || evtType > 22 ) evtType = -1;
629 
630  if ( ECALDCC_BunchCrossing < calibrationBX_ ) meEEEventTypePreCalibrationBX_->Fill( evtType+0.5, 1./18. );
631  if ( ECALDCC_BunchCrossing == calibrationBX_ ) meEEEventTypeCalibrationBX_->Fill( evtType+0.5, 1./18. );
632  if ( ECALDCC_BunchCrossing > calibrationBX_ ) meEEEventTypePostCalibrationBX_->Fill ( evtType+0.5, 1./18. );
633 
634  if ( ECALDCC_BunchCrossing != calibrationBX_ ) {
635  if ( evtType != EcalDCCHeaderBlock::COSMIC &&
636  evtType != EcalDCCHeaderBlock::MTCC &&
641  evtType != -1 ) meEECalibrationEventErrors_->Fill( xism );
642  } else {
643  if ( evtType == EcalDCCHeaderBlock::COSMIC ||
644  evtType == EcalDCCHeaderBlock::MTCC ||
649  }
650 
651  }
652 
653  } else {
654  edm::LogWarning("EERawDataTask") << EcalRawDataCollection_ << " not available";
655  }
656 
657 }
658 
RunNumber_t run() const
Definition: EventID.h:42
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
int i
Definition: DBlmapReader.cc:9
DQMStore * dqmStore_
Definition: EERawDataTask.h:66
void endRun(const edm::Run &r, const edm::EventSetup &c)
EndRun.
void beginRun(const edm::Run &r, const edm::EventSetup &c)
BeginRun.
void setup(void)
Setup.
MonitorElement * meEECalibrationEventErrors_
Definition: EERawDataTask.h:84
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:514
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2311
Some &quot;id&quot; conversions.
MonitorElement * meEETriggerTypeErrors_
Definition: EERawDataTask.h:83
static std::string sEE(const int ism)
Definition: Numbers.cc:205
std::vector< T >::const_iterator const_iterator
int bunchCrossing() const
Definition: EventBase.h:62
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)
void analyze(const edm::Event &e, const edm::EventSetup &c)
Analyze.
void beginJob(void)
BeginJob.
MonitorElement * meEEL1ATCCErrors_
Definition: EERawDataTask.h:89
bool isRealData() const
Definition: EventBase.h:60
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
void Fill(long long x)
MonitorElement * meEECRCErrors_
Definition: EERawDataTask.h:77
static int iSM(const int ism, const EcalSubdetector subdet)
Definition: Numbers.cc:222
EERawDataTask(const edm::ParameterSet &ps)
Constructor.
void removeElement(const std::string &name)
Definition: DQMStore.cc:2353
edm::InputTag EcalRawDataCollection_
Definition: EERawDataTask.h:75
MonitorElement * meEEEventTypePreCalibrationBX_
Definition: EERawDataTask.h:78
#define H_ORBITCOUNTER_MASK
MonitorElement * meEEOrbitNumberErrors_
Definition: EERawDataTask.h:82
int orbitNumber() const
Definition: EventBase.h:63
MonitorElement * meEEL1AFEErrors_
Definition: EERawDataTask.h:87
MonitorElement * meEEL1ASRPErrors_
Definition: EERawDataTask.h:91
#define H_L1_MASK
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
#define H_BX_MASK
void endJob(void)
EndJob.
MonitorElement * meEEEventTypePostCalibrationBX_
Definition: EERawDataTask.h:80
MonitorElement * meEEBunchCrossingSRPErrors_
Definition: EERawDataTask.h:92
float calibrationBX_
Definition: EERawDataTask.h:98
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:45
unsigned long long uint64_t
Definition: Time.h:15
MonitorElement * meEEBunchCrossingTCCErrors_
Definition: EERawDataTask.h:90
virtual ~EERawDataTask()
Destructor.
MonitorElement * meEEL1ADCCErrors_
Definition: EERawDataTask.h:85
void cleanup(void)
Cleanup.
edm::EventID id() const
Definition: EventBase.h:56
MonitorElement * meEESynchronizationErrorsByLumi_
Definition: EERawDataTask.h:94
MonitorElement * meEEEventTypeCalibrationBX_
Definition: EERawDataTask.h:79
edm::InputTag FEDRawDataCollection_
Definition: EERawDataTask.h:74
edm::EventAuxiliary::ExperimentType experimentType() const
Definition: EventBase.h:61
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:29
void endLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
EndLuminosityBlock.
#define MAX_TCC_SIZE
static EcalSubdetector subDet(const EBDetId &id)
Definition: Numbers.cc:136
void reset(void)
Reset.
int lvl1ID()
Level-1 event number generated by the TTC system.
Definition: FEDHeader.cc:22
void setLumiFlag(void)
this ME is meant to be stored for each luminosity section
tuple status
Definition: ntuplemaker.py:245
MonitorElement * meEERunNumberErrors_
Definition: EERawDataTask.h:81
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void Reset(void)
reset ME (ie. contents, errors, etc)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
void beginLuminosityBlock(const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup)
BeginLuminosityBlock.
Definition: Run.h:32
MonitorElement * meEEBunchCrossingFEErrors_
Definition: EERawDataTask.h:88
#define H_TTYPE_MASK
MonitorElement * meEEBunchCrossingDCCErrors_
Definition: EERawDataTask.h:86
std::string prefixME_
Definition: EERawDataTask.h:68