CMS 3D CMS Logo

HcalHBHEMuonHighEtaAnalyzer.cc
Go to the documentation of this file.
1 #include <memory>
2 #include <iostream>
3 #include <fstream>
4 #include <vector>
5 #include <TFile.h>
6 #include <TTree.h>
7 #include "TPRegexp.h"
8 
9 // user include files
19 
30 
32 
42 
45 
48 
52 
56 
73 
74 //#define EDM_ML_DEBUG
75 
76 class HcalHBHEMuonHighEtaAnalyzer : public edm::one::EDAnalyzer<edm::one::WatchRuns, edm::one::SharedResources> {
77 public:
79 
80  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
81 
82 private:
83  void beginJob() override;
84  void analyze(edm::Event const&, edm::EventSetup const&) override;
85  void beginRun(edm::Run const&, edm::EventSetup const&) override;
86  void endRun(edm::Run const&, edm::EventSetup const&) override {}
87 
88  bool analyzeMuon(edm::Event const&, math::XYZPoint&);
90  bool analyzeTracks(const reco::Track*, math::XYZPoint&, int, std::vector<spr::propagatedTrackID>&, bool);
91  void clearVectors();
92  int matchId(const HcalDetId&, const HcalDetId&);
93  double activeLength(const DetId&);
94  bool isGoodVertex(const reco::Vertex&);
95  double respCorr(const DetId&);
96  double gainFactor(const edm::ESHandle<HcalDbService>&, const HcalDetId&);
97  int depth16HE(int, int);
98  bool goodCell(const HcalDetId&, const reco::Track*, const CaloGeometry*, const MagneticField*);
100 
101  // ----------member data ---------------------------
104  const double etaMin_, emaxNearPThr_;
106  const int useRaw_, verbosity_;
112 
116 
123 
130 
134 
136  static const int depthMax_ = 7;
137  TTree* tree_;
139  std::vector<bool> mediumMuon_;
140  std::vector<double> ptGlob_, etaGlob_, phiGlob_, energyMuon_, pMuon_;
141  std::vector<double> isolationR04_, isolationR03_;
142  std::vector<double> ecalEnergy_, hcalEnergy_, hoEnergy_;
143  std::vector<bool> matchedId_, hcalHot_;
144  std::vector<double> ecal3x3Energy_, hcal1x1Energy_;
145  std::vector<unsigned int> ecalDetId_, hcalDetId_, ehcalDetId_;
146  std::vector<int> hcal_ieta_, hcal_iphi_;
147  std::vector<double> hcalDepthEnergy_[depthMax_];
148  std::vector<double> hcalDepthActiveLength_[depthMax_];
149  std::vector<double> hcalDepthEnergyHot_[depthMax_];
150  std::vector<double> hcalDepthActiveLengthHot_[depthMax_];
151  std::vector<double> hcalDepthChargeHot_[depthMax_];
152  std::vector<double> hcalDepthChargeHotBG_[depthMax_];
153  std::vector<double> hcalDepthEnergyCorr_[depthMax_];
154  std::vector<double> hcalDepthEnergyHotCorr_[depthMax_];
155  std::vector<bool> hcalDepthMatch_[depthMax_];
156  std::vector<bool> hcalDepthMatchHot_[depthMax_];
158  std::vector<double> emaxNearP_, trackDz_;
161 
162  std::vector<HcalDDDRecConstants::HcalActiveLength> actHB, actHE;
163  std::map<DetId, double> corrValue_;
165 };
166 
168  : labelEBRecHit_(iConfig.getParameter<edm::InputTag>("labelEBRecHit")),
169  labelEERecHit_(iConfig.getParameter<edm::InputTag>("labelEERecHit")),
170  labelHBHERecHit_(iConfig.getParameter<edm::InputTag>("labelHBHERecHit")),
171  labelVtx_(iConfig.getParameter<std::string>("labelVertex")),
172  labelMuon_(iConfig.getParameter<std::string>("labelMuon")),
173  labelGenTrack_(iConfig.getParameter<std::string>("labelTrack")),
174  etaMin_(iConfig.getParameter<double>("etaMin")),
175  emaxNearPThr_(iConfig.getParameter<double>("emaxNearPThreshold")),
176  analyzeMuon_(iConfig.getParameter<bool>("analyzeMuon")),
177  unCorrect_(iConfig.getParameter<bool>("unCorrect")),
178  collapseDepth_(iConfig.getParameter<bool>("collapseDepth")),
179  isItPlan1_(iConfig.getParameter<bool>("isItPlan1")),
180  getCharge_(iConfig.getParameter<bool>("getCharge")),
181  useRaw_(iConfig.getParameter<int>("useRaw")),
182  verbosity_(iConfig.getParameter<int>("verbosity")),
183  theTrackQuality_(iConfig.getUntrackedParameter<std::string>("trackQuality")),
184  fileInCorr_(iConfig.getUntrackedParameter<std::string>("fileInCorr", "")),
185  ignoreHECorr_(iConfig.getUntrackedParameter<bool>("ignoreHECorr", false)),
186  isItPreRecHit_(iConfig.getUntrackedParameter<bool>("isItPreRecHit", false)),
187  writeRespCorr_(iConfig.getUntrackedParameter<bool>("writeRespCorr", false)),
188  hdc_(nullptr),
189  theHBHETopology_(nullptr),
190  respCorrs_(nullptr),
191  tree_(nullptr) {
192  usesResource(TFileService::kSharedResource);
193  //now do what ever initialization is needed
194  kount_ = 0;
195  maxDepth_ = iConfig.getUntrackedParameter<int>("maxDepth", 7);
196  if (maxDepth_ > depthMax_)
198  else if (maxDepth_ < 1)
199  maxDepth_ = 4;
200 
202  selectionParameter_.minPt = iConfig.getUntrackedParameter<double>("minTrackPt");
204  selectionParameter_.maxDxyPV = iConfig.getUntrackedParameter<double>("maxDxyPV");
205  selectionParameter_.maxDzPV = iConfig.getUntrackedParameter<double>("maxDzPV");
206  selectionParameter_.maxChi2 = iConfig.getUntrackedParameter<double>("maxChi2");
207  selectionParameter_.maxDpOverP = iConfig.getUntrackedParameter<double>("maxDpOverP");
210 
212  tok_EB_ = consumes<EcalRecHitCollection>(labelEBRecHit_);
213  tok_EE_ = consumes<EcalRecHitCollection>(labelEERecHit_);
214  tok_HBHE_ = consumes<HBHERecHitCollection>(labelHBHERecHit_);
215  tok_Vtx_ = consumes<reco::VertexCollection>(labelVtx_);
216  tok_Muon_ = consumes<reco::MuonCollection>(labelMuon_);
217  tok_genTrack_ = consumes<reco::TrackCollection>(labelGenTrack_);
218  edm::LogVerbatim("HBHEMuon") << "Labels used: Track " << labelGenTrack_ << " Vtx " << labelVtx_ << " EB "
219  << labelEBRecHit_ << " EE " << labelEERecHit_ << " HBHE " << labelHBHERecHit_ << " MU "
220  << labelMuon_;
221 
222  if (!fileInCorr_.empty()) {
223  std::ifstream infile(fileInCorr_.c_str());
224  if (infile.is_open()) {
225  while (true) {
226  unsigned int id;
227  double cfac;
228  infile >> id >> cfac;
229  if (!infile.good())
230  break;
231  corrValue_[DetId(id)] = cfac;
232  }
233  infile.close();
234  }
235  }
236  useMyCorr_ = (!corrValue_.empty());
237  edm::LogVerbatim("HBHEMuon") << "Flags used: UseRaw " << useRaw_ << " GetCharge " << getCharge_ << " UnCorrect "
238  << unCorrect_ << " IgnoreHECorr " << ignoreHECorr_ << " CollapseDepth " << collapseDepth_
239  << ":" << mergedDepth_ << " IsItPlan1 " << isItPlan1_ << " IsItPreRecHit "
240  << isItPreRecHit_ << " UseMyCorr " << useMyCorr_;
241 }
242 
243 //
244 // member functions
245 //
246 
247 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
250  desc.add<edm::InputTag>("labelEBRecHit", edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
251  desc.add<edm::InputTag>("labelEERecHit", edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
252  desc.add<edm::InputTag>("labelHBHERecHit", edm::InputTag("hbhereco"));
253  desc.add<std::string>("labelVertex", "offlinePrimaryVertices");
254  desc.add<std::string>("labelMuon", "muons");
255  desc.add<std::string>("labelTrack", "generalTracks");
256  desc.add<double>("etaMin", 2.0);
257  desc.add<double>("emaxNearPThreshold", 10.0);
258  desc.add<bool>("analyzeMuon", true);
259  desc.add<bool>("unCorrect", false);
260  desc.add<bool>("collapseDepth", false);
261  desc.add<bool>("isItPlan1", false);
262  desc.add<bool>("getCharge", false);
263  desc.add<int>("useRaw", 0);
264  desc.add<int>("verbosity", 0);
265  desc.addUntracked<std::string>("fileInCorr", "");
266  desc.addUntracked<std::string>("trackQuality", "highPurity");
267  desc.addUntracked<double>("minTrackPt", 1.0);
268  desc.addUntracked<double>("maxDxyPV", 0.02);
269  desc.addUntracked<double>("maxDzPV", 100.0);
270  desc.addUntracked<double>("maxChi2", 5.0);
271  desc.addUntracked<double>("maxDpOverP", 0.1);
272  desc.addUntracked<bool>("ignoreHECorr", false);
273  desc.addUntracked<bool>("isItPreRecHit", false);
274  desc.addUntracked<bool>("writeRespCorr", false);
275  desc.addUntracked<int>("maxDepth", 7);
276  descriptions.add("hcalHBHEMuonHighEta", desc);
277 }
278 
279 // ------------ method called once each job just before starting event loop ------------
282  tree_ = fs->make<TTree>("HBHEMuonHighEta", "HBHEMuonHighEta");
283  tree_->Branch("pt_of_muon", &ptGlob_);
284  tree_->Branch("eta_of_muon", &etaGlob_);
285  tree_->Branch("phi_of_muon", &phiGlob_);
286  tree_->Branch("energy_of_muon", &energyMuon_);
287  tree_->Branch("p_of_muon", &pMuon_);
288  tree_->Branch("MediumMuon", &mediumMuon_);
289  tree_->Branch("IsolationR04", &isolationR04_);
290  tree_->Branch("IsolationR03", &isolationR03_);
291  tree_->Branch("ecal_3into3", &ecalEnergy_);
292  tree_->Branch("hcal_3into3", &hcalEnergy_);
293  tree_->Branch("ho_3into3", &hoEnergy_);
294  tree_->Branch("emaxNearP", &emaxNearP_);
295 
296  tree_->Branch("Run_No", &runNumber_);
297  tree_->Branch("Event_No", &eventNumber_);
298  tree_->Branch("GoodVertex", &goodVertex_);
299  tree_->Branch("matchedId", &matchedId_);
300  tree_->Branch("hcal_cellHot", &hcalHot_);
301  tree_->Branch("ecal_3x3", &ecal3x3Energy_);
302  tree_->Branch("hcal_1x1", &hcal1x1Energy_);
303  tree_->Branch("ecal_detID", &ecalDetId_);
304  tree_->Branch("hcal_detID", &hcalDetId_);
305  tree_->Branch("ehcal_detID", &ehcalDetId_);
306  tree_->Branch("hcal_ieta", &hcal_ieta_);
307  tree_->Branch("hcal_iphi", &hcal_iphi_);
308 
309  char name[100];
310  for (int k = 0; k < maxDepth_; ++k) {
311  sprintf(name, "hcal_edepth%d", (k + 1));
312  tree_->Branch(name, &hcalDepthEnergy_[k]);
313  sprintf(name, "hcal_activeL%d", (k + 1));
314  tree_->Branch(name, &hcalDepthActiveLength_[k]);
315  sprintf(name, "hcal_edepthHot%d", (k + 1));
316  tree_->Branch(name, &hcalDepthEnergyHot_[k]);
317  sprintf(name, "hcal_activeHotL%d", (k + 1));
319  sprintf(name, "hcal_cdepthHot%d", (k + 1));
320  tree_->Branch(name, &hcalDepthChargeHot_[k]);
321  sprintf(name, "hcal_cdepthHotBG%d", (k + 1));
322  tree_->Branch(name, &hcalDepthChargeHotBG_[k]);
323  sprintf(name, "hcal_edepthCorrect%d", (k + 1));
324  tree_->Branch(name, &hcalDepthEnergyCorr_[k]);
325  sprintf(name, "hcal_edepthHotCorrect%d", (k + 1));
326  tree_->Branch(name, &hcalDepthEnergyHotCorr_[k]);
327  sprintf(name, "hcal_depthMatch%d", (k + 1));
328  tree_->Branch(name, &hcalDepthMatch_[k]);
329  sprintf(name, "hcal_depthMatchHot%d", (k + 1));
330  tree_->Branch(name, &hcalDepthMatchHot_[k]);
331  }
332  tree_->Branch("activeLength", &hcalActiveLength_);
333  tree_->Branch("activeLengthHot", &hcalActiveLengthHot_);
334  tree_->Branch("trackDz", &trackDz_);
335  tree_->Branch("trackLayerCrossed", &trackLayerCrossed_);
336  tree_->Branch("trackOuterHit", &trackOuterHit_);
337  tree_->Branch("trackMissedInnerHits", &trackMissedInnerHits_);
338  tree_->Branch("trackMissedOuterHits", &trackMissedOuterHits_);
339 }
340 
341 // ------------ method called for each event ------------
343  ++kount_;
344  clearVectors();
345  runNumber_ = iEvent.id().run();
346  eventNumber_ = iEvent.id().event();
347 #ifdef EDM_ML_DEBUG
348  edm::LogVerbatim("HBHEMuon") << "Run " << runNumber_ << " Event " << eventNumber_;
349 #endif
350 
351  // get handles to calogeometry and calotopology
352  iSetup.get<CaloGeometryRecord>().get(pG_);
353 
358  iSetup.get<HcalDbRecord>().get(conditions_);
359 
360  // Relevant blocks from iEvent
362  iEvent.getByToken(tok_Vtx_, vtx);
363 
364  iEvent.getByToken(tok_EB_, barrelRecHitsHandle_);
365  iEvent.getByToken(tok_EE_, endcapRecHitsHandle_);
366  iEvent.getByToken(tok_HBHE_, hbhe_);
367 
368  // require a good vertex
369  math::XYZPoint pvx;
370  goodVertex_ = 0;
371  if (!vtx.isValid()) {
372 #ifdef EDM_ML_DEBUG
373  edm::LogVerbatim("HBHEMuon") << "No Good Vertex found == Reject\n";
374 #endif
375  return;
376  }
377 
378  reco::VertexCollection::const_iterator firstGoodVertex = vtx->end();
379  for (reco::VertexCollection::const_iterator it = vtx->begin(); it != vtx->end(); it++) {
380  if (isGoodVertex(*it)) {
381  if (firstGoodVertex == vtx->end())
382  firstGoodVertex = it;
383  ++goodVertex_;
384  }
385  }
386  if (firstGoodVertex != vtx->end())
387  pvx = firstGoodVertex->position();
388 
389  bool accept(false);
390  if (barrelRecHitsHandle_.isValid() && endcapRecHitsHandle_.isValid() && hbhe_.isValid()) {
392  }
393  if (accept) {
394 #ifdef EDM_ML_DEBUG
395  edm::LogVerbatim("HBHEMuon") << "Total of " << hcal_ieta_.size() << " propagated points";
396  for (unsigned int i = 0; i < hcal_ieta_.size(); ++i)
397  edm::LogVerbatim("HBHEMuon") << "[" << i << "] ieta/iphi for entry to "
398  << "HCAL has value of " << hcal_ieta_[i] << ":" << hcal_iphi_[i];
399  if ((verbosity_ / 100) % 10 > 0) {
400  edm::LogVerbatim("HBHEMuon") << "Sizes:: ptGlob:" << ptGlob_.size() << " etaGlob:" << etaGlob_.size()
401  << " phiGlob:" << phiGlob_.size() << " energyMuon:" << energyMuon_.size()
402  << " pMuon:" << pMuon_.size() << " mediumMuon: " << mediumMuon_.size()
403  << " isolation:" << isolationR04_.size() << ":" << isolationR03_.size()
404  << " e|h|ho energy: " << ecalEnergy_.size() << ":" << hcalEnergy_.size() << ":"
405  << hoEnergy_.size();
406  edm::LogVerbatim("HBHEMuon") << " matchedId:" << matchedId_.size() << " hcalHot:" << hcalHot_.size()
407  << " 3x3|1x1 energy:" << ecal3x3Energy_.size() << ":" << hcal1x1Energy_.size()
408  << " detId:" << ecalDetId_.size() << ":" << hcalDetId_.size() << ":"
409  << ehcalDetId_.size() << " eta|phi:" << hcal_ieta_.size() << ":"
410  << hcal_iphi_.size();
411  edm::LogVerbatim("HBHEMuon") << " activeLength:" << hcalActiveLength_.size() << ":"
412  << hcalActiveLengthHot_.size() << " emaxNearP:" << emaxNearP_.size()
413  << " trackDz: " << trackDz_.size() << " tracks:" << trackLayerCrossed_.size() << ":"
414  << trackOuterHit_.size() << ":" << trackMissedInnerHits_.size() << ":"
415  << trackMissedOuterHits_.size();
416  for (unsigned int i = 0; i < depthMax_; ++i)
417  edm::LogVerbatim("HBHEMuon")
418  << "Depth " << i
419  << " Energy|Length|EnergyHot|LengthHot|Charge|ChargeBG|EnergyCorr|EnergyHotCorr|Match|MatchHot:"
420  << hcalDepthEnergy_[i].size() << ":" << hcalDepthActiveLength_[i].size() << ":"
421  << hcalDepthEnergyHot_[i].size() << ":" << hcalDepthActiveLengthHot_[i].size() << ":"
422  << hcalDepthChargeHot_[i].size() << ":" << hcalDepthChargeHotBG_[i].size() << ":"
423  << hcalDepthEnergyCorr_[i].size() << ":" << hcalDepthEnergyHotCorr_[i].size() << ":"
424  << hcalDepthMatch_[i].size() << ":" << hcalDepthMatchHot_[i].size();
425  }
426 #endif
427  tree_->Fill();
428  }
429 }
430 
431 // ------------ method called when starting to processes a run ------------
434  iSetup.get<HcalRecNumberingRecord>().get(pHRNDC);
435  hdc_ = pHRNDC.product();
436  actHB.clear();
437  actHE.clear();
438  actHB = hdc_->getThickActive(0);
439  actHE = hdc_->getThickActive(1);
440 #ifdef EDM_ML_DEBUG
441  if (verbosity_ % 10 > 0) {
442  unsigned int k1(0), k2(0);
443  edm::LogVerbatim("HBHEMuon") << actHB.size() << " Active Length for HB";
444  for (const auto& act : actHB) {
445  edm::LogVerbatim("HBHEMuon") << "[" << k1 << "] ieta " << act.ieta << " depth " << act.depth << " zside "
446  << act.zside << " type " << act.stype << " phi " << act.iphis.size() << ":"
447  << act.iphis[0] << " L " << act.thick;
448  HcalDetId hcid1(HcalBarrel, (act.ieta) * (act.zside), act.iphis[0], act.depth);
449  HcalDetId hcid2 = mergedDepth_ ? hdc_->mergedDepthDetId(hcid1) : hcid1;
450  edm::LogVerbatim("HBHEMuon") << hcid1 << " | " << hcid2 << " L " << activeLength(DetId(hcid2));
451  ++k1;
452  }
453  edm::LogVerbatim("HBHEMuon") << actHE.size() << " Active Length for HE";
454  for (const auto& act : actHE) {
455  edm::LogVerbatim("HBHEMuon") << "[" << k2 << "] ieta " << act.ieta << " depth " << act.depth << " zside "
456  << act.zside << " type " << act.stype << " phi " << act.iphis.size() << ":"
457  << act.iphis[0] << " L " << act.thick;
458  HcalDetId hcid1(HcalEndcap, (act.ieta) * (act.zside), act.iphis[0], act.depth);
459  HcalDetId hcid2 = mergedDepth_ ? hdc_->mergedDepthDetId(hcid1) : hcid1;
460  edm::LogVerbatim("HBHEMuon") << hcid1 << " | " << hcid2 << " L " << activeLength(DetId(hcid2));
461  ++k2;
462  }
463  }
464 #endif
465 
467  iSetup.get<HcalRecNumberingRecord>().get(htopo);
468  theHBHETopology_ = htopo.product();
469 
471  iSetup.get<HcalRespCorrsRcd>().get(resp);
472  respCorrs_ = new HcalRespCorrs(*resp.product());
474 
475  // Write correction factors for all HB/HE events
476  if (writeRespCorr_) {
478  iSetup.get<CaloGeometryRecord>().get(pG);
479  const CaloGeometry* geo = pG.product();
481  const std::vector<DetId>& ids = gHcal->getValidDetIds(DetId::Hcal, 0);
482  edm::LogVerbatim("HBHEMuon") << "\nTable of Correction Factors for Run " << iRun.run() << "\n";
483  for (auto const& id : ids) {
484  if ((id.det() == DetId::Hcal) && ((id.subdetId() == HcalBarrel) || (id.subdetId() == HcalEndcap))) {
485  edm::LogVerbatim("HBHEMuon") << HcalDetId(id) << " " << id.rawId() << " "
486  << (respCorrs_->getValues(id))->getValue();
487  }
488  }
489  }
490 }
491 
494  iEvent.getByToken(tok_Muon_, _Muon);
495  bool accept = false;
496 
497  if (_Muon.isValid()) {
498  int nTrack(0);
499  std::vector<spr::propagatedTrackID> trkCaloDets;
500  for (reco::MuonCollection::const_iterator RecMuon = _Muon->begin(); RecMuon != _Muon->end(); ++RecMuon) {
501  if (RecMuon->innerTrack().isNonnull()) {
502  const reco::Track* pTrack = (RecMuon->innerTrack()).get();
503  if (std::abs(pTrack->eta()) > etaMin_) {
504  if (analyzeTracks(pTrack, leadPV, nTrack, trkCaloDets, false)) {
505  accept = true;
506  ptGlob_.emplace_back((RecMuon)->pt());
507  etaGlob_.emplace_back(RecMuon->eta());
508  phiGlob_.emplace_back(RecMuon->phi());
509  energyMuon_.push_back(RecMuon->energy());
510  pMuon_.emplace_back(RecMuon->p());
511  bool mediumMuon = (((RecMuon->isPFMuon()) && (RecMuon->isGlobalMuon() || RecMuon->isTrackerMuon())) &&
512  (RecMuon->innerTrack()->validFraction() > 0.49));
513  if (mediumMuon) {
514  double chiGlobal =
515  ((RecMuon->globalTrack().isNonnull()) ? RecMuon->globalTrack()->normalizedChi2() : 999);
516  bool goodGlob =
517  (RecMuon->isGlobalMuon() && chiGlobal < 3 && RecMuon->combinedQuality().chi2LocalPosition < 12 &&
518  RecMuon->combinedQuality().trkKink < 20);
519  mediumMuon = muon::segmentCompatibility(*RecMuon) > (goodGlob ? 0.303 : 0.451);
520  }
521  mediumMuon_.emplace_back(mediumMuon);
522  bool isoR03 =
523  ((RecMuon->pfIsolationR03().sumChargedHadronPt +
524  std::max(0.,
525  RecMuon->pfIsolationR03().sumNeutralHadronEt + RecMuon->pfIsolationR03().sumPhotonEt -
526  (0.5 * RecMuon->pfIsolationR03().sumPUPt))) /
527  RecMuon->pt());
528  bool isoR04 =
529  ((RecMuon->pfIsolationR04().sumChargedHadronPt +
530  std::max(0.,
531  RecMuon->pfIsolationR04().sumNeutralHadronEt + RecMuon->pfIsolationR04().sumPhotonEt -
532  (0.5 * RecMuon->pfIsolationR04().sumPUPt))) /
533  RecMuon->pt());
534  isolationR03_.emplace_back(isoR03);
535  isolationR04_.emplace_back(isoR04);
536 
537  ecalEnergy_.emplace_back(RecMuon->calEnergy().emS9);
538  hcalEnergy_.emplace_back(RecMuon->calEnergy().hadS9);
539  hoEnergy_.emplace_back(RecMuon->calEnergy().hoS9);
540 #ifdef EDM_ML_DEBUG
541  if ((verbosity_ / 100) % 10 > 0)
542  edm::LogVerbatim("HBHEMuon")
543  << "Muon[" << ptGlob_.size() << "] pt:eta:phi:p " << ptGlob_.back() << ":" << etaGlob_.back() << ":"
544  << phiGlob_.back() << ":" << energyMuon_.back() << ":" << pMuon_.back() << ":"
545  << " Medium:i3:i4 " << mediumMuon_.back() << ":" << isolationR03_.back() << ":"
546  << isolationR04_.back() << ":"
547  << " Energy EC:HC:HO " << ecalEnergy_.back() << ":" << hcalEnergy_.back() << ":" << hoEnergy_.back();
548 #endif
549  }
550  }
551  }
552  }
553  }
554  return accept;
555 }
556 
558  //Get track collection
560  iEvent.getByToken(tok_genTrack_, trkCollection);
561  bool accept = false;
562 
563  if (!trkCollection.isValid()) {
564  const CaloGeometry* geo = pG_.product();
566  std::vector<spr::propagatedTrackID> trkCaloDets;
567  spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDets, false);
568  int nTrack(0);
569  std::vector<spr::propagatedTrackID>::const_iterator trkDetItr;
570  for (trkDetItr = trkCaloDets.begin(), nTrack = 0; trkDetItr != trkCaloDets.end(); trkDetItr++, nTrack++) {
571  const reco::Track* pTrack = &(*(trkDetItr->trkItr));
572  if (std::abs(pTrack->eta()) > etaMin_) {
573  accept = analyzeTracks(pTrack, leadPV, nTrack, trkCaloDets, true);
574  }
575  }
576  }
577  return accept;
578 }
579 
581  math::XYZPoint& leadPV,
582  int nTrack,
583  std::vector<spr::propagatedTrackID>& trkCaloDets,
584  bool ifHadron) {
585  const CaloGeometry* geo = pG_.product();
587  const EcalChannelStatus* theEcalChStatus = ecalChStatus_.product();
588  const CaloTopology* caloTopology = theCaloTopology_.product();
589  bool accept(false);
590 
591  if (spr::goodTrack(pTrack, leadPV, selectionParameter_, false)) {
592  spr::propagatedTrackID trackID = spr::propagateCALO(pTrack, geo, bField, false);
593 
594  if (trackID.okECAL && trackID.okHCAL) {
595  double emaxNearP = (ifHadron) ? spr::chargeIsolationEcal(nTrack, trkCaloDets, geo, caloTopology, 15, 15) : 0;
596  if (emaxNearP < emaxNearPThr_) {
597  double eEcal(0), eHcal(0), activeLengthTot(0), activeLengthHotTot(0);
598  double eHcalDepth[depthMax_], eHcalDepthHot[depthMax_];
599  double eHcalDepthC[depthMax_], eHcalDepthHotC[depthMax_];
600  double cHcalDepthHot[depthMax_], cHcalDepthHotBG[depthMax_];
601  double activeL[depthMax_], activeHotL[depthMax_];
602  bool matchDepth[depthMax_], matchDepthHot[depthMax_];
603  HcalDetId eHcalDetId[depthMax_];
604  unsigned int isHot(0);
605  bool tmpmatch(false);
606  int ieta(-1000), iphi(-1000);
607  for (int i = 0; i < depthMax_; ++i) {
608  eHcalDepth[i] = eHcalDepthHot[i] = 0;
609  eHcalDepthC[i] = eHcalDepthHotC[i] = 0;
610  cHcalDepthHot[i] = cHcalDepthHotBG[i] = 0;
611  activeL[i] = activeHotL[i] = 0;
612  matchDepth[i] = matchDepthHot[i] = true;
613  }
614 
616  std::pair<bool, HcalDetId> info = spr::propagateHCALBack(pTrack, geo, bField, false);
617  if (info.first)
618  check = info.second;
619 
620  const DetId isoCell(trackID.detIdECAL);
621  std::pair<double, bool> e3x3 = spr::eECALmatrix(isoCell,
624  *theEcalChStatus,
625  geo,
626  caloTopology,
627  sevlv_.product(),
628  1,
629  1,
630  -100.0,
631  -100.0,
632  -500.0,
633  500.0,
634  false);
635  eEcal = e3x3.first;
636 #ifdef EDM_ML_DEBUG
637  if (verbosity_ % 10 > 0)
638  edm::LogVerbatim("HBHEMuon") << "Propagate Track to ECAL: " << e3x3.second << ":" << trackID.okECAL << " E "
639  << eEcal;
640 #endif
641 
642  DetId closestCell(trackID.detIdHCAL);
643  HcalDetId hcidt(closestCell.rawId());
644  if ((hcidt.ieta() == check.ieta()) && (hcidt.iphi() == check.iphi()))
645  tmpmatch = true;
646 #ifdef EDM_ML_DEBUG
647  if (verbosity_ % 10 > 0)
648  edm::LogVerbatim("HBHEMuon") << "Front " << hcidt << " Back " << info.first << ":" << check << " Match "
649  << tmpmatch;
650 #endif
651 
652  HcalSubdetector subdet = hcidt.subdet();
653  ieta = hcidt.ieta();
654  iphi = hcidt.iphi();
655  bool hborhe = (std::abs(ieta) == 16);
656 
658  closestCell,
659  hbhe_,
660  0,
661  0,
662  false,
663  true,
664  -100.0,
665  -100.0,
666  -100.0,
667  -100.0,
668  -500.,
669  500.,
670  useRaw_);
671  std::vector<std::pair<double, int>> ehdepth;
672  spr::energyHCALCell((HcalDetId)closestCell,
673  hbhe_,
674  ehdepth,
675  depthMax_,
676  -100.0,
677  -100.0,
678  -100.0,
679  -100.0,
680  -500.0,
681  500.0,
682  useRaw_,
683  depth16HE(ieta, iphi),
684  false);
685  for (int i = 0; i < depthMax_; ++i)
686  eHcalDetId[i] = HcalDetId();
687  for (unsigned int i = 0; i < ehdepth.size(); ++i) {
688  HcalSubdetector subdet0 =
689  (hborhe) ? ((ehdepth[i].second >= depth16HE(ieta, iphi)) ? HcalEndcap : HcalBarrel) : subdet;
690  HcalDetId hcid0(subdet0, ieta, iphi, ehdepth[i].second);
691  double actL = activeLength(DetId(hcid0));
692  double ene = ehdepth[i].first;
693  bool tmpC(false);
694  if (ene > 0.0) {
695  if (!(theHBHETopology_->validHcal(hcid0))) {
696  edm::LogWarning("HBHEMuon") << "(1) Invalid ID " << hcid0 << " with E = " << ene;
697  edm::LogWarning("HBHEMuon") << HcalDetId(closestCell) << " with " << ehdepth.size() << " depths:";
698  for (const auto& ehd : ehdepth)
699  edm::LogWarning("HBHEMuon") << " " << ehd.second << ":" << ehd.first;
700  } else {
701  tmpC = goodCell(hcid0, pTrack, geo, bField);
702  double enec(ene);
703  if (unCorrect_) {
704  double corr = (ignoreHECorr_ && (subdet0 == HcalEndcap)) ? 1.0 : respCorr(DetId(hcid0));
705  if (corr != 0)
706  ene /= corr;
707 #ifdef EDM_ML_DEBUG
708  if (verbosity_ % 10 > 0) {
709  HcalDetId id = (isItPlan1_ && isItPreRecHit_) ? hdc_->mergedDepthDetId(hcid0) : hcid0;
710  edm::LogVerbatim("HBHEMuon") << hcid0 << ":" << id << " Corr " << corr;
711  }
712 #endif
713  }
714  int depth = ehdepth[i].second - 1;
715  if (collapseDepth_) {
716  HcalDetId id = hdc_->mergedDepthDetId(hcid0);
717  depth = id.depth() - 1;
718  }
719  eHcalDepth[depth] += ene;
720  eHcalDepthC[depth] += enec;
721  activeL[depth] += actL;
722  activeLengthTot += actL;
723  matchDepth[depth] = (matchDepth[depth] && tmpC);
724 #ifdef EDM_ML_DEBUG
725  if ((verbosity_ / 10) % 10 > 0)
726  edm::LogVerbatim("HBHEMuon")
727  << hcid0 << " E " << ene << ":" << enec << " L " << actL << " Match " << tmpC;
728 #endif
729  }
730  }
731  }
732 #ifdef EDM_ML_DEBUG
733  if ((verbosity_ / 10) % 10 > 0) {
734  edm::LogVerbatim("HBHEMuon") << hcidt << " Match " << tmpmatch << " Depths " << ehdepth.size();
735  for (unsigned int k = 0; k < ehdepth.size(); ++k)
736  edm::LogVerbatim("HBHEMuon") << " [" << k << ":" << ehdepth[k].second << "] " << matchDepth[k];
737  }
738 #endif
739  HcalDetId hotCell;
740  spr::eHCALmatrix(geo, theHBHETopology_, closestCell, hbhe_, 1, 1, hotCell, false, useRaw_, false);
741  isHot = matchId(closestCell, hotCell);
742  if (hotCell != HcalDetId()) {
743  subdet = HcalDetId(hotCell).subdet();
744  ieta = HcalDetId(hotCell).ieta();
745  iphi = HcalDetId(hotCell).iphi();
746  hborhe = (std::abs(ieta) == 16);
747  std::vector<std::pair<double, int>> ehdepth;
748  spr::energyHCALCell(hotCell,
749  hbhe_,
750  ehdepth,
751  depthMax_,
752  -100.0,
753  -100.0,
754  -100.0,
755  -100.0,
756  -500.0,
757  500.0,
758  useRaw_,
759  depth16HE(ieta, iphi),
760  false);
761  for (int i = 0; i < depthMax_; ++i)
762  eHcalDetId[i] = HcalDetId();
763  for (unsigned int i = 0; i < ehdepth.size(); ++i) {
764  HcalSubdetector subdet0 =
765  (hborhe) ? ((ehdepth[i].second >= depth16HE(ieta, iphi)) ? HcalEndcap : HcalBarrel) : subdet;
766  HcalDetId hcid0(subdet0, ieta, iphi, ehdepth[i].second);
767  double actL = activeLength(DetId(hcid0));
768  double ene = ehdepth[i].first;
769  bool tmpC(false);
770  if (ene > 0.0) {
771  if (!(theHBHETopology_->validHcal(hcid0))) {
772  edm::LogWarning("HBHEMuon") << "(2) Invalid ID " << hcid0 << " with E = " << ene;
773  edm::LogWarning("HBHEMuon") << HcalDetId(hotCell) << " with " << ehdepth.size() << " depths:";
774  for (const auto& ehd : ehdepth)
775  edm::LogWarning("HBHEMuon") << " " << ehd.second << ":" << ehd.first;
776  } else {
777  tmpC = goodCell(hcid0, pTrack, geo, bField);
778  double chg(ene), enec(ene);
779  if (unCorrect_) {
780  double corr = (ignoreHECorr_ && (subdet0 == HcalEndcap)) ? 1.0 : respCorr(DetId(hcid0));
781  if (corr != 0)
782  ene /= corr;
783 #ifdef EDM_ML_DEBUG
784  if (verbosity_ % 10 > 0) {
785  HcalDetId id = (isItPlan1_ && isItPreRecHit_) ? hdc_->mergedDepthDetId(hcid0) : hcid0;
786  edm::LogVerbatim("HBHEMuon")
787  << hcid0 << ":" << id << " Corr " << corr << " E " << ene << ":" << enec;
788  }
789 #endif
790  }
791  if (getCharge_) {
792  double gain = gainFactor(conditions_, hcid0);
793  if (gain != 0)
794  chg /= gain;
795 #ifdef EDM_ML_DEBUG
796  if (verbosity_ % 10 > 0)
797  edm::LogVerbatim("HBHEMuon") << hcid0 << " Gain " << gain << " C " << chg;
798 #endif
799  }
800  int depth = ehdepth[i].second - 1;
801  if (collapseDepth_) {
802  HcalDetId id = hdc_->mergedDepthDetId(hcid0);
803  depth = id.depth() - 1;
804  }
805  eHcalDepthHot[depth] += ene;
806  eHcalDepthHotC[depth] += enec;
807  cHcalDepthHot[depth] += chg;
808  activeHotL[depth] += actL;
809  activeLengthHotTot += actL;
810  matchDepthHot[depth] = (matchDepthHot[depth] && tmpC);
811 #ifdef EDM_ML_DEBUG
812  if ((verbosity_ / 10) % 10 > 0)
813  edm::LogVerbatim("HBHEMuon") << hcid0 << " depth " << depth << " E " << ene << ":" << enec << " C "
814  << chg << " L " << actL << " Match " << tmpC;
815 #endif
816  }
817  }
818  }
819  }
820 #ifdef EDM_ML_DEBUG
821  edm::LogVerbatim("HBHEMuon") << "Propagate Track to HCAL: " << trackID.okHCAL << " Match " << tmpmatch
822  << " Hot " << isHot << " Energy " << eHcal;
823 #endif
824 
825  accept = true;
826  ecalDetId_.emplace_back((trackID.detIdECAL)());
827  hcalDetId_.emplace_back((trackID.detIdHCAL)());
828  ehcalDetId_.emplace_back((trackID.detIdEHCAL)());
829  emaxNearP_.emplace_back(emaxNearP);
830  matchedId_.emplace_back(tmpmatch);
831  ecal3x3Energy_.emplace_back(eEcal);
832  hcal1x1Energy_.emplace_back(eHcal);
833  hcal_ieta_.emplace_back(ieta);
834  hcal_iphi_.emplace_back(iphi);
835  for (int i = 0; i < maxDepth_; ++i) {
836  hcalDepthEnergy_[i].emplace_back(eHcalDepth[i]);
837  hcalDepthActiveLength_[i].emplace_back(activeL[i]);
838  hcalDepthEnergyHot_[i].emplace_back(eHcalDepthHot[i]);
839  hcalDepthActiveLengthHot_[i].emplace_back(activeHotL[i]);
840  hcalDepthEnergyCorr_[i].emplace_back(eHcalDepthC[i]);
841  hcalDepthEnergyHotCorr_[i].emplace_back(eHcalDepthHotC[i]);
842  hcalDepthChargeHot_[i].emplace_back(cHcalDepthHot[i]);
843  hcalDepthChargeHotBG_[i].emplace_back(cHcalDepthHotBG[i]);
844  hcalDepthMatch_[i].emplace_back(matchDepth[i]);
845  hcalDepthMatchHot_[i].emplace_back(matchDepthHot[i]);
846  }
847  hcalActiveLength_.emplace_back(activeLengthTot);
848  hcalHot_.emplace_back(isHot);
849  hcalActiveLengthHot_.emplace_back(activeLengthHotTot);
850 #ifdef EDM_ML_DEBUG
851  if ((verbosity_ / 100) % 10 > 0) {
852  edm::LogVerbatim("HBHEMuon") << "Track " << std::hex << ecalDetId_.back() << ":" << hcalDetId_.back() << ":"
853  << ehcalDetId_.back() << std::dec << ":" << emaxNearP_.back() << ":"
854  << matchedId_.back() << ":" << ecal3x3Energy_.back() << ":"
855  << hcal1x1Energy_.back() << ":" << hcal_ieta_.back() << ":" << hcal_iphi_.back()
856  << ":" << hcalActiveLength_.back() << ":" << hcalHot_.back() << ":"
857  << hcalActiveLengthHot_.back();
858  for (int i = 0; i < maxDepth_; ++i) {
859  edm::LogVerbatim("HBHEMuon") << "Depth[" << i << "] " << hcalDepthEnergy_[i].back() << ":"
860  << hcalDepthActiveLength_[i].back() << ":" << hcalDepthEnergyHot_[i].back()
861  << ":" << hcalDepthActiveLengthHot_[i].back() << ":"
862  << hcalDepthEnergyCorr_[i].back() << ":" << hcalDepthEnergyHotCorr_[i].back()
863  << ":" << hcalDepthChargeHot_[i].back() << ":"
864  << hcalDepthChargeHotBG_[i].back() << ":" << hcalDepthMatch_[i].back() << ":"
865  << hcalDepthMatchHot_[i].back();
866  }
867  }
868 #endif
869  fillTrackParameters(pTrack, leadPV);
870  }
871  }
872  }
873  return accept;
874 }
875 
878  eventNumber_ = -99999;
879  runNumber_ = -99999;
880  goodVertex_ = -99999;
881 
882  mediumMuon_.clear();
883  ptGlob_.clear();
884  etaGlob_.clear();
885  phiGlob_.clear();
886  energyMuon_.clear();
887  pMuon_.clear();
888  isolationR04_.clear();
889  isolationR03_.clear();
890  ecalEnergy_.clear();
891  hcalEnergy_.clear();
892  hoEnergy_.clear();
893 
894  matchedId_.clear();
895  hcalHot_.clear();
896  ecal3x3Energy_.clear();
897  hcal1x1Energy_.clear();
898  ecalDetId_.clear();
899  hcalDetId_.clear();
900  ehcalDetId_.clear();
901  hcal_ieta_.clear();
902  hcal_iphi_.clear();
903  for (int i = 0; i < depthMax_; ++i) {
904  hcalDepthEnergy_[i].clear();
905  hcalDepthActiveLength_[i].clear();
906  hcalDepthEnergyHot_[i].clear();
907  hcalDepthActiveLengthHot_[i].clear();
908  hcalDepthChargeHot_[i].clear();
909  hcalDepthChargeHotBG_[i].clear();
910  hcalDepthEnergyCorr_[i].clear();
911  hcalDepthEnergyHotCorr_[i].clear();
912  hcalDepthMatch_[i].clear();
913  hcalDepthMatchHot_[i].clear();
914  }
915  hcalActiveLength_.clear();
916  hcalActiveLengthHot_.clear();
917 
918  emaxNearP_.clear();
919  trackDz_.clear();
920  trackLayerCrossed_.clear();
921  trackOuterHit_.clear();
922  trackMissedInnerHits_.clear();
923  trackMissedOuterHits_.clear();
924 }
925 
927  HcalDetId kd1(id1.subdet(), id1.ieta(), id1.iphi(), 1);
928  HcalDetId kd2(id1.subdet(), id2.ieta(), id2.iphi(), 1);
929  int match = ((kd1 == kd2) ? 1 : 0);
930  return match;
931 }
932 
934  HcalDetId id(hid);
935  int ieta = id.ietaAbs();
936  int zside = id.zside();
937  int iphi = id.iphi();
938  std::vector<int> dpths;
939  if (mergedDepth_) {
940  std::vector<HcalDetId> ids;
941  hdc_->unmergeDepthDetId(id, ids);
942  for (auto idh : ids)
943  dpths.emplace_back(idh.depth());
944  } else {
945  dpths.emplace_back(id.depth());
946  }
947  double lx(0);
948  if (id.subdet() == HcalBarrel) {
949  for (unsigned int i = 0; i < actHB.size(); ++i) {
950  if ((ieta == actHB[i].ieta) && (zside == actHB[i].zside) &&
951  (std::find(dpths.begin(), dpths.end(), actHB[i].depth) != dpths.end()) &&
952  (std::find(actHB[i].iphis.begin(), actHB[i].iphis.end(), iphi) != actHB[i].iphis.end())) {
953  lx += actHB[i].thick;
954  }
955  }
956  } else {
957  for (unsigned int i = 0; i < actHE.size(); ++i) {
958  if ((ieta == actHE[i].ieta) && (zside == actHE[i].zside) &&
959  (std::find(dpths.begin(), dpths.end(), actHE[i].depth) != dpths.end()) &&
960  (std::find(actHE[i].iphis.begin(), actHE[i].iphis.end(), iphi) != actHE[i].iphis.end())) {
961  lx += actHE[i].thick;
962  }
963  }
964  }
965  return lx;
966 }
967 
969  if (vtx.isFake())
970  return false;
971  if (vtx.ndof() < 4)
972  return false;
973  if (vtx.position().Rho() > 2.)
974  return false;
975  if (fabs(vtx.position().Z()) > 24.)
976  return false;
977  return true;
978 }
979 
981  double cfac(1.0);
982  if (useMyCorr_) {
983  auto itr = corrValue_.find(id);
984  if (itr != corrValue_.end())
985  cfac = itr->second;
986  } else if (respCorrs_ != nullptr) {
987  cfac = (respCorrs_->getValues(id))->getValue();
988  }
989  return cfac;
990 }
991 
993  double gain(0.0);
994  const HcalCalibrations& calibs = conditions->getHcalCalibrations(id);
995  for (int capid = 0; capid < 4; ++capid)
996  gain += (0.25 * calibs.respcorrgain(capid));
997  return gain;
998 }
999 
1001  // Transition between HB/HE is special
1002  // For Run 1 or for Plan1 standard reconstruction it is 3
1003  // For runs beyond 2018 or in Plan1 for HEP17 it is 4
1004  int zside = (ieta > 0) ? 1 : -1;
1006  if (isItPlan1_ && (!isItPreRecHit_))
1007  depth = 3;
1008 #ifdef EDM_ML_DEBUG
1009  if (verbosity_ % 10 > 0)
1010  edm::LogVerbatim("HBHEMuon") << "Plan1 " << isItPlan1_ << " PreRecHit " << isItPreRecHit_ << " phi " << iphi
1011  << " depth " << depth;
1012 #endif
1013  return depth;
1014 }
1015 
1017  const reco::Track* pTrack,
1018  const CaloGeometry* geo,
1019  const MagneticField* bField) {
1020  std::pair<double, double> rz = hdc_->getRZ(hcid);
1021  bool typeRZ = (hcid.subdet() == HcalEndcap) ? false : true;
1022  bool match = spr::propagateHCAL(pTrack, geo, bField, typeRZ, rz, false);
1023  return match;
1024 }
1025 
1027  trackDz_.emplace_back(pTrack->dz(leadPV));
1028  const reco::HitPattern& hitp = pTrack->hitPattern();
1029  trackLayerCrossed_.emplace_back(hitp.trackerLayersWithMeasurement());
1033 }
1034 
1035 //define this as a plug-in
1037 
ConfigurationDescriptions.h
spr::trackSelectionParameters::maxDxyPV
double maxDxyPV
Definition: TrackSelection.h:22
HcalHBHEMuonHighEtaAnalyzer::analyzeMuon
bool analyzeMuon(edm::Event const &, math::XYZPoint &)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:492
HcalHBHEMuonHighEtaAnalyzer::hcalDepthChargeHot_
std::vector< double > hcalDepthChargeHot_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:151
HcalDDDRecConstants::mergedDepthDetId
HcalDetId mergedDepthDetId(const HcalDetId &id) const
Definition: HcalDDDRecConstants.cc:647
HcalHBHEMuonHighEtaAnalyzer::hcalEnergy_
std::vector< double > hcalEnergy_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:142
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
HcalHBHEMuonHighEtaAnalyzer::depth16HE
int depth16HE(int, int)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:1000
reco::HitPattern::MISSING_OUTER_HITS
Definition: HitPattern.h:155
HcalHBHEMuonHighEtaAnalyzer::labelHBHERecHit_
const edm::InputTag labelHBHERecHit_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:102
HcalHBHEMuonHighEtaAnalyzer::analyzeHadron
bool analyzeHadron(edm::Event const &, math::XYZPoint &)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:557
HcalHBHEMuonHighEtaAnalyzer::hcal_ieta_
std::vector< int > hcal_ieta_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:146
HcalRespCorrsRcd.h
HcalHBHEMuonHighEtaAnalyzer::activeLength
double activeLength(const DetId &)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:933
electrons_cff.bool
bool
Definition: electrons_cff.py:372
EDAnalyzer.h
HcalRespCorrs
Definition: HcalRespCorrs.h:17
HcalCalibrations.h
HcalHBHEMuonHighEtaAnalyzer::hcalDepthChargeHotBG_
std::vector< double > hcalDepthChargeHotBG_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:152
mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
HcalHBHEMuonHighEtaAnalyzer::hcalHot_
std::vector< bool > hcalHot_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:143
Muon.h
StandaloneTrackMonitor_cfi.trackQuality
trackQuality
Definition: StandaloneTrackMonitor_cfi.py:11
MessageLogger.h
HcalTopology::validHcal
bool validHcal(const HcalDetId &id) const
Definition: HcalTopology.cc:230
HcalHBHEMuonHighEtaAnalyzer::conditions_
edm::ESHandle< HcalDbService > conditions_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:129
HcalHBHEMuonHighEtaAnalyzer::hcalDepthMatch_
std::vector< bool > hcalDepthMatch_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:155
funct::false
false
Definition: Factorize.h:34
HcalCondObjectContainerBase::setTopo
void setTopo(const HcalTopology *topo)
Definition: HcalCondObjectContainerBase.cc:17
reco::HitPattern::stripTOBLayersWithMeasurement
int stripTOBLayersWithMeasurement() const
Definition: HitPattern.cc:597
spr::propagatedTrackID::detIdEHCAL
DetId detIdEHCAL
Definition: CaloPropagateTrack.h:47
reco::HitPattern::trackerLayersWithoutMeasurement
int trackerLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:532
TriggerResults.h
spr::trackSelectionParameters::maxDzPV
double maxDzPV
Definition: TrackSelection.h:22
HcalHBHEMuonHighEtaAnalyzer::getCharge_
const bool getCharge_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:105
HcalHBHEMuonHighEtaAnalyzer::phiGlob_
std::vector< double > phiGlob_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:140
HcalHBHEMuonHighEtaAnalyzer::pG_
edm::ESHandle< CaloGeometry > pG_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:124
HcalDetId::iphi
constexpr int iphi() const
get the cell iphi
Definition: HcalDetId.h:157
spr::trackSelectionParameters::maxChi2
double maxChi2
Definition: TrackSelection.h:22
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
muon::segmentCompatibility
float segmentCompatibility(const reco::Muon &muon, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
Definition: MuonSelectors.cc:61
EcalSeverityLevelAlgoRcd.h
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
HcalHBHEMuonHighEtaAnalyzer::hcalDepthEnergyHot_
std::vector< double > hcalDepthEnergyHot_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:149
TriggerEvent.h
edm::EDGetTokenT< reco::VertexCollection >
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
HcalHBHEMuonHighEtaAnalyzer::respCorr
double respCorr(const DetId &)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:980
TrackBase.h
edm
HLT enums.
Definition: AlignableModifier.h:19
HcalHBHEMuonHighEtaAnalyzer::trackLayerCrossed_
std::vector< int > trackLayerCrossed_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:159
HcalHBHEMuonHighEtaAnalyzer::hbhe_
edm::Handle< HBHERecHitCollection > hbhe_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:133
HcalHBHEMuonHighEtaAnalyzer::isItPlan1_
const bool isItPlan1_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:105
globals_cff.id1
id1
Definition: globals_cff.py:32
HcalTopology
Definition: HcalTopology.h:26
EBDetId.h
EEDetId.h
DetId::Hcal
Definition: DetId.h:28
HcalHBHEMuonHighEtaAnalyzer::analyzeTracks
bool analyzeTracks(const reco::Track *, math::XYZPoint &, int, std::vector< spr::propagatedTrackID > &, bool)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:580
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
HcalHBHEMuonHighEtaAnalyzer::gainFactor
double gainFactor(const edm::ESHandle< HcalDbService > &, const HcalDetId &)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:992
reco::TrackBase::TrackQuality
TrackQuality
track quality
Definition: TrackBase.h:150
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:215
HcalHBHEMuonHighEtaAnalyzer::goodCell
bool goodCell(const HcalDetId &, const reco::Track *, const CaloGeometry *, const MagneticField *)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:1016
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:152
HcalHBHEMuonHighEtaAnalyzer::trackMissedOuterHits_
std::vector< int > trackMissedOuterHits_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:160
spr::goodTrack
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
Definition: TrackSelection.cc:10
HcalHBHEMuonHighEtaAnalyzer::ecal3x3Energy_
std::vector< double > ecal3x3Energy_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:144
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
HcalHBHEMuonHighEtaAnalyzer::verbosity_
const int verbosity_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:106
CaloTopologyRecord
Definition: CaloTopologyRecord.h:10
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
HcalBarrel
Definition: HcalAssistant.h:33
HcalHBHEMuonHighEtaAnalyzer::isGoodVertex
bool isGoodVertex(const reco::Vertex &)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:968
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
EcalCondObjectContainer< EcalChannelStatusCode >
HcalHBHEMuonHighEtaAnalyzer::hcal_iphi_
std::vector< int > hcal_iphi_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:146
edm::Handle
Definition: AssociativeIterator.h:50
HcalHBHEMuonHighEtaAnalyzer::fillTrackParameters
void fillTrackParameters(const reco::Track *, math::XYZPoint)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:1026
edm::RunBase::run
RunNumber_t run() const
Definition: RunBase.h:40
CaloTopology
Definition: CaloTopology.h:19
HcalCondObjectContainer::getValues
const Item * getValues(DetId fId, bool throwOnFail=true) const
Definition: HcalCondObjectContainer.h:159
EcalRecHitCollections.h
chg
const float chg[109]
Definition: CoreSimTrack.cc:5
HcalGeometry.h
HcalGeometry::getValidDetIds
const std::vector< DetId > & getValidDetIds(DetId::Detector det=DetId::Detector(0), int subdet=0) const override
Get a list of valid detector ids (for the given subdetector)
Definition: HcalGeometry.cc:75
HcalDbService::getHcalCalibrations
const HcalCalibrations & getHcalCalibrations(const HcalGenericDetId &fId) const
Definition: HcalDbService.cc:65
HcalHBHEMuonHighEtaAnalyzer::trackOuterHit_
std::vector< int > trackOuterHit_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:159
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
HcalHBHEMuonHighEtaAnalyzer::labelEBRecHit_
const edm::InputTag labelEBRecHit_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:102
HcalHBHEMuonHighEtaAnalyzer::tok_Vtx_
edm::EDGetTokenT< reco::VertexCollection > tok_Vtx_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:117
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
HcalHBHEMuonHighEtaAnalyzer::tree_
TTree * tree_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:137
DetId
Definition: DetId.h:17
accept
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
MakerMacros.h
HcalHBHEMuonHighEtaAnalyzer::hcalDetId_
std::vector< unsigned int > hcalDetId_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:145
CaloGeometry
Definition: CaloGeometry.h:21
reco::HitPattern
Definition: HitPattern.h:147
RPCNoise_example.check
check
Definition: RPCNoise_example.py:71
HcalHBHEMuonHighEtaAnalyzer::tok_HBHE_
edm::EDGetTokenT< HBHERecHitCollection > tok_HBHE_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:120
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)
Track.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
TrackFwd.h
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)
HcalHBHEMuonHighEtaAnalyzer::depthMax_
static const int depthMax_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:136
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
reco::HitPattern::trackerLayersWithMeasurement
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:513
alignCSCRings.corr
dictionary corr
Definition: alignCSCRings.py:124
MuonSelectors.h
Service.h
HcalHBHEMuonHighEtaAnalyzer::hcal1x1Energy_
std::vector< double > hcal1x1Energy_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:144
spr::propagatedTrackID::okECAL
bool okECAL
Definition: CaloPropagateTrack.h:46
ChargeIsolation.h
MuonFwd.h
HcalHBHEMuonHighEtaAnalyzer::trackMissedInnerHits_
std::vector< int > trackMissedInnerHits_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:160
HcalHBHEMuonHighEtaAnalyzer::hcalActiveLengthHot_
std::vector< double > hcalActiveLengthHot_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:157
eHCALMatrix.h
reco::Track
Definition: Track.h:27
IdealMagneticFieldRecord.h
edm::ESHandle< HcalDbService >
EcalSeverityLevelAlgoRcd
Definition: EcalSeverityLevelAlgoRcd.h:12
spr::trackSelectionParameters::minPt
double minPt
Definition: TrackSelection.h:20
HcalHBHEMuonHighEtaAnalyzer::useRaw_
const int useRaw_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:106
HcalHBHEMuonHighEtaAnalyzer::hcalActiveLength_
std::vector< double > hcalActiveLength_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:157
HcalHBHEMuonHighEtaAnalyzer::mediumMuon_
std::vector< bool > mediumMuon_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:139
reco::TrackBase::dz
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:602
spr::trackSelectionParameters
Definition: TrackSelection.h:12
spr::trackSelectionParameters::minOuterHit
int minOuterHit
Definition: TrackSelection.h:23
HcalHBHEMuonHighEtaAnalyzer::isItPreRecHit_
const bool isItPreRecHit_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:108
dqmdumpme.k
k
Definition: dqmdumpme.py:60
HcalDbRecord.h
HcalHBHEMuonHighEtaAnalyzer::writeRespCorr_
const bool writeRespCorr_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:108
HcalCalibrations
Definition: HcalCalibrations.h:9
eECALMatrix.h
HcalHBHEMuonHighEtaAnalyzer::corrValue_
std::map< DetId, double > corrValue_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:163
HcalHBHEMuonHighEtaAnalyzer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:248
EcalSeverityLevelAlgo.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
HcalCalibrations::respcorrgain
constexpr double respcorrgain(int fCapId) const
get response corrected gain for capid=0..3
Definition: HcalCalibrations.h:42
spr::trackSelectionParameters::maxDpOverP
double maxDpOverP
Definition: TrackSelection.h:22
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
HcalHBHEMuonHighEtaAnalyzer::tok_EE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:119
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition: badGlobalMuonTaggersAOD_cff.py:5
spr::trackSelectionParameters::minLayerCrossed
int minLayerCrossed
Definition: TrackSelection.h:23
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
EcalSubdetector.h
edm::LogWarning
Definition: MessageLogger.h:141
TFileService.h
HcalHBHEMuonHighEtaAnalyzer::hcalDepthMatchHot_
std::vector< bool > hcalDepthMatchHot_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:156
HcalHBHEMuonHighEtaAnalyzer::labelMuon_
const std::string labelMuon_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:103
HcalHBHEMuonHighEtaAnalyzer::hcalDepthEnergy_
std::vector< double > hcalDepthEnergy_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:147
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
HcalHBHEMuonHighEtaAnalyzer::tok_Muon_
edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:121
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
CaloSubdetectorGeometry.h
HcalHBHEMuonHighEtaAnalyzer::useMyCorr_
bool useMyCorr_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:109
HcalDetId::ieta
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
spr::propagatedTrackID::detIdHCAL
DetId detIdHCAL
Definition: CaloPropagateTrack.h:47
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
HcalHBHEMuonHighEtaAnalyzer::hdc_
const HcalDDDRecConstants * hdc_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:113
edm::ParameterSet
Definition: ParameterSet.h:36
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
HcalHBHEMuonHighEtaAnalyzer::fileInCorr_
const std::string fileInCorr_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:107
spr::propagatedTrackID::detIdECAL
DetId detIdECAL
Definition: CaloPropagateTrack.h:47
Event.h
HcalHBHEMuonHighEtaAnalyzer::kount_
int kount_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:110
HcalHBHEMuonHighEtaAnalyzer::etaGlob_
std::vector< double > etaGlob_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:140
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
EcalChannelStatusRcd
Definition: EcalChannelStatusRcd.h:5
HcalHBHEMuonHighEtaAnalyzer::etaMin_
const double etaMin_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:104
HcalHBHEMuonHighEtaAnalyzer::matchedId_
std::vector< bool > matchedId_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:143
HcalHBHEMuonHighEtaAnalyzer::HcalHBHEMuonHighEtaAnalyzer
HcalHBHEMuonHighEtaAnalyzer(const edm::ParameterSet &)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:167
TrackSelection.h
HcalDetId.h
HcalHBHEMuonHighEtaAnalyzer::analyzeMuon_
const bool analyzeMuon_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:105
HcalTopology::dddConstants
const HcalDDDRecConstants * dddConstants() const
Definition: HcalTopology.h:164
spr::trackSelectionParameters::maxOutMiss
int maxOutMiss
Definition: TrackSelection.h:24
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:623
CaloTopologyRecord.h
reco::JetExtendedAssociation::getValue
const JetExtendedData & getValue(const Container &, const reco::JetBaseRef &)
get value for the association. Throw exception if no association found
Definition: JetExtendedAssociation.cc:50
HcalDetId::subdet
constexpr HcalSubdetector subdet() const
get the subdetector
Definition: HcalDetId.h:138
HcalDetId
Definition: HcalDetId.h:12
edm::Service< TFileService >
HcalHBHEMuonHighEtaAnalyzer::hoEnergy_
std::vector< double > hoEnergy_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:142
createfilelist.int
int
Definition: createfilelist.py:10
TriggerNames.h
iEvent
int iEvent
Definition: GenABIO.cc:224
HcalHBHEMuonHighEtaAnalyzer::labelVtx_
const std::string labelVtx_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:103
edm::LogVerbatim
Definition: MessageLogger.h:297
HcalHBHEMuonHighEtaAnalyzer::maxDepth_
int maxDepth_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:110
MagneticField.h
HcalHBHEMuonHighEtaAnalyzer::goodVertex_
unsigned int goodVertex_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:138
edm::EventSetup
Definition: EventSetup.h:57
HcalHBHEMuonHighEtaAnalyzer
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:76
HcalRespCorrs.h
HcalRespCorrsRcd
Definition: HcalRespCorrsRcd.h:27
HcalHBHEMuonHighEtaAnalyzer::respCorrs_
HcalRespCorrs * respCorrs_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:115
HLTConfigProvider.h
itr
std::vector< std::pair< float, float > >::iterator itr
Definition: HGCDigitizer.cc:28
get
#define get
HitPattern.h
spr::trackSelectionParameters::minQuality
reco::TrackBase::TrackQuality minQuality
Definition: TrackSelection.h:21
HcalHBHEMuonHighEtaAnalyzer::collapseDepth_
const bool collapseDepth_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:105
HcalHBHEMuonHighEtaAnalyzer::barrelRecHitsHandle_
edm::Handle< EcalRecHitCollection > barrelRecHitsHandle_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:131
spr::propagatedTrackID::okHCAL
bool okHCAL
Definition: CaloPropagateTrack.h:46
TriggerObject.h
HcalHBHEMuonHighEtaAnalyzer::tok_genTrack_
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:122
HcalHBHEMuonHighEtaAnalyzer::ignoreHECorr_
const bool ignoreHECorr_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:108
CaloTopology.h
HcalHBHEMuonHighEtaAnalyzer::hcalDepthActiveLength_
std::vector< double > hcalDepthActiveLength_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:148
PedestalClient_cfi.gain
gain
Definition: PedestalClient_cfi.py:37
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
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
VertexFwd.h
HcalHBHEMuonHighEtaAnalyzer::ecalEnergy_
std::vector< double > ecalEnergy_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:142
HcalHBHEMuonHighEtaAnalyzer::mergedDepth_
bool mergedDepth_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:109
CaloSubdetectorTopology.h
HcalHBHEMuonHighEtaAnalyzer::theCaloTopology_
edm::ESHandle< CaloTopology > theCaloTopology_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:128
HcalHBHEMuonHighEtaAnalyzer::clearVectors
void clearVectors()
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:876
reco::TrackBase::hitPattern
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:489
HcalTopology.h
HcalHBHEMuonHighEtaAnalyzer::endRun
void endRun(edm::Run const &, edm::EventSetup const &) override
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:86
HcalHBHEMuonHighEtaAnalyzer::eventNumber_
unsigned int eventNumber_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:138
std
Definition: JetResolutionObject.h:76
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
HcalDDDRecConstants::getRZ
double getRZ(const int &subdet, const int &ieta, const int &depth) const
Definition: HcalDDDRecConstants.cc:416
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
HcalHBHEMuonHighEtaAnalyzer::theHBHETopology_
const HcalTopology * theHBHETopology_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:114
Calorimetry_cff.bField
bField
Definition: Calorimetry_cff.py:292
HcalEndcap
Definition: HcalAssistant.h:34
Frameworkfwd.h
CaloPropagateTrack.h
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:31
HLTConfigData.h
spr::trackSelectionParameters::maxInMiss
int maxInMiss
Definition: TrackSelection.h:24
CaloGeometry.h
TFileService::kSharedResource
static const std::string kSharedResource
Definition: TFileService.h:76
reco::HitPattern::MISSING_INNER_HITS
Definition: HitPattern.h:155
HcalDDDRecConstants.h
spr::propagatedTrackID
Definition: CaloPropagateTrack.h:40
HcalHBHEMuonHighEtaAnalyzer::endcapRecHitsHandle_
edm::Handle< EcalRecHitCollection > endcapRecHitsHandle_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:132
HcalHBHEMuonHighEtaAnalyzer::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &) override
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:432
HcalHBHEMuonHighEtaAnalyzer::ehcalDetId_
std::vector< unsigned int > ehcalDetId_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:145
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
spr::propagateHCAL
std::pair< math::XYZPoint, bool > propagateHCAL(const reco::Track *, const MagneticField *, bool debug=false)
Definition: CaloPropagateTrack.cc:759
HcalRecHitCollections.h
HcalHBHEMuonHighEtaAnalyzer::matchId
int matchId(const HcalDetId &, const HcalDetId &)
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:926
HcalHBHEMuonHighEtaAnalyzer::unCorrect_
const bool unCorrect_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:105
HcalHBHEMuonHighEtaAnalyzer::ecalDetId_
std::vector< unsigned int > ecalDetId_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:145
HcalHBHEMuonHighEtaAnalyzer::labelEERecHit_
const edm::InputTag labelEERecHit_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:102
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)
timingPdfMaker.infile
infile
Definition: timingPdfMaker.py:350
HcalDbService.h
HcalDDDRecConstants
Definition: HcalDDDRecConstants.h:23
HcalHBHEMuonHighEtaAnalyzer::emaxNearP_
std::vector< double > emaxNearP_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:158
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
spr::chargeIsolationEcal
double chargeIsolationEcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, bool debug=false)
Definition: ChargeIsolation.cc:15
HcalHBHEMuonHighEtaAnalyzer::trackDz_
std::vector< double > trackDz_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:158
HcalHBHEMuonHighEtaAnalyzer::analyze
void analyze(edm::Event const &, edm::EventSetup const &) override
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:342
HcalDbRecord
Definition: HcalDbRecord.h:30
HcalHBHEMuonHighEtaAnalyzer::labelGenTrack_
const std::string labelGenTrack_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:103
ParameterSet.h
reco::HitPattern::stripTECLayersWithMeasurement
int stripTECLayersWithMeasurement() const
Definition: HitPattern.cc:607
globals_cff.id2
id2
Definition: globals_cff.py:33
HcalHBHEMuonHighEtaAnalyzer::selectionParameter_
spr::trackSelectionParameters selectionParameter_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:111
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
MagneticField
Definition: MagneticField.h:19
HcalHBHEMuonHighEtaAnalyzer::pMuon_
std::vector< double > pMuon_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:140
HcalHBHEMuonHighEtaAnalyzer::sevlv_
edm::ESHandle< EcalSeverityLevelAlgo > sevlv_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:127
HcalGeometry
Definition: HcalGeometry.h:17
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
HcalHBHEMuonHighEtaAnalyzer::theTrackQuality_
const std::string theTrackQuality_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:107
edm::InputTag
Definition: InputTag.h:15
HcalHBHEMuonHighEtaAnalyzer::beginJob
void beginJob() override
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:280
HcalHBHEMuonHighEtaAnalyzer::energyMuon_
std::vector< double > energyMuon_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:140
HcalDDDRecConstants::unmergeDepthDetId
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const
Definition: HcalDDDRecConstants.cc:671
HcalHBHEMuonHighEtaAnalyzer::isolationR04_
std::vector< double > isolationR04_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:141
HcalHBHEMuonHighEtaAnalyzer::ptGlob_
std::vector< double > ptGlob_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:140
HcalHBHEMuonHighEtaAnalyzer::hcalDepthActiveLengthHot_
std::vector< double > hcalDepthActiveLengthHot_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:150
HcalHBHEMuonHighEtaAnalyzer::ecalChStatus_
edm::ESHandle< EcalChannelStatus > ecalChStatus_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:126
reco::Vertex
Definition: Vertex.h:35
HcalHBHEMuonHighEtaAnalyzer::hcalDepthEnergyCorr_
std::vector< double > hcalDepthEnergyCorr_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:153
HcalHBHEMuonHighEtaAnalyzer::runNumber_
unsigned int runNumber_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:138
EcalChannelStatusRcd.h
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
HcalHBHEMuonHighEtaAnalyzer::actHB
std::vector< HcalDDDRecConstants::HcalActiveLength > actHB
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:162
HcalHBHEMuonHighEtaAnalyzer::bFieldH_
edm::ESHandle< MagneticField > bFieldH_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:125
HcalHBHEMuonHighEtaAnalyzer::actHE
std::vector< HcalDDDRecConstants::HcalActiveLength > actHE
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:162
HcalHBHEMuonHighEtaAnalyzer::emaxNearPThr_
const double emaxNearPThr_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:104
HcalHBHEMuonHighEtaAnalyzer::tok_EB_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:118
HcalHBHEMuonHighEtaAnalyzer::isolationR03_
std::vector< double > isolationR03_
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:141
HcalHBHEMuonHighEtaAnalyzer::hcalDepthEnergyHotCorr_
std::vector< double > hcalDepthEnergyHotCorr_[depthMax_]
Definition: HcalHBHEMuonHighEtaAnalyzer.cc:154