CMS 3D CMS Logo

AnalyzerMinbias.cc
Go to the documentation of this file.
1 // system include files
2 #include <memory>
3 #include <string>
4 #include <iostream>
5 #include <fstream>
6 #include <sstream>
7 #include <vector>
8 #include <map>
9 
10 // user include files
15 
18 
42 
44 
53 
54 #include "TFile.h"
55 #include "TH1.h"
56 #include "TH2.h"
57 #include "TTree.h"
58 
59 namespace HcalMinbias {}
60 
61 // constructors and destructor
62 class AnalyzerMinbias : public edm::one::EDAnalyzer<edm::one::SharedResources> {
63 public:
64  explicit AnalyzerMinbias(const edm::ParameterSet&);
65  ~AnalyzerMinbias() override = default;
66 
67  void analyze(const edm::Event&, const edm::EventSetup&) override;
68  void beginJob() override;
69  void endJob() override;
70 
71 private:
72  void analyzeHcal(const HcalRespCorrs* myRecalib,
73  const HBHERecHitCollection& HithbheNS,
74  const HBHERecHitCollection& HithbheMB,
75  const HFRecHitCollection& HithfNS,
76  const HFRecHitCollection& HithfMB,
77  int algoBit,
78  bool fill);
79 
80  struct myInfo {
84  myInfo() {
85  theMB0 = theMB1 = theMB2 = theMB3 = theMB4 = 0;
86  theNS0 = theNS1 = theNS2 = theNS3 = theNS4 = 0;
87  theDif0 = theDif1 = theDif2 = runcheck = 0;
88  }
89  };
90 
91  // ----------member data ---------------------------
95  std::ofstream* myout_hcal;
96  TFile* hOutputFile_;
97  TTree* myTree_;
98  TH1D *h_Noise[4], *h_Signal[4];
99  double rnnum_;
100 
101  // Root tree members
102  double rnnumber;
104  float phi, eta;
108 
109  std::map<std::pair<int, HcalDetId>, myInfo> myMap_;
116 };
117 
119  : fOutputFileName(iConfig.getUntrackedParameter<std::string>("HistOutFile")),
120  runNZS_(iConfig.getUntrackedParameter<bool>("RunNZS", true)),
121  theRecalib_(iConfig.getParameter<bool>("Recalib")),
122  ignoreL1_(iConfig.getUntrackedParameter<bool>("IgnoreL1", true)),
123  tok_hbherecoMB_(consumes<HBHERecHitCollection>(iConfig.getParameter<edm::InputTag>("hbheInputMB"))),
124  tok_hbherecoNoise_(consumes<HBHERecHitCollection>(iConfig.getParameter<edm::InputTag>("hbheInputNoise"))),
125  tok_horecoMB_(consumes<HORecHitCollection>(iConfig.getParameter<edm::InputTag>("hoInputMB"))),
126  tok_horecoNoise_(consumes<HORecHitCollection>(iConfig.getParameter<edm::InputTag>("hoInputNoise"))),
127  tok_hfrecoMB_(consumes<HFRecHitCollection>(iConfig.getParameter<edm::InputTag>("hfInputMB"))),
128  tok_hfrecoNoise_(consumes<HFRecHitCollection>(iConfig.getParameter<edm::InputTag>("hfInputNoise"))),
129  tok_hbheNormal_(consumes<HBHERecHitCollection>(edm::InputTag("hbhereco"))),
130  tok_hltL1GtMap_(consumes<L1GlobalTriggerObjectMapRecord>(edm::InputTag("hltL1GtObjectMap"))),
131  tok_respCorr_(esConsumes<HcalRespCorrs, HcalRespCorrsRcd>()) {
132  usesResource(TFileService::kSharedResource);
133  // get name of output file with histogramms
134  // get token names of modules, producing object collections
135 }
136 
138  std::string det[4] = {"HB", "HE", "HO", "HF"};
139  char name[80], title[80];
140  for (int subd = 0; subd < 4; ++subd) {
141  sprintf(name, "Noise_%s", det[subd].c_str());
142  sprintf(title, "Energy Distribution for Noise in %s", det[subd].c_str());
143  h_Noise[subd] = new TH1D(name, title, 100, -10., 10.);
144  sprintf(name, "Signal_%s", det[subd].c_str());
145  sprintf(title, "Energy Distribution for Signal in %s", det[subd].c_str());
146  h_Signal[subd] = new TH1D(name, title, 100, -10., 10.);
147  }
148 
150  hOutputFile_ = new TFile(fOutputFileName.c_str(), "RECREATE");
151  myTree_ = fs->make<TTree>("RecJet", "RecJet Tree");
152  myTree_->Branch("mydet", &mydet, "mydet/I");
153  myTree_->Branch("mysubd", &mysubd, "mysubd/I");
154  myTree_->Branch("cells", &cells, "cells");
155  myTree_->Branch("depth", &depth, "depth/I");
156  myTree_->Branch("ieta", &ieta, "ieta/I");
157  myTree_->Branch("iphi", &iphi, "iphi/I");
158  myTree_->Branch("eta", &eta, "eta/F");
159  myTree_->Branch("phi", &phi, "phi/F");
160  myTree_->Branch("mom0_MB", &mom0_MB, "mom0_MB/F");
161  myTree_->Branch("mom1_MB", &mom1_MB, "mom1_MB/F");
162  myTree_->Branch("mom2_MB", &mom2_MB, "mom2_MB/F");
163  myTree_->Branch("mom3_MB", &mom3_MB, "mom3_MB/F");
164  myTree_->Branch("mom4_MB", &mom4_MB, "mom4_MB/F");
165  myTree_->Branch("mom0_Noise", &mom0_Noise, "mom0_Noise/F");
166  myTree_->Branch("mom1_Noise", &mom1_Noise, "mom1_Noise/F");
167  myTree_->Branch("mom2_Noise", &mom2_Noise, "mom2_Noise/F");
168  myTree_->Branch("mom3_Noise", &mom3_Noise, "mom3_Noise/F");
169  myTree_->Branch("mom4_Noise", &mom4_Noise, "mom4_Noise/F");
170  myTree_->Branch("mom0_Diff", &mom0_Diff, "mom0_Diff/F");
171  myTree_->Branch("mom1_Diff", &mom1_Diff, "mom1_Diff/F");
172  myTree_->Branch("mom2_Diff", &mom2_Diff, "mom2_Diff/F");
173  myTree_->Branch("occup", &occup, "occup/F");
174  myTree_->Branch("trigbit", &trigbit, "trigbit/I");
175  myTree_->Branch("rnnumber", &rnnumber, "rnnumber/D");
176 
177  myMap_.clear();
178 }
179 
180 // EndJob
181 //
183  int ii = 0;
184  for (std::map<std::pair<int, HcalDetId>, myInfo>::const_iterator itr = myMap_.begin(); itr != myMap_.end(); ++itr) {
185 #ifdef EDM_ML_DEBUG
186  edm::LogVerbatim("AnalyzerMinimumBias") << "Fired trigger bit number " << itr->first.first;
187 #endif
188  myInfo info = itr->second;
189  if (info.theMB0 > 0) {
190  mom0_MB = info.theMB0;
191  mom1_MB = info.theMB1;
192  mom2_MB = info.theMB2;
193  mom3_MB = info.theMB3;
194  mom4_MB = info.theMB4;
195  mom0_Noise = info.theNS0;
196  mom1_Noise = info.theNS1;
197  mom2_Noise = info.theNS2;
198  mom3_Noise = info.theNS3;
199  mom4_Noise = info.theNS4;
200  mom0_Diff = info.theDif0;
201  mom1_Diff = info.theDif1;
202  mom2_Diff = info.theDif2;
203  rnnumber = info.runcheck;
204  trigbit = itr->first.first;
205  mysubd = itr->first.second.subdet();
206  depth = itr->first.second.depth();
207  ieta = itr->first.second.ieta();
208  iphi = itr->first.second.iphi();
209 #ifdef EDM_ML_DEBUG
210  edm::LogVerbatim("AnalyzerMinimumBias")
211  << " Result= " << trigbit << " " << mysubd << " " << ieta << " " << iphi << " mom0 " << mom0_MB << " mom1 "
212  << mom1_MB << " mom2 " << mom2_MB << " mom3 " << mom3_MB << " mom4 " << mom4_MB << " mom0_Noise "
213  << mom0_Noise << " mom1_Noise " << mom1_Noise << " mom2_Noise " << mom2_Noise << " mom3_Noise " << mom3_Noise
214  << " mom4_Noise " << mom4_Noise << " mom0_Diff " << mom0_Diff << " mom1_Diff " << mom1_Diff << " mom2_Diff "
215  << mom2_Diff;
216 #endif
217  myTree_->Fill();
218  ii++;
219  }
220  }
221  cells = ii;
222 #ifdef EDM_ML_DEBUG
223  edm::LogVerbatim("AnalyzerMinimumBias") << "cells " << cells;
224 #endif
225  hOutputFile_->Write();
226  hOutputFile_->cd();
227  myTree_->Write();
228  for (int i = 0; i < 4; i++) {
229  h_Noise[i]->Write();
230  h_Signal[i]->Write();
231  }
232  hOutputFile_->Close();
233 }
234 
235 //
236 // member functions
237 //
238 
239 // ------------ method called to produce the data ------------
240 
242  rnnum_ = (float)iEvent.run();
243  const HcalRespCorrs* myRecalib = nullptr;
244  if (theRecalib_) {
245  myRecalib = &iSetup.getData(tok_respCorr_);
246  } // theRecalib
247 
248  const edm::Handle<HBHERecHitCollection> hbheNormal = iEvent.getHandle(tok_hbheNormal_);
249  if (!hbheNormal.isValid()) {
250  edm::LogVerbatim("AnalyzerMinimumBias") << " hbheNormal failed";
251  } else {
252  edm::LogVerbatim("AnalyzerMinimumBias") << " The size of the normal collection " << hbheNormal->size();
253  }
254 
256  if (!hbheNS.isValid()) {
257  edm::LogWarning("AnalyzerMinimumBias") << "HcalCalibAlgos: Error! can't get hbheNoise product!";
258  return;
259  }
260  const HBHERecHitCollection HithbheNS = *(hbheNS.product());
261  edm::LogVerbatim("AnalyzerMinimumBias") << "HBHE NS size of collection " << HithbheNS.size();
262  if (runNZS_ && HithbheNS.size() != 5184) {
263  edm::LogWarning("AnalyzerMinimumBias") << "HBHE NS problem " << rnnum_ << " size " << HithbheNS.size();
264  return;
265  }
266 
267  const edm::Handle<HBHERecHitCollection> hbheMB = iEvent.getHandle(tok_hbherecoMB_);
268  if (!hbheMB.isValid()) {
269  edm::LogWarning("AnalyzerMinimumBias") << "HcalCalibAlgos: Error! can't get hbhe product!";
270  return;
271  }
272  const HBHERecHitCollection HithbheMB = *(hbheMB.product());
273  edm::LogVerbatim("AnalyzerMinimumBias") << "HBHE MB size of collection " << HithbheMB.size();
274  if (runNZS_ && HithbheMB.size() != 5184) {
275  edm::LogWarning("AnalyzerMinimumBias") << "HBHE problem " << rnnum_ << " size " << HithbheMB.size();
276  return;
277  }
278 
280  if (!hfNS.isValid()) {
281  edm::LogWarning("AnalyzerMinimumBias") << "HcalCalibAlgos: Error! can't get hfNoise product!";
282  return;
283  }
284  const HFRecHitCollection HithfNS = *(hfNS.product());
285  edm::LogVerbatim("AnalyzerMinimumBias") << "HF NS size of collection " << HithfNS.size();
286  if (runNZS_ && HithfNS.size() != 1728) {
287  edm::LogWarning("AnalyzerMinimumBias") << "HF NS problem " << rnnum_ << " size " << HithfNS.size();
288  return;
289  }
290 
291  const edm::Handle<HFRecHitCollection> hfMB = iEvent.getHandle(tok_hfrecoMB_);
292  if (!hfMB.isValid()) {
293  edm::LogWarning("AnalyzerMinimumBias") << "HcalCalibAlgos: Error! can't get hf product!";
294  return;
295  }
296  const HFRecHitCollection HithfMB = *(hfMB.product());
297  edm::LogVerbatim("AnalyzerMinimumBias") << "HF MB size of collection " << HithfMB.size();
298  if (runNZS_ && HithfMB.size() != 1728) {
299  edm::LogWarning("AnalyzerMinimumBias") << "HF problem " << rnnum_ << " size " << HithfMB.size();
300  return;
301  }
302 
303  if (ignoreL1_) {
304  analyzeHcal(myRecalib, HithbheNS, HithbheMB, HithfNS, HithfMB, 1, true);
305  } else {
306  const edm::Handle<L1GlobalTriggerObjectMapRecord> gtObjectMapRecord = iEvent.getHandle(tok_hltL1GtMap_);
307  if (gtObjectMapRecord.isValid()) {
308  const std::vector<L1GlobalTriggerObjectMap>& objMapVec = gtObjectMapRecord->gtObjectMap();
309  int ii(0);
310  bool ok(false), fill(true);
311  for (std::vector<L1GlobalTriggerObjectMap>::const_iterator itMap = objMapVec.begin(); itMap != objMapVec.end();
312  ++itMap, ++ii) {
313  bool resultGt = (*itMap).algoGtlResult();
314  if (resultGt == 1) {
315  ok = true;
316  int algoBit = (*itMap).algoBitNumber();
317  analyzeHcal(myRecalib, HithbheNS, HithbheMB, HithfNS, HithfMB, algoBit, fill);
318  fill = false;
319  std::string algoNameStr = (*itMap).algoName();
320 #ifdef EDM_ML_DEBUG
321  edm::LogVerbatim("AnalyzerMinimumBias")
322  << "Trigger[" << ii << "] " << algoNameStr << " bit " << algoBit << " entered";
323 #endif
324  }
325  }
326  if (!ok)
327  edm::LogVerbatim("AnalyzerMinimumBias") << "No passed L1 Triggers";
328  }
329  }
330 }
331 
333  const HBHERecHitCollection& HithbheNS,
334  const HBHERecHitCollection& HithbheMB,
335  const HFRecHitCollection& HithfNS,
336  const HFRecHitCollection& HithfMB,
337  int algoBit,
338  bool fill) {
339  // Noise part for HB HE
340  std::map<std::pair<int, HcalDetId>, myInfo> tmpMap;
341  tmpMap.clear();
342 
343  for (HBHERecHitCollection::const_iterator hbheItr = HithbheNS.begin(); hbheItr != HithbheNS.end(); hbheItr++) {
344  // Recalibration of energy
345  float icalconst = 1.;
346  DetId mydetid = hbheItr->id().rawId();
347  if (theRecalib_)
348  icalconst = myRecalib->getValues(mydetid)->getValue();
349 
350  HBHERecHit aHit(hbheItr->id(), hbheItr->energy() * icalconst, hbheItr->time());
351  double energyhit = aHit.energy();
352 
353  DetId id = (*hbheItr).detid();
354  HcalDetId hid = HcalDetId(id);
355  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
356  if (itr1 == myMap_.end()) {
357  myInfo info;
358  myMap_[std::pair<int, HcalDetId>(algoBit, hid)] = info;
359  itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
360  }
361  itr1->second.theNS0++;
362  itr1->second.theNS1 += energyhit;
363  itr1->second.theNS2 += (energyhit * energyhit);
364  itr1->second.theNS3 += (energyhit * energyhit * energyhit);
365  itr1->second.theNS4 += (energyhit * energyhit * energyhit * energyhit);
366  itr1->second.runcheck = rnnum_;
367  if (fill)
368  h_Noise[hid.subdet() - 1]->Fill(energyhit);
369 
370  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr2 = tmpMap.find(std::pair<int, HcalDetId>(algoBit, hid));
371  if (itr2 == tmpMap.end()) {
372  myInfo info;
373  tmpMap[std::pair<int, HcalDetId>(algoBit, hid)] = info;
374  itr2 = tmpMap.find(std::pair<int, HcalDetId>(algoBit, hid));
375  }
376  itr2->second.theNS0++;
377  itr2->second.theNS1 += energyhit;
378  itr2->second.theNS2 += (energyhit * energyhit);
379  itr2->second.theNS3 += (energyhit * energyhit * energyhit);
380  itr2->second.theNS4 += (energyhit * energyhit * energyhit * energyhit);
381  itr2->second.runcheck = rnnum_;
382 
383  } // HBHE_NS
384 
385  // Signal part for HB HE
386 
387  for (HBHERecHitCollection::const_iterator hbheItr = HithbheMB.begin(); hbheItr != HithbheMB.end(); hbheItr++) {
388  // Recalibration of energy
389  float icalconst = 1.;
390  DetId mydetid = hbheItr->id().rawId();
391  if (theRecalib_)
392  icalconst = myRecalib->getValues(mydetid)->getValue();
393 
394  HBHERecHit aHit(hbheItr->id(), hbheItr->energy() * icalconst, hbheItr->time());
395  double energyhit = aHit.energy();
396 
397  DetId id = (*hbheItr).detid();
398  HcalDetId hid = HcalDetId(id);
399 
400  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
401  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr2 = tmpMap.find(std::pair<int, HcalDetId>(algoBit, hid));
402 
403  if (itr1 == myMap_.end()) {
404  myInfo info;
405  myMap_[std::pair<int, HcalDetId>(algoBit, hid)] = info;
406  itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
407  }
408  itr1->second.theMB0++;
409  itr1->second.theDif0 = 0;
410  itr1->second.theMB1 += energyhit;
411  itr1->second.theMB2 += (energyhit * energyhit);
412  itr1->second.theMB3 += (energyhit * energyhit * energyhit);
413  itr1->second.theMB4 += (energyhit * energyhit * energyhit * energyhit);
414  itr1->second.runcheck = rnnum_;
415  float mydiff = 0.0;
416  if (itr2 != tmpMap.end()) {
417  mydiff = energyhit - (itr2->second.theNS1);
418  itr1->second.theDif0++;
419  itr1->second.theDif1 += mydiff;
420  itr1->second.theDif2 += (mydiff * mydiff);
421  if (fill)
422  h_Signal[hid.subdet() - 1]->Fill(mydiff);
423  }
424  } // HBHE_MB
425 
426  // HF
427 
428  for (HFRecHitCollection::const_iterator hbheItr = HithfNS.begin(); hbheItr != HithfNS.end(); hbheItr++) {
429  // Recalibration of energy
430  float icalconst = 1.;
431  DetId mydetid = hbheItr->id().rawId();
432  if (theRecalib_)
433  icalconst = myRecalib->getValues(mydetid)->getValue();
434 
435  HFRecHit aHit(hbheItr->id(), hbheItr->energy() * icalconst, hbheItr->time());
436  double energyhit = aHit.energy();
437  // Remove PMT hits
438  if (fabs(energyhit) > 40.)
439  continue;
440  DetId id = (*hbheItr).detid();
441  HcalDetId hid = HcalDetId(id);
442 
443  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
444 
445  if (itr1 == myMap_.end()) {
446  myInfo info;
447  myMap_[std::pair<int, HcalDetId>(algoBit, hid)] = info;
448  itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
449  }
450  itr1->second.theNS0++;
451  itr1->second.theNS1 += energyhit;
452  itr1->second.theNS2 += (energyhit * energyhit);
453  itr1->second.theNS3 += (energyhit * energyhit * energyhit);
454  itr1->second.theNS4 += (energyhit * energyhit * energyhit * energyhit);
455  itr1->second.runcheck = rnnum_;
456  if (fill)
457  h_Noise[hid.subdet() - 1]->Fill(energyhit);
458 
459  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr2 = tmpMap.find(std::pair<int, HcalDetId>(algoBit, hid));
460  if (itr2 == tmpMap.end()) {
461  myInfo info;
462  tmpMap[std::pair<int, HcalDetId>(algoBit, hid)] = info;
463  itr2 = tmpMap.find(std::pair<int, HcalDetId>(algoBit, hid));
464  }
465  itr2->second.theNS0++;
466  itr2->second.theNS1 += energyhit;
467  itr2->second.theNS2 += (energyhit * energyhit);
468  itr2->second.theNS3 += (energyhit * energyhit * energyhit);
469  itr2->second.theNS4 += (energyhit * energyhit * energyhit * energyhit);
470  itr2->second.runcheck = rnnum_;
471 
472  } // HF_NS
473 
474  // Signal part for HF
475 
476  for (HFRecHitCollection::const_iterator hbheItr = HithfMB.begin(); hbheItr != HithfMB.end(); hbheItr++) {
477  // Recalibration of energy
478  float icalconst = 1.;
479  DetId mydetid = hbheItr->id().rawId();
480  if (theRecalib_)
481  icalconst = myRecalib->getValues(mydetid)->getValue();
482  HFRecHit aHit(hbheItr->id(), hbheItr->energy() * icalconst, hbheItr->time());
483 
484  double energyhit = aHit.energy();
485  // Remove PMT hits
486  if (fabs(energyhit) > 40.)
487  continue;
488 
489  DetId id = (*hbheItr).detid();
490  HcalDetId hid = HcalDetId(id);
491 
492  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
493  std::map<std::pair<int, HcalDetId>, myInfo>::iterator itr2 = tmpMap.find(std::pair<int, HcalDetId>(algoBit, hid));
494 
495  if (itr1 == myMap_.end()) {
496  myInfo info;
497  myMap_[std::pair<int, HcalDetId>(algoBit, hid)] = info;
498  itr1 = myMap_.find(std::pair<int, HcalDetId>(algoBit, hid));
499  }
500  itr1->second.theMB0++;
501  itr1->second.theDif0 = 0;
502  itr1->second.theMB1 += energyhit;
503  itr1->second.theMB2 += (energyhit * energyhit);
504  itr1->second.theMB3 += (energyhit * energyhit * energyhit);
505  itr1->second.theMB4 += (energyhit * energyhit * energyhit * energyhit);
506  itr1->second.runcheck = rnnum_;
507  float mydiff = 0.0;
508  if (itr2 != tmpMap.end()) {
509  mydiff = energyhit - (itr2->second.theNS1);
510  itr1->second.theDif0++;
511  itr1->second.theDif1 += mydiff;
512  itr1->second.theDif2 += (mydiff * mydiff);
513  if (fill)
514  h_Signal[hid.subdet() - 1]->Fill(mydiff);
515  }
516  }
517 }
518 
519 //define this as a plug-in
static const std::string kSharedResource
Definition: TFileService.h:76
Log< level::Info, true > LogVerbatim
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
static const TGPicture * info(bool iBackgroundIsBlack)
size_type size() const
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbherecoNoise_
std::string hcalfile_
const edm::EDGetTokenT< HFRecHitCollection > tok_hfrecoMB_
T const * product() const
Definition: Handle.h:70
std::vector< T >::const_iterator const_iterator
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbheNormal_
AnalyzerMinbias(const edm::ParameterSet &)
void beginJob() override
const edm::EDGetTokenT< HFRecHitCollection > tok_hfrecoNoise_
const Item * getValues(DetId fId, bool throwOnFail=true) const
constexpr float energy() const
Definition: CaloRecHit.h:29
const std::vector< L1GlobalTriggerObjectMap > & gtObjectMap() const
get / set the vector of object maps
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
int iEvent
Definition: GenABIO.cc:224
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbherecoMB_
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
bool getData(T &iHolder) const
Definition: EventSetup.h:122
const_iterator begin() const
const edm::EDGetTokenT< L1GlobalTriggerObjectMapRecord > tok_hltL1GtMap_
std::ofstream * myout_hcal
const edm::ESGetToken< HcalRespCorrs, HcalRespCorrsRcd > tok_respCorr_
ii
Definition: cuy.py:589
const_iterator end() const
Definition: DetId.h:17
float getValue() const
Definition: HcalRespCorr.h:19
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
~AnalyzerMinbias() override=default
bool isValid() const
Definition: HandleBase.h:70
HLT enums.
const bool theRecalib_
const bool ignoreL1_
const bool runNZS_
const edm::EDGetTokenT< HORecHitCollection > tok_horecoMB_
std::map< std::pair< int, HcalDetId >, myInfo > myMap_
Log< level::Warning, false > LogWarning
const std::string fOutputFileName
void endJob() override
void analyzeHcal(const HcalRespCorrs *myRecalib, const HBHERecHitCollection &HithbheNS, const HBHERecHitCollection &HithbheMB, const HFRecHitCollection &HithfNS, const HFRecHitCollection &HithfMB, int algoBit, bool fill)
void analyze(const edm::Event &, const edm::EventSetup &) override
const edm::EDGetTokenT< HORecHitCollection > tok_horecoNoise_