CMS 3D CMS Logo

HcalHBHEMuonSimAnalyzer.cc
Go to the documentation of this file.
1 #include <memory>
2 #include <iostream>
3 #include <vector>
4 
5 #include <TTree.h>
6 
7 // user include files
16 
25 
29 
40 
41 #define EDM_ML_DEBUG
42 
43 class HcalHBHEMuonSimAnalyzer : public edm::one::EDAnalyzer<edm::one::WatchRuns, edm::one::SharedResources> {
44 public:
46  ~HcalHBHEMuonSimAnalyzer() override;
47 
48  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
49 
50 private:
51  void beginJob() override;
52  void analyze(edm::Event const&, edm::EventSetup const&) override;
53  void beginRun(edm::Run const&, edm::EventSetup const&) override;
54  void endRun(edm::Run const&, edm::EventSetup const&) override {}
57  void clearVectors();
58  unsigned int matchId(const HcalDetId&, const HcalDetId&);
59  double activeLength(const DetId&);
60 
64  double etaMax_;
65  std::vector<HcalDDDRecConstants::HcalActiveLength> actHB_, actHE_;
66 
73 
74  static const int depthMax_ = 7;
75  const int idMuon_ = 13;
76  TTree* tree_;
78  std::vector<double> ptGlob_, etaGlob_, phiGlob_, pMuon_;
79  std::vector<double> ecal3x3Energy_, hcal1x1Energy_;
80  std::vector<unsigned int> ecalDetId_, hcalDetId_, hcalHot_;
81  std::vector<double> matchedId_;
82  std::vector<double> hcalDepthEnergy_[depthMax_];
83  std::vector<double> hcalDepthActiveLength_[depthMax_];
84  std::vector<double> hcalDepthEnergyHot_[depthMax_];
85  std::vector<double> hcalDepthActiveLengthHot_[depthMax_];
87 };
88 
90  usesResource(TFileService::kSharedResource);
91 
92  //now do what ever initialization is needed
93  g4Label_ = iConfig.getParameter<std::string>("ModuleLabel");
94  ebLabel_ = iConfig.getParameter<std::string>("EBCollection");
95  eeLabel_ = iConfig.getParameter<std::string>("EECollection");
96  hcLabel_ = iConfig.getParameter<std::string>("HCCollection");
97  verbosity_ = iConfig.getUntrackedParameter<int>("Verbosity", 0);
98  maxDepth_ = iConfig.getUntrackedParameter<int>("MaxDepth", 4);
99  etaMax_ = iConfig.getUntrackedParameter<double>("EtaMax", 3.0);
100  tMinE_ = iConfig.getUntrackedParameter<double>("TimeMinCutECAL", -500.);
101  tMaxE_ = iConfig.getUntrackedParameter<double>("TimeMaxCutECAL", 500.);
102  tMinH_ = iConfig.getUntrackedParameter<double>("TimeMinCutHCAL", -500.);
103  tMaxH_ = iConfig.getUntrackedParameter<double>("TimeMaxCutHCAL", 500.);
104 
105  tok_SimTk_ = consumes<edm::SimTrackContainer>(edm::InputTag(g4Label_));
106  tok_SimVtx_ = consumes<edm::SimVertexContainer>(edm::InputTag(g4Label_));
107  tok_caloEB_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label_, ebLabel_));
108  tok_caloEE_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label_, eeLabel_));
109  tok_caloHH_ = consumes<edm::PCaloHitContainer>(edm::InputTag(g4Label_, hcLabel_));
110  if (maxDepth_ > depthMax_)
112  else if (maxDepth_ < 1)
113  maxDepth_ = 4;
114 #ifdef EDM_ML_DEBUG
115  std::cout << "Labels: " << g4Label_ << ":" << ebLabel_ << ":" << eeLabel_ << ":" << hcLabel_ << "\nVerbosity "
116  << verbosity_ << " MaxDepth " << maxDepth_ << " Maximum Eta " << etaMax_ << " tMin|tMax " << tMinE_ << ":"
117  << tMaxE_ << ":" << tMinH_ << ":" << tMaxH_ << std::endl;
118 #endif
119 }
120 
122 
124  clearVectors();
125  bool debug(false);
126 #ifdef EDM_ML_DEBUG
127  debug = ((verbosity_ / 10) > 0);
128 #endif
129 
131  iSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
132  const HcalDDDRecConstants* hcons = &(*pHRNDC);
133 
134  runNumber_ = iEvent.id().run();
135  eventNumber_ = iEvent.id().event();
136  lumiNumber_ = iEvent.id().luminosityBlock();
137  bxNumber_ = iEvent.bunchCrossing();
138 
139  //get Handles to SimTracks and SimHits
141  iEvent.getByToken(tok_SimTk_, SimTk);
143  iEvent.getByToken(tok_SimVtx_, SimVtx);
144 
145  //get Handles to PCaloHitContainers of eb/ee/hbhe
147  iEvent.getByToken(tok_caloEB_, pcaloeb);
149  iEvent.getByToken(tok_caloEE_, pcaloee);
151  iEvent.getByToken(tok_caloHH_, pcalohh);
152  std::vector<PCaloHit> calohh;
153  bool testN(false);
154  for (unsigned int k = 1; k < pcalohh->size(); ++k) {
155  // if it is a standard DetId bits 28..31 will carry the det #
156  // for HCAL det # is 4 and if there is at least one hit in the collection
157  // have det # which is not 4 this collection is created using TestNumbering
158  int det = ((((*pcalohh)[k].id()) >> 28) & 0xF);
159  if (det != 4) {
160  testN = true;
161  break;
162  }
163  }
164  if (testN) {
165  for (edm::PCaloHitContainer::const_iterator itr = pcalohh->begin(); itr != pcalohh->end(); ++itr) {
166  PCaloHit hit(*itr);
167  DetId newid = HcalHitRelabeller::relabel(hit.id(), hcons);
168 #ifdef EDM_ML_DEBUG
169  std::cout << "Old ID " << std::hex << hit.id() << std::dec << " New " << HcalDetId(newid) << std::endl;
170 #endif
171  hit.setID(newid.rawId());
172  calohh.push_back(hit);
173  }
174  } else {
175  calohh.insert(calohh.end(), pcalohh->begin(), pcalohh->end());
176  }
177 
178  // get handles to calogeometry and calotopology
180  iSetup.get<CaloGeometryRecord>().get(pG);
181  const CaloGeometry* geo = pG.product();
182 
184  iSetup.get<IdealMagneticFieldRecord>().get(bFieldH);
185  const MagneticField* bField = bFieldH.product();
186 
187  edm::ESHandle<CaloTopology> theCaloTopology;
188  iSetup.get<CaloTopologyRecord>().get(theCaloTopology);
189  const CaloTopology* caloTopology = theCaloTopology.product();
190 
192  iSetup.get<HcalRecNumberingRecord>().get(htopo);
193  const HcalTopology* theHBHETopology = htopo.product();
194 
195  // Loop over all SimTracks
196  for (edm::SimTrackContainer::const_iterator simTrkItr = SimTk->begin(); simTrkItr != SimTk->end(); simTrkItr++) {
197  if ((std::abs(simTrkItr->type()) == idMuon_) && (simTrkItr->vertIndex() == 0) &&
198  (std::abs(simTrkItr->momentum().eta()) < etaMax_)) {
199  unsigned int thisTrk = simTrkItr->trackId();
200  spr::propagatedTrackDirection trkD = spr::propagateCALO(thisTrk, SimTk, SimVtx, geo, bField, debug);
201 
202  double eEcal(0), eHcal(0), activeLengthTot(0), activeLengthHotTot(0);
203  double eHcalDepth[depthMax_], eHcalDepthHot[depthMax_];
204  double activeL[depthMax_], activeHotL[depthMax_];
205  unsigned int isHot(0);
206  bool tmpmatch(false);
207  for (int i = 0; i < depthMax_; ++i)
208  eHcalDepth[i] = eHcalDepthHot[i] = activeL[i] = activeHotL[i] = -10000;
209 
210 #ifdef EDM_ML_DEBUG
211  if ((verbosity_ % 10) > 0)
212  std::cout << "Track Type " << simTrkItr->type() << " Vertex " << simTrkItr->vertIndex() << " Charge "
213  << simTrkItr->charge() << " Momentum " << simTrkItr->momentum().P() << ":"
214  << simTrkItr->momentum().eta() << ":" << simTrkItr->momentum().phi() << " ECAL|HCAL " << trkD.okECAL
215  << ":" << trkD.okHCAL << " Point " << trkD.pointECAL << ":" << trkD.pointHCAL << " Direction "
216  << trkD.directionECAL.eta() << ":" << trkD.directionECAL.phi() << " | " << trkD.directionHCAL.eta()
217  << ":" << trkD.directionHCAL.phi() << std::endl;
218 #endif
219  bool propageback(false);
220  spr::propagatedTrackDirection trkD_back = spr::propagateHCALBack(thisTrk, SimTk, SimVtx, geo, bField, debug);
221  HcalDetId closestCell_back;
222  if (trkD_back.okHCAL) {
223  closestCell_back = (HcalDetId)(trkD_back.detIdHCAL);
224  propageback = true;
225  }
226  if (trkD.okHCAL) {
227  // Muon properties
228  spr::trackAtOrigin tkvx = spr::simTrackAtOrigin(thisTrk, SimTk, SimVtx, debug);
229  ptGlob_.push_back(tkvx.momentum.perp());
230  etaGlob_.push_back(tkvx.momentum.eta());
231  phiGlob_.push_back(tkvx.momentum.phi());
232  pMuon_.push_back(tkvx.momentum.mag());
233 #ifdef EDM_ML_DEBUG
234  if ((verbosity_ % 10) > 0)
235  std::cout << "Track at vertex " << tkvx.ok << " position " << tkvx.position << " Momentum "
236  << tkvx.momentum.mag() << ":" << tkvx.momentum.eta() << ":" << tkvx.momentum.phi() << " Charge "
237  << tkvx.charge << std::endl;
238 #endif
239 
240  // Energy in ECAL
241  DetId isoCell;
242  if (trkD.okECAL) {
243  isoCell = trkD.detIdECAL;
244  eEcal = spr::eECALmatrix(
245  isoCell, pcaloeb, pcaloee, geo, caloTopology, 1, 1, -100.0, -100.0, tMinE_, tMaxE_, debug);
246  }
247 
248  // Energy in Hcal
249  const DetId closestCell(trkD.detIdHCAL);
250  if ((propageback) && (HcalDetId(closestCell).ieta() == HcalDetId(closestCell_back).ieta()) &&
251  (HcalDetId(closestCell).iphi() == HcalDetId(closestCell_back).iphi()))
252  tmpmatch = true;
253 
254  eHcal = spr::eHCALmatrix(
255  theHBHETopology, closestCell, calohh, 0, 0, false, -100.0, -100.0, -100.0, -100.0, tMinH_, tMaxH_, debug);
256 #ifdef EDM_ML_DEBUG
257  if ((verbosity_ % 10) > 0)
258  std::cout << "eEcal " << trkD.okECAL << ":" << eEcal << " eHcal " << eHcal << std::endl;
259 #endif
260 
261  HcalSubdetector subdet = HcalDetId(closestCell).subdet();
262  int ieta = HcalDetId(closestCell).ieta();
263  int iphi = HcalDetId(closestCell).iphi();
264  int zside = HcalDetId(closestCell).zside();
265  bool hbhe = (std::abs(ieta) == 16);
266  int depthHE = hcons->getMinDepth(1, 16, iphi, zside);
267  std::vector<std::pair<double, int> > ehdepth;
268  spr::energyHCALCell((HcalDetId)closestCell,
269  calohh,
270  ehdepth,
271  maxDepth_,
272  -100.0,
273  -100.0,
274  -100.0,
275  -100.0,
276  -500.0,
277  500.0,
278  depthHE,
279  debug);
280  for (unsigned int i = 0; i < ehdepth.size(); ++i) {
281  eHcalDepth[ehdepth[i].second - 1] = ehdepth[i].first;
282  HcalSubdetector subdet0 = (hbhe) ? ((ehdepth[i].second >= depthHE) ? HcalEndcap : HcalBarrel) : subdet;
283  HcalDetId hcid0(subdet0, ieta, iphi, ehdepth[i].second);
284  double actL = activeLength(DetId(hcid0));
285  activeL[ehdepth[i].second - 1] = actL;
286  activeLengthTot += actL;
287 #ifdef EDM_ML_DEBUG
288  if ((verbosity_ % 10) > 0)
289  std::cout << hcid0 << " E " << ehdepth[i].first << " L " << actL << std::endl;
290 #endif
291  }
292 
293  HcalDetId hotCell;
294 #ifdef EDM_ML_DEBUG
295  double h3x3 =
296 #endif
297  spr::eHCALmatrix(geo, theHBHETopology, closestCell, calohh, 1, 1, hotCell, debug);
298  isHot = matchId(closestCell, hotCell);
299 #ifdef EDM_ML_DEBUG
300  if ((verbosity_ % 10) > 0)
301  std::cout << "hcal 3X3 < " << h3x3 << ">"
302  << " ClosestCell <" << (HcalDetId)(closestCell) << "> hotCell id < " << hotCell << "> isHot"
303  << isHot << std::endl;
304 #endif
305 
306  if (hotCell != HcalDetId()) {
307  subdet = HcalDetId(hotCell).subdet();
308  ieta = HcalDetId(hotCell).ieta();
309  iphi = HcalDetId(hotCell).iphi();
310  zside = HcalDetId(hotCell).zside();
311  hbhe = (std::abs(ieta) == 16);
312  depthHE = hcons->getMinDepth(1, 16, iphi, zside);
313  std::vector<std::pair<double, int> > ehdepth;
315  hotCell, calohh, ehdepth, maxDepth_, -100.0, -100.0, -100.0, -100.0, tMinH_, tMaxH_, depthHE, debug);
316  for (unsigned int i = 0; i < ehdepth.size(); ++i) {
317  eHcalDepthHot[ehdepth[i].second - 1] = ehdepth[i].first;
318  HcalSubdetector subdet0 = (hbhe) ? ((ehdepth[i].second >= depthHE) ? HcalEndcap : HcalBarrel) : subdet;
319  HcalDetId hcid0(subdet0, ieta, iphi, ehdepth[i].second);
320  double actL = activeLength(DetId(hcid0));
321  activeHotL[ehdepth[i].second - 1] = actL;
322  activeLengthHotTot += actL;
323 #ifdef EDM_ML_DEBUG
324  if ((verbosity_ % 10) > 0)
325  std::cout << hcid0 << " E " << ehdepth[i].first << " L " << actL << std::endl;
326 #endif
327  }
328  }
329 #ifdef EDM_ML_DEBUG
330  if ((verbosity_ % 10) > 0) {
331  for (int k = 0; k < depthMax_; ++k)
332  std::cout << "Depth " << k << " E " << eHcalDepth[k] << ":" << eHcalDepthHot[k] << std::endl;
333  }
334 #endif
335  matchedId_.push_back(tmpmatch);
336  ecal3x3Energy_.push_back(eEcal);
337  ecalDetId_.push_back(isoCell.rawId());
338  hcal1x1Energy_.push_back(eHcal);
339  hcalDetId_.push_back(closestCell.rawId());
340  for (int k = 0; k < depthMax_; ++k) {
341  hcalDepthEnergy_[k].push_back(eHcalDepth[k]);
342  hcalDepthActiveLength_[k].push_back(activeL[k]);
343  hcalDepthEnergyHot_[k].push_back(eHcalDepthHot[k]);
344  hcalDepthActiveLengthHot_[k].push_back(activeHotL[k]);
345  }
346  hcalHot_.push_back(isHot);
347  hcalActiveLengthHot_.push_back(activeLengthHotTot);
348  }
349  }
350  }
351  if (!hcalHot_.empty())
352  tree_->Fill();
353 }
354 
356  tree_ = fs_->make<TTree>("TREE", "TREE");
357  tree_->Branch("Run_No", &runNumber_);
358  tree_->Branch("Event_No", &eventNumber_);
359  tree_->Branch("LumiNumber", &lumiNumber_);
360  tree_->Branch("BXNumber", &bxNumber_);
361  tree_->Branch("pt_of_muon", &ptGlob_);
362  tree_->Branch("eta_of_muon", &etaGlob_);
363  tree_->Branch("phi_of_muon", &phiGlob_);
364  tree_->Branch("p_of_muon", &pMuon_);
365  tree_->Branch("matchedId", &matchedId_);
366 
367  tree_->Branch("ecal_3x3", &ecal3x3Energy_);
368  tree_->Branch("ecal_detID", &ecalDetId_);
369  tree_->Branch("hcal_1x1", &hcal1x1Energy_);
370  tree_->Branch("hcal_detID", &hcalDetId_);
371  tree_->Branch("hcal_cellHot", &hcalHot_);
372  tree_->Branch("activeLength", &hcalActiveLength_);
373  tree_->Branch("activeLengthHot", &hcalActiveLengthHot_);
374  char name[100];
375  for (int k = 0; k < maxDepth_; ++k) {
376  sprintf(name, "hcal_edepth%d", (k + 1));
377  tree_->Branch(name, &hcalDepthEnergy_[k]);
378  sprintf(name, "hcal_activeL%d", (k + 1));
379  tree_->Branch(name, &hcalDepthActiveLength_[k]);
380  sprintf(name, "hcal_edepthHot%d", (k + 1));
381  tree_->Branch(name, &hcalDepthEnergyHot_[k]);
382  sprintf(name, "hcal_activeHotL%d", (k + 1));
383  tree_->Branch(name, &hcalDepthActiveLength_[k]);
384  }
385 }
386 
389  iSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
390  const HcalDDDRecConstants& hdc = (*pHRNDC);
391  actHB_.clear();
392  actHE_.clear();
393  actHB_ = hdc.getThickActive(0);
394  actHE_ = hdc.getThickActive(1);
395 }
396 
399  desc.add<std::string>("ModuleLabel", "g4SimHits");
400  desc.add<std::string>("EBCollection", "EcalHitsEB");
401  desc.add<std::string>("EECollection", "EcalHitsEE");
402  desc.add<std::string>("HCCollection", "HcalHits");
403  desc.addUntracked<int>("Verbosity", 0);
404  desc.addUntracked<int>("MaxDepth", 4);
405  desc.addUntracked<double>("EtaMax", 3.0);
406  desc.addUntracked<double>("TimeMinCutECAL", -500.);
407  desc.addUntracked<double>("TimeMaxCutECAL", 500.);
408  desc.addUntracked<double>("TimeMinCutHCAL", -500.);
409  desc.addUntracked<double>("TimeMaxCutHCAL", 500.);
410  descriptions.add("hcalHBHEMuonSim", desc);
411 }
412 
415  runNumber_ = -99999;
416  eventNumber_ = -99999;
417  lumiNumber_ = -99999;
418  bxNumber_ = -99999;
419 
420  ptGlob_.clear();
421  etaGlob_.clear();
422  phiGlob_.clear();
423  pMuon_.clear();
424  matchedId_.clear();
425  ecal3x3Energy_.clear();
426  ecalDetId_.clear();
427  hcal1x1Energy_.clear();
428  hcalDetId_.clear();
429  hcalHot_.clear();
430  hcalActiveLength_.clear();
431  hcalActiveLengthHot_.clear();
432  for (int k = 0; k < depthMax_; ++k) {
433  hcalDepthEnergy_[k].clear();
434  hcalDepthActiveLength_[k].clear();
435  hcalDepthEnergyHot_[k].clear();
436  hcalDepthActiveLengthHot_[k].clear();
437  }
438 }
439 
441  HcalDetId kd1(id1.subdet(), id1.ieta(), id1.iphi(), 1);
442  HcalDetId kd2(id2.subdet(), id2.ieta(), id2.iphi(), 1);
443  unsigned int match = ((kd1 == kd2) ? 1 : 0);
444  return match;
445 }
446 
448  HcalDetId id(id_);
449  int ieta = id.ietaAbs();
450  int depth = id.depth();
451  double lx(0);
452  if (id.subdet() == HcalBarrel) {
453  for (unsigned int i = 0; i < actHB_.size(); ++i) {
454  if (ieta == actHB_[i].ieta && depth == actHB_[i].depth) {
455  lx = actHB_[i].thick;
456  break;
457  }
458  }
459  } else {
460  for (unsigned int i = 0; i < actHE_.size(); ++i) {
461  if (ieta == actHE_[i].ieta && depth == actHE_[i].depth) {
462  lx = actHE_[i].thick;
463  break;
464  }
465  }
466  }
467  return lx;
468 }
469 
470 //define this as a plug-in
HcalHBHEMuonSimAnalyzer::ecal3x3Energy_
std::vector< double > ecal3x3Energy_
Definition: HcalHBHEMuonSimAnalyzer.cc:79
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
HcalHBHEMuonSimAnalyzer::analyze
void analyze(edm::Event const &, edm::EventSetup const &) override
Definition: HcalHBHEMuonSimAnalyzer.cc:123
HcalHBHEMuonSimAnalyzer::hcalDepthActiveLength_
std::vector< double > hcalDepthActiveLength_[depthMax_]
Definition: HcalHBHEMuonSimAnalyzer.cc:83
EDAnalyzer.h
mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
HcalHBHEMuonSimAnalyzer::lumiNumber_
unsigned int lumiNumber_
Definition: HcalHBHEMuonSimAnalyzer.cc:77
hit::id
unsigned int id
Definition: SiStripHitEffFromCalibTree.cc:92
HcalHBHEMuonSimAnalyzer::hcalDepthActiveLengthHot_
std::vector< double > hcalDepthActiveLengthHot_[depthMax_]
Definition: HcalHBHEMuonSimAnalyzer.cc:85
HcalHBHEMuonSimAnalyzer::verbosity_
int verbosity_
Definition: HcalHBHEMuonSimAnalyzer.cc:63
HcalHBHEMuonSimAnalyzer::hcalDepthEnergyHot_
std::vector< double > hcalDepthEnergyHot_[depthMax_]
Definition: HcalHBHEMuonSimAnalyzer.cc:84
HcalHBHEMuonSimAnalyzer::depthMax_
static const int depthMax_
Definition: HcalHBHEMuonSimAnalyzer.cc:74
HcalHBHEMuonSimAnalyzer::hcal1x1Energy_
std::vector< double > hcal1x1Energy_
Definition: HcalHBHEMuonSimAnalyzer.cc:79
HcalHBHEMuonSimAnalyzer::hcalDetId_
std::vector< unsigned int > hcalDetId_
Definition: HcalHBHEMuonSimAnalyzer.cc:80
HcalDetId::iphi
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
edm::LuminosityBlock
Definition: LuminosityBlock.h:50
HcalDDDRecConstants::getThickActive
std::vector< HcalActiveLength > getThickActive(const int &type) const
Definition: HcalDDDRecConstants.cc:465
edm::Run
Definition: Run.h:45
ecaldqm::zside
int zside(DetId const &)
Definition: EcalDQMCommonUtils.cc:189
HcalHBHEMuonSimAnalyzer
Definition: HcalHBHEMuonSimAnalyzer.cc:43
edm::EDGetTokenT< edm::SimTrackContainer >
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
HcalHBHEMuonSimAnalyzer::tMaxH_
double tMaxH_
Definition: HcalHBHEMuonSimAnalyzer.cc:67
globals_cff.id1
id1
Definition: globals_cff.py:32
gather_cfg.cout
cout
Definition: gather_cfg.py:144
HcalTopology
Definition: HcalTopology.h:26
EBDetId.h
EEDetId.h
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
HcalHBHEMuonSimAnalyzer::g4Label_
std::string g4Label_
Definition: HcalHBHEMuonSimAnalyzer.cc:61
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:215
HcalHBHEMuonSimAnalyzer::fs_
edm::Service< TFileService > fs_
Definition: HcalHBHEMuonSimAnalyzer.cc:68
HcalHBHEMuonSimAnalyzer::ptGlob_
std::vector< double > ptGlob_
Definition: HcalHBHEMuonSimAnalyzer.cc:78
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
CaloTopologyRecord
Definition: CaloTopologyRecord.h:10
HcalHBHEMuonSimAnalyzer::tMinH_
double tMinH_
Definition: HcalHBHEMuonSimAnalyzer.cc:67
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
HcalBarrel
Definition: HcalAssistant.h:33
edm::Handle< edm::SimTrackContainer >
HcalHBHEMuonSimAnalyzer::matchedId_
std::vector< double > matchedId_
Definition: HcalHBHEMuonSimAnalyzer.cc:81
CaloTopology
Definition: CaloTopology.h:19
HcalHBHEMuonSimAnalyzer::hcalActiveLengthHot_
std::vector< double > hcalActiveLengthHot_
Definition: HcalHBHEMuonSimAnalyzer.cc:86
HcalHBHEMuonSimAnalyzer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HcalHBHEMuonSimAnalyzer.cc:397
HcalHBHEMuonSimAnalyzer::beginLuminosityBlock
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: HcalHBHEMuonSimAnalyzer.cc:55
HcalHBHEMuonSimAnalyzer::activeLength
double activeLength(const DetId &)
Definition: HcalHBHEMuonSimAnalyzer.cc:447
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
DetId
Definition: DetId.h:17
HcalHBHEMuonSimAnalyzer::tok_SimVtx_
edm::EDGetTokenT< edm::SimVertexContainer > tok_SimVtx_
Definition: HcalHBHEMuonSimAnalyzer.cc:70
MakerMacros.h
CaloGeometry
Definition: CaloGeometry.h:21
HcalHBHEMuonSimAnalyzer::tMinE_
double tMinE_
Definition: HcalHBHEMuonSimAnalyzer.cc:67
debug
#define debug
Definition: HDRShower.cc:19
spr::energyHCALCell
void energyHCALCell(HcalDetId detId, edm::Handle< T > &hits, std::vector< std::pair< double, int > > &energyCell, int maxDepth=1, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, int depthHE=3, bool debug=false)
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
spr::eECALmatrix
double eECALmatrix(const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
HcalHBHEMuonSimAnalyzer::hcalActiveLength_
std::vector< double > hcalActiveLength_
Definition: HcalHBHEMuonSimAnalyzer.cc:86
spr::propagatedTrackDirection::okECAL
bool okECAL
Definition: CaloPropagateTrack.h:59
Service.h
HcalHBHEMuonSimAnalyzer::maxDepth_
int maxDepth_
Definition: HcalHBHEMuonSimAnalyzer.cc:63
SimVertex.h
eHCALMatrix.h
IdealMagneticFieldRecord.h
edm::ESHandle
Definition: DTSurvey.h:22
HcalHBHEMuonSimAnalyzer::runNumber_
unsigned int runNumber_
Definition: HcalHBHEMuonSimAnalyzer.cc:77
spr::trackAtOrigin
Definition: CaloPropagateTrack.h:92
dqmdumpme.k
k
Definition: dqmdumpme.py:60
HcalHBHEMuonSimAnalyzer::bxNumber_
unsigned int bxNumber_
Definition: HcalHBHEMuonSimAnalyzer.cc:77
HcalHBHEMuonSimAnalyzer::tok_SimTk_
edm::EDGetTokenT< edm::SimTrackContainer > tok_SimTk_
Definition: HcalHBHEMuonSimAnalyzer.cc:69
eECALMatrix.h
LEDCalibrationChannels.depth
depth
Definition: LEDCalibrationChannels.py:65
HcalRecNumberingRecord
Definition: HcalRecNumberingRecord.h:23
HcalDDDRecConstants::getMinDepth
int getMinDepth(const int &itype, const int &ieta, const int &iphi, const int &zside) const
Definition: HcalDDDRecConstants.cc:353
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TFileService.h
HcalHBHEMuonSimAnalyzer::ebLabel_
std::string ebLabel_
Definition: HcalHBHEMuonSimAnalyzer.cc:61
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
CaloSubdetectorGeometry.h
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
spr::propagatedTrackDirection::pointHCAL
GlobalPoint pointHCAL
Definition: CaloPropagateTrack.h:61
edm::ParameterSet
Definition: ParameterSet.h:36
HcalHBHEMuonSimAnalyzer::tMaxE_
double tMaxE_
Definition: HcalHBHEMuonSimAnalyzer.cc:67
Event.h
HcalHBHEMuonSimAnalyzer::idMuon_
const int idMuon_
Definition: HcalHBHEMuonSimAnalyzer.cc:75
HcalHBHEMuonSimAnalyzer::hcalDepthEnergy_
std::vector< double > hcalDepthEnergy_[depthMax_]
Definition: HcalHBHEMuonSimAnalyzer.cc:82
spr::propagatedTrackDirection::detIdHCAL
DetId detIdHCAL
Definition: CaloPropagateTrack.h:60
spr::trackAtOrigin::ok
bool ok
Definition: CaloPropagateTrack.h:94
HcalDetId.h
HcalHitRelabeller.h
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
CaloTopologyRecord.h
HcalHBHEMuonSimAnalyzer::clearVectors
void clearVectors()
Definition: HcalHBHEMuonSimAnalyzer.cc:413
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
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
HcalHBHEMuonSimAnalyzer::tok_caloHH_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloHH_
Definition: HcalHBHEMuonSimAnalyzer.cc:72
HcalHBHEMuonSimAnalyzer::eventNumber_
unsigned int eventNumber_
Definition: HcalHBHEMuonSimAnalyzer.cc:77
MagneticField.h
HcalHBHEMuonSimAnalyzer::~HcalHBHEMuonSimAnalyzer
~HcalHBHEMuonSimAnalyzer() override
Definition: HcalHBHEMuonSimAnalyzer.cc:121
edm::EventSetup
Definition: EventSetup.h:57
HcalHBHEMuonSimAnalyzer::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition: HcalHBHEMuonSimAnalyzer.cc:387
PCaloHit
Definition: PCaloHit.h:8
HcalHBHEMuonSimAnalyzer::tok_caloEB_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEB_
Definition: HcalHBHEMuonSimAnalyzer.cc:71
spr::simTrackAtOrigin
spr::trackAtOrigin simTrackAtOrigin(unsigned int thisTrk, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, bool debug=false)
Definition: CaloPropagateTrack.cc:922
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:28
get
#define get
spr::propagatedTrackDirection::directionECAL
GlobalVector directionECAL
Definition: CaloPropagateTrack.h:62
HcalHBHEMuonSimAnalyzer::endRun
void endRun(edm::Run const &, edm::EventSetup const &) override
Definition: HcalHBHEMuonSimAnalyzer.cc:54
spr::propagatedTrackDirection::directionHCAL
GlobalVector directionHCAL
Definition: CaloPropagateTrack.h:62
HcalHBHEMuonSimAnalyzer::phiGlob_
std::vector< double > phiGlob_
Definition: HcalHBHEMuonSimAnalyzer.cc:78
CaloTopology.h
HcalHBHEMuonSimAnalyzer::actHB_
std::vector< HcalDDDRecConstants::HcalActiveLength > actHB_
Definition: HcalHBHEMuonSimAnalyzer.cc:65
photonIsolationHIProducer_cfi.hbhe
hbhe
Definition: photonIsolationHIProducer_cfi.py:8
HcalSubdetector
HcalSubdetector
Definition: HcalAssistant.h:31
spr::propagateCALO
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
Definition: CaloPropagateTrack.cc:141
HcalHBHEMuonSimAnalyzer::etaGlob_
std::vector< double > etaGlob_
Definition: HcalHBHEMuonSimAnalyzer.cc:78
HcalHBHEMuonSimAnalyzer::actHE_
std::vector< HcalDDDRecConstants::HcalActiveLength > actHE_
Definition: HcalHBHEMuonSimAnalyzer.cc:65
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
HcalHBHEMuonSimAnalyzer::pMuon_
std::vector< double > pMuon_
Definition: HcalHBHEMuonSimAnalyzer.cc:78
CaloSubdetectorTopology.h
HcalHitRelabeller::relabel
DetId relabel(const uint32_t testId) const
Definition: HcalHitRelabeller.cc:49
spr::trackAtOrigin::position
GlobalPoint position
Definition: CaloPropagateTrack.h:96
HcalTopology.h
spr::propagatedTrackDirection::pointECAL
GlobalPoint pointECAL
Definition: CaloPropagateTrack.h:61
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
HcalHBHEMuonSimAnalyzer::eeLabel_
std::string eeLabel_
Definition: HcalHBHEMuonSimAnalyzer.cc:61
spr::propagateHCALBack
spr::propagatedTrackDirection propagateHCALBack(unsigned int thisTrk, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const CaloGeometry *geo, const MagneticField *bField, bool debug=false)
Definition: CaloPropagateTrack.cc:619
Calorimetry_cff.bField
bField
Definition: Calorimetry_cff.py:292
HcalEndcap
Definition: HcalAssistant.h:34
Frameworkfwd.h
HcalHBHEMuonSimAnalyzer::endLuminosityBlock
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Definition: HcalHBHEMuonSimAnalyzer.cc:56
spr::trackAtOrigin::charge
int charge
Definition: CaloPropagateTrack.h:95
CaloPropagateTrack.h
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
CaloGeometry.h
TFileService::kSharedResource
static const std::string kSharedResource
Definition: TFileService.h:76
spr::trackAtOrigin::momentum
GlobalVector momentum
Definition: CaloPropagateTrack.h:97
spr::propagatedTrackDirection::detIdECAL
DetId detIdECAL
Definition: CaloPropagateTrack.h:60
HcalHBHEMuonSimAnalyzer::HcalHBHEMuonSimAnalyzer
HcalHBHEMuonSimAnalyzer(const edm::ParameterSet &)
Definition: HcalHBHEMuonSimAnalyzer.cc:89
HcalHBHEMuonSimAnalyzer::tree_
TTree * tree_
Definition: HcalHBHEMuonSimAnalyzer.cc:76
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
PCaloHitContainer.h
spr::eHCALmatrix
double eHCALmatrix(const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, bool algoNew=true, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
HcalHBHEMuonSimAnalyzer::matchId
unsigned int matchId(const HcalDetId &, const HcalDetId &)
Definition: HcalHBHEMuonSimAnalyzer.cc:440
HcalDDDRecConstants
Definition: HcalDDDRecConstants.h:23
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HcalHBHEMuonSimAnalyzer::etaMax_
double etaMax_
Definition: HcalHBHEMuonSimAnalyzer.cc:64
SimTrack.h
ParameterSet.h
HcalHBHEMuonSimAnalyzer::hcalHot_
std::vector< unsigned int > hcalHot_
Definition: HcalHBHEMuonSimAnalyzer.cc:80
globals_cff.id2
id2
Definition: globals_cff.py:33
HcalDetId::zside
constexpr int zside() const
get the z-side of the cell (1/-1)
Definition: HcalDetId.h:141
edm::Event
Definition: Event.h:73
MagneticField
Definition: MagneticField.h:19
HcalHBHEMuonSimAnalyzer::beginJob
void beginJob() override
Definition: HcalHBHEMuonSimAnalyzer.cc:355
spr::propagatedTrackDirection::okHCAL
bool okHCAL
Definition: CaloPropagateTrack.h:59
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
SimTrackContainer.h
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
edm::InputTag
Definition: InputTag.h:15
spr::propagatedTrackDirection
Definition: CaloPropagateTrack.h:53
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
SimVertexContainer.h
HcalHBHEMuonSimAnalyzer::hcLabel_
std::string hcLabel_
Definition: HcalHBHEMuonSimAnalyzer.cc:62
HcalHBHEMuonSimAnalyzer::tok_caloEE_
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEE_
Definition: HcalHBHEMuonSimAnalyzer.cc:71
hit
Definition: SiStripHitEffFromCalibTree.cc:88
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
HcalHBHEMuonSimAnalyzer::ecalDetId_
std::vector< unsigned int > ecalDetId_
Definition: HcalHBHEMuonSimAnalyzer.cc:80