CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EETrendTask.cc
Go to the documentation of this file.
1 /*
2  * \file EETrendTask.cc
3  *
4  * \author Dongwook Jang, Soon Yung Jun
5  *
6 */
7 
8 #include <iostream>
9 #include <fstream>
10 #include <math.h>
11 
14 
17 
25 
31 
34 
35 #include "TProfile.h"
36 
38 
39  init_ = false;
40 
42 
43  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
44  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
45  mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false);
46  verbose_ = ps.getUntrackedParameter<bool>("verbose", false);
47 
48  // parameters...
49  EEDigiCollection_ = consumes<EEDigiCollection>(ps.getParameter<edm::InputTag>("EEDigiCollection"));
50  EcalPnDiodeDigiCollection_ = consumes<EcalPnDiodeDigiCollection>(ps.getParameter<edm::InputTag>("EcalPnDiodeDigiCollection"));
51  EcalTrigPrimDigiCollection_ = consumes<EcalTrigPrimDigiCollection>(ps.getParameter<edm::InputTag>("EcalTrigPrimDigiCollection"));
52  EcalRecHitCollection_ = consumes<EcalRecHitCollection>(ps.getParameter<edm::InputTag>("EcalRecHitCollection"));
53  BasicClusterCollection_ = consumes<reco::BasicClusterCollection>(ps.getParameter<edm::InputTag>("BasicClusterCollection"));
54  SuperClusterCollection_ = consumes<reco::SuperClusterCollection>(ps.getParameter<edm::InputTag>("SuperClusterCollection"));
55  EEDetIdCollection0_ = consumes<EEDetIdCollection>(ps.getParameter<edm::InputTag>("EEDetIdCollection0"));
56  EEDetIdCollection1_ = consumes<EEDetIdCollection>(ps.getParameter<edm::InputTag>("EEDetIdCollection1"));
57  EEDetIdCollection2_ = consumes<EEDetIdCollection>(ps.getParameter<edm::InputTag>("EEDetIdCollection2"));
58  EEDetIdCollection3_ = consumes<EEDetIdCollection>(ps.getParameter<edm::InputTag>("EEDetIdCollection3"));
59  EcalElectronicsIdCollection1_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection1"));
60  EcalElectronicsIdCollection2_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection2"));
61  EcalElectronicsIdCollection3_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection3"));
62  EcalElectronicsIdCollection4_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection4"));
63  EcalElectronicsIdCollection5_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection5"));
64  EcalElectronicsIdCollection6_ = consumes<EcalElectronicsIdCollection>(ps.getParameter<edm::InputTag>("EcalElectronicsIdCollection6"));
65  FEDRawDataCollection_ = consumes<FEDRawDataCollection>(ps.getParameter<edm::InputTag>("FEDRawDataCollection"));
66  EESRFlagCollection_ = consumes<EESrFlagCollection>(ps.getParameter<edm::InputTag>("EESRFlagCollection"));
67 
68  // histograms...
69  nEEDigiMinutely_ = 0;
81 
82  nEEDigiHourly_ = 0;
93  nEESRFlagHourly_ = 0;
94 }
95 
96 
98 }
99 
100 
102 
103  ievt_ = 0;
104 
105  if ( dqmStore_ ) {
106  dqmStore_->setCurrentFolder(prefixME_ + "/EETrendTask");
107  dqmStore_->rmdir(prefixME_ + "/EETrendTask");
108  }
109 
110 }
111 
112 
114 
115  Numbers::initGeometry(c, false);
116 
117  if ( ! mergeRuns_ ) this->reset();
118 
119  start_time_ = time(NULL);
120 
121 }
122 
123 
125 
126 }
127 
128 
129 void EETrendTask::reset(void) {
130 
143 
156 
157 }
158 
159 
161 
162  init_ = true;
163 
165 
166  if ( dqmStore_ ) {
167  dqmStore_->setCurrentFolder(prefixME_ + "/EETrendTask");
168 
169  // minutely
170 
171  name = "AverageNumberOfEEDigiVs5Minutes";
172  nEEDigiMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
173  nEEDigiMinutely_->setAxisTitle("Minutes", 1);
174  nEEDigiMinutely_->setAxisTitle("Average Number of EEDigi / 5 minutes", 2);
175 
176  name = "AverageNumberOfEcalPnDiodeDigiVs5Minutes";
177  nEcalPnDiodeDigiMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
179  nEcalPnDiodeDigiMinutely_->setAxisTitle("Average Number of EcalPnDiodeDigi / 5 minutes", 2);
180 
181  name = "AverageNumberOfEcalRecHitVs5Minutes";
182  nEcalRecHitMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
183  nEcalRecHitMinutely_->setAxisTitle("Minutes", 1);
184  nEcalRecHitMinutely_->setAxisTitle("Average Number of EcalRecHit / 5 minutes", 2);
185 
186  name = "AverageNumberOfEcalTrigPrimDigiVs5Minutes";
187  nEcalTrigPrimDigiMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
189  nEcalTrigPrimDigiMinutely_->setAxisTitle("Average Number of EcalTrigPrimDigi / 5 minutes", 2);
190 
191  name = "AverageNumberOfBasicClusterVs5Minutes";
192  nBasicClusterMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
193  nBasicClusterMinutely_->setAxisTitle("Minutes", 1);
194  nBasicClusterMinutely_->setAxisTitle("Average Number of BasicClusters / 5 minutes", 2);
195 
196  name = "AverageNumberOfBasicClusterSizeVs5Minutes";
197  nBasicClusterSizeMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
199  nBasicClusterSizeMinutely_->setAxisTitle("Average Size of BasicClusters / 5 minutes", 2);
200 
201  name = "AverageNumberOfSuperClusterVs5Minutes";
202  nSuperClusterMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
203  nSuperClusterMinutely_->setAxisTitle("Minutes", 1);
204  nSuperClusterMinutely_->setAxisTitle("Average Number of SuperClusters / 5 minutes", 2);
205 
206  name = "AverageNumberOfSuperClusterSizeVs5Minutes";
207  nSuperClusterSizeMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
209  nSuperClusterSizeMinutely_->setAxisTitle("Average Size of SuperClusters / 5 minutes", 2);
210 
211  name = "AverageNumberOfIntegrityErrorVs5Minutes";
212  nIntegrityErrorMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
213  nIntegrityErrorMinutely_->setAxisTitle("Minutes", 1);
214  nIntegrityErrorMinutely_->setAxisTitle("Average IntegrityErrors / 5 minutes", 2);
215 
216  name = "AverageNumberOfFEDEEminusRawDataVs5Minutes";
217  nFEDEEminusRawDataMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
219  nFEDEEminusRawDataMinutely_->setAxisTitle("Average Number of FEDRawData in EE- / 5 minutes", 2);
220 
221  name = "AverageNumberOfFEDEEplusRawDataVs5Minutes";
222  nFEDEEplusRawDataMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
224  nFEDEEplusRawDataMinutely_->setAxisTitle("Average Number of FEDRawData in EE+ / 5 minutes", 2);
225 
226  name = "AverageNumberOfEESRFlagVs5Minutes";
227  nEESRFlagMinutely_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
228  nEESRFlagMinutely_->setAxisTitle("Minutes", 1);
229  nEESRFlagMinutely_->setAxisTitle("Average Number of EESRFlag / 5 minutes", 2);
230 
231 
232  // hourly
233 
234  name = "AverageNumberOfEEDigiVs1Hour";
235  nEEDigiHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
236  nEEDigiHourly_->setAxisTitle("Hours", 1);
237  nEEDigiHourly_->setAxisTitle("Average Number of EEDigi / hour", 2);
238 
239  name = "AverageNumberOfEcalPnDiodeDigiVs1Hour";
240  nEcalPnDiodeDigiHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
242  nEcalPnDiodeDigiHourly_->setAxisTitle("Average Number of EcalPnDiodeDigi / hour", 2);
243 
244  name = "AverageNumberOfEcalRecHitVs1Hour";
245  nEcalRecHitHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
246  nEcalRecHitHourly_->setAxisTitle("Hours", 1);
247  nEcalRecHitHourly_->setAxisTitle("Average Number of EcalRecHit / hour", 2);
248 
249  name = "AverageNumberOfEcalTrigPrimDigiVs1Hour";
250  nEcalTrigPrimDigiHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
252  nEcalTrigPrimDigiHourly_->setAxisTitle("Average Number of EcalTrigPrimDigi / hour", 2);
253 
254  name = "AverageNumberOfBasicClusterVs1Hour";
255  nBasicClusterHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
256  nBasicClusterHourly_->setAxisTitle("Hours", 1);
257  nBasicClusterHourly_->setAxisTitle("Average Number of BasicClusters / hour", 2);
258 
259  name = "AverageNumberOfBasicClusterSizeVs1Hour";
260  nBasicClusterSizeHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
262  nBasicClusterSizeHourly_->setAxisTitle("Average Size of BasicClusters / hour", 2);
263 
264  name = "AverageNumberOfSuperClusterVs1Hour";
265  nSuperClusterHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
266  nSuperClusterHourly_->setAxisTitle("Hours", 1);
267  nSuperClusterHourly_->setAxisTitle("Average Number of SuperClusters / hour", 2);
268 
269  name = "AverageNumberOfSuperClusterSizeVs1Hour";
270  nSuperClusterSizeHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
272  nSuperClusterSizeHourly_->setAxisTitle("Average Size of SuperClusters / hour", 2);
273 
274  name = "AverageNumberOfIntegrityErrorVs1Hour";
275  nIntegrityErrorHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
277  nIntegrityErrorHourly_->setAxisTitle("Average IntegrityErrors / hour", 2);
278 
279  name = "AverageNumberOfFEDEEminusRawDataVs1Hour";
280  nFEDEEminusRawDataHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
282  nFEDEEminusRawDataHourly_->setAxisTitle("Average Number of FEDRawData in EE- / hour", 2);
283 
284  name = "AverageNumberOfFEDEEplusRawDataVs1Hour";
285  nFEDEEplusRawDataHourly_ = dqmStore_->bookProfile(name, name, 24, 0.0, 24.0, 100, 0.0, 1.0e6, "s");
287  nFEDEEplusRawDataHourly_->setAxisTitle("Average Number of FEDRawData in EE+ / hour", 2);
288 
289  name = "AverageNumberOfEESRFlagVs1Hour";
290  nEESRFlagHourly_ = dqmStore_->bookProfile(name, name, 12, 0.0, 60.0, 100, 0.0, 1.0e6, "s");
291  nEESRFlagHourly_->setAxisTitle("Hours", 1);
292  nEESRFlagHourly_->setAxisTitle("Average Number of EESRFlag / hour", 2);
293 
294  }
295 
296 }
297 
298 
300 
301  if ( ! init_ ) return;
302 
303  if ( dqmStore_ ) {
304  dqmStore_->setCurrentFolder(prefixME_ + "/EETrendTask");
305 
307  nEEDigiMinutely_ = 0;
329  nEESRFlagMinutely_ = 0;
330 
332  nEEDigiHourly_ = 0;
336  nEcalRecHitHourly_ = 0;
354  nEESRFlagHourly_ = 0;
355 
356  }
357 
358  init_ = false;
359 
360 }
361 
362 
364 
365  edm::LogInfo("EETrendTask") << "analyzed " << ievt_ << " events";
366 
367  if ( enableCleanup_ ) this->cleanup();
368 
369 }
370 
371 
373 
374  if ( ! init_ ) this->setup();
375 
376  ievt_++;
377 
378  // --------------------------------------------------
379  // Collect time information
380  // --------------------------------------------------
381 
382  updateTime();
383 
384  long int minuteBinDiff = -1;
385  long int minuteDiff = -1;
386  ecaldqm::calcBins(5,60,start_time_,last_time_,current_time_,minuteBinDiff,minuteDiff);
387 
388  long int hourBinDiff = -1;
389  long int hourDiff = -1;
390  ecaldqm::calcBins(1,3600,start_time_,last_time_,current_time_,hourBinDiff,hourDiff);
391 
392 
393  // --------------------------------------------------
394  // EEDigiCollection
395  // --------------------------------------------------
396  int ndc = 0;
398  if ( e.getByToken(EEDigiCollection_, digis) ) ndc = digis->size();
399  else edm::LogWarning("EETrendTask") << "EEDigiCollection not available";
400 
402  nEEDigiMinutely_->Fill(minuteDiff,ndc);
403 
405  nEEDigiHourly_->Fill(hourDiff,ndc);
406 
407 
408  // --------------------------------------------------
409  // EcalPnDiodeDigiCollection
410  // --------------------------------------------------
411  int npdc = 0;
413  if ( e.getByToken(EcalPnDiodeDigiCollection_, pns) ) npdc = pns->size();
414  else edm::LogWarning("EETrendTask") << "EcalPnDiodeDigiCollection not available";
415 
417  nEcalPnDiodeDigiMinutely_->Fill(minuteDiff,npdc);
418 
420  nEcalPnDiodeDigiHourly_->Fill(hourDiff,npdc);
421 
422 
423  // --------------------------------------------------
424  // EcalRecHitCollection
425  // --------------------------------------------------
426  int nrhc = 0;
428  if ( e.getByToken(EcalRecHitCollection_, hits) ) nrhc = hits->size();
429  else edm::LogWarning("EETrendTask") << "EcalRecHitCollection not available";
430 
432  nEcalRecHitMinutely_->Fill(minuteDiff,nrhc);
433 
435  nEcalRecHitHourly_->Fill(hourDiff,nrhc);
436 
437 
438  // --------------------------------------------------
439  // EcalTrigPrimDigiCollection
440  // --------------------------------------------------
441  int ntpdc = 0;
443  if ( e.getByToken(EcalTrigPrimDigiCollection_, tpdigis) ) ntpdc = tpdigis->size();
444  else edm::LogWarning("EETrendTask") << "EcalTrigPrimDigiCollection not available";
445 
447  nEcalTrigPrimDigiMinutely_->Fill(minuteDiff,ntpdc);
448 
450  nEcalTrigPrimDigiHourly_->Fill(hourDiff,ntpdc);
451 
452 
453  // --------------------------------------------------
454  // BasicClusters
455  // --------------------------------------------------
456  int nbcc = 0;
457  float nbcc_size = 0.0;
459  if ( e.getByToken(BasicClusterCollection_, pBasicClusters) ) {
460  nbcc = pBasicClusters->size();
461  for(reco::BasicClusterCollection::const_iterator it = pBasicClusters->begin();
462  it != pBasicClusters->end(); it++){
463  nbcc_size += it->size();
464  }
465  if(nbcc == 0) nbcc_size = 0;
466  else nbcc_size = nbcc_size / nbcc;
467  }
468  else edm::LogWarning("EETrendTask") << "BasicClusterCollection not available";
469 
471  nBasicClusterMinutely_->Fill(minuteDiff,nbcc);
472 
474  nBasicClusterHourly_->Fill(hourDiff,nbcc);
475 
477  nBasicClusterSizeMinutely_->Fill(minuteDiff,nbcc);
478 
480  nBasicClusterSizeHourly_->Fill(hourDiff,nbcc);
481 
482  // --------------------------------------------------
483  // SuperClusters
484  // --------------------------------------------------
485  int nscc = 0;
486  float nscc_size = 0.0;
488  if ( e.getByToken(SuperClusterCollection_, pSuperClusters) ) {
489  nscc = pSuperClusters->size();
490  for(reco::SuperClusterCollection::const_iterator it = pSuperClusters->begin();
491  it != pSuperClusters->end(); it++){
492  nscc_size += it->clustersSize();
493  }
494  if(nscc == 0) nscc_size = 0;
495  else nscc_size = nscc_size / nscc;
496  }
497  else edm::LogWarning("EETrendTask") << "SuperClusterCollection not available";
498 
500  nSuperClusterMinutely_->Fill(minuteDiff,nscc);
501 
503  nSuperClusterHourly_->Fill(hourDiff,nscc);
504 
506  nSuperClusterSizeMinutely_->Fill(minuteDiff,nscc);
507 
509  nSuperClusterSizeHourly_->Fill(hourDiff,nscc);
510 
511 
512  // --------------------------------------------------
513  // Integrity errors (sum of collections' sizes)
514  // --------------------------------------------------
515  // double errorSum = 0.0;
516 
517  // --------------------------------------------------
518  // EEDetIdCollection0
519  // --------------------------------------------------
520  int ndic0 = 0;
522  if ( e.getByToken(EEDetIdCollection0_, ids0) ) ndic0 = ids0->size();
523  else edm::LogWarning("EETrendTask") << "EEDetIdCollection0 not available";
524 
525 
526  // --------------------------------------------------
527  // EEDetIdCollection1
528  // --------------------------------------------------
529  int ndic1 = 0;
531  if ( e.getByToken(EEDetIdCollection1_, ids1) ) ndic1 = ids1->size();
532  else edm::LogWarning("EETrendTask") << "EEDetIdCollection1 not available";
533 
534 
535  // --------------------------------------------------
536  // EEDetIdCollection2
537  // --------------------------------------------------
538  int ndic2 = 0;
540  if ( e.getByToken(EEDetIdCollection2_, ids2) ) ndic2 = ids2->size();
541  else edm::LogWarning("EETrendTask") << "EEDetIdCollection2 not available";
542 
543 
544  // --------------------------------------------------
545  // EEDetIdCollection3
546  // --------------------------------------------------
547  int ndic3 = 0;
549  if ( e.getByToken(EEDetIdCollection3_, ids3) ) ndic3 = ids3->size();
550  else edm::LogWarning("EETrendTask") << "EEDetIdCollection3 not available";
551 
552 
553  // --------------------------------------------------
554  // EcalElectronicsIdCollection1
555  // --------------------------------------------------
556  int neic1 = 0;
558  if ( e.getByToken(EcalElectronicsIdCollection1_, eids1) ) neic1 = eids1->size();
559  else edm::LogWarning("EETrendTask") << "EcalElectronicsIdCollection1 not available";
560 
561 
562  // --------------------------------------------------
563  // EcalElectronicsIdCollection2
564  // --------------------------------------------------
565  int neic2 = 0;
567  if ( e.getByToken(EcalElectronicsIdCollection2_, eids2) ) neic2 = eids2->size();
568  else edm::LogWarning("EETrendTask") << "EcalElectronicsIdCollection2 not available";
569 
570 
571  // --------------------------------------------------
572  // EcalElectronicsIdCollection3
573  // --------------------------------------------------
574  int neic3 = 0;
576  if ( e.getByToken(EcalElectronicsIdCollection3_, eids3) ) neic3 = eids3->size();
577  else edm::LogWarning("EETrendTask") << "EcalElectronicsIdCollection3 not available";
578 
579 
580  // --------------------------------------------------
581  // EcalElectronicsIdCollection4
582  // --------------------------------------------------
583  int neic4 = 0;
585  if ( e.getByToken(EcalElectronicsIdCollection4_, eids4) ) neic4 = eids4->size();
586  else edm::LogWarning("EETrendTask") << "EcalElectronicsIdCollection4 not available";
587 
588 
589  // --------------------------------------------------
590  // EcalElectronicsIdCollection5
591  // --------------------------------------------------
592  int neic5 = 0;
594  if ( e.getByToken(EcalElectronicsIdCollection5_, eids5) ) neic5 = eids5->size();
595  else edm::LogWarning("EETrendTask") << "EcalElectronicsIdCollection5 not available";
596 
597 
598  // --------------------------------------------------
599  // EcalElectronicsIdCollection6
600  // --------------------------------------------------
601  int neic6 = 0;
603  if ( e.getByToken(EcalElectronicsIdCollection6_, eids6) ) neic6 = eids6->size();
604  else edm::LogWarning("EETrendTask") << "EcalElectronicsIdCollection6 not available";
605 
606 
607  // --------------------------------------------------
608  // Integrity errors (sum of collections' sizes)
609  // --------------------------------------------------
610  double errorSum = ndic0 + ndic1 + ndic2 + ndic3 +
611  neic1 + neic2 + neic3 + neic4 + neic5 + neic6;
612 
614  nIntegrityErrorMinutely_->Fill(minuteDiff,errorSum);
615 
617  nIntegrityErrorHourly_->Fill(hourDiff,errorSum);
618 
619 
620  // --------------------------------------------------
621  // FEDRawDataCollection
622  // --------------------------------------------------
623  int nfedEEminus = 0;
624  int nfedEEplus = 0;
625 
626  // Barrel FEDs : 610 - 645
627  // Endcap FEDs : 601-609 (EE-) and 646-654 (EE+)
628  int eem1 = 601;
629  int eem2 = 609;
630  int eep1 = 646;
631  int eep2 = 654;
632  int kByte = 1024;
633 
634  edm::Handle<FEDRawDataCollection> allFedRawData;
635  if ( e.getByToken(FEDRawDataCollection_, allFedRawData) ) {
636  for ( int iDcc = eem1; iDcc <= eep2; ++iDcc ) {
637  int sizeInKB = allFedRawData->FEDData(iDcc).size()/kByte;
638  if(iDcc >= eem1 && iDcc <= eem2) nfedEEminus += sizeInKB;
639  if(iDcc >= eep1 && iDcc <= eep2) nfedEEplus += sizeInKB;
640  }
641  }
642  else edm::LogWarning("EETrendTask") << "FEDRawDataCollection not available";
643 
645  nFEDEEminusRawDataMinutely_->Fill(minuteDiff,nfedEEminus);
646 
648  nFEDEEplusRawDataMinutely_->Fill(minuteDiff,nfedEEplus);
649 
651  nFEDEEminusRawDataHourly_->Fill(hourDiff,nfedEEminus);
652 
654  nFEDEEplusRawDataHourly_->Fill(hourDiff,nfedEEplus);
655 
656  // --------------------------------------------------
657  // EESRFlagCollection
658  // --------------------------------------------------
659  int nsfc = 0;
661  if ( e.getByToken(EESRFlagCollection_,eeSrFlags) ) nsfc = eeSrFlags->size();
662  else edm::LogWarning("EETrendTask") << "EESRFlagCollection not available";
663 
665  nEESRFlagMinutely_->Fill(minuteDiff,nsfc);
666 
668  nEESRFlagHourly_->Fill(hourDiff,nsfc);
669 
670 }
671 
672 
674 
677 
678 }
679 
MonitorElement * nSuperClusterMinutely_
Definition: EETrendTask.h:108
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
MonitorElement * nEEDigiMinutely_
Definition: EETrendTask.h:102
edm::EDGetTokenT< EEDetIdCollection > EEDetIdCollection3_
Definition: EETrendTask.h:91
edm::EDGetTokenT< reco::SuperClusterCollection > SuperClusterCollection_
Definition: EETrendTask.h:87
void rmdir(const std::string &fullpath)
Definition: DQMStore.cc:2730
void endJob(void)
Definition: EETrendTask.cc:363
MonitorElement * nBasicClusterMinutely_
Definition: EETrendTask.h:106
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection6_
Definition: EETrendTask.h:98
Some &quot;id&quot; conversions.
edm::EDGetTokenT< EEDetIdCollection > EEDetIdCollection0_
Definition: EETrendTask.h:88
bool verbose_
Definition: EETrendTask.h:80
#define NULL
Definition: scimark2.h:8
void analyze(const edm::Event &e, const edm::EventSetup &c)
Definition: EETrendTask.cc:372
edm::EDGetTokenT< EEDetIdCollection > EEDetIdCollection1_
Definition: EETrendTask.h:89
void beginRun(const edm::Run &r, const edm::EventSetup &c)
Definition: EETrendTask.cc:113
bool enableCleanup_
Definition: EETrendTask.h:76
MonitorElement * nFEDEEplusRawDataHourly_
Definition: EETrendTask.h:125
MonitorElement * nEcalRecHitMinutely_
Definition: EETrendTask.h:104
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection2_
Definition: EETrendTask.h:94
virtual ~EETrendTask()
Definition: EETrendTask.cc:97
edm::EDGetTokenT< EcalTrigPrimDigiCollection > EcalTrigPrimDigiCollection_
Definition: EETrendTask.h:85
void Fill(long long x)
edm::EDGetTokenT< EEDetIdCollection > EEDetIdCollection2_
Definition: EETrendTask.h:90
EETrendTask(const edm::ParameterSet &ps)
Definition: EETrendTask.cc:37
MonitorElement * nEEDigiHourly_
Definition: EETrendTask.h:115
MonitorElement * nEcalPnDiodeDigiMinutely_
Definition: EETrendTask.h:103
void updateTime(void)
Definition: EETrendTask.cc:673
MonitorElement * nEcalPnDiodeDigiHourly_
Definition: EETrendTask.h:116
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
MonitorElement * nEESRFlagHourly_
Definition: EETrendTask.h:126
MonitorElement * nBasicClusterSizeHourly_
Definition: EETrendTask.h:120
edm::EDGetTokenT< FEDRawDataCollection > FEDRawDataCollection_
Definition: EETrendTask.h:99
MonitorElement * nFEDEEminusRawDataMinutely_
Definition: EETrendTask.h:111
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1186
MonitorElement * nEcalRecHitHourly_
Definition: EETrendTask.h:117
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection4_
Definition: EETrendTask.h:96
MonitorElement * nFEDEEplusRawDataMinutely_
Definition: EETrendTask.h:112
DQMStore * dqmStore_
Definition: EETrendTask.h:72
MonitorElement * nFEDEEminusRawDataHourly_
Definition: EETrendTask.h:124
std::string prefixME_
Definition: EETrendTask.h:74
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection1_
Definition: EETrendTask.h:93
Ecal Monitor Utility functions.
void reset(void)
Definition: EETrendTask.cc:129
void cleanup(void)
Definition: EETrendTask.cc:299
static void initGeometry(const edm::EventSetup &setup, bool verbose=false)
Definition: Numbers.cc:47
MonitorElement * nSuperClusterHourly_
Definition: EETrendTask.h:121
edm::EDGetTokenT< EESrFlagCollection > EESRFlagCollection_
Definition: EETrendTask.h:100
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection3_
Definition: EETrendTask.h:95
void beginJob(void)
Definition: EETrendTask.cc:101
void setup(void)
Definition: EETrendTask.cc:160
MonitorElement * nBasicClusterHourly_
Definition: EETrendTask.h:119
edm::EDGetTokenT< EcalPnDiodeDigiCollection > EcalPnDiodeDigiCollection_
Definition: EETrendTask.h:83
edm::EDGetTokenT< EEDigiCollection > EEDigiCollection_
Definition: EETrendTask.h:82
MonitorElement * nEESRFlagMinutely_
Definition: EETrendTask.h:113
edm::EDGetTokenT< EcalElectronicsIdCollection > EcalElectronicsIdCollection5_
Definition: EETrendTask.h:97
MonitorElement * nSuperClusterSizeMinutely_
Definition: EETrendTask.h:109
MonitorElement * nSuperClusterSizeHourly_
Definition: EETrendTask.h:122
int current_time_
Definition: EETrendTask.h:131
TProfile * getTProfile(void) const
bool mergeRuns_
Definition: EETrendTask.h:78
MonitorElement * nIntegrityErrorHourly_
Definition: EETrendTask.h:123
edm::EDGetTokenT< EcalRecHitCollection > EcalRecHitCollection_
Definition: EETrendTask.h:84
void calcBins(int binWidth, int divisor, long int start_time, long int last_time, long int current_time, long int &binDiff, long int &diff)
MonitorElement * nEcalTrigPrimDigiMinutely_
Definition: EETrendTask.h:105
void shift2Right(TH1 *h, int bins)
MonitorElement * nEcalTrigPrimDigiHourly_
Definition: EETrendTask.h:118
MonitorElement * nIntegrityErrorMinutely_
Definition: EETrendTask.h:110
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 endRun(const edm::Run &r, const edm::EventSetup &c)
Definition: EETrendTask.cc:124
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
Definition: Run.h:41
MonitorElement * nBasicClusterSizeMinutely_
Definition: EETrendTask.h:107
edm::EDGetTokenT< reco::BasicClusterCollection > BasicClusterCollection_
Definition: EETrendTask.h:86