CMS 3D CMS Logo

EcalTPGStripStatus_PayloadInspector.cc
Go to the documentation of this file.
7 
8 // the data format of the condition to be inspected
10 
11 #include "TH2F.h"
12 #include "TCanvas.h"
13 #include "TStyle.h"
14 #include "TLine.h"
15 #include "TLatex.h"
16 
17 #include <string>
18 
19 namespace {
20  enum { NTCC = 108, NTower = 28, NStrip = 5, NXtal = 5 };
21  enum { IX_MIN = 1, IY_MIN = 1, IX_MAX = 100, IY_MAX = 100 }; // endcaps lower and upper bounds on x and y
22 
23  /***********************************************
24  2d plot of ECAL TPGStripStatus of 1 IOV
25  ************************************************/
26  class EcalTPGStripStatusPlot : public cond::payloadInspector::PlotImage<EcalTPGStripStatus> {
27  public:
28  EcalTPGStripStatusPlot() : cond::payloadInspector::PlotImage<EcalTPGStripStatus>("ECAL TPGStripStatus - map ") {
29  setSingleIov(true);
30  }
31 
32  bool fill(const std::vector<std::tuple<cond::Time_t, cond::Hash> >& iovs) override {
33  TH2F* endc_p = new TH2F("EE+", "EE+ TPG Strip Status", IX_MAX, IX_MIN, IX_MAX + 1, IY_MAX, IY_MIN, IY_MAX + 1);
34  TH2F* endc_m = new TH2F("EE-", "EE- TPG Strip Status", IX_MAX, IX_MIN, IX_MAX + 1, IY_MAX, IY_MIN, IY_MAX + 1);
35  int EEstat[2] = {0, 0};
36 
37  std::string mappingFile = "Geometry/EcalMapping/data/EEMap.txt";
38  std::ifstream f(edm::FileInPath(mappingFile).fullPath().c_str());
39  if (!f.good()) {
40  std::cout << "EcalTPGStripStatus File EEMap.txt not found" << std::endl;
41  throw cms::Exception("FileNotFound");
42  }
43 
44  uint32_t rawEE[NTCC][NTower][NStrip][NXtal];
45  int NbrawEE[NTCC][NTower][NStrip];
46  for (int TCC = 0; TCC < NTCC; TCC++)
47  for (int TT = 0; TT < NTower; TT++)
48  for (int ST = 0; ST < NStrip; ST++)
49  NbrawEE[TCC][TT][ST] = 0;
50  while (!f.eof()) {
51  int ix, iy, iz, CL;
52  int dccid, towerid, pseudostrip_in_SC, xtal_in_pseudostrip;
53  int tccid, tower, pseudostrip_in_TCC, pseudostrip_in_TT;
54  f >> ix >> iy >> iz >> CL >> dccid >> towerid >> pseudostrip_in_SC >> xtal_in_pseudostrip >> tccid >> tower >>
55  pseudostrip_in_TCC >> pseudostrip_in_TT;
56  EEDetId detid(ix, iy, iz, EEDetId::XYMODE);
57  uint32_t rawId = detid.denseIndex();
58  if (tccid > NTCC || tower > NTower || pseudostrip_in_TT > NStrip || xtal_in_pseudostrip > NXtal)
59  std::cout << " tccid " << tccid << " tower " << tower << " pseudostrip_in_TT " << pseudostrip_in_TT
60  << " xtal_in_pseudostrip " << xtal_in_pseudostrip << std::endl;
61  else {
62  rawEE[tccid - 1][tower - 1][pseudostrip_in_TT - 1][xtal_in_pseudostrip - 1] = rawId;
63  NbrawEE[tccid - 1][tower - 1][pseudostrip_in_TT - 1]++;
64  }
65  } // read EEMap file
66  f.close();
67  double wei[2] = {0., 0.};
68 
69  auto iov = iovs.front();
70  std::shared_ptr<EcalTPGStripStatus> payload = fetchPayload(std::get<1>(iov));
71  unsigned int run = std::get<0>(iov);
72  if (payload.get()) {
73  const EcalTPGStripStatusMap& stripMap = (*payload).getMap();
74  // std::cout << " tower map size " << stripMap.size() << std::endl;
76  for (itSt = stripMap.begin(); itSt != stripMap.end(); ++itSt) {
77  if (itSt->second > 0) {
78  // let's decode the ID
79  int strip = itSt->first / 8;
80  int pseudostrip = strip & 0x7;
81  strip /= 8;
82  int tt = strip & 0x7F;
83  strip /= 128;
84  int tccid = strip & 0x7F;
85  int NbXtalInStrip = NbrawEE[tccid - 1][tt - 1][pseudostrip - 1];
86  if (NbXtalInStrip != NXtal)
87  std::cout << " Strip TCC " << tccid << " TT " << tt << " ST " << pseudostrip << " Nx Xtals "
88  << NbXtalInStrip << std::endl;
89  // std::cout << " Strip TCC " << tccid << " TT " << tt << " ST " << pseudostrip
90  // << " Nx Xtals " << NbXtalInStrip << std::endl;
91  for (int Xtal = 0; Xtal < NbXtalInStrip; Xtal++) {
92  uint32_t rawId = rawEE[tccid - 1][tt - 1][pseudostrip - 1][Xtal];
93  // std::cout << " rawid " << rawId << std::endl;
95  float x = (float)detid.ix();
96  float y = (float)detid.iy();
97  int iz = detid.zside();
98  if (iz == -1)
99  iz++;
100  if (Xtal == 0)
101  wei[iz] += 1.;
102  if (iz == 0) {
103  endc_m->Fill(x + 0.5, y + 0.5, wei[iz]);
104  EEstat[0]++;
105  } else {
106  endc_p->Fill(x + 0.5, y + 0.5, wei[iz]);
107  EEstat[1]++;
108  }
109  // std::cout << " x " << x << " y " << y << " z " << iz << std::endl;
110  }
111  }
112  }
113  } // payload
114  // std::cout << " nb strip EE- " << wei[0] << " EE+ " << wei[1] << std::endl;
115 
116  gStyle->SetPalette(1);
117  gStyle->SetOptStat(0);
118  const Int_t NRGBs = 5;
119  const Int_t NCont = 255;
120 
121  Double_t stops[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
122  Double_t red[NRGBs] = {0.00, 0.00, 0.87, 1.00, 0.51};
123  Double_t green[NRGBs] = {0.00, 0.81, 1.00, 0.20, 0.00};
124  Double_t blue[NRGBs] = {0.51, 1.00, 0.12, 0.00, 0.00};
125  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
126  gStyle->SetNumberContours(NCont);
127  // TCanvas canvas("CC map","CC map", 1600, 450);
128  Double_t w = 1200;
129  Double_t h = 650;
130  TCanvas canvas("c", "c", w, h);
131  // canvas.SetWindowSize(w + (w - canvas.GetWw()), h + (h - canvas.GetWh()));
132 
133  TLatex t1;
134  t1.SetNDC();
135  t1.SetTextAlign(26);
136  t1.SetTextSize(0.05);
137  t1.DrawLatex(0.5, 0.96, Form("Ecal TPGStripStatus, IOV %i", run));
138 
139  float xmi[2] = {0.0, 0.5};
140  float xma[2] = {0.5, 1.0};
141  TPad** pad = new TPad*;
142  for (int obj = 0; obj < 2; obj++) {
143  pad[obj] = new TPad(Form("p_%i", obj), Form("p_%i", obj), xmi[obj], 0.0, xma[obj], 0.94);
144  pad[obj]->Draw();
145  }
146 
147  pad[0]->cd();
148  DrawEE(endc_m, 0., wei[0]);
149  t1.SetTextSize(0.03);
150  t1.DrawLatex(0.15, 0.92, Form("%i crystals", EEstat[0]));
151  pad[1]->cd();
152  DrawEE(endc_p, 0., wei[1]);
153  t1.DrawLatex(0.15, 0.92, Form("%i crystals", EEstat[1]));
154 
155  std::string ImageName(m_imageFileName);
156  canvas.SaveAs(ImageName.c_str());
157  return true;
158  } // fill method
159  };
160 
161  /***************************************************************
162  2d plot of ECAL TPGStripStatus difference between 2 IOVs
163  ****************************************************************/
164  class EcalTPGStripStatusDiff : public cond::payloadInspector::PlotImage<EcalTPGStripStatus> {
165  public:
166  EcalTPGStripStatusDiff() : cond::payloadInspector::PlotImage<EcalTPGStripStatus>("ECAL TPGStripStatus difference") {
167  setSingleIov(false);
168  }
169 
170  bool fill(const std::vector<std::tuple<cond::Time_t, cond::Hash> >& iovs) override {
171  TH2F* endc_p = new TH2F("EE+", "EE+ TPG Strip Status", IX_MAX, IX_MIN, IX_MAX + 1, IY_MAX, IY_MIN, IY_MAX + 1);
172  TH2F* endc_m = new TH2F("EE-", "EE- TPG Strip Status", IX_MAX, IX_MIN, IX_MAX + 1, IY_MAX, IY_MIN, IY_MAX + 1);
173  int EEstat[2][2] = {{0, 0}, {0, 0}};
174 
175  std::string mappingFile = "Geometry/EcalMapping/data/EEMap.txt";
176  std::ifstream f(edm::FileInPath(mappingFile).fullPath().c_str());
177  if (!f.good()) {
178  std::cout << "EcalTPGStripStatus File EEMap.txt not found" << std::endl;
179  throw cms::Exception("FileNotFound");
180  }
181 
182  uint32_t rawEE[NTCC][NTower][NStrip][NXtal];
183  int NbrawEE[NTCC][NTower][NStrip];
184  for (int TCC = 0; TCC < NTCC; TCC++)
185  for (int TT = 0; TT < NTower; TT++)
186  for (int ST = 0; ST < NStrip; ST++)
187  NbrawEE[TCC][TT][ST] = 0;
188  while (!f.eof()) {
189  int ix, iy, iz, CL;
190  int dccid, towerid, pseudostrip_in_SC, xtal_in_pseudostrip;
191  int tccid, tower, pseudostrip_in_TCC, pseudostrip_in_TT;
192  f >> ix >> iy >> iz >> CL >> dccid >> towerid >> pseudostrip_in_SC >> xtal_in_pseudostrip >> tccid >> tower >>
193  pseudostrip_in_TCC >> pseudostrip_in_TT;
194  EEDetId detid(ix, iy, iz, EEDetId::XYMODE);
195  uint32_t rawId = detid.denseIndex();
196  if (tccid > NTCC || tower > NTower || pseudostrip_in_TT > NStrip || xtal_in_pseudostrip > NXtal)
197  std::cout << " tccid " << tccid << " tower " << tower << " pseudostrip_in_TT " << pseudostrip_in_TT
198  << " xtal_in_pseudostrip " << xtal_in_pseudostrip << std::endl;
199  else {
200  rawEE[tccid - 1][tower - 1][pseudostrip_in_TT - 1][xtal_in_pseudostrip - 1] = rawId;
201  NbrawEE[tccid - 1][tower - 1][pseudostrip_in_TT - 1]++;
202  }
203  } // read EEMap file
204  f.close();
205 
206  unsigned int run[2] = {0, 0}, irun = 0;
207  int vEE[100];
208  int istat = 0;
209  for (auto const& iov : iovs) {
210  std::shared_ptr<EcalTPGStripStatus> payload = fetchPayload(std::get<1>(iov));
211  run[irun] = std::get<0>(iov);
212  if (payload.get()) {
213  const EcalTPGStripStatusMap& stripMap = (*payload).getMap();
214  // std::cout << " tower map size " << stripMap.size() << std::endl;
216  for (itSt = stripMap.begin(); itSt != stripMap.end(); ++itSt) {
217  if (itSt->second > 0) {
218  int ID = itSt->first / 8;
219  if (irun == 0 && istat < 100) {
220  vEE[istat] = ID;
221  // std::cout << " strip " << ID << " found in run 1" << std::endl;
222  istat++;
223  if (istat == 100)
224  std::cout << " limit on number of strips reached, stop keeping others" << std::endl;
225  } else {
226  bool found = false;
227  for (int is = 0; is < istat; is++) {
228  // std::cout << " checking " << ID << " against " << vEE[is] << std::endl;
229  if (vEE[is] == ID) {
230  // std::cout << " strip " << ID << " already in run 1" << std::endl;
231  found = true;
232  vEE[is] = -1;
233  break;
234  }
235  }
236  if (!found) {
237  // std::cout << " strip " << ID << " new, plot it" << std::endl;
238  // let's decode the ID
239  int strip = ID;
240  int pseudostrip = strip & 0x7;
241  strip /= 8;
242  int tt = strip & 0x7F;
243  strip /= 128;
244  int tccid = strip & 0x7F;
245  int NbXtalInStrip = NbrawEE[tccid - 1][tt - 1][pseudostrip - 1];
246  if (NbXtalInStrip != NXtal)
247  std::cout << " Strip TCC " << tccid << " TT " << tt << " ST " << pseudostrip << " Nx Xtals "
248  << NbXtalInStrip << std::endl;
249  for (int Xtal = 0; Xtal < NbXtalInStrip; Xtal++) {
250  uint32_t rawId = rawEE[tccid - 1][tt - 1][pseudostrip - 1][Xtal];
251  // std::cout << " rawid " << rawId << std::endl;
252  EEDetId detid = EEDetId::detIdFromDenseIndex(rawId);
253  float x = (float)detid.ix();
254  float y = (float)detid.iy();
255  int iz = detid.zside();
256  if (iz == -1)
257  iz++;
258  if (iz == 0) {
259  endc_m->Fill(x + 0.5, y + 0.5, 1.);
260  EEstat[0][0]++;
261  } else {
262  endc_p->Fill(x + 0.5, y + 0.5, 1.);
263  EEstat[1][0]++;
264  }
265  // std::cout << " x " << x << " y " << y << " z " << iz << std::endl;
266  } // loop over crystals in strip
267  } // new strip
268  } // second run
269  }
270  } // loop over strips
271  } // payload
272  else
273  return false;
274  irun++;
275  // std::cout << " nb of strips " << istat << std::endl;
276  } // loop over IOVs
277 
278  // now check if strips have disappered
279  for (int is = 0; is < istat; is++) {
280  if (vEE[is] != -1) {
281  // std::cout << " strip " << vEE[is] << " not found in run 2, plot it" << std::endl;
282  // let's decode the ID
283  int strip = vEE[is];
284  int pseudostrip = strip & 0x7;
285  strip /= 8;
286  int tt = strip & 0x7F;
287  strip /= 128;
288  int tccid = strip & 0x7F;
289  int NbXtalInStrip = NbrawEE[tccid - 1][tt - 1][pseudostrip - 1];
290  if (NbXtalInStrip != NXtal)
291  std::cout << " Strip TCC " << tccid << " TT " << tt << " ST " << pseudostrip << " Nx Xtals "
292  << NbXtalInStrip << std::endl;
293  for (int Xtal = 0; Xtal < NbXtalInStrip; Xtal++) {
294  uint32_t rawId = rawEE[tccid - 1][tt - 1][pseudostrip - 1][Xtal];
295  // std::cout << " rawid " << rawId << std::endl;
296  EEDetId detid = EEDetId::detIdFromDenseIndex(rawId);
297  float x = (float)detid.ix();
298  float y = (float)detid.iy();
299  int iz = detid.zside();
300  if (iz == -1)
301  iz++;
302  if (iz == 0) {
303  endc_m->Fill(x + 0.5, y + 0.5, -1.);
304  EEstat[0][1]++;
305  } else {
306  endc_p->Fill(x + 0.5, y + 0.5, -1.);
307  EEstat[1][1]++;
308  }
309  // std::cout << " x " << x << " y " << y << " z " << iz << std::endl;
310  } // loop over crystals in strip
311  } // new strip
312  } // loop over run 1 strips
313 
314  gStyle->SetPalette(1);
315  gStyle->SetOptStat(0);
316  const Int_t NRGBs = 5;
317  const Int_t NCont = 255;
318 
319  Double_t stops[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00};
320  Double_t red[NRGBs] = {0.00, 0.00, 0.87, 1.00, 0.51};
321  Double_t green[NRGBs] = {0.00, 0.81, 1.00, 0.20, 0.00};
322  Double_t blue[NRGBs] = {0.51, 1.00, 0.12, 0.00, 0.00};
323  TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont);
324  gStyle->SetNumberContours(NCont);
325  // TCanvas canvas("CC map","CC map", 1600, 450);
326  Double_t w = 1200;
327  Double_t h = 650;
328  TCanvas canvas("c", "c", w, h);
329  // canvas.SetWindowSize(w + (w - canvas.GetWw()), h + (h - canvas.GetWh()));
330 
331  TLatex t1;
332  t1.SetNDC();
333  t1.SetTextAlign(26);
334  t1.SetTextSize(0.05);
335  t1.DrawLatex(0.5, 0.96, Form("Ecal TPGStripStatus, IOV %i - %i", run[1], run[0]));
336 
337  float xmi[2] = {0.0, 0.5};
338  float xma[2] = {0.5, 1.0};
339  TPad** pad = new TPad*;
340  for (int obj = 0; obj < 2; obj++) {
341  pad[obj] = new TPad(Form("p_%i", obj), Form("p_%i", obj), xmi[obj], 0.0, xma[obj], 0.94);
342  pad[obj]->Draw();
343  }
344 
345  pad[0]->cd();
346  DrawEE(endc_m, -1.0, 1.0);
347  t1.SetTextSize(0.03);
348  t1.DrawLatex(0.15, 0.92, Form("new %i old %i", EEstat[0][0], EEstat[0][1]));
349  pad[1]->cd();
350  DrawEE(endc_p, -1.0, 1.0);
351  t1.DrawLatex(0.15, 0.92, Form("new %i old %i", EEstat[1][0], EEstat[1][1]));
352 
353  std::string ImageName(m_imageFileName);
354  canvas.SaveAs(ImageName.c_str());
355  return true;
356  } // fill method
357  };
358 
359  /*****************************************
360  2d plot of EcalTPGStripStatus Error Summary of 1 IOV
361  ******************************************/
362  class EcalTPGStripStatusSummaryPlot : public cond::payloadInspector::PlotImage<EcalTPGStripStatus> {
363  public:
364  EcalTPGStripStatusSummaryPlot()
365  : cond::payloadInspector::PlotImage<EcalTPGStripStatus>("Ecal TPGStrip Status Summary - map ") {
366  setSingleIov(true);
367  }
368 
369  bool fill(const std::vector<std::tuple<cond::Time_t, cond::Hash> >& iovs) override {
370  auto iov = iovs.front(); //get reference to 1st element in the vector iovs
371  std::shared_ptr<EcalTPGStripStatus> payload =
372  fetchPayload(std::get<1>(iov)); //std::get<1>(iov) refers to the Hash in the tuple iov
373  unsigned int run = std::get<0>(iov); //referes to Time_t in iov.
374  TH2F* align; //pointer to align which is a 2D histogram
375 
376  int NbRows = 1;
377  int NbColumns = 2;
378 
379  if (payload.get()) { //payload is an iov retrieved from payload using hash.
380  const EcalTPGStripStatusMap& stripMap = (*payload).getMap();
381 
382  align = new TH2F("Ecal TPGStrip Status Summary",
383  "Total NumberOfMasked",
384  NbColumns,
385  0,
386  NbColumns,
387  NbRows,
388  0,
389  NbRows);
390 
391  int NbMaskedTT = 0;
392 
393  for (EcalTPGStripStatusMapIterator it = stripMap.begin(); it != stripMap.end(); ++it)
394  if ((*it).second > 0)
395  NbMaskedTT++;
396 
397  align->Fill(0.5, 0.5, stripMap.size());
398  align->Fill(1.5, 0.5, NbMaskedTT);
399 
400  } // if payload.get()
401  else
402  return false;
403 
404  gStyle->SetPalette(1);
405  gStyle->SetOptStat(0);
406  TCanvas canvas("CC map", "CC map", 1000, 1000);
407  TLatex t1;
408  t1.SetNDC();
409  t1.SetTextAlign(26);
410  t1.SetTextSize(0.04);
411  t1.SetTextColor(2);
412  t1.DrawLatex(0.5, 0.96, Form("Endcap:Number of masked Trigger Strips, IOV %i", run));
413 
414  TPad* pad = new TPad("pad", "pad", 0.0, 0.0, 1.0, 0.94);
415  pad->Draw();
416  pad->cd();
417  align->Draw("TEXT");
418 
419  drawTable(NbRows, NbColumns);
420 
421  align->GetXaxis()->SetTickLength(0.);
422  align->GetXaxis()->SetLabelSize(0.);
423  align->GetYaxis()->SetTickLength(0.);
424  align->GetYaxis()->SetLabelSize(0.);
425 
426  std::string ImageName(m_imageFileName);
427  canvas.SaveAs(ImageName.c_str());
428  return true;
429  } // fill method
430  };
431 
432 } // namespace
433 
434 // Register the classes as boost python plugin
436  PAYLOAD_INSPECTOR_CLASS(EcalTPGStripStatusPlot);
437  PAYLOAD_INSPECTOR_CLASS(EcalTPGStripStatusDiff);
438  PAYLOAD_INSPECTOR_CLASS(EcalTPGStripStatusSummaryPlot);
439 }
svgfig.canvas
def canvas(*sub, **attr)
Definition: svgfig.py:482
EcalTPGStripStatusMap
std::map< uint32_t, uint16_t > EcalTPGStripStatusMap
Definition: EcalTPGStripStatus.h:24
DDAxes::y
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
align
Definition: AlignableIndexer.h:30
groupFilesInBlocks.tt
int tt
Definition: groupFilesInBlocks.py:144
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
IX_MAX
Definition: EcalFloatCondObjectContainerUtils.h:20
IY_MAX
Definition: EcalFloatCondObjectContainerUtils.h:21
contentValuesFiles.fullPath
fullPath
Definition: contentValuesFiles.py:64
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
PayloadInspector.h
gather_cfg.cout
cout
Definition: gather_cfg.py:144
EBDetId.h
EEDetId.h
hgcalTowerProducer_cfi.tower
tower
Definition: hgcalTowerProducer_cfi.py:3
PAYLOAD_INSPECTOR_CLASS
#define PAYLOAD_INSPECTOR_CLASS(CLASS_NAME)
Definition: PayloadInspectorModule.h:10
DDAxes::x
EEDetId::ix
int ix() const
Definition: EEDetId.h:77
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
PayloadInspectorModule.h
electronCompare.red
red
Definition: electronCompare.py:135
L1DTConfigBti_cff.CL
CL
Definition: L1DTConfigBti_cff.py:39
DrawEE
void DrawEE(TH2F *endc, float min, float max)
Definition: EcalDrawUtils.h:29
FileInPath.h
EEDetId::denseIndex
uint32_t denseIndex() const
Definition: EEDetId.h:192
EEDetId::detIdFromDenseIndex
static EEDetId detIdFromDenseIndex(uint32_t din)
Definition: EEDetId.h:220
edm::FileInPath
Definition: FileInPath.h:64
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
w
const double w
Definition: UKUtility.cc:23
jets_cff.payload
payload
Definition: jets_cff.py:34
h
EEDetId::zside
int zside() const
Definition: EEDetId.h:71
PAYLOAD_INSPECTOR_MODULE
#define PAYLOAD_INSPECTOR_MODULE(PAYLOAD_TYPENAME)
Definition: PayloadInspectorModule.h:8
getGTfromDQMFile.obj
obj
Definition: getGTfromDQMFile.py:32
EEDetId
Definition: EEDetId.h:14
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
cond
Definition: plugin.cc:23
align::ID
uint32_t ID
Definition: Definitions.h:24
IY_MIN
Definition: EcalFloatCondObjectContainerUtils.h:19
cond::payloadInspector::PlotImage::fetchPayload
std::shared_ptr< PayloadType > fetchPayload(const cond::Hash &payloadHash)
Definition: PayloadInspector.h:840
EcalTPGStripStatusMapIterator
std::map< uint32_t, uint16_t >::const_iterator EcalTPGStripStatusMapIterator
Definition: EcalTPGStripStatus.h:25
electronCompare.blue
blue
Definition: electronCompare.py:137
EcalDrawUtils.h
EcalTPGStripStatus.h
csctfunpacker_cfi.mappingFile
mappingFile
Definition: csctfunpacker_cfi.py:14
EEDetId::iy
int iy() const
Definition: EEDetId.h:83
writedatasetfile.run
run
Definition: writedatasetfile.py:27
EEDetId::XYMODE
static const int XYMODE
Definition: EEDetId.h:335
cond::payloadInspector::PlotImpl::fill
virtual bool fill()=0
drawTable
void drawTable(int nbRows, int nbColumns)
Definition: EcalDrawUtils.h:91
Exception
Definition: hltDiff.cc:246
cond::payloadInspector::PlotImage
Definition: PayloadInspector.h:829
EcalTPGStripStatus
Definition: EcalTPGStripStatus.h:9
IX_MIN
Definition: EcalFloatCondObjectContainerUtils.h:18