CMS 3D CMS Logo

HcalLutAnalyzer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: Test/HcalLutAnalyzer
4 // Class: HcalLutAnalyzer
5 //
13 //
14 // Original Author: Aleko Khukhunaishvili
15 // Created: Fri, 21 Jul 2017 08:42:05 GMT
16 //
17 //
18 
19 // system include files
20 #include <memory>
21 #include <iostream>
22 #include <fstream>
23 
24 // user include files
32 
41 
42 #include "TString.h"
43 #include "TH1D.h"
44 #include "TH2D.h"
45 #include "TProfile.h"
46 #include "TCanvas.h"
47 #include "TROOT.h"
48 #include "TStyle.h"
49 #include "TSystem.h"
50 
51 class HcalLutAnalyzer : public edm::one::EDAnalyzer<edm::one::SharedResources> {
52 public:
53  explicit HcalLutAnalyzer(const edm::ParameterSet&);
54  ~HcalLutAnalyzer() override{};
55  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
56 
57 private:
58  void analyze(const edm::Event&, const edm::EventSetup&) override;
59 
62  std::vector<std::string> tags_;
63  std::vector<std::string> quality_;
64  std::vector<std::string> pedestals_;
65  std::vector<std::string> gains_;
66  std::vector<std::string> respcorrs_;
67 
68  double Zmin;
69  double Zmax;
70  double Ymin;
71  double Ymax;
72  double Pmin;
73  double Pmax;
74 };
75 
77  inputDir = iConfig.getParameter<std::string>("inputDir");
78  plotsDir = iConfig.getParameter<std::string>("plotsDir");
79  tags_ = iConfig.getParameter<std::vector<std::string> >("tags");
80  quality_ = iConfig.getParameter<std::vector<std::string> >("quality");
81  pedestals_ = iConfig.getParameter<std::vector<std::string> >("pedestals");
82  gains_ = iConfig.getParameter<std::vector<std::string> >("gains");
83  respcorrs_ = iConfig.getParameter<std::vector<std::string> >("respcorrs");
84 
85  Zmin = iConfig.getParameter<double>("Zmin");
86  Zmax = iConfig.getParameter<double>("Zmax");
87  Ymin = iConfig.getParameter<double>("Ymin");
88  Ymax = iConfig.getParameter<double>("Ymax");
89  Pmin = iConfig.getParameter<double>("Pmin");
90  Pmax = iConfig.getParameter<double>("Pmax");
91 }
92 
94  using namespace std;
95 
98 
99  typedef std::vector<std::string> vstring;
100  typedef std::map<unsigned long int, float> LUTINPUT;
101 
102  static const int NVAR = 5; //variables
103  static const int NDET = 2; //detectors
104  static const int NDEP = 7; //depths
105  static const int NLEV = 3; //old,new,ratio
106 
107  const bool doRatio[NVAR] = {false, true, true, false, true};
108  const char* titleVar[NVAR] = {"Pedestals", "RespCorrs", "Gains", "Threshold", "LUTs"};
109  const char* titleHisR[NLEV] = {"Old", "New", "Ratio"};
110  const char* titleHisD[NLEV] = {"Old", "New", "Difference"};
111  const char* titleDet[4] = {"HBHE", "HF", "HEP17", "HO"};
112  const int DEP[NDET] = {7, 4};
113  const char* titleDep[NDEP] = {"depth1", "depth2", "depth3", "depth4", "depth5", "depth6", "depth7"};
114 
115  TH2D* r[NVAR][NDET];
116  TProfile* p[NVAR][NDET];
117 
118  TH2D* h[NVAR][NLEV][NDET][NDEP];
119  TH2D* hlut[4][NLEV];
120  TH2D* hslope[2];
121  TH2D* houtput[4][2];
122 
123  for (int d = 0; d < 4; ++d) {
124  for (int i = 0; i < 3; ++i) {
125  hlut[d][i] = new TH2D(Form("Lut_%s_%s", titleDet[d], titleHisR[i]),
126  Form("Input LUT, %s", (i == 2 ? "Ratio" : tags_[i].c_str())),
127  260,
128  0,
129  260,
130  240,
131  0,
132  i == NLEV - 1 ? 3 : 2400);
133  hlut[d][i]->SetMarkerColor(d == 0 ? kBlue : d == 1 ? kGreen + 2 : d == 2 ? kRed : kCyan);
134  hlut[d][i]->SetXTitle("raw adc");
135  hlut[d][i]->SetYTitle("lin adc");
136  }
137  }
138 
139  for (int d = 0; d < NDET; ++d) {
140  hslope[d] = new TH2D(
141  Form("GainLutScatter_%s", titleDet[d]), Form("Gain-Lutslope scatter, %s", titleDet[d]), 200, 0, 2, 200, 0, 2);
142  hslope[d]->SetXTitle("Gain x RespCorr ratio");
143  hslope[d]->SetYTitle("Lut ratio");
144 
145  for (int j = 0; j < NVAR; ++j) {
146  double rmin = doRatio[j] ? Ymin : -6;
147  double rmax = doRatio[j] ? Ymax : 6;
148  r[j][d] = new TH2D(Form("r%s_%s", titleVar[j], titleDet[d]),
149  Form("%s, %s", titleVar[j], titleDet[d]),
150  83,
151  -41.5,
152  41.5,
153  250,
154  rmin,
155  rmax);
156  r[j][d]->SetXTitle("iEta");
157  r[j][d]->SetYTitle(doRatio[j] ? "New / Old" : "New - Old");
158  p[j][d] = new TProfile(
159  Form("p%s_%s", titleVar[j], titleDet[d]), Form("%s, %s", titleVar[j], titleDet[d]), 83, -41.5, 41.5);
160  p[j][d]->SetXTitle("iEta");
161  p[j][d]->SetYTitle(doRatio[j] ? "New / Old" : "New - Old");
162  p[j][d]->SetMarkerStyle(20);
163  p[j][d]->SetMarkerSize(0.9);
164  p[j][d]->SetMarkerColor(kBlue);
165 
166  for (int p = 0; p < DEP[d]; ++p) {
167  for (int i = 0; i < NLEV; ++i) {
168  const char* titHist = doRatio[j] ? titleHisR[i] : titleHisD[i];
169  h[j][i][d][p] = new TH2D(Form("h%s_%s_%s_%s", titleVar[j], titHist, titleDet[d], titleDep[p]),
170  Form("%s, %s, %s, %s", titleVar[j], titHist, titleDet[d], titleDep[p]),
171  83,
172  -41.5,
173  41.5,
174  72,
175  0.5,
176  72.5);
177  h[j][i][d][p]->SetXTitle("iEta");
178  h[j][i][d][p]->SetYTitle("iPhi");
179  }
180  }
181  }
182  }
183 
184  for (int i = 0; i < 4; ++i) {
185  int color = i == 0 ? kBlue : i == 1 ? kViolet : i == 2 ? kGreen + 2 : kRed;
186  houtput[i][0] =
187  new TH2D(Form("houtlut0_%d", i), Form("Output LUT, %s", tags_[0].c_str()), 2100, 0, 2100, 260, 0, 260);
188  houtput[i][1] =
189  new TH2D(Form("houtlut1_%d", i), Form("Output LUT, %s", tags_[1].c_str()), 2100, 0, 2100, 260, 0, 260);
190  for (int j = 0; j < 2; ++j) {
191  houtput[i][j]->SetMarkerColor(color);
192  houtput[i][j]->SetLineColor(color);
193  }
194  }
195 
196  //FILL LUT INPUT DATA
197  LUTINPUT lutgain[2];
198  LUTINPUT lutresp[2];
199  LUTINPUT lutpede[2];
200 
201  assert(tags_.size() == 2);
202  assert(gains_.size() == 2);
203  assert(respcorrs_.size() == 2);
204  assert(pedestals_.size() == 2);
205 
206  unsigned long int iraw;
207  int ieta, iphi, idep;
208  string det, base;
209  float val1, val2, val3, val4;
210  float wid1, wid2, wid3, wid4;
211  char buffer[1024];
212 
213  std::vector<HcalDetId> BadChans[2];
214  std::vector<HcalDetId> ZeroLuts[2];
215 
216  //Read input condition files
217  for (int ii = 0; ii < 2; ++ii) {
218  //Gains
219  std::ifstream infile(
220  edm::FileInPath(Form("%s/Gains/Gains_Run%s.txt", inputDir.c_str(), gains_[ii].c_str())).fullPath().c_str());
221  assert(!infile.fail());
222  while (!infile.eof()) {
223  infile.getline(buffer, 1024);
224  if (buffer[0] == '#')
225  continue;
226  std::istringstream(buffer) >> ieta >> iphi >> idep >> det >> val1 >> val2 >> val3 >> val4 >> iraw;
227  if (det != "HB" && det != "HE" && det != "HF")
228  continue;
229 
230  float theval = (val1 + val2 + val3 + val4) / 4.0;
231 
232  HcalSubdetector subdet =
233  det == "HB" ? HcalBarrel : det == "HE" ? HcalEndcap : det == "HF" ? HcalForward : HcalOther;
234 
235  HcalDetId id(subdet, ieta, iphi, idep);
236  lutgain[ii].insert(LUTINPUT::value_type(id.rawId(), theval));
237  }
238 
239  //Pedestals
240  std::ifstream infped(
241  edm::FileInPath(Form("%s/Pedestals/Pedestals_Run%s.txt", inputDir.c_str(), pedestals_[ii].c_str()))
242  .fullPath()
243  .c_str());
244  assert(!infped.fail());
245  while (!infped.eof()) {
246  infped.getline(buffer, 1024);
247  if (buffer[0] == '#')
248  continue;
249  std::istringstream(buffer) >> ieta >> iphi >> idep >> det >> val1 >> val2 >> val3 >> val4 >> wid1 >> wid2 >>
250  wid3 >> wid4 >> iraw;
251  if (det != "HB" && det != "HE" && det != "HF")
252  continue;
253 
254  float theval = (val1 + val2 + val3 + val4) / 4.0;
255 
256  HcalSubdetector subdet =
257  det == "HB" ? HcalBarrel : det == "HE" ? HcalEndcap : det == "HF" ? HcalForward : HcalOther;
258 
259  HcalDetId id(subdet, ieta, iphi, idep);
260  lutpede[ii].insert(LUTINPUT::value_type(id.rawId(), theval));
261  }
262 
263  //Response corrections
264  std::ifstream inresp(
265  edm::FileInPath(Form("%s/RespCorrs/RespCorrs_Run%s.txt", inputDir.c_str(), respcorrs_[ii].c_str()))
266  .fullPath()
267  .c_str());
268  assert(!inresp.fail());
269  while (!inresp.eof()) {
270  inresp.getline(buffer, 1024);
271  if (buffer[0] == '#')
272  continue;
273  std::istringstream(buffer) >> ieta >> iphi >> idep >> det >> val1 >> iraw;
274  if (det != "HB" && det != "HE" && det != "HF")
275  continue;
276 
277  float theval = val1;
278 
279  HcalSubdetector subdet =
280  det == "HB" ? HcalBarrel : det == "HE" ? HcalEndcap : det == "HF" ? HcalForward : HcalOther;
281 
282  HcalDetId id(subdet, ieta, iphi, idep);
283  lutresp[ii].insert(LUTINPUT::value_type(id.rawId(), theval));
284  }
285 
286  //ChannelQuality
287  std::ifstream inchan(
288  edm::FileInPath(Form("%s/ChannelQuality/ChannelQuality_Run%s.txt", inputDir.c_str(), quality_[ii].c_str()))
289  .fullPath()
290  .c_str());
291  assert(!inchan.fail());
292  while (!inchan.eof()) {
293  inchan.getline(buffer, 1024);
294  if (buffer[0] == '#')
295  continue;
296  std::istringstream(buffer) >> ieta >> iphi >> idep >> det >> base >> val1 >> iraw;
297 
298  float theval = val1;
299 
300  HcalSubdetector subdet =
301  det == "HB" ? HcalBarrel
302  : det == "HE" ? HcalEndcap : det == "HF" ? HcalForward : det == "HO" ? HcalOuter : HcalOther;
303 
304  HcalDetId id(subdet, ieta, iphi, idep);
305  if (theval != 0)
306  BadChans[ii].push_back(id);
307  }
308  }
309 
310  LutXml xmls1(edm::FileInPath(Form("%s/%s/%s.xml", inputDir.c_str(), tags_[0].c_str(), tags_[0].c_str())).fullPath());
311  LutXml xmls2(edm::FileInPath(Form("%s/%s/%s.xml", inputDir.c_str(), tags_[1].c_str(), tags_[1].c_str())).fullPath());
312 
313  xmls1.create_lut_map();
314  xmls2.create_lut_map();
315 
316  for (const auto& xml2 : xmls2) {
317  HcalGenericDetId detid(xml2.first);
318 
320  HcalTrigTowerDetId tid(detid.rawId());
321  if (!topology->validHT(tid))
322  continue;
323  const auto& lut2 = xml2.second;
324 
325  int D = abs(tid.ieta()) < 29 ? (lut2.size() == 1024 ? 0 : 3) : tid.version() == 0 ? 1 : 2;
326  for (size_t i = 0; i < lut2.size(); ++i) {
327  if (int(i) % 4 == D)
328  houtput[D][1]->Fill(i, lut2[i]);
329  }
330  } else if (topology->valid(detid)) {
331  HcalDetId id(detid);
332  HcalSubdetector subdet = id.subdet();
333  int idet = int(subdet);
334  const auto& lut2 = xml2.second;
335  int hbhe = idet == HcalForward ? 1 : idet == HcalOuter ? 3 : lut2.size() == 128 ? 0 : 2;
336  for (size_t i = 0; i < lut2.size(); ++i) {
337  hlut[hbhe][1]->Fill(i, lut2[i]);
338  if (hbhe == 2)
339  hlut[hbhe][1]->Fill(i, lut2[i] & 0x3FF);
340  }
341  }
342  }
343 
344  for (const auto& xml1 : xmls1) {
345  HcalGenericDetId detid(xml1.first);
346  const auto& lut1 = xml1.second;
347 
349  HcalTrigTowerDetId tid(detid.rawId());
350  if (!topology->validHT(tid))
351  continue;
352  int D = abs(tid.ieta()) < 29 ? (lut1.size() == 1024 ? 0 : 3) : tid.version() == 0 ? 1 : 2;
353  for (size_t i = 0; i < lut1.size(); ++i) {
354  if (int(i) % 4 == D)
355  houtput[D][0]->Fill(i, lut1[i]);
356  }
357  } else if (topology->valid(detid)) {
358  HcalDetId id(detid);
359  HcalSubdetector subdet = id.subdet();
360  int idet = int(subdet);
361  const auto& lut1 = xml1.second;
362  int hbhe = idet == HcalForward ? 1 : idet == HcalOuter ? 3 : lut1.size() == 128 ? 0 : 2;
363  for (size_t i = 0; i < lut1.size(); ++i) {
364  hlut[hbhe][0]->Fill(i, lut1[i]);
365  if (hbhe == 2)
366  hlut[hbhe][0]->Fill(i, lut1[i] & 0x3FF);
367  }
368  }
369 
370  auto xml2 = xmls2.find(detid.rawId());
371  if (xml2 == xmls2.end())
372  continue;
373 
375  continue;
376 
377  HcalDetId id(detid);
378 
379  HcalSubdetector subdet = id.subdet();
380  int idet = int(subdet);
381  int ieta = id.ieta();
382  int iphi = id.iphi();
383  int idep = id.depth() - 1;
384  unsigned long int iraw = id.rawId();
385 
386  if (!topology->valid(detid))
387  continue;
388 
389  int hbhe = idet == HcalForward;
390 
391  const auto& lut2 = xml2->second;
392 
393  size_t size = lut1.size();
394  if (size != lut2.size())
395  continue;
396 
397  std::vector<unsigned int> llut1(size);
398  std::vector<unsigned int> llut2(size);
399  for (size_t i = 0; i < size; ++i) {
400  llut1[i] = hbhe == 0 ? lut1[i] & 0x3FF : lut1[i];
401  llut2[i] = hbhe == 0 ? lut2[i] & 0x3FF : lut2[i];
402  }
403 
404  int threshold[2] = {0, 0};
405  //Thresholds
406  for (size_t i = 0; i < size; ++i) {
407  if (llut1[i] > 0) {
408  threshold[0] = i;
409  break;
410  }
411  if (i == size - 1) {
412  ZeroLuts[0].push_back(id);
413  }
414  }
415  for (size_t i = 0; i < size; ++i) {
416  if (llut2[i] > 0) {
417  threshold[1] = i;
418  break;
419  }
420  if (i == size - 1) {
421  ZeroLuts[1].push_back(id);
422  }
423  }
424 
425  if (subdet != HcalBarrel && subdet != HcalEndcap && subdet != HcalForward)
426  continue;
427 
428  //fill conditions
429 
430  double xfill = 0;
431  h[0][0][hbhe][idep]->Fill(ieta, iphi, lutpede[0][iraw]);
432  h[0][1][hbhe][idep]->Fill(ieta, iphi, lutpede[1][iraw]);
433  xfill = lutpede[1][iraw] - lutpede[0][iraw];
434  h[0][2][hbhe][idep]->Fill(ieta, iphi, xfill);
435  r[0][hbhe]->Fill(ieta, xfill);
436  p[0][hbhe]->Fill(ieta, xfill);
437 
438  h[1][0][hbhe][idep]->Fill(ieta, iphi, lutresp[0][iraw]);
439  h[1][1][hbhe][idep]->Fill(ieta, iphi, lutresp[1][iraw]);
440  xfill = lutresp[1][iraw] / lutresp[0][iraw];
441  h[1][2][hbhe][idep]->Fill(ieta, iphi, xfill);
442  r[1][hbhe]->Fill(ieta, xfill);
443  p[1][hbhe]->Fill(ieta, xfill);
444 
445  h[2][0][hbhe][idep]->Fill(ieta, iphi, lutgain[0][iraw]);
446  h[2][1][hbhe][idep]->Fill(ieta, iphi, lutgain[1][iraw]);
447  xfill = lutgain[1][iraw] / lutgain[0][iraw];
448  h[2][2][hbhe][idep]->Fill(ieta, iphi, xfill);
449  r[2][hbhe]->Fill(ieta, xfill);
450  p[2][hbhe]->Fill(ieta, xfill);
451 
452  h[3][0][hbhe][idep]->Fill(ieta, iphi, threshold[0]);
453  h[3][1][hbhe][idep]->Fill(ieta, iphi, threshold[1]);
454  xfill = threshold[1] - threshold[0];
455  h[3][2][hbhe][idep]->Fill(ieta, iphi, xfill);
456  r[3][hbhe]->Fill(ieta, xfill);
457  p[3][hbhe]->Fill(ieta, xfill);
458 
459  size_t maxvalue = hbhe == 0 ? 1023 : 2047;
460 
461  //LutDifference
462  for (size_t i = 0; i < size; ++i) {
463  hlut[hbhe][2]->Fill(i, llut1[i] == 0 ? 0 : (double)llut2[i] / llut1[i]);
464 
465  if (i == size - 1 ||
466  (llut1[i] == maxvalue || llut2[i] == maxvalue)) { //Fill with only the last one before the maximum
467  if (llut1[i - 1] == 0 || llut2[i - 1] == 0) {
468  break;
469  }
470  double condratio = lutgain[1][iraw] / lutgain[0][iraw] * lutresp[1][iraw] / lutresp[0][iraw];
471  xfill = (double)llut2[i - 1] / llut1[i - 1];
472  hslope[hbhe]->Fill(condratio, xfill);
473 
474  h[4][0][hbhe][idep]->Fill(ieta, iphi, (double)llut1[i - 1] / (i - 1));
475  h[4][1][hbhe][idep]->Fill(ieta, iphi, (double)llut2[i - 1] / (i - 1));
476  h[4][2][hbhe][idep]->Fill(ieta, iphi, xfill);
477  r[4][hbhe]->Fill(ieta, xfill);
478  p[4][hbhe]->Fill(ieta, xfill);
479 
480  break;
481  }
482  }
483  }
484 
485  gROOT->SetStyle("Plain");
486  gStyle->SetPalette(1);
487  gStyle->SetStatW(0.2);
488  gStyle->SetStatH(0.1);
489  gStyle->SetStatY(1.0);
490  gStyle->SetStatX(0.9);
491  gStyle->SetOptStat(110010);
492  gStyle->SetOptFit(111111);
493 
494  //Draw and Print
495  TCanvas* cc = new TCanvas("cc", "cc", 0, 0, 1600, 1200);
496  cc->SetGridy();
497  for (int j = 0; j < NVAR; ++j) {
498  gSystem->mkdir(TString(plotsDir) + "/_" + titleVar[j]);
499  for (int d = 0; d < NDET; ++d) {
500  cc->Clear();
501  r[j][d]->Draw("colz");
502  cc->Print(TString(plotsDir) + "/_" + titleVar[j] + "/" + TString(r[j][d]->GetName()) + ".pdf");
503 
504  cc->Clear();
505  p[j][d]->Draw();
506  if (doRatio[j]) {
507  p[j][d]->SetMinimum(Pmin);
508  p[j][d]->SetMaximum(Pmax);
509  }
510  cc->Print(TString(plotsDir) + "/_" + titleVar[j] + "/" + TString(p[j][d]->GetName()) + ".pdf");
511 
512  for (int i = 0; i < NLEV; ++i) {
513  for (int p = 0; p < DEP[d]; ++p) {
514  cc->Clear();
515  h[j][i][d][p]->Draw("colz");
516 
517  if (i == NLEV - 1) {
518  if (doRatio[j]) {
519  h[j][2][d][p]->SetMinimum(Zmin);
520  h[j][2][d][p]->SetMaximum(Zmax);
521  } else {
522  h[j][2][d][p]->SetMinimum(-3);
523  h[j][2][d][p]->SetMaximum(3);
524  }
525  }
526  cc->Print(TString(plotsDir) + "/_" + titleVar[j] + "/" + TString(h[j][i][d][p]->GetName()) + ".pdf");
527  }
528  }
529  }
530  }
531 
532  for (int i = 0; i < NLEV; ++i) {
533  cc->Clear();
534  hlut[0][i]->Draw();
535  hlut[1][i]->Draw("sames");
536  hlut[2][i]->Draw("sames");
537  hlut[3][i]->Draw("sames");
538  cc->Print(TString(plotsDir) + Form("LUT_%d.gif", i));
539  }
540  cc->Clear();
541  hslope[0]->Draw("colz");
542  cc->SetGridx();
543  cc->SetGridy();
544  cc->Print(TString(plotsDir) + "GainLutScatterHBHE.pdf");
545  cc->Clear();
546  hslope[1]->Draw("colz");
547  cc->SetGridx();
548  cc->SetGridy();
549  cc->Print(TString(plotsDir) + "GainLutScatterLutHF.pdf");
550 
551  for (int i = 0; i < 2; ++i) {
552  cc->Clear();
553  houtput[0][i]->Draw("box");
554  houtput[1][i]->Draw("samebox");
555  houtput[2][i]->Draw("samebox");
556  houtput[3][i]->Draw("samebox");
557  cc->Print(TString(plotsDir) + Form("OUT_%d.gif", i));
558  }
559 }
560 
563  desc.setUnknown();
564  descriptions.addDefault(desc);
565 }
566 
HcalOther
Definition: HcalAssistant.h:38
CommandLineParser.h
EDAnalyzer.h
mps_fire.i
i
Definition: mps_fire.py:355
ESHandle.h
HcalGenericDetId
Definition: HcalGenericDetId.h:15
LutXml::create_lut_map
int create_lut_map(void)
Definition: LutXml.cc:336
HcalLutAnalyzer::Ymin
double Ymin
Definition: HcalLutAnalyzer.cc:70
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
cms::cuda::assert
assert(be >=bs)
HcalGenericDetId.h
HcalRecNumberingRecord.h
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
HcalBarrel
Definition: HcalAssistant.h:33
HcalLutAnalyzer::Zmax
double Zmax
Definition: HcalLutAnalyzer.cc:69
LutXml.h
edmScanValgrind.buffer
buffer
Definition: edmScanValgrind.py:171
cc
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
edm::FileInPath
Definition: FileInPath.h:64
histoStyle.doRatio
doRatio
Definition: histoStyle.py:55
MakerMacros.h
h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
HcalLutAnalyzer::pedestals_
std::vector< std::string > pedestals_
Definition: HcalLutAnalyzer.cc:64
ecaldqm::topology
const CaloTopology * topology(nullptr)
HcalLutAnalyzer::Pmin
double Pmin
Definition: HcalLutAnalyzer.cc:72
edm::ESHandle< HcalTopology >
HcalOuter
Definition: HcalAssistant.h:35
HcalLutAnalyzer::~HcalLutAnalyzer
~HcalLutAnalyzer() override
Definition: HcalLutAnalyzer.cc:54
HcalLutAnalyzer::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: HcalLutAnalyzer.cc:93
HcalRecNumberingRecord
Definition: HcalRecNumberingRecord.h:23
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
HcalLutAnalyzer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HcalLutAnalyzer.cc:561
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
HcalLutAnalyzer::HcalLutAnalyzer
HcalLutAnalyzer(const edm::ParameterSet &)
Definition: HcalLutAnalyzer.cc:76
edm::ParameterSet
Definition: ParameterSet.h:36
Event.h
HcalLutAnalyzer::Ymax
double Ymax
Definition: HcalLutAnalyzer.cc:71
HcalDetId.h
HcalGenericDetId::HcalGenTriggerTower
Definition: HcalGenericDetId.h:23
HcalDetId
Definition: HcalDetId.h:12
createfilelist.int
int
Definition: createfilelist.py:10
HcalLutAnalyzer::inputDir
std::string inputDir
Definition: HcalLutAnalyzer.cc:60
HcalLutAnalyzer::tags_
std::vector< std::string > tags_
Definition: HcalLutAnalyzer.cc:62
edm::ParameterSetDescription::setUnknown
void setUnknown()
Definition: ParameterSetDescription.cc:39
IdealGeometryRecord.h
edm::EventSetup
Definition: EventSetup.h:57
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition: JetExtendedAssociation.h:30
get
#define get
HcalObjRepresent::Fill
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:1053
HcalLutAnalyzer::Pmax
double Pmax
Definition: HcalLutAnalyzer.cc:73
HcalLutAnalyzer::respcorrs_
std::vector< std::string > respcorrs_
Definition: HcalLutAnalyzer.cc:66
alignCSCRings.r
r
Definition: alignCSCRings.py:93
photonIsolationHIProducer_cfi.hbhe
hbhe
Definition: photonIsolationHIProducer_cfi.py:8
HcalSubdetector
HcalSubdetector
Definition: HcalAssistant.h:31
HcalForward
Definition: HcalAssistant.h:36
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
HcalTopology.h
funct::D
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:141
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
CaloTopology::valid
bool valid(const DetId &id) const
Is this a valid cell id?
Definition: CaloTopology.cc:74
HcalEndcap
Definition: HcalAssistant.h:34
Frameworkfwd.h
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
HcalGenericDetId::genericSubdet
HcalGenericSubdetector genericSubdet() const
Definition: HcalGenericDetId.cc:21
EventSetup.h
vstring
vector< string > vstring
Definition: ExoticaDQM.cc:8
timingPdfMaker.infile
infile
Definition: timingPdfMaker.py:350
XMLProcessor.h
ztail.d
d
Definition: ztail.py:151
HcalLutAnalyzer::plotsDir
std::string plotsDir
Definition: HcalLutAnalyzer.cc:61
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
ParameterSet.h
HcalLutAnalyzer
Definition: HcalLutAnalyzer.cc:51
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
LutXml
Definition: LutXml.h:27
remoteMonitoring_LED_IterMethod_cfg.threshold
threshold
Definition: remoteMonitoring_LED_IterMethod_cfg.py:426
edm::Event
Definition: Event.h:73
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
newFWLiteAna.base
base
Definition: newFWLiteAna.py:92
HcalLutAnalyzer::quality_
std::vector< std::string > quality_
Definition: HcalLutAnalyzer.cc:63
cuy.ii
ii
Definition: cuy.py:590
edm::FileInPath::fullPath
std::string fullPath() const
Definition: FileInPath.cc:163
HcalLutAnalyzer::gains_
std::vector< std::string > gains_
Definition: HcalLutAnalyzer.cc:65
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
HcalLutAnalyzer::Zmin
double Zmin
Definition: HcalLutAnalyzer.cc:68
HcalTrigTowerDetId
Definition: HcalTrigTowerDetId.h:14