CMS 3D CMS Logo

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