CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TPTask.cc
Go to the documentation of this file.
1 
3 
4 using namespace hcaldqm;
6  DQTask(ps)
7 {
8  // Et
9  _cEtData_SubDet.initialize(_name+"/Et/SubDet_Data", "Et",
13  _cEtEmul_SubDet.initialize(_name+"/Et/SubDet_Data", "Et",
17  _cEtCorr_TPSubDet.initialize(_name+"/EtCorrelation/TPSubDet",
18  "EtCorrelation",
22  _cEtCorrRatiovsLS_TPSubDet.initialize(_name+"/EtCorrRatio/vsLS_TPSubDet",
23  "EtCorrelationRatio", mapper::fTPSubDet,
26  _cEtCorrRatio_TPSubDet.initialize(_name+"/EtCorrRatio/TPSubDet",
27  "EtCorrelationRatio", mapper::fTPSubDet,
31  _name+"/EtCorrRatio/vsiphi_TPSubDetPM",
32  "EtCorrelationRatio", mapper::fTPSubDetPM,
35  _cEtMsm.initialize(_name+"/EtMisMatched", "EtMismatched",
39  _cNumEtMsmvsLS_TPSubDet.initialize(_name+"/EtMismatched/vsLS_TPSubDet",
40  "EtMismatched", mapper::fTPSubDet,
43  _cNumEtMsm_TPSubDet.initialize(_name+"/EtMismatched/TPSubDet",
44  "EtMismatched", mapper::fTPSubDet,
48  _name+"/EtMismatched/vsiphi_TPSubDetPM",
49  "EtMismatched", mapper::fTPSubDetPM,
52  _cSumdEtvsLS_TPSubDet.initialize(_name+"/SumdEt/vsLS_TPSubDet",
53  "SumdEt", mapper::fTPSubDet,
56  _cSumdEt_TPSubDet.initialize(_name+"/SumdEt/TPSubDet",
57  "SumdEt", mapper::fTPSubDet,
60  _cEtData_SubDetPM_iphi.initialize(_name+"/Et/SubDetPM_iphi_Data", "Et",
64  _cEtData_SubDet_ieta.initialize(_name+"/Et/SubDet_ieta_Data", "Et",
68 
69  // FG
70  _cFGCorr_SubDet.initialize(_name+"/FGCorrelation/SubDet", "FG",
74  _cFGMsm.initialize(_name+"/FGMisMatched", "FGMismatched",
78 
79  // Occupancy
80  _cOccupancyData.initialize(_name+"/Occupancy/Data", "Occupancy",
84  _cOccupancyEmul.initialize(_name+"/Occupancy/Emul", "Occupancy",
89  _name+"/Occupancy/vsiphi_TPSubDetPM_Data",
90  "Occupancy", mapper::fTPSubDetPM,
93  _name+"/Occupancy/vsiphi_TPSubDetPM_Emul",
94  "Occupancy", mapper::fTPSubDetPM,
97  _name+"/Occupancy/vsLS_TPSubDet_Data",
98  "Occupancy", mapper::fTPSubDet,
102  _name+"/Occupancy/vsLS_TPSubDet_Emul",
103  "Occupancy", mapper::fTPSubDet,
106  _cMsData.initialize(_name+"/Missing/Data", "Missing",
111  _name+"/Missing/vsiphi_TPSubDetPM_Data",
112  "Missing", mapper::fTPSubDetPM,
115  _cMsEmul.initialize(_name+"/Missing/Emul", "Missing",
119 
120  // Digi Sizes
121  _cDigiSizeDatavsLS_TPSubDet.initialize(_name+"/DigiSize/vsLS_TPSubDet_Data",
122  "DigiSize", mapper::fTPSubDet,
125  _cDigiSizeEmulvsLS_TPSubDet.initialize(_name+"/DigiSize/vsLS_TPSubDet_Emul",
126  "DigiSize", mapper::fTPSubDet,
129 
130  // Summary
131  _cSummary.initialize(_name+"/Summary", "Summary",
133  new axis::FlagAxis(axis::fYaxis, "Flag", int(nTPFlag)));
134  _cSummaryvsLS_TPSubDet.initialize(_name+"/Summary/vsLS_TPSubDet", "Summary",
137  new axis::FlagAxis(axis::fYaxis, "Flag", int(nTPFlag)));
138 
139  // tags
141  edm::InputTag("hcalDigis"));
143  edm::InputTag("emulDigis"));
144  _tokData = consumes<HcalTrigPrimDigiCollection>(_tagData);
145  _tokEmul = consumes<HcalTrigPrimDigiCollection>(_tagEmul);
146 
147  // Special
148  _skip1x1 = ps.getUntrackedParameter<bool>("skip1x1", true);
149 
150  // flags
151  _fNames.push_back("Occ. iphi Uniform. D");
152  _fNames.push_back("Occ. iphi Uniform. E");
153  _fNames.push_back("Low Occupancy E");
154  _fNames.push_back("Corr. Ratio");
155  _fNames.push_back("Corr. Ratio iphi Uniform");
156  _fNames.push_back("Msm. Et iphi Uniform. ");
157  _fNames.push_back("Msm. Et Number");
158  _fNames.push_back("Missing iphi Uniform. D");
161 }
162 
164  edm::Run const& r, edm::EventSetup const& es)
165 {
166  DQTask::bookHistograms(ib, r, es);
167  _cEtData_SubDet.book(ib);
168  _cEtEmul_SubDet.book(ib);
173  _cEtMsm.book(ib);
181  _cFGCorr_SubDet.book(ib);
182  _cFGMsm.book(ib);
183  _cOccupancyData.book(ib);
184  _cOccupancyEmul.book(ib);
189  _cMsData.book(ib);
190  _cMsEmul.book(ib);
192 
195 
196  _cSummary.book(ib);
198 }
199 
200 /* virtual */ void TPTask::_process(edm::Event const& e,
201  edm::EventSetup const &es)
202 {
205 
206  if (!e.getByToken(_tokData, ctpd))
207  _logger.dqmthrow("Collection HcalTrigPrimDigiCollection isn't available"
208  + _tagData.label() + " " + _tagData.instance());
209  if (!e.getByToken(_tokEmul, ctpe))
210  _logger.dqmthrow("Collection HcalTrigPrimDigiCollection isn't available"
211  + _tagEmul.label() + " " + _tagEmul.instance());
212 
213  // tmp
214  bool useD1 = false;
215  // tmp
216 
217 
218  // iterate thru the Data Digis
219  double sumdEt[2] = {0, 0};
220  for (HcalTrigPrimDigiCollection::const_iterator hddigi=ctpd->begin();
221  hddigi!=ctpd->end(); ++hddigi)
222  {
223  // tmpt
224  if (_skip1x1)
225  if (hddigi->id().depth()==10) // 10 is the depth for 1x1 TPs
226  continue;
227  //\tmp
228 
229  // get quantities
230  int soiEt_d = hddigi->SOI_compressedEt();
231  int soiFG_d = hddigi->SOI_fineGrain() ? 1 : 0;
232  HcalTrigTowerDetId tid = hddigi->id();
233  // NOTE: skip1x1 should've done that - in the emap it's depth10
234  // in data in 80X it's 0 for some reason!!!
235  // skip using version number
236  if (tid.version()>0)
237  continue;
238 
239  // tmp
240  if (hddigi->id().depth()==1)
241  useD1 = true;
242  //\tmp
243 
244  // fill individual
245  _cEtData_SubDet.fill(tid, soiEt_d);
246  _cEtData_SubDetPM_iphi.fill(tid, soiEt_d);
247  _cEtData_SubDet_ieta.fill(tid, soiEt_d);
248  _cOccupancyData.fill(tid);
251  _cDigiSizeDatavsLS_TPSubDet.fill(tid, _currentLS, hddigi->size());
252 
253  // now, find the emulator digi and compare
255  ctpe->find(HcalTrigTowerDetId(tid.ieta(),
256  tid.iphi(), 0));
257 
258  if (hedigi!=ctpe->end())
259  {
260  int soiEt_e = hedigi->SOI_compressedEt();
261  int soiFG_e = hedigi->SOI_fineGrain() ? 1 : 0;
262  double rEt = double(std::min(soiEt_d, soiEt_e))/
263  double(std::max(soiEt_e, soiEt_d));
264  sumdEt[utilities::getTPSubDet(tid)]+=std::abs(soiEt_e-soiEt_d);
265 
266  // fill correlations
267  _cEtEmul_SubDet.fill(tid, soiEt_e);
268  _cEtCorr_TPSubDet.fill(tid, soiEt_e, soiEt_d);
269  _cFGCorr_SubDet.fill(tid, soiFG_e, soiFG_d);
270  _cOccupancyEmul.fill(tid);
272  _cEtCorrRatio_TPSubDet.fill(tid, rEt);
276  _cDigiSizeEmulvsLS_TPSubDet.fill(tid, _currentLS, hedigi->size());
277 
278  // fill those that mismatched
279  if (soiEt_d!=soiEt_e)
280  {
281  _cEtMsm.fill(tid);
284  }
285  if (soiFG_d!=soiEt_e)
286  {
287  _cFGMsm.fill(hddigi->id());
289  }
290  }
291  else
292  {
293  _cMsEmul.fill(hddigi->id());
294  }
295  }
296 
297  // iterate thru the Emulator Digis
298  for (HcalTrigPrimDigiCollection::const_iterator hedigi=ctpe->begin();
299  hedigi!=ctpe->end(); ++hedigi)
300  {
301  // tmp
302  if (_skip1x1)
303  if (hedigi->id().depth()==10) // 10 for 1x1
304  continue;
305  // \tmp
306 
307  // now, find the emulator digi and compare
308  // tmp
310  ctpd->find(HcalTrigTowerDetId(hedigi->id().ieta(),
311  hedigi->id().iphi(), useD1 ? 1: 0));
312  // \tmp
313 
314  // we have to only check those that are missing
315  if (hddigi==ctpd->end())
316  {
317  _cMsData.fill(hedigi->id());
318  _cMsDatavsiphi_TPSubDetPM.fill(hedigi->id());
320  _nTPs_Emul[utilities::getTPSubDet(hedigi->id())]++;
322  hedigi->size());
323  }
324  }
325 
326  // fill per event quantities
328  _currentLS, _nTPs_Data[0]);
330  _currentLS, _nTPs_Data[1]);
332  _currentLS, _nTPs_Emul[0]);
334  _currentLS, _nTPs_Emul[1]);
336  _currentLS, _nMsmEt[0]);
338  _currentLS, _nMsmEt[1]);
342  sumdEt[0]);
344  sumdEt[1]);
346  sumdEt[0]);
348  sumdEt[1]);
349 }
350 
352  edm::EventSetup const& es)
353 {
354  // statuses
356  for (unsigned int i=0; i<constants::TPSUBDET_NUM; i++)
357  for (int j=fOccUniphi_Data; j<nTPFlag; j++)
358  status[i][j] = constants::NOT_APPLICABLE;
359 
360  /*
361  * Do the checks here
362  * -> iphi Uniformity of the Data HF Occupancy
363  * -> iphi Uniformity of the Emul HF Occupancy
364  * -> Low Occupancy for HF Emulator (Data is ZSs)
365  * -> Correlation Ratio vs LS check
366  * -> Correlation Ratio Uniformity
367  * -> iphi Uniformity for the number of mismatches
368  * -> iphi Uniformity for Missing Data
369  * -> iphi Uniformity for Missing Emul
370  */
371 
372  // Low Occp for HF Emul
374  double numChs = meocpHF->getBinContent(_currentLS);
375  if (constants::TPCHS_NUM[1] - numChs>=4)
376  status[1][fLowOcp_Emul] = constants::VERY_LOW;
377  else if (constants::TPCHS_NUM[1] - numChs>=1)
378  status[1][fLowOcp_Emul] = constants::LOW;
379  else if (constants::TPCHS_NUM[1]-numChs<0)
380  status[1][fLowOcp_Emul] = constants::LOW;
381  else if (constants::TPCHS_NUM[1]==numChs)
382  status[1][fLowOcp_Emul] = constants::GOOD;
383 
384  // iphi Occupancy Uniformity for Data/Emul HF
385  bool nonUni_d = false;
386  bool nonUni_e = false;
387  bool nonUniMsm = false;
388  bool nonUniMsn = false;
389  for (int i=1; i<=69; i+=8)
390  {
391  int i1= i;
392  int i2 = (i+4)%IPHI_NUM;
393 
394  double occ1_m_d = _cOccupancyDatavsiphi_TPSubDetPM.getBinContent(2, i1);
395  double occ2_m_d = _cOccupancyDatavsiphi_TPSubDetPM.getBinContent(2, i2);
396  double ratio_m_d = std::min(occ1_m_d, occ2_m_d)/
397  std::max(occ1_m_d, occ2_m_d);
398  double occ1_p_d = _cOccupancyDatavsiphi_TPSubDetPM.getBinContent(3, i1);
399  double occ2_p_d = _cOccupancyDatavsiphi_TPSubDetPM.getBinContent(3, i2);
400  double ratio_p_d = std::min(occ1_p_d, occ2_p_d)/
401  std::max(occ1_p_d, occ2_p_d);
402 
403  double occ1_m_e = _cOccupancyEmulvsiphi_TPSubDetPM.getBinContent(2, i1);
404  double occ2_m_e = _cOccupancyEmulvsiphi_TPSubDetPM.getBinContent(2, i2);
405  double ratio_m_e = std::min(occ1_m_e, occ2_m_e)/
406  std::max(occ1_m_e, occ2_m_e);
407  double occ1_p_e = _cOccupancyEmulvsiphi_TPSubDetPM.getBinContent(3, i1);
408  double occ2_p_e = _cOccupancyEmulvsiphi_TPSubDetPM.getBinContent(3, i2);
409  double ratio_p_e = std::min(occ1_p_e, occ2_p_e)/
410  std::max(occ1_p_e, occ2_p_e);
411 
412  double msm1_m = _cNumEtMsmvsiphi_TPSubDetPM.getBinContent(2, i1);
413  double msm2_m = _cNumEtMsmvsiphi_TPSubDetPM.getBinContent(2, i2);
414  double msmratio_m = std::min(msm1_m, msm2_m)/
415  std::max(msm1_m, msm2_m);
416  double msm1_p = _cNumEtMsmvsiphi_TPSubDetPM.getBinContent(3, i1);
417  double msm2_p = _cNumEtMsmvsiphi_TPSubDetPM.getBinContent(3, i2);
418  double msmratio_p = std::min(msm1_p, msm2_p)/
419  std::max(msm1_p, msm2_p);
420 
421  double msn1_m = _cMsDatavsiphi_TPSubDetPM.getBinContent(2, i1);
422  double msn2_m = _cMsDatavsiphi_TPSubDetPM.getBinContent(2, i2);
423  double msnratio_m = std::min(msn1_m, msn2_m)/
424  std::max(msn1_m, msn2_m);
425  double msn1_p = _cMsDatavsiphi_TPSubDetPM.getBinContent(3, i1);
426  double msn2_p = _cMsDatavsiphi_TPSubDetPM.getBinContent(3, i2);
427  double msnratio_p = std::min(msn1_p, msn2_p)/
428  std::max(msn1_p, msn2_p);
429 
430  if (ratio_m_d<0.8 || ratio_p_d<0.8)
431  nonUni_d = true;
432  else
433  status[1][fOccUniphi_Data] = constants::GOOD;
434  if (ratio_m_e<0.8 || ratio_p_e<0.8)
435  nonUni_e = true;
436  else
437  status[1][fOccUniphi_Emul] = constants::GOOD;
438  if (msmratio_m<0.8 || msmratio_p<0.8)
439  nonUniMsm = true;
440  else
441  status[1][fMsmEtUniphi] = constants::GOOD;
442  if (msnratio_m<0.8 || msnratio_p<0.8)
443  nonUniMsn = true;
444  else
445  status[1][fMsnUniphi_Data] = constants::GOOD;
446  }
447 
448  // set status if any of the flags was set
449  if (nonUni_d)
451  if (nonUni_e)
453  if (nonUniMsm)
454  status[1][fMsmEtUniphi] = constants::LOW;
455  if (nonUniMsn)
456  status[1][fMsnUniphi_Data] = constants::LOW;
457 
458 
459  // Correlation Ratio
460  double ratio_HBHE = _cEtCorrRatiovsLS_TPSubDet.at(0)
462  double ratio_HF = _cEtCorrRatiovsLS_TPSubDet.at(1)
464  if (ratio_HBHE<0.7)
465  status[0][fCorrRatio] = constants::LOW;
466  else if (ratio_HBHE<0.8)
467  status[0][fCorrRatio] = constants::PROBLEMATIC;
468  else
469  status[0][fCorrRatio] = constants::GOOD;
470  if (ratio_HF<0.8)
471  status[1][fCorrRatio] = constants::LOW;
472  else if (ratio_HF<0.9)
473  status[1][fCorrRatio] = constants::PROBLEMATIC;
474  else
475  status[1][fCorrRatio] = constants::GOOD;
476 
477  // Number of Mismatches
478  double ratio_nmsm_HBHE = _cNumEtMsmvsLS_TPSubDet.at(0)
480  double ratio_nmsm_HF = _cNumEtMsmvsLS_TPSubDet.at(1)
482  if (ratio_nmsm_HBHE>=0.2)
483  status[0][fMsmEtNum] = constants::VERY_LOW;
484  else if (ratio_nmsm_HBHE>=0.1)
485  status[0][fMsmEtNum] = constants::LOW;
486  else if (ratio_nmsm_HBHE>=0.05)
487  status[0][fMsmEtNum] = constants::PROBLEMATIC;
488  else
489  status[0][fMsmEtNum] = constants::GOOD;
490  if (ratio_nmsm_HF>=0.1)
491  status[1][fMsmEtNum] = constants::LOW;
492  else if (ratio_nmsm_HF>=0.05)
493  status[1][fMsmEtNum] = constants::PROBLEMATIC;
494  else
495  status[1][fMsmEtNum] = constants::GOOD;
496 
497  // finally set all the statuses
498  for (unsigned int i=0; i<constants::TPSUBDET_NUM; i++)
499  for (int j=fOccUniphi_Data; j<nTPFlag; j++)
500  {
501  _cSummary.setBinContent(i, j, status[i][j]);
503  status[i][j]);
504  }
505 
506  DQTask::endLuminosityBlock(l, es);
507 }
508 
509 /* virtual */ void TPTask::_resetMonitors(UpdateFreq uf)
510 {
511  switch (uf)
512  {
513  case fEvent:
514  for (unsigned int idet=0; idet<constants::TPSUBDET_NUM; idet++)
515  {
516  _nMsmEt[idet] = 0;
517  _nMsmFG[idet] = 0;
518  _nTPs_Data[idet] = 0;
519  _nTPs_Emul[idet] = 0;
520  }
521  break;
522  case hcaldqm::fLS:
523  break;
524  case hcaldqm::f10LS:
525  break;
526  default:
527  break;
528  }
529 
530  DQTask::_resetMonitors(uf);
531 }
532 
534 
535 
double const LOW
Definition: Constants.h:17
virtual void initialize(std::string const &folder, std::string const &nametitle, mapper::MapperType mt, axis::Axis *xaxis, axis::Axis *yaxis=new axis::ValueAxis(axis::fYaxis, axis::fEntries), int debug=0)
Container1D _cSumdEt_TPSubDet
Definition: TPTask.h:79
Container1D _cNumEtMsmvsiphi_TPSubDetPM
Definition: TPTask.h:77
virtual void initialize(std::string const &folder, std::string const &nametitle, axis::Axis *xaxis, axis::Axis *yaxis=new CoordinateAxis(fYaxis, axis::fiphi), axis::Axis *zaxis=new ValueAxis(fZaxis, fEntries), int debug=0)
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
bool _skip1x1
Definition: TPTask.h:62
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
Definition: Container2D.cc:233
int const IPHI_NUM
Definition: Constants.h:100
int _nMsmEt[constants::TPSUBDET_NUM]
Definition: TPTask.h:56
edm::InputTag _tagData
Definition: TPTask.h:50
virtual void initialize(std::string const &folder, std::string nametitle, mapper::MapperType mt, axis::Axis *xaxis, axis::Axis *yaxis=new axis::CoordinateAxis(axis::fYaxis, axis::fiphi), axis::Axis *zaxis=new axis::ValueAxis(axis::fZaxis, axis::fEntries), int debug=0)
Definition: Container2D.cc:30
int ib
Definition: cuy.py:660
Container1D _cEtData_SubDetPM_iphi
Definition: TPTask.h:81
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
Definition: Container1D.cc:198
ContainerSingle2D _cMsData
Definition: TPTask.h:95
double const VERY_LOW
Definition: Constants.h:18
int const TPCHS_NUM[TPSUBDET_NUM]
Definition: Constants.h:137
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
edm::EDGetTokenT< HcalTrigPrimDigiCollection > _tokData
Definition: TPTask.h:52
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
Container1D _cOccupancyEmulvsiphi_TPSubDetPM
Definition: TPTask.h:92
std::vector< std::string > _fNames
Definition: TPTask.h:65
ContainerProf1D _cNumEtMsmvsLS_TPSubDet
Definition: TPTask.h:75
UpdateFreq
Definition: DQTask.h:16
std::vector< HcalTriggerPrimitiveDigi >::const_iterator const_iterator
Container1D _cEtEmul_SubDet
Definition: TPTask.h:69
int ieta() const
get the tower ieta
virtual void setBinContent(int, int, double)
virtual void loadLabels(std::vector< std::string > const &)
void bookHistograms(fwlite::EventContainer &eventCont)
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: TPTask.cc:351
ContainerSingle2D _cOccupancyEmul
Definition: TPTask.h:90
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
ContainerSingle2D _cFGMsm
Definition: TPTask.h:86
virtual void fill(HcalDetId const &)
Definition: Container2D.cc:39
Container1D _cMsDatavsiphi_TPSubDetPM
Definition: TPTask.h:96
Container1D _cEtData_SubDet
Definition: TPTask.h:68
virtual void book(DQMStore::IBooker &, std::string subsystem="Hcal", std::string aux="")
void dqmthrow(std::string const &msg) const
Definition: Logger.h:15
ContainerProf1D _cOccupancyDatavsLS_TPSubDet
Definition: TPTask.h:93
ContainerSingle2D _cEtMsm
Definition: TPTask.h:74
ContainerProf1D _cOccupancyEmulvsLS_TPSubDet
Definition: TPTask.h:94
virtual void fill(double)
Definition: Container1D.h:53
virtual void loadLabels(std::vector< std::string > const &)
Definition: Container2D.cc:294
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int j
Definition: DBlmapReader.cc:9
Container1D _cNumEtMsm_TPSubDet
Definition: TPTask.h:76
Logger _logger
Definition: DQModule.h:62
Container1D _cEtCorrRatio_TPSubDet
Definition: TPTask.h:72
Container2D _cSummaryvsLS_TPSubDet
Definition: TPTask.h:105
double const GOOD
Definition: Constants.h:15
T min(T a, T b)
Definition: MathUtil.h:58
virtual void initialize(std::string const &folder, std::string const &nametitle, mapper::MapperType mt, axis::Axis *xaxis, axis::Axis *yaxis=new ValueAxis(fYaxis, fEntries), int debug=0)
Definition: Container1D.cc:28
int _nMsmFG[constants::TPSUBDET_NUM]
Definition: TPTask.h:57
std::string _name
Definition: DQModule.h:50
ContainerProf1D _cEtCorrRatiovsiphi_TPSubDetPM
Definition: TPTask.h:73
TPTask(edm::ParameterSet const &ps)
Definition: TPTask.cc:5
int getTPSubDet(HcalTrigTowerDetId const &)
Definition: Utilities.cc:58
ContainerProf1D _cDigiSizeDatavsLS_TPSubDet
Definition: TPTask.h:100
ContainerProf1D _cDigiSizeEmulvsLS_TPSubDet
Definition: TPTask.h:101
virtual MonitorElement * at(unsigned int i)
Definition: Container1D.cc:236
int version() const
get the version code for the trigger tower
virtual void _resetMonitors(UpdateFreq)
Definition: TPTask.cc:509
Container1D _cOccupancyDatavsiphi_TPSubDetPM
Definition: TPTask.h:91
std::string const & label() const
Definition: InputTag.h:36
virtual void setBinContent(int, int, int, double)
Definition: Container2D.cc:263
Container2D _cFGCorr_SubDet
Definition: TPTask.h:85
double const NOT_APPLICABLE
Definition: Constants.h:19
int _nTPs_Emul[constants::TPSUBDET_NUM]
Definition: TPTask.h:59
ContainerProf1D _cSumdEtvsLS_TPSubDet
Definition: TPTask.h:78
double getBinContent(int binx) const
get content of bin (1-D)
ContainerProf1D _cEtCorrRatiovsLS_TPSubDet
Definition: TPTask.h:71
edm::EDGetTokenT< HcalTrigPrimDigiCollection > _tokEmul
Definition: TPTask.h:53
int const TPSUBDET_NUM
Definition: Constants.h:88
Container1D _cEtData_SubDet_ieta
Definition: TPTask.h:82
Definition: TPTask.h:18
Container2D _cEtCorr_TPSubDet
Definition: TPTask.h:70
int _nTPs_Data[constants::TPSUBDET_NUM]
Definition: TPTask.h:58
ContainerSingle2D _cOccupancyData
Definition: TPTask.h:89
virtual void fill(int, int)
tuple status
Definition: ntuplemaker.py:245
edm::InputTag _tagEmul
Definition: TPTask.h:51
virtual double getBinContent(unsigned int, int)
Definition: Container1D.cc:225
double const PROBLEMATIC
Definition: Constants.h:16
std::string const & instance() const
Definition: InputTag.h:37
ContainerSingle2D _cSummary
Definition: TPTask.h:104
int iphi() const
get the tower iphi
virtual void _process(edm::Event const &, edm::EventSetup const &)
Definition: TPTask.cc:200
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &)
Definition: TPTask.cc:163
Definition: Run.h:43
ContainerSingle2D _cMsEmul
Definition: TPTask.h:97