CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1TScalersSCAL.cc
Go to the documentation of this file.
1 // Class: L1TScalersSCAL
2 // user include files
3 
4 #include <sstream>
5 #include <vector>
6 
9 
12 
19 
23 
24 const double SECS_PER_LUMI = 23.31040958083832;
25 
26 using namespace edm;
27 using namespace std;
28 
30  : scalersSource_(ps.getParameter<edm::InputTag>("scalersResults")),
31  verbose_(ps.getUntrackedParameter<bool>("verbose", false)),
32  denomIsTech_(ps.getUntrackedParameter<bool>("denomIsTech", true)),
33  denomBit_(ps.getUntrackedParameter<unsigned int>("denomBit", 40)),
34  muonBit_(ps.getUntrackedParameter<unsigned int>("muonBit", 55)),
35  egammaBit_(ps.getUntrackedParameter<unsigned int>("egammaBit", 46)),
36  jetBit_(ps.getUntrackedParameter<unsigned int>("jetBit", 15)) {
37  LogDebug("Status") << "constructor";
38 
39  for (int i = 0; i < Level1TriggerScalers::nLevel1Triggers; i++) {
40  bufferAlgoRates_.push_back(0);
41  algorithmRates_.push_back(0);
42  integral_algo_.push_back(0.);
43  }
44  for (int i = 0; i < Level1TriggerScalers::nLevel1TestTriggers; i++) {
45  bufferTechRates_.push_back(0);
46  technicalRates_.push_back(0);
47  integral_tech_.push_back(0.);
48  }
49 
50  buffertime_ = 0;
51  reftime_ = 0;
52  nev_ = 0;
54  bufferLumi_ = 0;
55 }
56 
58 
60  edm::EventSetup const&) {
61  int maxNbins = 2001;
62  iBooker.setCurrentFolder("L1T/L1TScalersSCAL/Level1TriggerScalers");
63  orbitNum = iBooker.book1D("Orbit_Number", "Orbit_Number", maxNbins, -0.5,
64  double(maxNbins) - 0.5);
65  trigNum =
66  iBooker.book1D("Number_of_Triggers", "Number_of_Triggers", 1000, 0, 4E4);
67  trigNum->setAxisTitle("Time [sec]", 1);
68  eventNum = iBooker.book1D("Number_of_Events", "Number_of_Events", maxNbins,
69  -0.5, double(maxNbins) - 0.5);
70 
71  physTrig = iBooker.book1D("Physics_Triggers", "Physics_Triggers", maxNbins,
72  -0.5, double(maxNbins) - 0.5);
73  physTrig->setAxisTitle("Lumi Section", 1);
74 
75  randTrig = iBooker.book1D("Random_Triggers", "Random_Triggers", maxNbins,
76  -0.5, double(maxNbins) - 0.5);
77  randTrig->setAxisTitle("Lumi Section", 1);
78  numberResets = iBooker.book1D("Number_Resets", "Number_Resets", maxNbins,
79  -0.5, double(maxNbins) - 0.5);
80  deadTime = iBooker.book1D("DeadTime", "DeadTime", maxNbins, -0.5,
81  double(maxNbins) - 0.5);
82  lostFinalTriggers = iBooker.book1D("Lost_Final_Trigger", "Lost_Final_Trigger",
83  maxNbins, -0.5, double(maxNbins) - 0.5);
84 
85  iBooker.setCurrentFolder("L1T/L1TScalersSCAL/Level1TriggerRates");
86  physRate = iBooker.book1D("Physics_Trigger_Rate", "Physics_Trigger_Rate",
87  maxNbins, -0.5, double(maxNbins) - 0.5);
88  randRate = iBooker.book1D("Random_Trigger_Rate", "Random_Trigger_Rate",
89  maxNbins, -0.5, double(maxNbins) - 0.5);
90  deadTimePercent = iBooker.book1D("Deadtime_Percent", "Deadtime_Percent",
91  maxNbins, -0.5, double(maxNbins) - 0.5);
92  lostPhysRate =
93  iBooker.book1D("Lost_Physics_Trigger_Rate", "Lost_Physics_Trigger_Rate",
94  maxNbins, -0.5, double(maxNbins) - 0.5);
96  iBooker.book1D("Lost_Physics_Trigger_Rate_Beam_Active",
97  "Lost_Physics_Trigger_Rate_Beam_Active", maxNbins, -0.5,
98  double(maxNbins) - 0.5);
99  instTrigRate = iBooker.book1D("instTrigRate", "instTrigRate", 1000, 0, 4E4);
100  instTrigRate->setAxisTitle("Time [sec]", 1);
101  instEventRate =
102  iBooker.book1D("instEventRate", "instEventRate", 1000, 0, 4E4);
103  instEventRate->setAxisTitle("Time [sec]", 1);
104 
105  char hname[40]; // histo name
106  char mename[40]; // ME name
107 
108  iBooker.setCurrentFolder(
109  "L1T/L1TScalersSCAL/Level1TriggerRates/AlgorithmRates");
110  for (int i = 0; i < Level1TriggerScalers::nLevel1Triggers; i++) {
111  sprintf(hname, "Rate_AlgoBit_%03d", i);
112  sprintf(mename, "Rate_AlgoBit _%03d", i);
113  algoRate[i] =
114  iBooker.book1D(hname, mename, maxNbins, -0.5, double(maxNbins) - 0.5);
115  algoRate[i]->setAxisTitle("Lumi Section", 1);
116  }
117 
118  iBooker.setCurrentFolder(
119  "L1T/L1TScalersSCAL/Level1TriggerRates/AlgorithmRates/Integrated");
120  for (int i = 0; i < Level1TriggerScalers::nLevel1Triggers; i++) {
121  sprintf(hname, "Integral_AlgoBit_%03d", i);
122  sprintf(mename, "Integral_AlgoBit _%03d", i);
123  integralAlgo[i] =
124  iBooker.book1D(hname, mename, maxNbins, -0.5, double(maxNbins) - 0.5);
125  integralAlgo[i]->setAxisTitle("Lumi Section", 1);
126  }
127 
128  iBooker.setCurrentFolder(
129  "L1T/L1TScalersSCAL/Level1TriggerRates/TechnicalRates");
130  for (int i = 0; i < Level1TriggerScalers::nLevel1TestTriggers; i++) {
131  sprintf(hname, "Rate_TechBit_%03d", i);
132  sprintf(mename, "Rate_TechBit _%03d", i);
133  techRate[i] =
134  iBooker.book1D(hname, mename, maxNbins, -0.5, double(maxNbins) - 0.5);
135  techRate[i]->setAxisTitle("Lumi Section", 1);
136  }
137 
138  iBooker.setCurrentFolder(
139  "L1T/L1TScalersSCAL/Level1TriggerRates/TechnicalRates/Integrated");
140  for (int i = 0; i < Level1TriggerScalers::nLevel1TestTriggers; i++) {
141  sprintf(hname, "Integral_TechBit_%03d", i);
142  sprintf(mename, "Integral_TechBit _%03d", i);
143  integralTech[i] =
144  iBooker.book1D(hname, mename, maxNbins, -0.5, double(maxNbins) - 0.5);
145  integralTech[i]->setAxisTitle("Lumi Section", 1);
146  }
147  integralTech_42_OR_43 = iBooker.book1D(
148  "Integral_TechBit_042_OR_043", "Integral_TechBit _042_OR_043", maxNbins,
149  -0.5, double(maxNbins) - 0.5);
150  integralTech_42_OR_43->setAxisTitle("Lumi Section", 1);
151 
152  iBooker.setCurrentFolder("L1T/L1TScalersSCAL/Level1TriggerRates/Ratios");
153  std::stringstream smu, seg, sjet, sdenom;
154  // denominator string
155  if (denomIsTech_)
156  sdenom << "_TechBit_";
157  else
158  sdenom << "_AlgoBit_";
159  sdenom << denomBit_;
160  // Muon ratio
161  smu << muonBit_;
162  rateRatio_mu =
163  iBooker.book1D("Rate_Ratio_mu_PhysBit_" + smu.str() + sdenom.str(),
164  "Rate_Ratio_mu_PhysBit_" + smu.str() + sdenom.str(),
165  maxNbins, -0.5, double(maxNbins) - 0.5);
166  // rateRatio_mu->setAxisTitle("Lumi Section" , 1);
167  // Egamma ratio
168  seg << egammaBit_;
170  iBooker.book1D("Rate_Ratio_egamma_PhysBit_" + seg.str() + sdenom.str(),
171  "Rate_Ratio_egamma_PhysBit_" + seg.str() + sdenom.str(),
172  maxNbins, -0.5, double(maxNbins) - 0.5);
173  // rateRatio_egamma->setAxisTitle("Lumi Section" , 1);
174  // Jet ratio
175  sjet << jetBit_;
176  rateRatio_jet =
177  iBooker.book1D("Rate_Ratio_jet_PhysBit_" + sjet.str() + sdenom.str(),
178  "Rate_Ratio_jet_PhysBit_" + sjet.str() + sdenom.str(),
179  maxNbins, -0.5, double(maxNbins) - 0.5);
180  // rateRatio_jet->setAxisTitle("Lumi Section" , 1);
181 
182  // HF bit ratios
183  techRateRatio_8 = iBooker.book1D("Rate_Ratio_TechBit_8" + sdenom.str(),
184  "Rate_Ratio_TechBit_8" + sdenom.str(),
185  maxNbins, -0.5, double(maxNbins) - 0.5);
186  techRateRatio_9 = iBooker.book1D("Rate_Ratio_TechBit_9" + sdenom.str(),
187  "Rate_Ratio_TechBit_9" + sdenom.str(),
188  maxNbins, -0.5, double(maxNbins) - 0.5);
189  techRateRatio_10 = iBooker.book1D("Rate_Ratio_TechBit_10" + sdenom.str(),
190  "Rate_Ratio_TechBit_10" + sdenom.str(),
191  maxNbins, -0.5, double(maxNbins) - 0.5);
192  // Other tech bit ratios
194  "Rate_Ratio_TechBits_33_over_32", "Rate_Ratio_TechBits_33_over_32",
195  maxNbins, -0.5, double(maxNbins) - 0.5);
196  techRateRatio_36 = iBooker.book1D("Rate_Ratio_TechBit_36" + sdenom.str(),
197  "Rate_Ratio_TechBit_36" + sdenom.str(),
198  maxNbins, -0.5, double(maxNbins) - 0.5);
199  techRateRatio_37 = iBooker.book1D("Rate_Ratio_TechBit_37" + sdenom.str(),
200  "Rate_Ratio_TechBit_37" + sdenom.str(),
201  maxNbins, -0.5, double(maxNbins) - 0.5);
202  techRateRatio_38 = iBooker.book1D("Rate_Ratio_TechBit_38" + sdenom.str(),
203  "Rate_Ratio_TechBit_38" + sdenom.str(),
204  maxNbins, -0.5, double(maxNbins) - 0.5);
205  techRateRatio_39 = iBooker.book1D("Rate_Ratio_TechBit_39" + sdenom.str(),
206  "Rate_Ratio_TechBit_39" + sdenom.str(),
207  maxNbins, -0.5, double(maxNbins) - 0.5);
208  techRateRatio_40 = iBooker.book1D("Rate_Ratio_TechBit_40" + sdenom.str(),
209  "Rate_Ratio_TechBit_40" + sdenom.str(),
210  maxNbins, -0.5, double(maxNbins) - 0.5);
211  techRateRatio_41 = iBooker.book1D("Rate_Ratio_TechBit_41" + sdenom.str(),
212  "Rate_Ratio_TechBit_41" + sdenom.str(),
213  maxNbins, -0.5, double(maxNbins) - 0.5);
214  techRateRatio_42 = iBooker.book1D("Rate_Ratio_TechBit_42" + sdenom.str(),
215  "Rate_Ratio_TechBit_42" + sdenom.str(),
216  maxNbins, -0.5, double(maxNbins) - 0.5);
217  techRateRatio_43 = iBooker.book1D("Rate_Ratio_TechBit_43" + sdenom.str(),
218  "Rate_Ratio_TechBit_43" + sdenom.str(),
219  maxNbins, -0.5, double(maxNbins) - 0.5);
220 
221  iBooker.setCurrentFolder("L1T/L1TScalersSCAL/LumiScalers");
222  instLumi = iBooker.book1D("Instant_Lumi", "Instant_Lumi", maxNbins, -0.5,
223  double(maxNbins) - 0.5);
224  instLumiErr = iBooker.book1D("Instant_Lumi_Err", "Instant_Lumi_Err", maxNbins,
225  -0.5, double(maxNbins) - 0.5);
226  instLumiQlty = iBooker.book1D("Instant_Lumi_Qlty", "Instant_Lumi_Qlty",
227  maxNbins, -0.5, double(maxNbins) - 0.5);
228  instEtLumi = iBooker.book1D("Instant_Et_Lumi", "Instant_Et_Lumi", maxNbins,
229  -0.5, double(maxNbins) - 0.5);
230  instEtLumiErr = iBooker.book1D("Instant_Et_Lumi_Err", "Instant_Et_Lumi_Err",
231  maxNbins, -0.5, double(maxNbins) - 0.5);
233  iBooker.book1D("Instant_Et_Lumi_Qlty", "Instant_Et_Lumi_Qlty", maxNbins,
234  -0.5, double(maxNbins) - 0.5);
235  startOrbit = iBooker.book1D("Start_Orbit", "Start_Orbit", maxNbins, -0.5,
236  double(maxNbins) - 0.5);
237  numOrbits = iBooker.book1D("Num_Orbits", "Num_Orbits", maxNbins, -0.5,
238  double(maxNbins) - 0.5);
239 
240  iBooker.setCurrentFolder("L1T/L1TScalersSCAL/L1AcceptBunchCrossing");
241  for (int i = 0; i < 4; i++) {
242  sprintf(hname, "OrbitNumber_L1A_%d", i + 1);
243  sprintf(mename, "OrbitNumber_L1A_%d", i + 1);
244  orbitNumL1A[i] = iBooker.book1D(hname, mename, 200, 0, 10E8);
245  sprintf(hname, "Bunch_Crossing_L1A_%d", i + 1);
246  sprintf(mename, "Bunch_Crossing_L1A_%d", i + 1);
247  bunchCrossingL1A[i] = iBooker.book1D(hname, mename, 3564, -0.5, 3563.5);
248  }
249  orbitNumL1A[0]->setAxisTitle("Current BX", 1);
250  orbitNumL1A[1]->setAxisTitle("Previous BX", 1);
251  orbitNumL1A[2]->setAxisTitle("Second Previous BX", 1);
252  orbitNumL1A[3]->setAxisTitle("Third Previous BX", 1);
253 
254  bunchCrossingL1A[0]->setAxisTitle("Current BX", 1);
255  bunchCrossingL1A[1]->setAxisTitle("Previous BX", 1);
256  bunchCrossingL1A[2]->setAxisTitle("Second Previous BX", 1);
257  bunchCrossingL1A[3]->setAxisTitle("Third Previous BX", 1);
258 
259  for (int j = 0; j < 3; j++) {
260  sprintf(hname, "BX_Correlation_%d", j + 1);
261  sprintf(mename, "BX_Correlation_%d", j + 1);
263  iBooker.book2D(hname, mename, 99, -0.5, 3563.5, 99, -0.5, 3563.5);
264  bunchCrossingCorr[j]->setAxisTitle("Current Event", 1);
265  sprintf(hname, "Bunch_Crossing_Diff_%d", j + 1);
266  sprintf(mename, "Bunch_Crossing_Diff_%d", j + 1);
267  bunchCrossingDiff[j] = iBooker.book1D(hname, mename, 1000, 0, 1E6);
268  sprintf(hname, "Bunch_Crossing_Diff_small_%d", j + 1);
269  sprintf(mename, "Bunch_Crossing_Diff_small_%d", j + 1);
270  bunchCrossingDiff_small[j] = iBooker.book1D(hname, mename, 1000, 0, 1000);
271  }
272  bunchCrossingCorr[0]->setAxisTitle("Previous Event", 2);
273  bunchCrossingCorr[1]->setAxisTitle("Second Previous Event", 2);
274  bunchCrossingCorr[2]->setAxisTitle("Third Previous Event", 2);
275 
276  bunchCrossingDiff[0]->setAxisTitle("BX_Current - BX_Previous", 1);
277  bunchCrossingDiff[1]->setAxisTitle("BX_Current - BX_SecondPrevious", 1);
278  bunchCrossingDiff[2]->setAxisTitle("BX_Current - BX_ThirdPrevious", 1);
279 
280  bunchCrossingDiff_small[0]->setAxisTitle("BX_Current - BX_Previous", 1);
281  bunchCrossingDiff_small[1]->setAxisTitle("BX_Current - BX_SecondPrevious", 1);
282  bunchCrossingDiff_small[2]->setAxisTitle("BX_Current - BX_ThirdPrevious", 1);
283 }
284 
286  const edm::EventSetup& iSetup) {
287  nev_++;
288  // access SCAL info
290  bool a = iEvent.getByLabel(scalersSource_, triggerScalers);
292  bool c = iEvent.getByLabel(scalersSource_, lumiScalers);
294  bool d = iEvent.getByLabel(scalersSource_, bunchCrossings);
295 
296  double evtLumi = iEvent.luminosityBlock();
297  int run = iEvent.id().run();
298 
299  if (!(a && c && d)) {
300  LogInfo("Status") << "getByLabel failed with label " << scalersSource_;
301  } else { // we have the data
302  Level1TriggerScalersCollection::const_iterator it = triggerScalers->begin();
303  if (triggerScalers->size()) {
304  unsigned int lumisection = it->lumiSegmentNr();
305  struct timespec thetime = it->collectionTime();
306  long currenttime;
307  // cout << "lumisection = " << lumisection << endl;
308  if (nev_ == 1) reftime_ = thetime.tv_sec;
309  // cout << "reftime = " << reftime_ << endl;
310  if (lumisection) {
311  orbitNum->setBinContent(lumisection + 1, it->orbitNr());
312  eventNum->setBinContent(lumisection + 1, it->gtEvents());
313  physTrig->setBinContent(lumisection + 1, it->l1AsPhysics());
314  randTrig->setBinContent(lumisection + 1, it->l1AsRandom());
315  numberResets->setBinContent(lumisection + 1, it->gtResets());
316  deadTime->setBinContent(lumisection + 1, it->deadtime());
317  lostFinalTriggers->setBinContent(lumisection + 1,
318  it->triggersPhysicsLost());
319 
320  if (buffertime_ < thetime.tv_sec) {
321  buffertime_ = thetime.tv_sec;
322  currenttime = thetime.tv_sec - reftime_;
323  int timebin = (int)(currenttime / 30) + 1;
324  trigNum->setBinContent((int)timebin, it->gtTriggers());
325  instTrigRate->setBinContent((int)timebin, it->gtTriggersRate());
326  instEventRate->setBinContent((int)timebin, it->gtEventsRate());
327  }
328 
329  Level1TriggerRates trigRates(*it, run);
330  Level1TriggerRates* triggerRates = &trigRates;
331  if (triggerRates) {
332  algorithmRates_ = triggerRates->gtAlgoCountsRate();
333  technicalRates_ = triggerRates->gtTechCountsRate();
334  if (((bufferLumi_ != lumisection) && (bufferLumi_ < lumisection) &&
335  (evtLumi > 1 || evtLumi == lumisection + 1))) {
336  bufferLumi_ = lumisection;
339  for (unsigned int i = 0; i < algorithmRates_.size(); i++) {
341  algoRate[i]->setBinContent(lumisection + 1, algorithmRates_[i]);
342  integralAlgo[i]->setBinContent(lumisection + 1,
343  integral_algo_[i]);
344  }
345  }
348  for (unsigned int i = 0; i < technicalRates_.size(); i++) {
350  techRate[i]->setBinContent(lumisection + 1, technicalRates_[i]);
351  integralTech[i]->setBinContent(lumisection + 1,
352  integral_tech_[i]);
353  if ((i == 42 || i == 43))
356  }
357  // fill rate ratio plots
358  if (denomIsTech_) {
359  if (denomBit_ < technicalRates_.size()) {
360  if (technicalRates_[denomBit_]) {
361  if (muonBit_ < algorithmRates_.size())
363  lumisection + 1, algorithmRates_[muonBit_] /
364  technicalRates_[denomBit_]);
365  if (egammaBit_ < algorithmRates_.size())
367  lumisection + 1, algorithmRates_[egammaBit_] /
368  technicalRates_[denomBit_]);
369  if (jetBit_ < algorithmRates_.size())
371  lumisection + 1, algorithmRates_[jetBit_] /
372  technicalRates_[denomBit_]);
373 
375  lumisection + 1,
376  technicalRates_[8] / technicalRates_[denomBit_]);
378  lumisection + 1,
379  technicalRates_[9] / technicalRates_[denomBit_]);
381  lumisection + 1,
382  technicalRates_[10] / technicalRates_[denomBit_]);
383 
385  lumisection + 1,
386  technicalRates_[36] / technicalRates_[denomBit_]);
388  lumisection + 1,
389  technicalRates_[37] / technicalRates_[denomBit_]);
391  lumisection + 1,
392  technicalRates_[38] / technicalRates_[denomBit_]);
394  lumisection + 1,
395  technicalRates_[39] / technicalRates_[denomBit_]);
397  lumisection + 1,
398  technicalRates_[40] / technicalRates_[denomBit_]);
400  lumisection + 1,
401  technicalRates_[41] / technicalRates_[denomBit_]);
403  lumisection + 1,
404  technicalRates_[42] / technicalRates_[denomBit_]);
406  lumisection + 1,
407  technicalRates_[43] / technicalRates_[denomBit_]);
408  }
409  }
410  }
411  if (technicalRates_[32] != 0)
413  lumisection + 1, technicalRates_[33] / technicalRates_[32]);
414  integralTech_42_OR_43->setBinContent(lumisection + 1,
416  }
417 
418  physRate->setBinContent(lumisection + 1,
419  triggerRates->l1AsPhysicsRate());
420  randRate->setBinContent(lumisection + 1,
421  triggerRates->l1AsRandomRate());
423  lumisection + 1, triggerRates->triggersPhysicsLostRate());
425  lumisection + 1,
426  triggerRates->triggersPhysicsLostBeamActiveRate());
427  deadTimePercent->setBinContent(lumisection + 1,
428  triggerRates->deadtimePercent());
429  } // bufferLumi test
430  } // triggerRates
431  } // lumisection
432  } // triggerScalers->size()
433 
434  LumiScalersCollection::const_iterator it3 = lumiScalers->begin();
435  if (lumiScalers->size()) {
436  unsigned int lumisection = it3->sectionNumber();
437  if (lumisection) {
438  instLumi->setBinContent(lumisection + 1, it3->instantLumi());
439  instLumiErr->setBinContent(lumisection + 1, it3->instantLumiErr());
440  instLumiQlty->setBinContent(lumisection + 1, it3->instantLumiQlty());
441  instEtLumi->setBinContent(lumisection + 1, it3->instantETLumi());
442  instEtLumiErr->setBinContent(lumisection + 1, it3->instantETLumiErr());
443  instEtLumiQlty->setBinContent(lumisection + 1,
444  it3->instantETLumiQlty());
445  startOrbit->setBinContent(lumisection + 1, it3->startOrbit());
446  numOrbits->setBinContent(lumisection + 1, it3->numOrbits());
447  }
448  }
449 
450  int l1accept;
451  unsigned int bx_current = 0, orbitnumber_current = 0, bxdiff = 0;
452 
453  for (L1AcceptBunchCrossingCollection::const_iterator it4 =
454  bunchCrossings->begin();
455  it4 != bunchCrossings->end(); ++it4) {
456  l1accept = std::abs(it4->l1AcceptOffset());
457  if (l1accept == 0) {
458  orbitnumber_current = it4->orbitNumber();
459  orbitNumL1A[l1accept]->Fill(orbitnumber_current);
460 
461  bx_current = it4->bunchCrossing();
462  bunchCrossingL1A[l1accept]->Fill(bx_current);
463  } else if (l1accept == 1 || l1accept == 2 || l1accept == 3) {
464  orbitNumL1A[l1accept]->Fill(it4->orbitNumber());
465  bunchCrossingL1A[l1accept]->Fill(it4->bunchCrossing());
466  bunchCrossingCorr[l1accept - 1]->Fill(bx_current, it4->bunchCrossing());
467  bxdiff = 3564 * (orbitnumber_current - it4->orbitNumber()) +
468  bx_current - it4->bunchCrossing();
469  bunchCrossingDiff[l1accept - 1]->Fill(bxdiff);
470  bunchCrossingDiff_small[l1accept - 1]->Fill(bxdiff);
471  }
472  }
473  } // getByLabel succeeds for scalers
474 }
#define LogDebug(id)
RunNumber_t run() const
Definition: EventID.h:39
int i
Definition: DBlmapReader.cc:9
MonitorElement * instEventRate
void analyze(const edm::Event &e, const edm::EventSetup &c)
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * techRateRatio_43
MonitorElement * integralTech_42_OR_43
MonitorElement * integralAlgo[128]
unsigned int muonBit_
const double SECS_PER_LUMI
MonitorElement * randRate
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:63
unsigned int bufferLumi_
MonitorElement * trigNum
MonitorElement * bunchCrossingDiff_small[3]
std::vector< double > bufferTechRates_
std::vector< double > algorithmRates_
MonitorElement * deadTimePercent
double integral_tech_42_OR_43_
double l1AsRandomRate() const
double triggersPhysicsLostBeamActiveRate() const
MonitorElement * algoRate[128]
MonitorElement * instEtLumi
MonitorElement * lostFinalTriggers
MonitorElement * rateRatio_egamma
void Fill(long long x)
std::vector< double > gtAlgoCountsRate() const
MonitorElement * techRateRatio_38
MonitorElement * bunchCrossingCorr[3]
tuple d
Definition: ztail.py:151
edm::InputTag scalersSource_
int iEvent
Definition: GenABIO.cc:230
MonitorElement * integralTech[64]
MonitorElement * instTrigRate
MonitorElement * startOrbit
MonitorElement * instLumi
MonitorElement * techRateRatio_36
MonitorElement * techRateRatio_37
MonitorElement * eventNum
MonitorElement * techRateRatio_10
MonitorElement * techRateRatio_41
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * orbitNumL1A[4]
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int j
Definition: DBlmapReader.cc:9
MonitorElement * orbitNum
MonitorElement * instEtLumiQlty
MonitorElement * techRateRatio_9
MonitorElement * deadTime
MonitorElement * techRateRatio_42
std::vector< double > integral_algo_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:420
MonitorElement * techRateRatio_39
MonitorElement * lostPhysRate
MonitorElement * randTrig
std::vector< double > integral_tech_
virtual ~L1TScalersSCAL()
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
MonitorElement * instEtLumiErr
MonitorElement * instLumiErr
MonitorElement * lostPhysRateBeamActive
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
unsigned int denomBit_
MonitorElement * numOrbits
std::vector< double > technicalRates_
MonitorElement * bunchCrossingDiff[3]
MonitorElement * techRate[64]
MonitorElement * rateRatio_mu
MonitorElement * techRateRatio_8
MonitorElement * rateRatio_jet
MonitorElement * physRate
MonitorElement * techRateRatio_33_over_32
double deadtimePercent() const
edm::EventID id() const
Definition: EventBase.h:60
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
double a
Definition: hdecay.h:121
MonitorElement * techRateRatio_40
double triggersPhysicsLostRate() const
unsigned int jetBit_
MonitorElement * physTrig
volatile std::atomic< bool > shutdown_flag false
MonitorElement * bunchCrossingL1A[4]
std::vector< double > gtTechCountsRate() const
unsigned int egammaBit_
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * instLumiQlty
double l1AsPhysicsRate() const
Definition: Run.h:43
L1TScalersSCAL(const edm::ParameterSet &ps)
MonitorElement * numberResets
std::vector< double > bufferAlgoRates_