CMS 3D CMS Logo

SiStripPayloadInspectorHelper.h
Go to the documentation of this file.
1 #ifndef CONDCORE_SISTRIPPLUGINS_SISTRIPPAYLOADINSPECTORHELPER_H
2 #define CONDCORE_SISTRIPPLUGINS_SISTRIPPAYLOADINSPECTORHELPER_H
3 
4 #include <vector>
5 #include <numeric>
6 #include <string>
7 #include "TH1.h"
8 #include "TH2.h"
9 #include "TPaveText.h"
10 #include "TStyle.h"
19 
22 
23 namespace SiStripPI {
24 
25  //##### for plotting
26 
28 
29  class Entry {
30  public:
31  Entry() : entries(0), sum(0), sq_sum(0) {}
32 
33  double mean() { return sum / entries; }
34  double std_dev() {
35  double tmean = mean();
36  return sqrt((sq_sum - entries * tmean * tmean) / (entries - 1));
37  }
38  double mean_rms() { return std_dev() / sqrt(entries); }
39 
40  void add(double val) {
41  entries++;
42  sum += val;
43  sq_sum += val * val;
44  }
45 
46  void reset() {
47  entries = 0;
48  sum = 0;
49  sq_sum = 0;
50  }
51 
52  private:
53  long int entries;
54  double sum, sq_sum;
55  };
56 
57  // class Monitor1D
58 
59  class Monitor1D {
60  public:
61  Monitor1D(OpMode mode, const char* name, const char* title, int nbinsx, double xmin, double xmax)
62  : entry_(), mode_(mode), obj_(name, title, nbinsx, xmin, xmax) {}
63 
65 
67 
68  void Fill(int apv, int det, double vx) {
69  switch (mode_) {
70  case (OpMode::APV_BASED):
71  if (!((apv == prev_apv_ && det == prev_det_) || prev_apv_ == 0)) {
72  flush();
73  }
74  prev_apv_ = apv;
75  prev_det_ = det;
76  break;
77  case (OpMode::MODULE_BASED):
78  if (!(det == prev_det_ || prev_det_ == 0)) {
79  flush();
80  }
81  prev_det_ = det;
82  break;
83  case (OpMode::STRIP_BASED):
84  flush();
85  break;
86  }
87  entry_.add(vx);
88  }
89 
90  void flush() {
91  obj_.Fill(entry_.mean());
92  entry_.reset();
93  }
94 
95  TH1F& hist() {
96  flush();
97  return obj_;
98  }
99 
100  TH1F& getHist() { return obj_; }
101 
102  private:
103  int prev_apv_ = 0, prev_det_ = 0;
106  TH1F obj_;
107  };
108 
109  // class monitor 2D
110 
111  class Monitor2D {
112  public:
114  const char* name,
115  const char* title,
116  int nbinsx,
117  double xmin,
118  double xmax,
119  int nbinsy,
120  double ymin,
121  double ymax)
122  : entryx_(), entryy_(), mode_(mode), obj_(name, title, nbinsx, xmin, xmax, nbinsy, ymin, ymax) {}
123 
125 
127 
128  void Fill(int apv, int det, double vx, double vy) {
129  switch (mode_) {
130  case (OpMode::APV_BASED):
131  if (!((apv == prev_apv_ && det == prev_det_) || prev_apv_ == 0)) {
132  flush();
133  }
134  prev_apv_ = apv;
135  prev_det_ = det;
136  break;
137  case (OpMode::MODULE_BASED):
138  if (!(det == prev_det_ || prev_det_ == 0)) {
139  flush();
140  }
141  prev_det_ = det;
142  break;
143  case (OpMode::STRIP_BASED):
144  flush();
145  break;
146  }
147  entryx_.add(vx);
148  entryy_.add(vy);
149  }
150 
151  void flush() {
152  obj_.Fill(entryx_.mean(), entryy_.mean());
153  entryx_.reset();
154  entryy_.reset();
155  }
156 
157  TH2F& hist() {
158  flush();
159  return obj_;
160  }
161 
162  private:
163  int prev_apv_ = 0, prev_det_ = 0;
166  TH2F obj_;
167  };
168 
169  enum estimator { min, max, mean, rms };
170 
171  /*--------------------------------------------------------------------*/
173  /*--------------------------------------------------------------------*/
174  {
175  switch (e) {
176  case SiStripPI::min:
177  return "minimum";
178  case SiStripPI::max:
179  return "maximum";
180  case SiStripPI::mean:
181  return "mean";
182  case SiStripPI::rms:
183  return "RMS";
184  default:
185  return "should never be here";
186  }
187  }
188 
189  /*--------------------------------------------------------------------*/
191  /*-------------------------------------------------------------------*/
192  {
193  switch (sub) {
195  return "TIB";
197  return "TOB";
199  return "TID";
201  return "TEC";
202  default:
203  return "should never be here";
204  }
205  }
206 
208  TIB1r = 1010,
209  TIB1s = 1011,
210  TIB2r = 1020,
211  TIB2s = 1021,
212  TIB3r = 1030,
213  TIB4r = 1040,
214  TOB1r = 2010,
215  TOB1s = 2011,
216  TOB2r = 2020,
217  TOB2s = 2021,
218  TOB3r = 2030,
219  TOB4r = 2040,
220  TOB5r = 2050,
221  TOB6r = 2060,
222  TEC1r = 3010,
223  TEC1s = 3011,
224  TEC2r = 3020,
225  TEC2s = 3021,
226  TEC3r = 3030,
227  TEC3s = 3031,
228  TEC4r = 3040,
229  TEC4s = 3041,
230  TEC5r = 3050,
231  TEC5s = 3051,
232  TEC6r = 3060,
233  TEC6s = 3061,
234  TEC7r = 3070,
235  TEC7s = 3071,
236  TEC8r = 3080,
237  TEC8s = 3081,
238  TEC9r = 3090,
239  TEC9s = 3091,
240  TID1r = 4010,
241  TID1s = 4011,
242  TID2r = 4020,
243  TID2s = 4021,
244  TID3r = 4030,
245  TID3s = 4031,
247  };
248 
249  /*--------------------------------------------------------------------*/
250  std::pair<int, const char*> regionType(int index)
251  /*--------------------------------------------------------------------*/
252  {
253  auto region = static_cast<std::underlying_type_t<SiStripPI::TrackerRegion>>(index);
254 
255  switch (region) {
256  case SiStripPI::TIB1r:
257  return std::make_pair(1, "TIB L1 r-#varphi");
258  case SiStripPI::TIB1s:
259  return std::make_pair(2, "TIB L1 stereo");
260  case SiStripPI::TIB2r:
261  return std::make_pair(3, "TIB L2 r-#varphi");
262  case SiStripPI::TIB2s:
263  return std::make_pair(4, "TIB L2 stereo");
264  case SiStripPI::TIB3r:
265  return std::make_pair(5, "TIB L3");
266  case SiStripPI::TIB4r:
267  return std::make_pair(6, "TIB L4");
268  case SiStripPI::TOB1r:
269  return std::make_pair(7, "TOB L1 r-#varphi");
270  case SiStripPI::TOB1s:
271  return std::make_pair(8, "TOB L1 stereo");
272  case SiStripPI::TOB2r:
273  return std::make_pair(9, "TOB L2 r-#varphi");
274  case SiStripPI::TOB2s:
275  return std::make_pair(10, "TOB L2 stereo");
276  case SiStripPI::TOB3r:
277  return std::make_pair(11, "TOB L3 r-#varphi");
278  case SiStripPI::TOB4r:
279  return std::make_pair(12, "TOB L4");
280  case SiStripPI::TOB5r:
281  return std::make_pair(13, "TOB L5");
282  case SiStripPI::TOB6r:
283  return std::make_pair(14, "TOB L6");
284  case SiStripPI::TEC1r:
285  return std::make_pair(15, "TEC D1 r-#varphi");
286  case SiStripPI::TEC1s:
287  return std::make_pair(16, "TEC D1 stereo");
288  case SiStripPI::TEC2r:
289  return std::make_pair(17, "TEC D2 r-#varphi");
290  case SiStripPI::TEC2s:
291  return std::make_pair(18, "TEC D2 stereo");
292  case SiStripPI::TEC3r:
293  return std::make_pair(19, "TEC D3 r-#varphi");
294  case SiStripPI::TEC3s:
295  return std::make_pair(20, "TEC D3 stereo");
296  case SiStripPI::TEC4r:
297  return std::make_pair(21, "TEC D4 r-#varphi");
298  case SiStripPI::TEC4s:
299  return std::make_pair(22, "TEC D4 stereo");
300  case SiStripPI::TEC5r:
301  return std::make_pair(23, "TEC D5 r-#varphi");
302  case SiStripPI::TEC5s:
303  return std::make_pair(24, "TEC D5 stereo");
304  case SiStripPI::TEC6r:
305  return std::make_pair(25, "TEC D6 r-#varphi");
306  case SiStripPI::TEC6s:
307  return std::make_pair(26, "TEC D6 stereo");
308  case SiStripPI::TEC7r:
309  return std::make_pair(27, "TEC D7 r-#varphi");
310  case SiStripPI::TEC7s:
311  return std::make_pair(28, "TEC D7 stereo");
312  case SiStripPI::TEC8r:
313  return std::make_pair(29, "TEC D8 r-#varphi");
314  case SiStripPI::TEC8s:
315  return std::make_pair(30, "TEC D8 stereo");
316  case SiStripPI::TEC9r:
317  return std::make_pair(31, "TEC D9 r-#varphi");
318  case SiStripPI::TEC9s:
319  return std::make_pair(32, "TEC D9 stereo");
320  case SiStripPI::TID1r:
321  return std::make_pair(33, "TID D1 r-#varphi");
322  case SiStripPI::TID1s:
323  return std::make_pair(34, "TID D1 stereo");
324  case SiStripPI::TID2r:
325  return std::make_pair(35, "TID D2 r-#varphi");
326  case SiStripPI::TID2s:
327  return std::make_pair(36, "TID D2 stereo");
328  case SiStripPI::TID3r:
329  return std::make_pair(37, "TID D3 r-#varphi");
330  case SiStripPI::TID3s:
331  return std::make_pair(38, "TID D3 stereo");
333  return std::make_pair(-1, "undefined");
334  default:
335  return std::make_pair(999, "should never be here");
336  }
337  }
338 
339  /*--------------------------------------------------------------------*/
340  std::pair<float, float> getTheRange(std::map<uint32_t, float> values, const float nsigma)
341  /*--------------------------------------------------------------------*/
342  {
343  float sum = std::accumulate(
344  std::begin(values), std::end(values), 0.0, [](float value, const std::map<uint32_t, float>::value_type& p) {
345  return value + p.second;
346  });
347 
348  float m = sum / values.size();
349 
350  float accum = 0.0;
351  std::for_each(std::begin(values), std::end(values), [&](const std::map<uint32_t, float>::value_type& p) {
352  accum += (p.second - m) * (p.second - m);
353  });
354 
355  float stdev = sqrt(accum / (values.size() - 1));
356 
357  if (stdev != 0.) {
358  return std::make_pair(m - nsigma * stdev, m + nsigma * stdev);
359  } else {
360  return std::make_pair(m > 0. ? 0.95 * m : 1.05 * m, m > 0 ? 1.05 * m : 0.95 * m);
361  }
362  }
363 
364  /*--------------------------------------------------------------------*/
365  void drawStatBox(std::map<std::string, std::shared_ptr<TH1F>> histos,
366  std::map<std::string, int> colormap,
367  std::vector<std::string> legend,
368  double X = 0.15,
369  double Y = 0.93,
370  double W = 0.15,
371  double H = 0.10)
372  /*--------------------------------------------------------------------*/
373  {
374  char buffer[255];
375 
376  int i = 0;
377  for (const auto& element : legend) {
378  TPaveText* stat = new TPaveText(X, Y - (i * H), X + W, Y - (i + 1) * H, "NDC");
379  i++;
380  auto Histo = histos[element];
381  sprintf(buffer, "Entries : %i\n", (int)Histo->GetEntries());
382  stat->AddText(buffer);
383 
384  sprintf(buffer, "Mean : %6.2f\n", Histo->GetMean());
385  stat->AddText(buffer);
386 
387  sprintf(buffer, "RMS : %6.2f\n", Histo->GetRMS());
388  stat->AddText(buffer);
389 
390  stat->SetFillColor(0);
391  stat->SetLineColor(colormap[element]);
392  stat->SetTextColor(colormap[element]);
393  stat->SetTextSize(0.03);
394  stat->SetBorderSize(0);
395  stat->SetMargin(0.05);
396  stat->SetTextAlign(12);
397  stat->Draw();
398  }
399  }
400 
401  /*--------------------------------------------------------------------*/
402  std::pair<float, float> getExtrema(TH1* h1, TH1* h2)
403  /*--------------------------------------------------------------------*/
404  {
405  float theMax(-9999.);
406  float theMin(9999.);
407  theMax = h1->GetMaximum() > h2->GetMaximum() ? h1->GetMaximum() : h2->GetMaximum();
408  theMin = h1->GetMinimum() < h2->GetMaximum() ? h1->GetMinimum() : h2->GetMinimum();
409 
410  float add_min = theMin > 0. ? -0.05 : 0.05;
411  float add_max = theMax > 0. ? 0.05 : -0.05;
412 
413  auto result = std::make_pair(theMin * (1 + add_min), theMax * (1 + add_max));
414  return result;
415  }
416 
417  /*--------------------------------------------------------------------*/
419  /*--------------------------------------------------------------------*/
420  {
421  hist->SetStats(kFALSE);
422  hist->SetLineWidth(2);
423  hist->GetXaxis()->CenterTitle(true);
424  hist->GetYaxis()->CenterTitle(true);
425  hist->GetXaxis()->SetTitleFont(42);
426  hist->GetYaxis()->SetTitleFont(42);
427  hist->GetXaxis()->SetTitleSize(0.05);
428  hist->GetYaxis()->SetTitleSize(0.05);
429  hist->GetXaxis()->SetTitleOffset(0.9);
430  hist->GetYaxis()->SetTitleOffset(1.3);
431  hist->GetXaxis()->SetLabelFont(42);
432  hist->GetYaxis()->SetLabelFont(42);
433  hist->GetYaxis()->SetLabelSize(.05);
434  hist->GetXaxis()->SetLabelSize(.05);
435  }
436 
437  /*--------------------------------------------------------------------*/
438  void printSummary(const std::map<unsigned int, SiStripDetSummary::Values>& map)
439  /*--------------------------------------------------------------------*/
440  {
441  for (const auto& element : map) {
442  int count = element.second.count;
443  double mean = count > 0 ? (element.second.mean) / count : 0.;
444  double rms = count > 0 ? (element.second.rms) / count - mean * mean : 0.;
445  if (rms <= 0)
446  rms = 0;
447  else
448  rms = sqrt(rms);
449 
451 
452  switch ((element.first) / 1000) {
453  case 1:
454  detector = "TIB ";
455  break;
456  case 2:
457  detector = "TOB ";
458  break;
459  case 3:
460  detector = "TEC ";
461  break;
462  case 4:
463  detector = "TID ";
464  break;
465  }
466 
467  int layer = (element.first) / 10 - (element.first) / 1000 * 100;
468  int stereo = (element.first) - (layer * 10) - (element.first) / 1000 * 1000;
469 
470  std::cout << "key of the map:" << element.first << " ( region: " << regionType(element.first).second << " ) "
471  << detector << " layer: " << layer << " stereo:" << stereo << "| count:" << count << " mean: " << mean
472  << " rms: " << rms << std::endl;
473  }
474  }
475 
476  // code is mutuated from CalibTracker/SiStripQuality/plugins/SiStripQualityStatistics
477 
478  /*--------------------------------------------------------------------*/
479  void setBadComponents(int i, int component, const SiStripQuality::BadComponent& BC, int NBadComponent[4][19][4])
480  /*--------------------------------------------------------------------*/
481  {
482  if (BC.BadApvs) {
483  NBadComponent[i][0][2] += std::bitset<16>(BC.BadApvs & 0x3f).count();
484  NBadComponent[i][component][2] += std::bitset<16>(BC.BadApvs & 0x3f).count();
485  }
486 
487  if (BC.BadFibers) {
488  NBadComponent[i][0][1] += std::bitset<4>(BC.BadFibers & 0x7).count();
489  NBadComponent[i][component][1] += std::bitset<4>(BC.BadFibers & 0x7).count();
490  }
491 
492  if (BC.BadModule) {
493  NBadComponent[i][0][0]++;
494  NBadComponent[i][component][0]++;
495  }
496  }
497 
498  // generic code to fill a SiStripDetSummary with Noise payload info
499  /*--------------------------------------------------------------------*/
501  std::shared_ptr<SiStripNoises> payload,
503  /*--------------------------------------------------------------------*/
504  {
505  SiStripNoises::RegistryIterator rit = payload->getRegistryVectorBegin(), erit = payload->getRegistryVectorEnd();
506  uint16_t Nstrips;
507  std::vector<float> vstripnoise;
508  double mean, rms, min, max;
509  for (; rit != erit; ++rit) {
510  Nstrips = (rit->iend - rit->ibegin) * 8 / 9; //number of strips = number of chars * char size / strip noise size
511  vstripnoise.resize(Nstrips);
512  payload->allNoises(
513  vstripnoise,
514  make_pair(payload->getDataVectorBegin() + rit->ibegin, payload->getDataVectorBegin() + rit->iend));
515 
516  mean = 0;
517  rms = 0;
518  min = 10000;
519  max = 0;
520 
521  DetId detId(rit->detid);
522 
523  for (size_t i = 0; i < Nstrips; ++i) {
524  mean += vstripnoise[i];
525  rms += vstripnoise[i] * vstripnoise[i];
526  if (vstripnoise[i] < min)
527  min = vstripnoise[i];
528  if (vstripnoise[i] > max)
529  max = vstripnoise[i];
530  }
531 
532  mean /= Nstrips;
533  if ((rms / Nstrips - mean * mean) > 0.) {
534  rms = sqrt(rms / Nstrips - mean * mean);
535  } else {
536  rms = 0.;
537  }
538 
539  switch (est) {
540  case SiStripPI::min:
541  summaryNoise.add(detId, min);
542  break;
543  case SiStripPI::max:
544  summaryNoise.add(detId, max);
545  break;
546  case SiStripPI::mean:
547  summaryNoise.add(detId, mean);
548  break;
549  case SiStripPI::rms:
550  summaryNoise.add(detId, rms);
551  break;
552  default:
553  edm::LogWarning("LogicError") << "Unknown estimator: " << est;
554  break;
555  }
556  }
557  }
558 
559  /*--------------------------------------------------------------------*/
560  void fillTotalComponents(int NTkComponents[4], int NComponents[4][19][4], const TrackerTopology m_trackerTopo)
561  /*--------------------------------------------------------------------*/
562  {
563  edm::FileInPath fp_ = edm::FileInPath("CalibTracker/SiStripCommon/data/SiStripDetInfo.dat");
565  const std::map<uint32_t, SiStripDetInfoFileReader::DetInfo>& DetInfos = reader->getAllData();
566  for (const auto& det : DetInfos) {
567  int nAPVs = reader->getNumberOfApvsAndStripLength(det.first).first;
568  // one fiber connects to 2 APVs
569  int nFibers = nAPVs / 2;
570  int nStrips = (128 * reader->getNumberOfApvsAndStripLength(det.first).first);
571  NTkComponents[0]++;
572  NTkComponents[1] += nFibers;
573  NTkComponents[2] += nAPVs;
574  NTkComponents[3] += nStrips;
575 
576  DetId detectorId = DetId(det.first);
577  int subDet = detectorId.subdetId();
578 
579  int subDetIndex = -1;
580  int component = -1;
581  if (subDet == StripSubdetector::TIB) {
582  subDetIndex = 0;
583  component = m_trackerTopo.tibLayer(det.first);
584  } else if (subDet == StripSubdetector::TID) {
585  subDetIndex = 1;
586  component = m_trackerTopo.tidSide(det.first) == 2 ? m_trackerTopo.tidWheel(det.first)
587  : m_trackerTopo.tidWheel(det.first) + 3;
588  } else if (subDet == StripSubdetector::TOB) {
589  subDetIndex = 2;
590  component = m_trackerTopo.tobLayer(det.first);
591  } else if (subDet == StripSubdetector::TEC) {
592  subDetIndex = 3;
593  component = m_trackerTopo.tecSide(det.first) == 2 ? m_trackerTopo.tecWheel(det.first)
594  : m_trackerTopo.tecWheel(det.first) + 9;
595  }
596 
597  NComponents[subDetIndex][0][0]++;
598  NComponents[subDetIndex][0][1] += nFibers;
599  NComponents[subDetIndex][0][2] += nAPVs;
600  NComponents[subDetIndex][0][3] += nStrips;
601 
602  NComponents[subDetIndex][component][0]++;
603  NComponents[subDetIndex][component][1] += nFibers;
604  NComponents[subDetIndex][component][2] += nAPVs;
605  NComponents[subDetIndex][component][3] += nStrips;
606  }
607  delete reader;
608  }
609 
610  // generic code to fill the vectors of bad components
611  /*--------------------------------------------------------------------*/
612  void fillBCArrays(const SiStripQuality* siStripQuality_,
613  int NTkBadComponent[4],
614  int NBadComponent[4][19][4],
615  const TrackerTopology m_trackerTopo)
616  /*--------------------------------------------------------------------*/
617  {
618  std::vector<SiStripQuality::BadComponent> BC = siStripQuality_->getBadComponentList();
619 
620  for (size_t i = 0; i < BC.size(); ++i) {
621  //&&&&&&&&&&&&&
622  //Full Tk
623  //&&&&&&&&&&&&&
624 
625  if (BC.at(i).BadModule)
626  NTkBadComponent[0]++;
627  if (BC.at(i).BadFibers)
628  NTkBadComponent[1] +=
629  ((BC.at(i).BadFibers >> 2) & 0x1) + ((BC.at(i).BadFibers >> 1) & 0x1) + ((BC.at(i).BadFibers) & 0x1);
630  if (BC.at(i).BadApvs)
631  NTkBadComponent[2] += ((BC.at(i).BadApvs >> 5) & 0x1) + ((BC.at(i).BadApvs >> 4) & 0x1) +
632  ((BC.at(i).BadApvs >> 3) & 0x1) + ((BC.at(i).BadApvs >> 2) & 0x1) +
633  ((BC.at(i).BadApvs >> 1) & 0x1) + ((BC.at(i).BadApvs) & 0x1);
634 
635  //&&&&&&&&&&&&&&&&&
636  //Single SubSyste
637  //&&&&&&&&&&&&&&&&&
638  int component;
639  DetId detectorId = DetId(BC.at(i).detid);
640  int subDet = detectorId.subdetId();
641  if (subDet == StripSubdetector::TIB) {
642  //&&&&&&&&&&&&&&&&&
643  //TIB
644  //&&&&&&&&&&&&&&&&&
645 
646  component = m_trackerTopo.tibLayer(BC.at(i).detid);
647  SiStripPI::setBadComponents(0, component, BC.at(i), NBadComponent);
648 
649  } else if (subDet == StripSubdetector::TID) {
650  //&&&&&&&&&&&&&&&&&
651  //TID
652  //&&&&&&&&&&&&&&&&&
653 
654  component = m_trackerTopo.tidSide(BC.at(i).detid) == 2 ? m_trackerTopo.tidWheel(BC.at(i).detid)
655  : m_trackerTopo.tidWheel(BC.at(i).detid) + 3;
656  SiStripPI::setBadComponents(1, component, BC.at(i), NBadComponent);
657 
658  } else if (subDet == StripSubdetector::TOB) {
659  //&&&&&&&&&&&&&&&&&
660  //TOB
661  //&&&&&&&&&&&&&&&&&
662 
663  component = m_trackerTopo.tobLayer(BC.at(i).detid);
664  SiStripPI::setBadComponents(2, component, BC.at(i), NBadComponent);
665 
666  } else if (subDet == StripSubdetector::TEC) {
667  //&&&&&&&&&&&&&&&&&
668  //TEC
669  //&&&&&&&&&&&&&&&&&
670 
671  component = m_trackerTopo.tecSide(BC.at(i).detid) == 2 ? m_trackerTopo.tecWheel(BC.at(i).detid)
672  : m_trackerTopo.tecWheel(BC.at(i).detid) + 9;
673  SiStripPI::setBadComponents(3, component, BC.at(i), NBadComponent);
674  }
675  }
676 
677  //&&&&&&&&&&&&&&&&&&
678  // Single Strip Info
679  //&&&&&&&&&&&&&&&&&&
680 
681  edm::FileInPath fp_ = edm::FileInPath("CalibTracker/SiStripCommon/data/SiStripDetInfo.dat");
683 
684  float percentage = 0;
685 
686  SiStripQuality::RegistryIterator rbegin = siStripQuality_->getRegistryVectorBegin();
687  SiStripQuality::RegistryIterator rend = siStripQuality_->getRegistryVectorEnd();
688 
689  for (SiStripBadStrip::RegistryIterator rp = rbegin; rp != rend; ++rp) {
690  uint32_t detid = rp->detid;
691 
692  int subdet = -999;
693  int component = -999;
694  DetId detectorId = DetId(detid);
695  int subDet = detectorId.subdetId();
696  if (subDet == StripSubdetector::TIB) {
697  subdet = 0;
698  component = m_trackerTopo.tibLayer(detid);
699  } else if (subDet == StripSubdetector::TID) {
700  subdet = 1;
701  component =
702  m_trackerTopo.tidSide(detid) == 2 ? m_trackerTopo.tidWheel(detid) : m_trackerTopo.tidWheel(detid) + 3;
703  } else if (subDet == StripSubdetector::TOB) {
704  subdet = 2;
705  component = m_trackerTopo.tobLayer(detid);
706  } else if (subDet == StripSubdetector::TEC) {
707  subdet = 3;
708  component =
709  m_trackerTopo.tecSide(detid) == 2 ? m_trackerTopo.tecWheel(detid) : m_trackerTopo.tecWheel(detid) + 9;
710  }
711 
712  SiStripQuality::Range sqrange = SiStripQuality::Range(siStripQuality_->getDataVectorBegin() + rp->ibegin,
713  siStripQuality_->getDataVectorBegin() + rp->iend);
714 
715  percentage = 0;
716  for (int it = 0; it < sqrange.second - sqrange.first; it++) {
717  unsigned int range = siStripQuality_->decode(*(sqrange.first + it)).range;
718  NTkBadComponent[3] += range;
719  NBadComponent[subdet][0][3] += range;
720  NBadComponent[subdet][component][3] += range;
721  percentage += range;
722  }
723  if (percentage != 0)
724  percentage /= 128. * reader->getNumberOfApvsAndStripLength(detid).first;
725  if (percentage > 1)
726  edm::LogError("SiStripBadStrip_PayloadInspector")
727  << "PROBLEM detid " << detid << " value " << percentage << std::endl;
728  }
729 
730  delete reader;
731  }
732 
733  /*--------------------------------------------------------------------*/
734  void printBCDebug(int NTkBadComponent[4], int NBadComponent[4][19][4])
735  /*--------------------------------------------------------------------*/
736  {
737  //&&&&&&&&&&&&&&&&&&
738  // printout
739  //&&&&&&&&&&&&&&&&&&
740 
741  std::stringstream ss;
742  ss.str("");
743  ss << "\n-----------------\nGlobal Info\n-----------------";
744  ss << "\nBadComponent \t Modules \tFibers "
745  "\tApvs\tStrips\n----------------------------------------------------------------";
746  ss << "\nTracker:\t\t" << NTkBadComponent[0] << "\t" << NTkBadComponent[1] << "\t" << NTkBadComponent[2] << "\t"
747  << NTkBadComponent[3];
748  ss << "\n";
749  ss << "\nTIB:\t\t\t" << NBadComponent[0][0][0] << "\t" << NBadComponent[0][0][1] << "\t" << NBadComponent[0][0][2]
750  << "\t" << NBadComponent[0][0][3];
751  ss << "\nTID:\t\t\t" << NBadComponent[1][0][0] << "\t" << NBadComponent[1][0][1] << "\t" << NBadComponent[1][0][2]
752  << "\t" << NBadComponent[1][0][3];
753  ss << "\nTOB:\t\t\t" << NBadComponent[2][0][0] << "\t" << NBadComponent[2][0][1] << "\t" << NBadComponent[2][0][2]
754  << "\t" << NBadComponent[2][0][3];
755  ss << "\nTEC:\t\t\t" << NBadComponent[3][0][0] << "\t" << NBadComponent[3][0][1] << "\t" << NBadComponent[3][0][2]
756  << "\t" << NBadComponent[3][0][3];
757  ss << "\n";
758 
759  for (int i = 1; i < 5; ++i)
760  ss << "\nTIB Layer " << i << " :\t\t" << NBadComponent[0][i][0] << "\t" << NBadComponent[0][i][1] << "\t"
761  << NBadComponent[0][i][2] << "\t" << NBadComponent[0][i][3];
762  ss << "\n";
763  for (int i = 1; i < 4; ++i)
764  ss << "\nTID+ Disk " << i << " :\t\t" << NBadComponent[1][i][0] << "\t" << NBadComponent[1][i][1] << "\t"
765  << NBadComponent[1][i][2] << "\t" << NBadComponent[1][i][3];
766  for (int i = 4; i < 7; ++i)
767  ss << "\nTID- Disk " << i - 3 << " :\t\t" << NBadComponent[1][i][0] << "\t" << NBadComponent[1][i][1] << "\t"
768  << NBadComponent[1][i][2] << "\t" << NBadComponent[1][i][3];
769  ss << "\n";
770  for (int i = 1; i < 7; ++i)
771  ss << "\nTOB Layer " << i << " :\t\t" << NBadComponent[2][i][0] << "\t" << NBadComponent[2][i][1] << "\t"
772  << NBadComponent[2][i][2] << "\t" << NBadComponent[2][i][3];
773  ss << "\n";
774  for (int i = 1; i < 10; ++i)
775  ss << "\nTEC+ Disk " << i << " :\t\t" << NBadComponent[3][i][0] << "\t" << NBadComponent[3][i][1] << "\t"
776  << NBadComponent[3][i][2] << "\t" << NBadComponent[3][i][3];
777  for (int i = 10; i < 19; ++i)
778  ss << "\nTEC- Disk " << i - 9 << " :\t\t" << NBadComponent[3][i][0] << "\t" << NBadComponent[3][i][1] << "\t"
779  << NBadComponent[3][i][2] << "\t" << NBadComponent[3][i][3];
780  ss << "\n";
781 
782  //edm::LogInfo("SiStripBadStrip_PayloadInspector") << ss.str() << std::endl;
783  std::cout << ss.str() << std::endl;
784  }
785 
787 
788  /*--------------------------------------------------------------------*/
790  /*--------------------------------------------------------------------*/
791  {
792  TStyle* palettestyle = new TStyle("palettestyle", "Style for P-TDR");
793 
794  const int NRGBs = 5;
795  const int NCont = 255;
796 
797  switch (palette) {
798  case HALFGRAY: {
799  double stops[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
800  double red[NRGBs] = {1.00, 0.91, 0.80, 0.67, 1.00};
801  double green[NRGBs] = {1.00, 0.91, 0.80, 0.67, 1.00};
802  double blue[NRGBs] = {1.00, 0.91, 0.80, 0.67, 1.00};
803  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
804  } break;
805 
806  case GRAY: {
807  double stops[NRGBs] = {0.00, 0.01, 0.05, 0.09, 0.1};
808  double red[NRGBs] = {1.00, 0.84, 0.61, 0.34, 0.00};
809  double green[NRGBs] = {1.00, 0.84, 0.61, 0.34, 0.00};
810  double blue[NRGBs] = {1.00, 0.84, 0.61, 0.34, 0.00};
811  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
812  } break;
813 
814  case BLUES: {
815  double stops[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
816  double red[NRGBs] = {1.00, 0.84, 0.61, 0.34, 0.00};
817  double green[NRGBs] = {1.00, 0.84, 0.61, 0.34, 0.00};
818  double blue[NRGBs] = {1.00, 1.00, 1.00, 1.00, 1.00};
819  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
820 
821  } break;
822 
823  case REDS: {
824  double stops[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
825  double red[NRGBs] = {1.00, 1.00, 1.00, 1.00, 1.00};
826  double green[NRGBs] = {1.00, 0.84, 0.61, 0.34, 0.00};
827  double blue[NRGBs] = {1.00, 0.84, 0.61, 0.34, 0.00};
828  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
829  } break;
830 
831  case ANTIGRAY: {
832  double stops[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
833  double red[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
834  double green[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
835  double blue[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
836  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
837  } break;
838 
839  case FIRE: {
840  const int NCOLs = 4;
841  double stops[NCOLs] = {0.00, 0.20, 0.80, 1.00};
842  double red[NCOLs] = {1.00, 1.00, 1.00, 0.50};
843  double green[NCOLs] = {1.00, 1.00, 0.00, 0.00};
844  double blue[NCOLs] = {0.20, 0.00, 0.00, 0.00};
845  TColor::CreateGradientColorTable(NCOLs, stops, red, green, blue, NCont);
846  } break;
847 
848  case ANTIFIRE: {
849  const int NCOLs = 4;
850  double stops[NCOLs] = {0.00, 0.20, 0.80, 1.00};
851  double red[NCOLs] = {0.50, 1.00, 1.00, 1.00};
852  double green[NCOLs] = {0.00, 0.00, 1.00, 1.00};
853  double blue[NCOLs] = {0.00, 0.00, 0.00, 0.20};
854  TColor::CreateGradientColorTable(NCOLs, stops, red, green, blue, NCont);
855  } break;
856 
857  case LOGREDBLUE: {
858  double stops[NRGBs] = {0.0001, 0.0010, 0.0100, 0.1000, 1.0000};
859  double red[NRGBs] = {1.00, 0.75, 0.50, 0.25, 0.00};
860  double green[NRGBs] = {0.00, 0.00, 0.00, 0.00, 0.00};
861  double blue[NRGBs] = {0.00, 0.25, 0.50, 0.75, 1.00};
862  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
863  } break;
864 
865  case LOGBLUERED: {
866  double stops[NRGBs] = {0.0001, 0.0010, 0.0100, 0.1000, 1.0000};
867  double red[NRGBs] = {0.00, 0.25, 0.50, 0.75, 1.00};
868  double green[NRGBs] = {0.00, 0.00, 0.00, 0.00, 0.00};
869  double blue[NRGBs] = {1.00, 0.75, 0.50, 0.25, 0.00};
870  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
871  } break;
872 
873  case BLUERED: {
874  double stops[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
875  double red[NRGBs] = {0.00, 0.25, 0.50, 0.75, 1.00};
876  double green[NRGBs] = {0.00, 0.00, 0.00, 0.00, 0.00};
877  double blue[NRGBs] = {1.00, 0.75, 0.50, 0.25, 0.00};
878  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
879  } break;
880 
881  case DEFAULT: {
882  double stops[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
883  double red[NRGBs] = {0.00, 0.00, 0.87, 1.00, 0.51};
884  double green[NRGBs] = {0.00, 0.81, 1.00, 0.20, 0.00};
885  double blue[NRGBs] = {0.51, 1.00, 0.12, 0.00, 0.00};
886  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
887  } break;
888  default:
889  std::cout << "should nevere be here" << std::endl;
890  break;
891  }
892 
893  palettestyle->SetNumberContours(NCont);
894  }
895 
896 }; // namespace SiStripPI
897 #endif
SiStripPI::Entry::sq_sum
double sq_sum
Definition: SiStripPayloadInspectorHelper.h:54
SiStripPI::TEC4s
Definition: SiStripPayloadInspectorHelper.h:229
SiStripPI::Monitor2D::entryx_
Entry entryx_
Definition: SiStripPayloadInspectorHelper.h:164
class-composition.H
H
Definition: class-composition.py:31
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
SiStripPI::Entry::Entry
Entry()
Definition: SiStripPayloadInspectorHelper.h:31
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
mps_fire.i
i
Definition: mps_fire.py:428
SiStripPI::TOB1s
Definition: SiStripPayloadInspectorHelper.h:215
SiStripDetSummary.h
MessageLogger.h
SiStripPI::mean
Definition: SiStripPayloadInspectorHelper.h:169
SiStripPI::TIB1r
Definition: SiStripPayloadInspectorHelper.h:208
SiStripPI::Monitor1D::Fill
void Fill(int apv, int det, double vx)
Definition: SiStripPayloadInspectorHelper.h:68
SiStripPI::TIB2r
Definition: SiStripPayloadInspectorHelper.h:210
SiStripPI::setPaletteStyle
void setPaletteStyle(SiStripPI::palette palette)
Definition: SiStripPayloadInspectorHelper.h:789
SiStripPI::TOB6r
Definition: SiStripPayloadInspectorHelper.h:221
SiStripPI::Entry
Definition: SiStripPayloadInspectorHelper.h:29
SiStripPI::fillNoiseDetSummary
void fillNoiseDetSummary(SiStripDetSummary &summaryNoise, std::shared_ptr< SiStripNoises > payload, SiStripPI::estimator est)
Definition: SiStripPayloadInspectorHelper.h:500
SiStripPI::printBCDebug
void printBCDebug(int NTkBadComponent[4], int NBadComponent[4][19][4])
Definition: SiStripPayloadInspectorHelper.h:734
X
#define X(str)
Definition: MuonsGrabber.cc:38
SiStripPI::TEC3r
Definition: SiStripPayloadInspectorHelper.h:226
SiStripPI::TEC2s
Definition: SiStripPayloadInspectorHelper.h:225
SiStripPI::Monitor1D::~Monitor1D
~Monitor1D()
Definition: SiStripPayloadInspectorHelper.h:66
SiStripPI::printSummary
void printSummary(const std::map< unsigned int, SiStripDetSummary::Values > &map)
Definition: SiStripPayloadInspectorHelper.h:438
TrackerTopology
Definition: TrackerTopology.h:16
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
SiStripPI::Monitor1D::flush
void flush()
Definition: SiStripPayloadInspectorHelper.h:90
SiStripPI::DEFAULT
Definition: SiStripPayloadInspectorHelper.h:786
gather_cfg.cout
cout
Definition: gather_cfg.py:144
SiStripPI::estimator
estimator
Definition: SiStripPayloadInspectorHelper.h:169
SiStripPI::BLUERED
Definition: SiStripPayloadInspectorHelper.h:786
ALCARECOPromptCalibProdSiPixelAli0T_cff.mode
mode
Definition: ALCARECOPromptCalibProdSiPixelAli0T_cff.py:96
SiStripPI::TEC9r
Definition: SiStripPayloadInspectorHelper.h:238
SiStripBadStrip::decode
data decode(const unsigned int &value) const
Definition: SiStripBadStrip.h:78
SiStripPI::TOB2s
Definition: SiStripPayloadInspectorHelper.h:217
SiStripPI::END_OF_REGIONS
Definition: SiStripPayloadInspectorHelper.h:246
SiStripPI
Definition: SiStripPayloadInspectorHelper.h:23
SiStripPI::BLUES
Definition: SiStripPayloadInspectorHelper.h:786
SiStripPI::TIB3r
Definition: SiStripPayloadInspectorHelper.h:212
SiStripPI::TOB5r
Definition: SiStripPayloadInspectorHelper.h:220
SiStripPI::TIB4r
Definition: SiStripPayloadInspectorHelper.h:213
SiStripNoises.h
SiStripPI::Monitor2D::flush
void flush()
Definition: SiStripPayloadInspectorHelper.h:151
SiStripPI::Monitor2D::mode_
OpMode mode_
Definition: SiStripPayloadInspectorHelper.h:165
SiStripDetInfoFileReader
Definition: SiStripDetInfoFileReader.h:30
SiStripBadStrip::getDataVectorBegin
ContainerIterator getDataVectorBegin() const
Definition: SiStripBadStrip.h:73
SiStripPI::rms
Definition: SiStripPayloadInspectorHelper.h:169
SiStripPI::TEC7s
Definition: SiStripPayloadInspectorHelper.h:235
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
SiStripPI::makeNicePlotStyle
void makeNicePlotStyle(TH1 *hist)
Definition: SiStripPayloadInspectorHelper.h:418
DivergingColor.red
list red
Definition: DivergingColor.py:172
SiStripPI::LOGREDBLUE
Definition: SiStripPayloadInspectorHelper.h:786
TrackerTopology::tidWheel
unsigned int tidWheel(const DetId &id) const
Definition: TrackerTopology.h:201
FileInPath.h
SiStripPI::Entry::sum
double sum
Definition: SiStripPayloadInspectorHelper.h:54
SiStripPI::TEC9s
Definition: SiStripPayloadInspectorHelper.h:239
edmScanValgrind.buffer
buffer
Definition: edmScanValgrind.py:171
SiStripPI::Monitor2D
Definition: SiStripPayloadInspectorHelper.h:111
SiStripPI::REDS
Definition: SiStripPayloadInspectorHelper.h:786
SiStripPI::TEC8r
Definition: SiStripPayloadInspectorHelper.h:236
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
DetId
Definition: DetId.h:17
edm::FileInPath
Definition: FileInPath.h:64
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
SiStripBadStrip::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripBadStrip.h:53
SiStripQuality::getBadComponentList
const std::vector< BadComponent > & getBadComponentList() const
Definition: SiStripQuality.h:119
SiStripBadStrip::getRegistryVectorBegin
RegistryIterator getRegistryVectorBegin() const
Definition: SiStripBadStrip.h:75
SiStripPI::Monitor2D::hist
TH2F & hist()
Definition: SiStripPayloadInspectorHelper.h:157
SiStripPI::TOB3r
Definition: SiStripPayloadInspectorHelper.h:218
SiStripPI::TEC5s
Definition: SiStripPayloadInspectorHelper.h:231
L1TOccupancyClient_cfi.ymax
ymax
Definition: L1TOccupancyClient_cfi.py:43
SiStripPI::TOB1r
Definition: SiStripPayloadInspectorHelper.h:214
StandaloneTrackerTopology.h
DQM.reader
reader
Definition: DQM.py:105
SiStripPI::Entry::add
void add(double val)
Definition: SiStripPayloadInspectorHelper.h:40
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
SiStripPI::GRAY
Definition: SiStripPayloadInspectorHelper.h:786
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
SiStripPI::getExtrema
std::pair< float, float > getExtrema(TH1 *h1, TH1 *h2)
Definition: SiStripPayloadInspectorHelper.h:402
mps_fire.end
end
Definition: mps_fire.py:242
SiStripPI::TID2s
Definition: SiStripPayloadInspectorHelper.h:243
SiStripPI::Monitor1D::entry_
Entry entry_
Definition: SiStripPayloadInspectorHelper.h:104
SiStripPI::TID2r
Definition: SiStripPayloadInspectorHelper.h:242
SiStripPI::MODULE_BASED
Definition: SiStripPayloadInspectorHelper.h:27
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
SiStripPI::Entry::reset
void reset()
Definition: SiStripPayloadInspectorHelper.h:46
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
SiStripDetInfoFileReader.h
jets_cff.payload
payload
Definition: jets_cff.py:32
SiStripPI::TOB2r
Definition: SiStripPayloadInspectorHelper.h:216
SiStripPI::Monitor1D::mode_
OpMode mode_
Definition: SiStripPayloadInspectorHelper.h:105
SiStripQuality::BadComponent::BadFibers
unsigned short BadFibers
Definition: SiStripQuality.h:37
SiStripDetSummary::add
void add(DetId detid, float value)
Used to compute the mean value of the value variable divided by subdetector, layer and mono/stereo.
Definition: SiStripDetSummary.cc:6
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
SiStripPI::Monitor1D::prev_apv_
int prev_apv_
Definition: SiStripPayloadInspectorHelper.h:103
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripPI::drawStatBox
void drawStatBox(std::map< std::string, std::shared_ptr< TH1F >> histos, std::map< std::string, int > colormap, std::vector< std::string > legend, double X=0.15, double Y=0.93, double W=0.15, double H=0.10)
Definition: SiStripPayloadInspectorHelper.h:365
SiStripPI::Monitor2D::Fill
void Fill(int apv, int det, double vx, double vy)
Definition: SiStripPayloadInspectorHelper.h:128
SiStripPI::APV_BASED
Definition: SiStripPayloadInspectorHelper.h:27
SiStripPI::TEC5r
Definition: SiStripPayloadInspectorHelper.h:230
SiStripPI::Monitor1D::hist
TH1F & hist()
Definition: SiStripPayloadInspectorHelper.h:95
SiStripPI::Monitor1D::prev_det_
int prev_det_
Definition: SiStripPayloadInspectorHelper.h:103
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
SiStripPI::FIRE
Definition: SiStripPayloadInspectorHelper.h:786
SiStripPI::Monitor2D::~Monitor2D
~Monitor2D()
Definition: SiStripPayloadInspectorHelper.h:126
gpuVertexFinder::hist
__shared__ Hist hist
Definition: gpuClusterTracksDBSCAN.h:48
SiStripPI::TrackerRegion
TrackerRegion
Definition: SiStripPayloadInspectorHelper.h:207
SiStripPI::TIB1s
Definition: SiStripPayloadInspectorHelper.h:209
SiStripPI::TEC3s
Definition: SiStripPayloadInspectorHelper.h:227
SiStripPI::ANTIGRAY
Definition: SiStripPayloadInspectorHelper.h:786
SiStripSummary.h
SiStripPI::TEC8s
Definition: SiStripPayloadInspectorHelper.h:237
listHistos.legend
legend
Definition: listHistos.py:41
SiStripPI::Monitor2D::prev_apv_
int prev_apv_
Definition: SiStripPayloadInspectorHelper.h:163
SiStripQuality::BadComponent::BadModule
bool BadModule
Definition: SiStripQuality.h:38
TrackerTopology::tidSide
unsigned int tidSide(const DetId &id) const
Definition: TrackerTopology.h:190
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88271
SiStripPI::HALFGRAY
Definition: SiStripPayloadInspectorHelper.h:786
SiStripPI::TEC1s
Definition: SiStripPayloadInspectorHelper.h:223
DivergingColor.blue
list blue
Definition: DivergingColor.py:173
value
Definition: value.py:1
SiStripPI::Entry::std_dev
double std_dev()
Definition: SiStripPayloadInspectorHelper.h:34
SiStripPI::Monitor1D::Monitor1D
Monitor1D(OpMode mode, const char *name, const char *title, int nbinsx, double xmin, double xmax)
Definition: SiStripPayloadInspectorHelper.h:61
SiStripPI::Monitor1D::Monitor1D
Monitor1D()
Definition: SiStripPayloadInspectorHelper.h:64
SiStripPI::Monitor1D::getHist
TH1F & getHist()
Definition: SiStripPayloadInspectorHelper.h:100
SiStripPI::Monitor2D::obj_
TH2F obj_
Definition: SiStripPayloadInspectorHelper.h:166
SiStripPI::ANTIFIRE
Definition: SiStripPayloadInspectorHelper.h:786
SiStripPI::setBadComponents
void setBadComponents(int i, int component, const SiStripQuality::BadComponent &BC, int NBadComponent[4][19][4])
Definition: SiStripPayloadInspectorHelper.h:479
SiStripQuality::BadComponent::BadApvs
unsigned short BadApvs
Definition: SiStripQuality.h:36
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition: JetExtendedAssociation.h:30
SiStripPI::palette
palette
Definition: SiStripPayloadInspectorHelper.h:786
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
SiStripPI::TID1s
Definition: SiStripPayloadInspectorHelper.h:241
SiStripPI::Entry::entries
long int entries
Definition: SiStripPayloadInspectorHelper.h:53
SiStripPI::TID1r
Definition: SiStripPayloadInspectorHelper.h:240
SiStripPI::Monitor1D::obj_
TH1F obj_
Definition: SiStripPayloadInspectorHelper.h:106
SiStripPI::TEC1r
Definition: SiStripPayloadInspectorHelper.h:222
plotscripts.stdev
def stdev(xlist)
Definition: plotscripts.py:69
me0TriggerPseudoDigis_cff.nStrips
nStrips
1.2 is to make the matching window safely the two nearest strips 0.35 is the size of an ME0 chamber i...
Definition: me0TriggerPseudoDigis_cff.py:26
combine.histos
histos
Definition: combine.py:4
SiStripPI::TEC4r
Definition: SiStripPayloadInspectorHelper.h:228
SiStripPI::TIB2s
Definition: SiStripPayloadInspectorHelper.h:211
SiStripPI::fillBCArrays
void fillBCArrays(const SiStripQuality *siStripQuality_, int NTkBadComponent[4], int NBadComponent[4][19][4], const TrackerTopology m_trackerTopo)
Definition: SiStripPayloadInspectorHelper.h:612
SiStripPI::TOB4r
Definition: SiStripPayloadInspectorHelper.h:219
TrackerTopology::tobLayer
unsigned int tobLayer(const DetId &id) const
Definition: TrackerTopology.h:147
heppy_batch.val
val
Definition: heppy_batch.py:351
SiStripQuality::BadComponent
Definition: SiStripQuality.h:34
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
SiStripPI::min
Definition: SiStripPayloadInspectorHelper.h:169
L1TOccupancyClient_cfi.ymin
ymin
Definition: L1TOccupancyClient_cfi.py:43
SiStripPI::fillTotalComponents
void fillTotalComponents(int NTkComponents[4], int NComponents[4][19][4], const TrackerTopology m_trackerTopo)
Definition: SiStripPayloadInspectorHelper.h:560
SiStripPI::Monitor2D::Monitor2D
Monitor2D(OpMode mode, const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax)
Definition: SiStripPayloadInspectorHelper.h:113
SiStripPI::Entry::mean_rms
double mean_rms()
Definition: SiStripPayloadInspectorHelper.h:38
TrackerOfflineValidation_Dqm_cff.xmax
xmax
Definition: TrackerOfflineValidation_Dqm_cff.py:11
SiStripPI::TID3r
Definition: SiStripPayloadInspectorHelper.h:244
SiStripPI::getStringFromSubdet
std::string getStringFromSubdet(StripSubdetector::SubDetector sub)
Definition: SiStripPayloadInspectorHelper.h:190
SiStripQuality.h
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
SiStripPI::estimatorType
std::string estimatorType(SiStripPI::estimator e)
Definition: SiStripPayloadInspectorHelper.h:172
BeamSpotPI::Y
Definition: BeamSpotPayloadInspectorHelper.h:32
SiStripDetSummary
Definition: SiStripDetSummary.h:28
SiStripBadStrip::RegistryIterator
Registry::const_iterator RegistryIterator
Definition: SiStripBadStrip.h:55
SiStripNoises::RegistryIterator
Registry::const_iterator RegistryIterator
Definition: SiStripNoises.h:49
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
SiStripPI::TEC6s
Definition: SiStripPayloadInspectorHelper.h:233
hgcalTestNeighbor_cfi.detector
detector
Definition: hgcalTestNeighbor_cfi.py:6
SiStripPI::STRIP_BASED
Definition: SiStripPayloadInspectorHelper.h:27
SiStripBadStrip::data::range
unsigned short range
Definition: SiStripBadStrip.h:34
SiStripPI::Monitor1D
Definition: SiStripPayloadInspectorHelper.h:59
SiStripPI::LOGBLUERED
Definition: SiStripPayloadInspectorHelper.h:786
mps_fire.result
result
Definition: mps_fire.py:311
genParticles_cff.map
map
Definition: genParticles_cff.py:11
SiStripPI::Monitor2D::entryy_
Entry entryy_
Definition: SiStripPayloadInspectorHelper.h:164
TrackerOfflineValidation_Dqm_cff.xmin
xmin
Definition: TrackerOfflineValidation_Dqm_cff.py:10
edm_modernize_messagelogger.stat
stat
Definition: edm_modernize_messagelogger.py:27
SiStripSubdetector::Subdetector
Subdetector
Definition: SiStripEnums.h:5
SiStripPI::TEC6r
Definition: SiStripPayloadInspectorHelper.h:232
TrackerTopology::tecWheel
unsigned int tecWheel(const DetId &id) const
Definition: TrackerTopology.h:198
SiStripPI::TID3s
Definition: SiStripPayloadInspectorHelper.h:245
SiStripPI::getTheRange
std::pair< float, float > getTheRange(std::map< uint32_t, float > values, const float nsigma)
Definition: SiStripPayloadInspectorHelper.h:340
SiStripPI::OpMode
OpMode
Definition: SiStripPayloadInspectorHelper.h:27
StripSubdetector.h
SiStripPI::regionType
std::pair< int, const char * > regionType(int index)
Definition: SiStripPayloadInspectorHelper.h:250
SiStripBadStrip::getRegistryVectorEnd
RegistryIterator getRegistryVectorEnd() const
Definition: SiStripBadStrip.h:76
SiStripPI::Entry::mean
double mean()
Definition: SiStripPayloadInspectorHelper.h:33
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
edm::FileInPath::fullPath
std::string fullPath() const
Definition: FileInPath.cc:161
SiStripPI::Monitor2D::Monitor2D
Monitor2D()
Definition: SiStripPayloadInspectorHelper.h:124
SiStripPI::TEC7r
Definition: SiStripPayloadInspectorHelper.h:234
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
TrackerTopology::tibLayer
unsigned int tibLayer(const DetId &id) const
Definition: TrackerTopology.h:150
SiStripQuality
Definition: SiStripQuality.h:32
SiStripPI::TEC2r
Definition: SiStripPayloadInspectorHelper.h:224
TrackerTopology::tecSide
unsigned int tecSide(const DetId &id) const
Definition: TrackerTopology.h:184
SiStripPI::Monitor2D::prev_det_
int prev_det_
Definition: SiStripPayloadInspectorHelper.h:163