CMS 3D CMS Logo

RecAnalyzerMinbias.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: HcalCalibAlgos
4 // Class: RecAnalyzerMinbias
5 //
13 //
14 // Original Author: Sunanda Banerjee
15 // Created: Thu Mar 4 18:52:02 CST 2012
16 //
17 //
18 
19 // system include files
20 #include <memory>
21 #include <string>
22 #include <iostream>
23 #include <fstream>
24 #include <sstream>
25 #include <vector>
26 #include <map>
27 
28 // user include files
56 
58 
59 #include "TH1D.h"
60 #include "TH2D.h"
61 #include "TMath.h"
62 #include "TProfile.h"
63 #include "TTree.h"
64 
65 //#define EDM_ML_DEBUG
66 
67 // class declaration
68 class RecAnalyzerMinbias : public edm::one::EDAnalyzer<edm::one::WatchRuns, edm::one::SharedResources> {
69 public:
70  explicit RecAnalyzerMinbias(const edm::ParameterSet&);
71  ~RecAnalyzerMinbias() override;
72 
73  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
74 
75 private:
76  void analyze(edm::Event const&, edm::EventSetup const&) override;
77  void beginJob() override;
78  void endJob() override;
79  void beginRun(edm::Run const&, edm::EventSetup const&) override;
80  void endRun(edm::Run const&, edm::EventSetup const&) override {}
81 
82 private:
83  void analyzeHcal(const HBHERecHitCollection&, const HFRecHitCollection&, int, bool, double);
84 
85  // ----------member data ---------------------------
92  std::map<DetId, double> corrFactor_;
93  std::vector<unsigned int> hcalID_;
94  TTree *myTree_, *myTree1_;
95  TH1D* h_[4];
96  TH2D *hbhe_, *hb_, *he_, *hf_;
100  TProfile *hbherun_, *hbrun_, *herun_, *hfrun_;
101  std::vector<TH1D*> histo_;
102  std::map<HcalDetId, TH1D*> histHC_;
103  std::vector<int> trigbit_;
104  double rnnum_;
105  struct myInfo {
108  };
109  // Root tree members
110  double rnnumber;
114  std::map<std::pair<int, HcalDetId>, myInfo> myMap_;
126 };
127 
128 // constructors and destructor
130  usesResource("TFileService");
131 
132  // get name of output file with histogramms
133  runNZS_ = iConfig.getParameter<bool>("runNZS");
134  Noise_ = iConfig.getParameter<bool>("noise");
135  eLowHB_ = iConfig.getParameter<double>("eLowHB");
136  eHighHB_ = iConfig.getParameter<double>("eHighHB");
137  eLowHE_ = iConfig.getParameter<double>("eLowHE");
138  eHighHE_ = iConfig.getParameter<double>("eHighHE");
139  eLowHF_ = iConfig.getParameter<double>("eLowHF");
140  eHighHF_ = iConfig.getParameter<double>("eHighHF");
141  eMin_ = iConfig.getUntrackedParameter<double>("eMin", 2.0);
142  // The following run range is suited to study 2017 commissioning period
143  runMin_ = iConfig.getUntrackedParameter<int>("RunMin", 308327);
144  runMax_ = iConfig.getUntrackedParameter<int>("RunMax", 315250);
145  trigbit_ = iConfig.getUntrackedParameter<std::vector<int>>("triggerBits");
146  ignoreL1_ = iConfig.getUntrackedParameter<bool>("ignoreL1", false);
147  std::string cfile = iConfig.getUntrackedParameter<std::string>("corrFile");
148  fillHist_ = iConfig.getUntrackedParameter<bool>("fillHisto", false);
149  extraHist_ = iConfig.getUntrackedParameter<bool>("extraHisto", false);
150  std::vector<int> ieta = iConfig.getUntrackedParameter<std::vector<int>>("hcalIeta");
151  std::vector<int> iphi = iConfig.getUntrackedParameter<std::vector<int>>("hcalIphi");
152  std::vector<int> depth = iConfig.getUntrackedParameter<std::vector<int>>("hcalDepth");
153 
154  // get token names of modules, producing object collections
155  tok_hbherecoMB_ = consumes<HBHERecHitCollection>(iConfig.getParameter<edm::InputTag>("hbheInputMB"));
156  tok_hfrecoMB_ = consumes<HFRecHitCollection>(iConfig.getParameter<edm::InputTag>("hfInputMB"));
157  tok_hltL1GtMap_ = consumes<L1GlobalTriggerObjectMapRecord>(edm::InputTag("hltL1GtObjectMap"));
158  tok_ew_ = consumes<GenEventInfoProduct>(edm::InputTag("generator"));
159  tok_hbhedigi_ = consumes<HBHEDigiCollection>(iConfig.getParameter<edm::InputTag>("hcalDigiCollectionTag"));
160  tok_qie11digi_ = consumes<QIE11DigiCollection>(iConfig.getParameter<edm::InputTag>("hcalDigiCollectionTag"));
161  tok_hodigi_ = consumes<HODigiCollection>(iConfig.getParameter<edm::InputTag>("hcalDigiCollectionTag"));
162  tok_hfdigi_ = consumes<HFDigiCollection>(iConfig.getParameter<edm::InputTag>("hcalDigiCollectionTag"));
163  tok_qie10digi_ = consumes<QIE10DigiCollection>(iConfig.getParameter<edm::InputTag>("hcalDigiCollectionTag"));
164  tok_gtRec_ = consumes<L1GlobalTriggerReadoutRecord>(edm::InputTag("gtDigisAlCaMB"));
165 
166  tok_htopo_ = esConsumes<HcalTopology, HcalRecNumberingRecord, edm::Transition::BeginRun>();
167 
168  // Read correction factors
169  std::ifstream infile(cfile.c_str());
170  if (!infile.is_open()) {
171  theRecalib_ = false;
172  edm::LogWarning("RecAnalyzer") << "Cannot open '" << cfile << "' for the correction file";
173  } else {
174  unsigned int ndets(0), nrec(0);
175  while (true) {
176  unsigned int id;
177  double cfac;
178  infile >> id >> cfac;
179  if (!infile.good())
180  break;
181  HcalDetId detId(id);
182  nrec++;
183  std::map<DetId, double>::iterator itr = corrFactor_.find(detId);
184  if (itr == corrFactor_.end()) {
185  corrFactor_[detId] = cfac;
186  ndets++;
187  }
188  }
189  infile.close();
190  edm::LogVerbatim("RecAnalyzer") << "Reads " << nrec << " correction factors for " << ndets << " detIds";
191  theRecalib_ = (ndets > 0);
192  }
193 
194  edm::LogVerbatim("RecAnalyzer") << " Flags (ReCalib): " << theRecalib_ << " (IgnoreL1): " << ignoreL1_ << " (NZS) "
195  << runNZS_ << " and with " << ieta.size() << " detId for full histogram";
196  edm::LogVerbatim("RecAnalyzer") << "Thresholds for HB " << eLowHB_ << ":" << eHighHB_ << " for HE " << eLowHE_ << ":"
197  << eHighHE_ << " for HF " << eLowHF_ << ":" << eHighHF_;
198  for (unsigned int k = 0; k < ieta.size(); ++k) {
199  HcalSubdetector subd =
200  ((std::abs(ieta[k]) > 29) ? HcalForward
201  : (std::abs(ieta[k]) > 16) ? HcalEndcap
202  : ((std::abs(ieta[k]) == 16) && (depth[k] == 3))
203  ? HcalEndcap
204  : (depth[k] == 4) ? HcalOuter : HcalBarrel);
205  unsigned int id = (HcalDetId(subd, ieta[k], iphi[k], depth[k])).rawId();
206  hcalID_.push_back(id);
207  edm::LogVerbatim("RecAnalyzer") << "DetId[" << k << "] " << HcalDetId(id);
208  }
209  edm::LogVerbatim("RecAnalyzer") << "Select on " << trigbit_.size() << " L1 Trigger selection";
210  for (unsigned int k = 0; k < trigbit_.size(); ++k)
211  edm::LogVerbatim("RecAnalyzer") << "Bit[" << k << "] " << trigbit_[k];
212 }
213 
215 
217  std::vector<int> iarray;
219  desc.add<bool>("runNZS", true);
220  desc.add<bool>("noise", false);
221  desc.add<double>("eLowHB", 4);
222  desc.add<double>("eHighHB", 100);
223  desc.add<double>("eLowHE", 4);
224  desc.add<double>("eHighHE", 150);
225  desc.add<double>("eLowHF", 10);
226  desc.add<double>("eHighHF", 150);
227  // Suitable cutoff to remove fluctuation of pedestal
228  desc.addUntracked<double>("eMin", 2.0);
229  // The following run range is suited to study 2017 commissioning period
230  desc.addUntracked<int>("runMin", 308327);
231  desc.addUntracked<int>("runMax", 308347);
232  desc.addUntracked<std::vector<int>>("triggerBits", iarray);
233  desc.addUntracked<bool>("ignoreL1", false);
234  desc.addUntracked<std::string>("corrFile", "CorFactor.txt");
235  desc.addUntracked<bool>("fillHisto", false);
236  desc.addUntracked<bool>("extraHisto", false);
237  desc.addUntracked<std::vector<int>>("hcalIeta", iarray);
238  desc.addUntracked<std::vector<int>>("hcalIphi", iarray);
239  desc.addUntracked<std::vector<int>>("hcalDepth", iarray);
240  desc.add<edm::InputTag>("hbheInputMB", edm::InputTag("hbherecoMB"));
241  desc.add<edm::InputTag>("hfInputMB", edm::InputTag("hfrecoMB"));
242  desc.add<edm::InputTag>("gtDigisAlCaMB", edm::InputTag("gtDigisAlCaMB"));
243  desc.add<edm::InputTag>("hcalDigiCollectionTag", edm::InputTag("hcalDigis"));
244  descriptions.add("recAnalyzerMinbias", desc);
245 }
246 
248  std::string hc[5] = {"Empty", "HB", "HE", "HO", "HF"};
249  char name[700], title[700];
250  hbhe_ = fs_->make<TH2D>("hbhe", "Noise in HB/HE", 61, -30.5, 30.5, 72, 0.5, 72.5);
251  hb_ = fs_->make<TH2D>("hb", "Noise in HB", 61, -16.5, 16.5, 72, 0.5, 72.5);
252  he_ = fs_->make<TH2D>("he", "Noise in HE", 61, -30.5, 30.5, 72, 0.5, 72.5);
253  hf_ = fs_->make<TH2D>("hf", "Noise in HF", 82, -41.5, 41.5, 72, 0.5, 72.5);
254  int nbin = (runMax_ - runMin_ + 1);
255  sprintf(title, "Fraction of channels in HB/HE with E > %4.1f GeV vs Run number", eMin_);
256  hbherun_ = fs_->make<TProfile>("hbherun", title, nbin, runMin_ - 0.5, runMax_ + 0.5, 0.0, 1.0);
257  sprintf(title, "Fraction of channels in HB with E > %4.1f GeV vs Run number", eMin_);
258  hbrun_ = fs_->make<TProfile>("hbrun", title, nbin, runMin_ - 0.5, runMax_ + 0.5, 0.0, 1.0);
259  sprintf(title, "Fraction of channels in HE with E > %4.1f GeV vs Run number", eMin_);
260  herun_ = fs_->make<TProfile>("herun", title, nbin, runMin_ - 0.5, runMax_ + 0.5, 0.0, 1.0);
261  sprintf(title, "Fraction of channels in HF with E > %4.1f GeV vs Run number", eMin_);
262  hfrun_ = fs_->make<TProfile>("hfrun", title, nbin, runMin_ - 0.5, runMax_ + 0.5, 0.0, 1.0);
263  for (int idet = 1; idet <= 4; idet++) {
264  sprintf(name, "%s", hc[idet].c_str());
265  sprintf(title, "Noise distribution for %s", hc[idet].c_str());
266  h_[idet - 1] = fs_->make<TH1D>(name, title, 48, -6., 6.);
267  }
268 
269  for (const auto& hcalid : hcalID_) {
270  HcalDetId id = HcalDetId(hcalid);
271  int subdet = id.subdetId();
272  sprintf(name, "%s%d_%d_%d", hc[subdet].c_str(), id.ieta(), id.iphi(), id.depth());
273  sprintf(title,
274  "Energy Distribution for %s ieta %d iphi %d depth %d",
275  hc[subdet].c_str(),
276  id.ieta(),
277  id.iphi(),
278  id.depth());
279  double xmin = (subdet == 4) ? -10 : -1;
280  double xmax = (subdet == 4) ? 90 : 9;
281  TH1D* hh = fs_->make<TH1D>(name, title, 50, xmin, xmax);
282  histo_.push_back(hh);
283  };
284 
285  if (extraHist_) {
286  h_AmplitudeHBtest_ = fs_->make<TH1D>("h_AmplitudeHBtest", "", 5000, 0., 5000.);
287  h_AmplitudeHEtest_ = fs_->make<TH1D>("h_AmplitudeHEtest", "", 3000, 0., 3000.);
288  h_AmplitudeHFtest_ = fs_->make<TH1D>("h_AmplitudeHFtest", "", 10000, 0., 10000.);
289  h_AmplitudeHB_ = fs_->make<TH1D>("h_AmplitudeHB", "", 100000, 0., 100000.);
290  h_AmplitudeHE_ = fs_->make<TH1D>("h_AmplitudeHE", "", 300000, 0., 300000.);
291  h_AmplitudeHF_ = fs_->make<TH1D>("h_AmplitudeHF", "", 100000, 0., 1000000.);
292  }
293 
294  if (!fillHist_) {
295  myTree_ = fs_->make<TTree>("RecJet", "RecJet Tree");
296  myTree_->Branch("cells", &cells, "cells/I");
297  myTree_->Branch("mysubd", &mysubd, "mysubd/I");
298  myTree_->Branch("depth", &depth, "depth/I");
299  myTree_->Branch("ieta", &ieta, "ieta/I");
300  myTree_->Branch("iphi", &iphi, "iphi/I");
301  myTree_->Branch("mom0_MB", &mom0_MB, "mom0_MB/F");
302  myTree_->Branch("mom1_MB", &mom1_MB, "mom1_MB/F");
303  myTree_->Branch("mom2_MB", &mom2_MB, "mom2_MB/F");
304  myTree_->Branch("mom3_MB", &mom3_MB, "mom3_MB/F");
305  myTree_->Branch("mom4_MB", &mom4_MB, "mom4_MB/F");
306  myTree_->Branch("trigbit", &trigbit, "trigbit/I");
307  myTree_->Branch("rnnumber", &rnnumber, "rnnumber/D");
308  }
309  myTree1_ = fs_->make<TTree>("RecJet1", "RecJet1 Tree");
310  myTree1_->Branch("rnnum_", &rnnum_, "rnnum_/D");
311  myTree1_->Branch("HBHEsize", &HBHEsize, "HBHEsize/I");
312  myTree1_->Branch("HFsize", &HFsize, "HFsize/I");
313 
314  myMap_.clear();
315 }
316 
317 // EndJob
318 //
320  if (!fillHist_) {
321  cells = 0;
322  for (const auto& itr : myMap_) {
323  edm::LogVerbatim("RecAnalyzer") << "Fired trigger bit number " << itr.first.first;
324  myInfo info = itr.second;
325  if (info.theMB0 > 0) {
326  mom0_MB = info.theMB0;
327  mom1_MB = info.theMB1;
328  mom2_MB = info.theMB2;
329  mom3_MB = info.theMB3;
330  mom4_MB = info.theMB4;
331  rnnumber = info.runcheck;
332  trigbit = itr.first.first;
333  mysubd = itr.first.second.subdet();
334  depth = itr.first.second.depth();
335  iphi = itr.first.second.iphi();
336  ieta = itr.first.second.ieta();
337  edm::LogVerbatim("RecAnalyzer") << " Result= " << trigbit << " " << mysubd << " " << ieta << " " << iphi
338  << " mom0 " << mom0_MB << " mom1 " << mom1_MB << " mom2 " << mom2_MB
339  << " mom3 " << mom3_MB << " mom4 " << mom4_MB;
340  myTree_->Fill();
341  cells++;
342  }
343  }
344  edm::LogVerbatim("RecAnalyzer") << "cells"
345  << " " << cells;
346  }
347 #ifdef EDM_ML_DEBUG
348  edm::LogVerbatim("RecAnalyzer") << "Exiting from RecAnalyzerMinbias::endjob";
349 #endif
350 }
351 
353  if (!init_) {
354  init_ = true;
355  if (fillHist_) {
356  const HcalTopology* hcaltopology = &iS.getData(tok_htopo_);
357 
358  char name[700], title[700];
359  // For HB
360  int maxDepthHB = hcaltopology->maxDepthHB();
361  int nbinHB = (Noise_) ? 18 : int(2000 * eHighHB_);
362  double x_min = (Noise_) ? -3. : 0.;
363  double x_max = (Noise_) ? 3. : 2. * eHighHB_;
364  for (int eta = -50; eta < 50; eta++) {
365  for (int phi = 0; phi < 100; phi++) {
366  for (int depth = 1; depth <= maxDepthHB; depth++) {
367  HcalDetId cell(HcalBarrel, eta, phi, depth);
368  if (hcaltopology->valid(cell)) {
369  sprintf(name, "HBeta%dphi%ddep%d", eta, phi, depth);
370  sprintf(title, "HB #eta %d #phi %d depth %d", eta, phi, depth);
371  TH1D* h = fs_->make<TH1D>(name, title, nbinHB, x_min, x_max);
372  histHC_[cell] = h;
373  }
374  }
375  }
376  }
377  // For HE
378  int maxDepthHE = hcaltopology->maxDepthHE();
379  int nbinHE = (Noise_) ? 18 : int(2000 * eHighHE_);
380  x_min = (Noise_) ? -3. : 0.;
381  x_max = (Noise_) ? 3. : 2. * eHighHE_;
382  for (int eta = -50; eta < 50; eta++) {
383  for (int phi = 0; phi < 100; phi++) {
384  for (int depth = 1; depth <= maxDepthHE; depth++) {
385  HcalDetId cell(HcalEndcap, eta, phi, depth);
386  if (hcaltopology->valid(cell)) {
387  sprintf(name, "HEeta%dphi%ddep%d", eta, phi, depth);
388  sprintf(title, "HE #eta %d #phi %d depth %d", eta, phi, depth);
389  TH1D* h = fs_->make<TH1D>(name, title, nbinHE, x_min, x_max);
390  histHC_[cell] = h;
391  }
392  }
393  }
394  }
395  // For HF
396  int maxDepthHF = 4;
397  int nbinHF = (Noise_) ? 200 : int(2000 * eHighHF_);
398  x_min = (Noise_) ? -10. : 0.;
399  x_max = (Noise_) ? 10. : 2. * eHighHF_;
400  for (int eta = -50; eta < 50; eta++) {
401  for (int phi = 0; phi < 100; phi++) {
402  for (int depth = 1; depth <= maxDepthHF; depth++) {
403  HcalDetId cell(HcalForward, eta, phi, depth);
404  if (hcaltopology->valid(cell)) {
405  sprintf(name, "HFeta%dphi%ddep%d", eta, phi, depth);
406  sprintf(title, "Energy (HF #eta %d #phi %d depth %d)", eta, phi, depth);
407  TH1D* h = fs_->make<TH1D>(name, title, nbinHF, x_min, x_max);
408  histHC_[cell] = h;
409  }
410  }
411  }
412  }
413  }
414  }
415 }
416 
417 //
418 // member functions
419 //
420 // ------------ method called to produce the data ------------
421 
423  rnnum_ = (double)iEvent.run();
424 
425  if (extraHist_) {
426  double amplitudefullHB(0), amplitudefullHE(0), amplitudefullHF(0);
428  iEvent.getByToken(tok_hbhedigi_, hbhedigi);
429  if (hbhedigi.isValid()) {
430  for (auto const& digi : *(hbhedigi.product())) {
431  int nTS = digi.size();
432  double amplitudefullTSs = 0.;
433  if (digi.id().subdet() == HcalBarrel) {
434  if (nTS <= 10) {
435  for (int i = 0; i < nTS; i++)
436  amplitudefullTSs += digi.sample(i).adc();
437  h_AmplitudeHBtest_->Fill(amplitudefullTSs);
438  amplitudefullHB += amplitudefullTSs;
439  }
440  }
441  if (digi.id().subdet() == HcalEndcap) {
442  if (nTS <= 10) {
443  for (int i = 0; i < nTS; i++)
444  amplitudefullTSs += digi.sample(i).adc();
445  h_AmplitudeHEtest_->Fill(amplitudefullTSs);
446  amplitudefullHE += amplitudefullTSs;
447  }
448  }
449  }
450  }
451 
453  iEvent.getByToken(tok_qie11digi_, qie11digi);
454  if (qie11digi.isValid()) {
455  for (QIE11DataFrame const digi : *(qie11digi.product())) {
456  double amplitudefullTSs = 0.;
457  if (HcalDetId(digi.id()).subdet() == HcalBarrel) {
458  for (int i = 0; i < digi.samples(); i++)
459  amplitudefullTSs += digi[i].adc();
460  h_AmplitudeHBtest_->Fill(amplitudefullTSs);
461  amplitudefullHB += amplitudefullTSs;
462  }
463  if (HcalDetId(digi.id()).subdet() == HcalEndcap) {
464  for (int i = 0; i < digi.samples(); i++)
465  amplitudefullTSs += digi[i].adc();
466  h_AmplitudeHEtest_->Fill(amplitudefullTSs);
467  amplitudefullHE += amplitudefullTSs;
468  }
469  }
470  }
471 
473  iEvent.getByToken(tok_hfdigi_, hfdigi);
474  if (hfdigi.isValid()) {
475  for (auto const& digi : *(hfdigi.product())) {
476  int nTS = digi.size();
477  double amplitudefullTSs = 0.;
478  if (digi.id().subdet() == HcalForward) {
479  if (nTS <= 10) {
480  for (int i = 0; i < nTS; i++)
481  amplitudefullTSs += digi.sample(i).adc();
482  h_AmplitudeHFtest_->Fill(amplitudefullTSs);
483  amplitudefullHF += amplitudefullTSs;
484  }
485  }
486  }
487  }
488 
490  iEvent.getByToken(tok_qie10digi_, qie10digi);
491  if (qie10digi.isValid()) {
492  for (QIE10DataFrame const digi : *(qie10digi.product())) {
493  double amplitudefullTSs = 0.;
494  if (HcalDetId(digi.id()).subdet() == HcalForward) {
495  for (int i = 0; i < digi.samples(); i++)
496  amplitudefullTSs += digi[i].adc();
497  h_AmplitudeHFtest_->Fill(amplitudefullTSs);
498  amplitudefullHF += amplitudefullTSs;
499  }
500  }
501  }
502 
503  h_AmplitudeHB_->Fill(amplitudefullHB);
504  h_AmplitudeHE_->Fill(amplitudefullHE);
505  h_AmplitudeHF_->Fill(amplitudefullHF);
506  }
507 
509  iEvent.getByToken(tok_hbherecoMB_, hbheMB);
510  if (!hbheMB.isValid()) {
511  edm::LogWarning("RecAnalyzer") << "HcalCalibAlgos: Error! can't get hbhe product!";
512  return;
513  }
514  const HBHERecHitCollection HithbheMB = *(hbheMB.product());
515  HBHEsize = HithbheMB.size();
516  edm::LogVerbatim("RecAnalyzer") << "HBHE MB size of collection " << HithbheMB.size();
517  if (HithbheMB.size() < 5100 && runNZS_) {
518  edm::LogWarning("RecAnalyzer") << "HBHE problem " << rnnum_ << " size " << HBHEsize;
519  }
520 
522  iEvent.getByToken(tok_hfrecoMB_, hfMB);
523  if (!hfMB.isValid()) {
524  edm::LogWarning("RecAnalyzer") << "HcalCalibAlgos: Error! can't get hf product!";
525  return;
526  }
527  const HFRecHitCollection HithfMB = *(hfMB.product());
528  edm::LogVerbatim("RecAnalyzer") << "HF MB size of collection " << HithfMB.size();
529  HFsize = HithfMB.size();
530  if (HithfMB.size() < 1700 && runNZS_) {
531  edm::LogWarning("RecAnalyzer") << "HF problem " << rnnum_ << " size " << HFsize;
532  }
533 
534  bool select(false);
535  if (!trigbit_.empty()) {
537  iEvent.getByToken(tok_hltL1GtMap_, gtObjectMapRecord);
538  if (gtObjectMapRecord.isValid()) {
539  const std::vector<L1GlobalTriggerObjectMap>& objMapVec = gtObjectMapRecord->gtObjectMap();
540  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itMap = objMapVec.begin(); itMap != objMapVec.end();
541  ++itMap) {
542  bool resultGt = (*itMap).algoGtlResult();
543  if (resultGt) {
544  int algoBit = (*itMap).algoBitNumber();
545  if (std::find(trigbit_.begin(), trigbit_.end(), algoBit) != trigbit_.end()) {
546  select = true;
547  break;
548  }
549  }
550  }
551  }
552  }
553 
554  if (!trigbit_.empty() || select)
555  myTree1_->Fill();
556 
557  //event weight for FLAT sample and PU information
558  double eventWeight = 1.0;
560  iEvent.getByToken(tok_ew_, genEventInfo);
561  if (genEventInfo.isValid())
562  eventWeight = genEventInfo->weight();
563 #ifdef EDM_ML_DEBUG
564  edm::LogVerbatim("RecAnalyzer") << "Test HB " << HBHEsize << " HF " << HFsize << " Trigger " << trigbit_.size() << ":"
565  << select << ":" << ignoreL1_ << " Wt " << eventWeight;
566 #endif
567  if (ignoreL1_ || (!trigbit_.empty() && select)) {
568  analyzeHcal(HithbheMB, HithfMB, 1, true, eventWeight);
569  } else if ((!ignoreL1_) && (trigbit_.empty())) {
571  iEvent.getByToken(tok_hltL1GtMap_, gtObjectMapRecord);
572  if (gtObjectMapRecord.isValid()) {
573  const std::vector<L1GlobalTriggerObjectMap>& objMapVec = gtObjectMapRecord->gtObjectMap();
574  bool ok(false);
575  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itMap = objMapVec.begin(); itMap != objMapVec.end();
576  ++itMap) {
577  bool resultGt = (*itMap).algoGtlResult();
578  if (resultGt) {
579  int algoBit = (*itMap).algoBitNumber();
580  analyzeHcal(HithbheMB, HithfMB, algoBit, (!ok), eventWeight);
581  ok = true;
582  }
583  }
584  if (!ok) {
585  edm::LogVerbatim("RecAnalyzer") << "No passed L1 Trigger found";
586  }
587  }
588  }
589 }
590 
592  const HBHERecHitCollection& HithbheMB, const HFRecHitCollection& HithfMB, int algoBit, bool fill, double weight) {
593  // Signal part for HB HE
594  int count(0), countHB(0), countHE(0), count2(0), count2HB(0), count2HE(0);
595  for (HBHERecHitCollection::const_iterator hbheItr = HithbheMB.begin(); hbheItr != HithbheMB.end(); hbheItr++) {
596  // Recalibration of energy
597  DetId mydetid = hbheItr->id().rawId();
598  double icalconst(1.);
599  if (theRecalib_) {
600  std::map<DetId, double>::iterator itr = corrFactor_.find(mydetid);
601  if (itr != corrFactor_.end())
602  icalconst = itr->second;
603  }
604  HBHERecHit aHit(hbheItr->id(), hbheItr->energy() * icalconst, hbheItr->time());
605  double energyhit = aHit.energy();
606  DetId id = (*hbheItr).detid();
607  HcalDetId hid = HcalDetId(id);
608  double eLow = (hid.subdet() == HcalEndcap) ? eLowHE_ : eLowHB_;
609  double eHigh = (hid.subdet() == HcalEndcap) ? eHighHE_ : eHighHB_;
610  ++count;
611  if (id.subdetId() == HcalBarrel)
612  ++countHB;
613  else
614  ++countHE;
615  if (fill) {
616  for (unsigned int i = 0; i < hcalID_.size(); i++) {
617  if (hcalID_[i] == id.rawId()) {
618  histo_[i]->Fill(energyhit);
619  break;
620  }
621  }
622  if (fillHist_) {
623  std::map<HcalDetId, TH1D*>::iterator itr1 = histHC_.find(hid);
624  if (itr1 != histHC_.end())
625  itr1->second->Fill(energyhit);
626  }
627  h_[hid.subdet() - 1]->Fill(energyhit);
628  if (energyhit > eMin_) {
629  hbhe_->Fill(hid.ieta(), hid.iphi());
630  ++count2;
631  if (id.subdetId() == HcalBarrel) {
632  ++count2HB;
633  hb_->Fill(hid.ieta(), hid.iphi());
634  } else {
635  ++count2HE;
636  he_->Fill(hid.ieta(), hid.iphi());
637  }
638  }
639  }
640  if (!fillHist_) {
641  if (Noise_ || runNZS_ || (energyhit >= eLow && energyhit <= eHigh)) {
642  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr1 =
643  myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
644  if (itr1 == myMap_.end()) {
645  myInfo info;
646  myMap_[std::pair<int, HcalDetId>(algoBit, hid)] = info;
647  itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
648  }
649  itr1->second.theMB0 += weight;
650  itr1->second.theMB1 += (weight * energyhit);
651  itr1->second.theMB2 += (weight * energyhit * energyhit);
652  itr1->second.theMB3 += (weight * energyhit * energyhit * energyhit);
653  itr1->second.theMB4 += (weight * energyhit * energyhit * energyhit * energyhit);
654  itr1->second.runcheck = rnnum_;
655  }
656  }
657  } // HBHE_MB
658  if (fill) {
659  if (count > 0)
660  hbherun_->Fill(rnnum_, (double)(count2) / count);
661  if (countHB > 0)
662  hbrun_->Fill(rnnum_, (double)(count2HB) / countHB);
663  if (countHE > 0)
664  herun_->Fill(rnnum_, (double)(count2HE) / countHE);
665  }
666 #ifdef EDM_ML_DEBUG
667  edm::LogVerbatim("RecAnalyzer") << "HBHE " << count2 << ":" << count << ":" << (double)(count2) / count << "\t HB "
668  << count2HB << ":" << countHB << ":" << (double)(count2HB) / countHB << "\t HE "
669  << count2HE << ":" << countHE << ":" << (double)(count2HE) / countHE;
670 #endif
671  int countHF(0), count2HF(0);
672  // Signal part for HF
673  for (HFRecHitCollection::const_iterator hfItr = HithfMB.begin(); hfItr != HithfMB.end(); hfItr++) {
674  // Recalibration of energy
675  DetId mydetid = hfItr->id().rawId();
676  double icalconst(1.);
677  if (theRecalib_) {
678  std::map<DetId, double>::iterator itr = corrFactor_.find(mydetid);
679  if (itr != corrFactor_.end())
680  icalconst = itr->second;
681  }
682  HFRecHit aHit(hfItr->id(), hfItr->energy() * icalconst, hfItr->time());
683 
684  double energyhit = aHit.energy();
685  DetId id = (*hfItr).detid();
686  HcalDetId hid = HcalDetId(id);
687  ++countHF;
688  if (fill) {
689  for (unsigned int i = 0; i < hcalID_.size(); i++) {
690  if (hcalID_[i] == id.rawId()) {
691  histo_[i]->Fill(energyhit);
692  break;
693  }
694  }
695  if (fillHist_) {
696  std::map<HcalDetId, TH1D*>::iterator itr1 = histHC_.find(hid);
697  if (itr1 != histHC_.end())
698  itr1->second->Fill(energyhit);
699  }
700  h_[hid.subdet() - 1]->Fill(energyhit);
701  if (energyhit > eMin_) {
702  hf_->Fill(hid.ieta(), hid.iphi());
703  ++count2HF;
704  }
705  }
706 
707  //
708  // Remove PMT hits
709  //
710  if (!fillHist_) {
711  if (((Noise_ || runNZS_) && fabs(energyhit) <= 40.) || (energyhit >= eLowHF_ && energyhit <= eHighHF_)) {
712  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr1 =
713  myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
714  if (itr1 == myMap_.end()) {
715  myInfo info;
716  myMap_[std::pair<int, HcalDetId>(algoBit, hid)] = info;
717  itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
718  }
719  itr1->second.theMB0 += weight;
720  itr1->second.theMB1 += (weight * energyhit);
721  itr1->second.theMB2 += (weight * energyhit * energyhit);
722  itr1->second.theMB3 += (weight * energyhit * energyhit * energyhit);
723  itr1->second.theMB4 += (weight * energyhit * energyhit * energyhit * energyhit);
724  itr1->second.runcheck = rnnum_;
725  }
726  }
727  }
728  if (fill && countHF > 0)
729  hfrun_->Fill(rnnum_, (double)(count2HF) / countHF);
730 #ifdef EDM_ML_DEBUG
731  if (count)
732  edm::LogVerbatim("RecAnalyzer") << "HF " << count2HF << ":" << countHF << ":" << (double)(count2HF) / countHF;
733 #endif
734 }
735 
736 //define this as a plug-in
ConfigurationDescriptions.h
RecAnalyzerMinbias::myInfo::theMB4
double theMB4
Definition: RecAnalyzerMinbias.cc:106
RecAnalyzerMinbias::trigbit_
std::vector< int > trigbit_
Definition: RecAnalyzerMinbias.cc:103
HFDataFrame.h
HcalRespCorrsRcd.h
runGCPTkAlMap.title
string title
Definition: runGCPTkAlMap.py:94
EDAnalyzer.h
mps_fire.i
i
Definition: mps_fire.py:428
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
MessageLogger.h
funct::false
false
Definition: Factorize.h:29
CaloRecHit::energy
constexpr float energy() const
Definition: CaloRecHit.h:29
edm::Handle::product
T const * product() const
Definition: Handle.h:70
RecAnalyzerMinbias::h_AmplitudeHE_
TH1D * h_AmplitudeHE_
Definition: RecAnalyzerMinbias.cc:99
RecAnalyzerMinbias::tok_hltL1GtMap_
edm::EDGetTokenT< L1GlobalTriggerObjectMapRecord > tok_hltL1GtMap_
Definition: RecAnalyzerMinbias.cc:117
ESHandle.h
TriggerResults.h
HcalTopology::maxDepthHE
int maxDepthHE() const
Definition: HcalTopology.h:140
RecAnalyzerMinbias::hf_
TH2D * hf_
Definition: RecAnalyzerMinbias.cc:96
HcalDetId::iphi
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
RecAnalyzerMinbias::tok_ew_
edm::EDGetTokenT< GenEventInfoProduct > tok_ew_
Definition: RecAnalyzerMinbias.cc:118
HcalCalibrationEventTypes.h
RecAnalyzerMinbias::HFsize
int HFsize
Definition: RecAnalyzerMinbias.cc:113
edm::Run
Definition: Run.h:45
edm::EDGetTokenT
Definition: EDGetToken.h:33
RecAnalyzerMinbias::eHighHE_
double eHighHE_
Definition: RecAnalyzerMinbias.cc:89
mps_merge.weight
weight
Definition: mps_merge.py:88
h
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
Definition: L1TUtmAlgorithmRcd.h:4
HBHERecHit
Definition: HBHERecHit.h:13
singleTopDQM_cfi.select
select
Definition: singleTopDQM_cfi.py:50
HcalTopology
Definition: HcalTopology.h:26
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
hcalSLHCTopologyConstants_cfi.maxDepthHB
maxDepthHB
Definition: hcalSLHCTopologyConstants_cfi.py:5
RecAnalyzerMinbias::he_
TH2D * he_
Definition: RecAnalyzerMinbias.cc:96
RecAnalyzerMinbias::h_AmplitudeHFtest_
TH1D * h_AmplitudeHFtest_
Definition: RecAnalyzerMinbias.cc:98
RecAnalyzerMinbias::corrFactor_
std::map< DetId, double > corrFactor_
Definition: RecAnalyzerMinbias.cc:92
RecAnalyzerMinbias::myInfo::theMB3
double theMB3
Definition: RecAnalyzerMinbias.cc:106
HODataFrame.h
RecAnalyzerMinbias::~RecAnalyzerMinbias
~RecAnalyzerMinbias() override
Definition: RecAnalyzerMinbias.cc:214
edm::SortedCollection
Definition: SortedCollection.h:49
edm::SortedCollection::size
size_type size() const
Definition: SortedCollection.h:215
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:153
RecAnalyzerMinbias
Definition: RecAnalyzerMinbias.cc:68
RecAnalyzerMinbias::myInfo::theMB1
double theMB1
Definition: RecAnalyzerMinbias.cc:106
RecAnalyzerMinbias::hbrun_
TProfile * hbrun_
Definition: RecAnalyzerMinbias.cc:100
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
HcalBarrel
Definition: HcalAssistant.h:33
RecAnalyzerMinbias::mom3_MB
float mom3_MB
Definition: RecAnalyzerMinbias.cc:112
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
convertSQLiteXML.ok
bool ok
Definition: convertSQLiteXML.py:98
edm::Handle
Definition: AssociativeIterator.h:50
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
RecAnalyzerMinbias::tok_hbherecoMB_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbherecoMB_
Definition: RecAnalyzerMinbias.cc:115
RecAnalyzerMinbias::analyze
void analyze(edm::Event const &, edm::EventSetup const &) override
Definition: RecAnalyzerMinbias.cc:422
RecAnalyzerMinbias::mom2_MB
float mom2_MB
Definition: RecAnalyzerMinbias.cc:112
RecAnalyzerMinbias::endRun
void endRun(edm::Run const &, edm::EventSetup const &) override
Definition: RecAnalyzerMinbias.cc:80
RecAnalyzerMinbias::trigbit
int trigbit
Definition: RecAnalyzerMinbias.cc:111
ecalLiteDTU::adc
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
Definition: EcalLiteDTUSample.h:12
DetId
Definition: DetId.h:17
MakerMacros.h
RecAnalyzerMinbias::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: RecAnalyzerMinbias.cc:216
RecAnalyzerMinbias::myInfo::theMB0
double theMB0
Definition: RecAnalyzerMinbias.cc:106
HFRecHit
Definition: HFRecHit.h:11
RecAnalyzerMinbias::cells
int cells
Definition: RecAnalyzerMinbias.cc:111
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
RecAnalyzerMinbias::h_AmplitudeHEtest_
TH1D * h_AmplitudeHEtest_
Definition: RecAnalyzerMinbias.cc:97
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
Service.h
HcalDigiCollections.h
PVValHelper::eta
Definition: PVValidationHelpers.h:69
RecAnalyzerMinbias::tok_gtRec_
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > tok_gtRec_
Definition: RecAnalyzerMinbias.cc:124
RecAnalyzerMinbias::histo_
std::vector< TH1D * > histo_
Definition: RecAnalyzerMinbias.cc:101
RecAnalyzerMinbias::runNZS_
bool runNZS_
Definition: RecAnalyzerMinbias.cc:87
RecAnalyzerMinbias::mom4_MB
float mom4_MB
Definition: RecAnalyzerMinbias.cc:112
RecAnalyzerMinbias::tok_hodigi_
edm::EDGetTokenT< HODigiCollection > tok_hodigi_
Definition: RecAnalyzerMinbias.cc:121
RecAnalyzerMinbias::hb_
TH2D * hb_
Definition: RecAnalyzerMinbias.cc:96
RecAnalyzerMinbias::Noise_
bool Noise_
Definition: RecAnalyzerMinbias.cc:87
RecAnalyzerMinbias::h_AmplitudeHB_
TH1D * h_AmplitudeHB_
Definition: RecAnalyzerMinbias.cc:99
RecAnalyzerMinbias::tok_qie10digi_
edm::EDGetTokenT< QIE10DigiCollection > tok_qie10digi_
Definition: RecAnalyzerMinbias.cc:123
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
HcalOuter
Definition: HcalAssistant.h:35
RecAnalyzerMinbias::mysubd
int mysubd
Definition: RecAnalyzerMinbias.cc:111
h
dqmdumpme.k
k
Definition: dqmdumpme.py:60
ParameterSetDescription.h
RecAnalyzerMinbias::eLowHE_
double eLowHE_
Definition: RecAnalyzerMinbias.cc:89
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
RecAnalyzerMinbias::theRecalib_
bool theRecalib_
Definition: RecAnalyzerMinbias.cc:87
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
hcalSLHCTopologyConstants_cfi.maxDepthHE
maxDepthHE
Definition: hcalSLHCTopologyConstants_cfi.py:6
TFileService.h
RecAnalyzerMinbias::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition: RecAnalyzerMinbias.cc:352
RecAnalyzerMinbias::myInfo
Definition: RecAnalyzerMinbias.cc:105
ntuplemaker.fill
fill
Definition: ntuplemaker.py:304
RecAnalyzerMinbias::mom0_MB
float mom0_MB
Definition: RecAnalyzerMinbias.cc:112
RecAnalyzerMinbias::eMin_
double eMin_
Definition: RecAnalyzerMinbias.cc:90
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
edm::ParameterSet
Definition: ParameterSet.h:47
RecAnalyzerMinbias::tok_htopo_
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_htopo_
Definition: RecAnalyzerMinbias.cc:125
GenEventInfoProduct.h
Event.h
RecAnalyzerMinbias::tok_hfdigi_
edm::EDGetTokenT< HFDigiCollection > tok_hfdigi_
Definition: RecAnalyzerMinbias.cc:122
RecAnalyzerMinbias::myInfo::runcheck
double runcheck
Definition: RecAnalyzerMinbias.cc:106
RecAnalyzerMinbias::runMin_
int runMin_
Definition: RecAnalyzerMinbias.cc:91
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
HcalDetId.h
HcalDetId::subdet
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
HcalDetId
Definition: HcalDetId.h:12
edm::Service< TFileService >
TriggerNames.h
iEvent
int iEvent
Definition: GenABIO.cc:224
RecAnalyzerMinbias::myTree1_
TTree * myTree1_
Definition: RecAnalyzerMinbias.cc:94
RecAnalyzerMinbias::fs_
edm::Service< TFileService > fs_
Definition: RecAnalyzerMinbias.cc:86
RecAnalyzerMinbias::endJob
void endJob() override
Definition: RecAnalyzerMinbias.cc:319
RecAnalyzerMinbias::eHighHB_
double eHighHB_
Definition: RecAnalyzerMinbias.cc:89
edm::EventSetup
Definition: EventSetup.h:57
RecAnalyzerMinbias::beginJob
void beginJob() override
Definition: RecAnalyzerMinbias.cc:247
HcalSubdetector.h
RecAnalyzerMinbias::tok_hbhedigi_
edm::EDGetTokenT< HBHEDigiCollection > tok_hbhedigi_
Definition: RecAnalyzerMinbias.cc:119
HcalRespCorrs.h
RecAnalyzerMinbias::init_
bool init_
Definition: RecAnalyzerMinbias.cc:88
RecAnalyzerMinbias::h_AmplitudeHF_
TH1D * h_AmplitudeHF_
Definition: RecAnalyzerMinbias.cc:99
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:29
RecAnalyzerMinbias::myInfo::myInfo
myInfo()
Definition: RecAnalyzerMinbias.cc:107
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord >
RecAnalyzerMinbias::mom1_MB
float mom1_MB
Definition: RecAnalyzerMinbias.cc:112
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:120
HcalSubdetector
HcalSubdetector
Definition: HcalAssistant.h:31
HcalForward
Definition: HcalAssistant.h:36
HcalTopology::valid
bool valid(const DetId &id) const override
Definition: HcalTopology.cc:225
DDAxes::phi
RecAnalyzerMinbias::myInfo::theMB2
double theMB2
Definition: RecAnalyzerMinbias.cc:106
RecAnalyzerMinbias::tok_qie11digi_
edm::EDGetTokenT< QIE11DigiCollection > tok_qie11digi_
Definition: RecAnalyzerMinbias.cc:120
RecAnalyzerMinbias::rnnum_
double rnnum_
Definition: RecAnalyzerMinbias.cc:104
HcalTopology.h
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
RecAnalyzerMinbias::myTree_
TTree * myTree_
Definition: RecAnalyzerMinbias.cc:94
genParticles2HepMC_cfi.genEventInfo
genEventInfo
Definition: genParticles2HepMC_cfi.py:6
RecAnalyzerMinbias::h_
TH1D * h_[4]
Definition: RecAnalyzerMinbias.cc:95
RecAnalyzerMinbias::fillHist_
bool fillHist_
Definition: RecAnalyzerMinbias.cc:88
QIE10DataFrame
Definition: QIE10DataFrame.h:11
HcalEndcap
Definition: HcalAssistant.h:34
Frameworkfwd.h
edm::LogVerbatim
Log< level::Info, true > LogVerbatim
Definition: MessageLogger.h:128
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
RecAnalyzerMinbias::hbhe_
TH2D * hbhe_
Definition: RecAnalyzerMinbias.cc:96
TrackerOfflineValidation_Dqm_cff.xmax
xmax
Definition: TrackerOfflineValidation_Dqm_cff.py:11
QIE11DataFrame
Definition: QIE11DataFrame.h:11
RecAnalyzerMinbias::rnnumber
double rnnumber
Definition: RecAnalyzerMinbias.cc:110
RecAnalyzerMinbias::eHighHF_
double eHighHF_
Definition: RecAnalyzerMinbias.cc:90
ZMuMuCategoriesSequences_cff.nbin
nbin
Definition: ZMuMuCategoriesSequences_cff.py:25
RecAnalyzerMinbias::depth
int depth
Definition: RecAnalyzerMinbias.cc:111
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
EventSetup.h
L1GlobalTriggerObjectMapRecord::gtObjectMap
const std::vector< L1GlobalTriggerObjectMap > & gtObjectMap() const
get / set the vector of object maps
Definition: L1GlobalTriggerObjectMapRecord.h:64
RecAnalyzerMinbias::RecAnalyzerMinbias
RecAnalyzerMinbias(const edm::ParameterSet &)
Definition: RecAnalyzerMinbias.cc:129
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
HcalRecHitCollections.h
RecAnalyzerMinbias::hbherun_
TProfile * hbherun_
Definition: RecAnalyzerMinbias.cc:100
timingPdfMaker.infile
infile
Definition: timingPdfMaker.py:350
RecAnalyzerMinbias::eLowHB_
double eLowHB_
Definition: RecAnalyzerMinbias.cc:89
RecAnalyzerMinbias::hfrun_
TProfile * hfrun_
Definition: RecAnalyzerMinbias.cc:100
RecAnalyzerMinbias::hcalID_
std::vector< unsigned int > hcalID_
Definition: RecAnalyzerMinbias.cc:93
RecAnalyzerMinbias::tok_hfrecoMB_
edm::EDGetTokenT< HFRecHitCollection > tok_hfrecoMB_
Definition: RecAnalyzerMinbias.cc:116
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
RecAnalyzerMinbias::histHC_
std::map< HcalDetId, TH1D * > histHC_
Definition: RecAnalyzerMinbias.cc:102
L1GlobalTriggerObjectMapRecord.h
ParameterSet.h
RecAnalyzerMinbias::iphi
int iphi
Definition: RecAnalyzerMinbias.cc:111
TrackerOfflineValidation_Dqm_cff.xmin
xmin
Definition: TrackerOfflineValidation_Dqm_cff.py:10
RecAnalyzerMinbias::ieta
int ieta
Definition: RecAnalyzerMinbias.cc:111
RecAnalyzerMinbias::ignoreL1_
bool ignoreL1_
Definition: RecAnalyzerMinbias.cc:87
RecAnalyzerMinbias::herun_
TProfile * herun_
Definition: RecAnalyzerMinbias.cc:100
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
RecAnalyzerMinbias::eLowHF_
double eLowHF_
Definition: RecAnalyzerMinbias.cc:90
edm::Event
Definition: Event.h:73
L1GlobalTriggerObjectMap.h
edm::Log
Definition: MessageLogger.h:70
RecAnalyzerMinbias::h_AmplitudeHBtest_
TH1D * h_AmplitudeHBtest_
Definition: RecAnalyzerMinbias.cc:97
edm::InputTag
Definition: InputTag.h:15
L1GlobalTriggerReadoutRecord.h
RecAnalyzerMinbias::analyzeHcal
void analyzeHcal(const HBHERecHitCollection &, const HFRecHitCollection &, int, bool, double)
Definition: RecAnalyzerMinbias.cc:591
RecAnalyzerMinbias::runMax_
int runMax_
Definition: RecAnalyzerMinbias.cc:91
weight
Definition: weight.py:1
RecAnalyzerMinbias::myMap_
std::map< std::pair< int, HcalDetId >, myInfo > myMap_
Definition: RecAnalyzerMinbias.cc:114
RecAnalyzerMinbias::HBHEsize
int HBHEsize
Definition: RecAnalyzerMinbias.cc:113
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
RecAnalyzerMinbias::extraHist_
bool extraHist_
Definition: RecAnalyzerMinbias.cc:88
HBHEDataFrame.h
HcalTopology::maxDepthHB
int maxDepthHB() const
Definition: HcalTopology.h:139