CMS 3D CMS Logo

HBHEIsolatedNoiseAlgos.cc
Go to the documentation of this file.
1 /*
2 Description: Isolation algorithms used to identify anomalous noise in the HB/HE.
3  These algorithms will be used to reflag HB/HE rechits as noise.
4 
5  There are 4 objects implemented here:
6  1) ObjectValidator
7  2) PhysicsTowerOrganizer
8  3) HBHEHitMap
9  4) HBHEHitMapOrganizer
10  See comments below for details.
11 
12 Original Author: John Paul Chou (Brown University)
13  Thursday, September 2, 2010
14 */
15 
17 
20 
29 
36 
38 //
39 // ObjectValidator
40 //
42 
44  HBThreshold_ = iConfig.getParameter<double>("HBThreshold");
45  HESThreshold_ = iConfig.getParameter<double>("HESThreshold");
46  HEDThreshold_ = iConfig.getParameter<double>("HEDThreshold");
47  EBThreshold_ = iConfig.getParameter<double>("EBThreshold");
48  EEThreshold_ = iConfig.getParameter<double>("EEThreshold");
49 
50  HcalAcceptSeverityLevel_ = iConfig.getParameter<uint32_t>("HcalAcceptSeverityLevel");
51  EcalAcceptSeverityLevel_ = iConfig.getParameter<uint32_t>("EcalAcceptSeverityLevel");
52  UseHcalRecoveredHits_ = iConfig.getParameter<bool>("UseHcalRecoveredHits");
53  UseEcalRecoveredHits_ = iConfig.getParameter<bool>("UseEcalRecoveredHits");
54  UseAllCombinedRechits_ = iConfig.getParameter<bool>("UseAllCombinedRechits");
55 
56  MinValidTrackPt_ = iConfig.getParameter<double>("MinValidTrackPt");
57  MinValidTrackPtBarrel_ = iConfig.getParameter<double>("MinValidTrackPtBarrel");
58  MinValidTrackNHits_ = iConfig.getParameter<int>("MinValidTrackNHits");
59 
60  theHcalChStatus_ = nullptr;
61  theEcalChStatus_ = nullptr;
62  theHcalSevLvlComputer_ = nullptr;
63  theEcalSevLvlAlgo_ = nullptr;
64  theEBRecHitCollection_ = nullptr;
65  theEERecHitCollection_ = nullptr;
66 
67  return;
68 }
69 
71 
73  assert(theHcalSevLvlComputer_ != nullptr && theHcalChStatus_ != nullptr);
74 
77  return true;
78 
79  // require the hit to pass a certain energy threshold
80  if (hit.id().subdet() == HcalBarrel && hit.energy() < HBThreshold_)
81  return false;
82  else if (hit.id().subdet() == HcalEndcap && hit.id().ietaAbs() <= 20 && hit.energy() < HESThreshold_)
83  return false;
84  else if (hit.id().subdet() == HcalEndcap && hit.id().ietaAbs() > 20 && hit.energy() < HEDThreshold_)
85  return false;
86 
87  // determine if the hit is good, bad, or recovered
88  const DetId id = hit.detid();
89  const uint32_t recHitFlag = hit.flags();
90  const uint32_t dbStatusFlag = theHcalChStatus_->getValues(id)->getValue();
91  int severityLevel = theHcalSevLvlComputer_->getSeverityLevel(id, recHitFlag, dbStatusFlag);
92  bool isRecovered = theHcalSevLvlComputer_->recoveredRecHit(id, recHitFlag);
93 
94  if (severityLevel == 0)
95  return true;
96  if (isRecovered)
97  return UseHcalRecoveredHits_;
98  if (severityLevel > static_cast<int>(HcalAcceptSeverityLevel_))
99  return false;
100  else
101  return true;
102 }
103 
105  assert(theEcalSevLvlAlgo_ != nullptr && theEcalChStatus_ != nullptr);
106 
107  // require the hit to pass a certain energy threshold
108  const DetId id = hit.detid();
109  if (id.subdetId() == EcalBarrel && hit.energy() < EBThreshold_)
110  return false;
111  else if (id.subdetId() == EcalEndcap && hit.energy() < EEThreshold_)
112  return false;
113 
114  // determine if the hit is good, bad, or recovered
115  int severityLevel = 999;
116  if (id.subdetId() == EcalBarrel && theEBRecHitCollection_ != nullptr)
118  hit); //id, *theEBRecHitCollection_, *theEcalChStatus_, 5., EcalSeverityLevelAlgo::kSwissCross, 0.95, 2., 15., 0.999);
119  else if (id.subdetId() == EcalEndcap && theEERecHitCollection_ != nullptr)
121  hit); //id, *theEERecHitCollection_, *theEcalChStatus_, 5., EcalSeverityLevelAlgo::kSwissCross, 0.95, 2., 15., 0.999);
122  else
123  return false;
124 
126  return true;
128  return UseEcalRecoveredHits_;
129  if (severityLevel > static_cast<int>(EcalAcceptSeverityLevel_))
130  return false;
131  else
132  return true;
133 }
134 
135 bool ObjectValidator::validTrack(const reco::Track& trk) const {
136  if (trk.pt() < MinValidTrackPt_)
137  return false;
138  if (trk.pt() < MinValidTrackPtBarrel_ && std::fabs(trk.momentum().eta()) < 1.479)
139  return false;
141  return false;
142  return true;
143 }
144 
146 //
147 // PhysicsTowerOrganizer
148 //
150 
152  const edm::Handle<HBHERecHitCollection>& hbhehitcoll_h,
153  const edm::Handle<EcalRecHitCollection>& ebhitcoll_h,
154  const edm::Handle<EcalRecHitCollection>& eehitcoll_h,
155  const edm::Handle<std::vector<reco::TrackExtrapolation> >& trackextrapcoll_h,
156  const ObjectValidatorAbs& objectvalidator,
157  const CaloTowerConstituentsMap& ctcm,
158  const CaloGeometry& geo) {
159  // get some geometries
162 
163  // do the HCAL hits
164  for (HBHERecHitCollection::const_iterator it = hbhehitcoll_h->begin(); it != hbhehitcoll_h->end(); ++it) {
165  const HBHERecHit* hit = &(*it);
166 
167  // check that the hit is valid
168  if (!objectvalidator.validHit(*hit))
169  continue;
170 
171  // add the hit to the organizer
172  CaloTowerDetId tid = ctcm.towerOf(hit->id());
173  insert_(tid, hit);
174  }
175 
176  // do the EB hits
177  for (EcalRecHitCollection::const_iterator it = ebhitcoll_h->begin(); it != ebhitcoll_h->end(); ++it) {
178  const EcalRecHit* hit = &(*it);
179 
180  if (!objectvalidator.validHit(*hit))
181  continue;
182  CaloTowerDetId tid = ctcm.towerOf(hit->id());
183  insert_(tid, hit);
184  }
185 
186  // do the EE hits
187  for (EcalRecHitCollection::const_iterator it = eehitcoll_h->begin(); it != eehitcoll_h->end(); ++it) {
188  const EcalRecHit* hit = &(*it);
189 
190  if (!objectvalidator.validHit(*hit))
191  continue;
192  CaloTowerDetId tid = ctcm.towerOf(hit->id());
193  insert_(tid, hit);
194  }
195 
196  // do the tracks
197  for (std::vector<reco::TrackExtrapolation>::const_iterator it = trackextrapcoll_h->begin();
198  it != trackextrapcoll_h->end();
199  ++it) {
200  const reco::TrackExtrapolation* extrap = &(*it);
201  const reco::Track* track = &(*(extrap->track()));
202 
203  // validate track
204  if (!objectvalidator.validTrack(*track))
205  continue;
206 
207  // get the point
208  if (extrap->positions().empty())
209  continue;
210  const GlobalPoint point(
211  extrap->positions().front().x(), extrap->positions().front().y(), extrap->positions().front().z());
212 
213  if (std::fabs(point.eta()) < 1.479) {
214  EBDetId cell = gEB->getClosestCell(point);
215  CaloTowerDetId tid = ctcm.towerOf(cell);
216  insert_(tid, track);
217  } else {
218  EEDetId cell = gEE->getClosestCell(point);
219  CaloTowerDetId tid = ctcm.towerOf(cell);
220  insert_(tid, track);
221  }
222  }
223 
224  return;
225 }
226 
228  // create dummy PhysicsTower
230 
231  // correct for the merging of the |ieta|=28-29 towers
232  if (id.ietaAbs() == 29)
233  dummy.id = CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi());
234  else
235  dummy.id = id;
236 
237  // search on the dummy
238  std::set<PhysicsTower, towercmp>::iterator it = towers_.find(dummy);
239 
240  if (it == towers_.end())
241  return nullptr;
242 
243  // for whatever reason, I can't get a non-const out of the find method
244  PhysicsTower& twr = const_cast<PhysicsTower&>(*it);
245  return &twr;
246 }
247 
249  // create dummy PhysicsTower
251 
252  // correct for the merging of the |ieta|=28-29 towers
253  if (id.ietaAbs() == 29)
254  dummy.id = CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi());
255  else
256  dummy.id = id;
257 
258  // search on the dummy
259  std::set<PhysicsTower, towercmp>::iterator it = towers_.find(dummy);
260 
261  if (it == towers_.end())
262  return nullptr;
263  return &(*it);
264 }
265 
267  CaloTowerDetId tid(ieta, iphi);
268  return findTower(tid);
269 }
270 
272  CaloTowerDetId tid(ieta, iphi);
273  return findTower(tid);
274 }
275 
277  std::set<const PhysicsTower*>& neighbors) const {
278  // correct for the merging of the |ieta|=28-29 towers
279  CaloTowerDetId id(tempid);
280  if (tempid.ietaAbs() == 29)
281  id = CaloTowerDetId((tempid.ietaAbs() - 1) * tempid.zside(), tempid.iphi());
282 
283  std::vector<CaloTowerDetId> ids;
284  // get the neighbor with higher iphi
285  if (id.ietaAbs() <= 20) {
286  if (id.iphi() == 72)
287  ids.push_back(CaloTowerDetId(id.ieta(), 1));
288  else
289  ids.push_back(CaloTowerDetId(id.ieta(), id.iphi() + 1));
290  } else {
291  if (id.iphi() == 71)
292  ids.push_back(CaloTowerDetId(id.ieta(), 1));
293  else
294  ids.push_back(CaloTowerDetId(id.ieta(), id.iphi() + 2));
295  }
296 
297  // get the neighbor with the lower iphi
298  if (id.ietaAbs() <= 20) {
299  if (id.iphi() == 1)
300  ids.push_back(CaloTowerDetId(id.ieta(), 72));
301  else
302  ids.push_back(CaloTowerDetId(id.ieta(), id.iphi() - 1));
303  } else {
304  if (id.iphi() == 1)
305  ids.push_back(CaloTowerDetId(id.ieta(), 71));
306  else
307  ids.push_back(CaloTowerDetId(id.ieta(), id.iphi() - 2));
308  }
309 
310  // get the neighbor with the higher ietaAbs
311  if (id.ietaAbs() == 20 && (id.iphi() % 2) == 0)
312  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), id.iphi() - 1));
313  else
314  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), id.iphi()));
315 
316  // get the neighbor(s) with the lower ietaAbs
317  if (id.ietaAbs() == 21) {
318  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi()));
319  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi() + 1));
320  } else if (id.ietaAbs() == 1) {
321  ids.push_back(CaloTowerDetId(-id.ieta(), id.iphi()));
322  } else {
323  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi()));
324  }
325 
326  // get the neighbor with higher ieta and higher iphi
327  if (id.ietaAbs() <= 19 || (id.ietaAbs() == 20 && (id.iphi() % 2) == 0)) {
328  if (id.iphi() == 72)
329  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), 1));
330  else
331  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), id.iphi() + 1));
332  } else if (id.ietaAbs() >= 21) {
333  if (id.iphi() == 71)
334  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), 1));
335  else
336  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), id.iphi() + 2));
337  }
338 
339  // get the neighbor with higher ieta and lower iphi
340  if (id.ietaAbs() <= 19) {
341  if (id.iphi() == 1)
342  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), 72));
343  else
344  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), id.iphi() - 1));
345  } else if (id.ietaAbs() >= 21 || (id.ietaAbs() == 20 && (id.iphi() % 2) == 1)) {
346  if (id.iphi() == 1)
347  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), 71));
348  else
349  ids.push_back(CaloTowerDetId((id.ietaAbs() + 1) * id.zside(), id.iphi() - 2));
350  }
351 
352  // get the neighbor with lower ieta and higher iphi
353  if (id.ietaAbs() == 1) {
354  if (id.iphi() == 72)
355  ids.push_back(CaloTowerDetId(-id.ieta(), 1));
356  else
357  ids.push_back(CaloTowerDetId(-id.ieta(), id.iphi() + 1));
358  } else if (id.ietaAbs() <= 20) {
359  if (id.iphi() == 72)
360  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), 1));
361  else
362  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi() + 1));
363  } else if (id.ietaAbs() >= 21) {
364  if (id.iphi() == 71)
365  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), 1));
366  else
367  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi() + 2));
368  }
369 
370  // get the neighbor with lower ieta and lower iphi
371  if (id.ietaAbs() == 1) {
372  if (id.iphi() == 1)
373  ids.push_back(CaloTowerDetId(-id.ieta(), 72));
374  else
375  ids.push_back(CaloTowerDetId(-id.ieta(), id.iphi() - 1));
376  } else if (id.ietaAbs() <= 20) {
377  if (id.iphi() == 1)
378  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), 72));
379  else
380  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi() - 1));
381  } else if (id.ietaAbs() >= 22) {
382  if (id.iphi() == 1)
383  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), 71));
384  else
385  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi() - 2));
386  } else if (id.ietaAbs() == 21) {
387  if (id.iphi() == 1)
388  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), 72));
389  else
390  ids.push_back(CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi() - 1));
391  }
392 
393  // clear neighbors
394  neighbors.clear();
395 
396  // find the neighbors and add them to the eponymous set
397  for (std::vector<CaloTowerDetId>::const_iterator it = ids.begin(); it != ids.end(); ++it) {
398  const PhysicsTower* twr = findTower(*it);
399  if (twr)
400  neighbors.insert(twr);
401  }
402 
403  return;
404 }
405 
406 void PhysicsTowerOrganizer::findNeighbors(const PhysicsTower* twr, std::set<const PhysicsTower*>& neighbors) const {
407  findNeighbors(twr->id, neighbors);
408  return;
409 }
410 
411 void PhysicsTowerOrganizer::findNeighbors(int ieta, int iphi, std::set<const PhysicsTower*>& neighbors) const {
412  findNeighbors(CaloTowerDetId(ieta, iphi), neighbors);
413  return;
414 }
415 
417  PhysicsTower* twr = findTower(id);
418  if (twr == nullptr) {
420  if (id.ietaAbs() == 29)
421  dummy.id = CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi());
422  else
423  dummy.id = id;
424  dummy.hcalhits.insert(hit);
425  towers_.insert(dummy);
426  } else {
427  twr->hcalhits.insert(hit);
428  }
429  return;
430 }
431 
433  PhysicsTower* twr = findTower(id);
434  if (twr == nullptr) {
436  if (id.ietaAbs() == 29)
437  dummy.id = CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi());
438  else
439  dummy.id = id;
440  dummy.ecalhits.insert(hit);
441  towers_.insert(dummy);
442  } else {
443  twr->ecalhits.insert(hit);
444  }
445  return;
446 }
447 
449  PhysicsTower* twr = findTower(id);
450  if (twr == nullptr) {
452  if (id.ietaAbs() == 29)
453  dummy.id = CaloTowerDetId((id.ietaAbs() - 1) * id.zside(), id.iphi());
454  else
455  dummy.id = id;
456  dummy.tracks.insert(track);
457  towers_.insert(dummy);
458  } else {
459  twr->tracks.insert(track);
460  }
461  return;
462 }
463 
465 //
466 // HBHEHitMap
467 //
469 
471  hitEnergy_ = hitEnergyTrkFid_ = -999.;
472  nHits_ = -999;
477 }
478 
479 double HBHEHitMap::hitEnergy(void) const {
480  if (hitEnergy_ < -900)
481  calcHits_();
482  return hitEnergy_;
483 }
484 
485 int HBHEHitMap::nHits(void) const {
486  if (nHits_ < -900)
487  calcHits_();
488  return nHits_;
489 }
490 
492  if (hitEnergyTrkFid_ < -900)
493  calcHits_();
494  return hitEnergyTrkFid_;
495 }
496 
498  if (hcalEnergySameTowers_ < -900)
500  return hcalEnergySameTowers_;
501 }
502 
504  if (nHcalHitsSameTowers_ < -900)
506  return nHcalHitsSameTowers_;
507 }
508 
510  if (ecalEnergySameTowers_ < -900)
512  return ecalEnergySameTowers_;
513 }
514 
516  if (nEcalHitsSameTowers_ < -900)
518  return nEcalHitsSameTowers_;
519 }
520 
522  if (trackEnergySameTowers_ < -900)
524  return trackEnergySameTowers_;
525 }
526 
528  if (nTracksSameTowers_ < -900)
530  return nTracksSameTowers_;
531 }
532 
533 void HBHEHitMap::hcalHitsSameTowers(std::set<const HBHERecHit*>& v) const {
534  v.clear();
535  for (hitmap_const_iterator it1 = beginHits(); it1 != endHits(); ++it1) {
536  for (std::set<const HBHERecHit*>::const_iterator it2 = it1->second->hcalhits.begin();
537  it2 != it1->second->hcalhits.end();
538  ++it2) {
539  const HBHERecHit* hit = (*it2);
540  // if the hit in the tower is already in the hitmap, don't include it
541  if (findHit(hit) == endHits())
542  v.insert(hit);
543  }
544  }
545  return;
546 }
547 
548 void HBHEHitMap::ecalHitsSameTowers(std::set<const EcalRecHit*>& v) const {
549  v.clear();
550  for (hitmap_const_iterator it1 = beginHits(); it1 != endHits(); ++it1) {
551  v.insert(it1->second->ecalhits.begin(), it1->second->ecalhits.end());
552  }
553  return;
554 }
555 
556 void HBHEHitMap::tracksSameTowers(std::set<const reco::Track*>& v) const {
557  v.clear();
558  for (hitmap_const_iterator it1 = beginHits(); it1 != endHits(); ++it1) {
559  v.insert(it1->second->tracks.begin(), it1->second->tracks.end());
560  }
561  return;
562 }
563 
565  if (hcalEnergyNeighborTowers_ < -900)
568 }
569 
571  if (nHcalHitsNeighborTowers_ < -900)
574 }
575 
577  if (ecalEnergyNeighborTowers_ < -900)
580 }
581 
583  if (nEcalHitsNeighborTowers_ < -900)
586 }
587 
589  if (trackEnergyNeighborTowers_ < -900)
592 }
593 
595  if (nTracksNeighborTowers_ < -900)
597  return nTracksNeighborTowers_;
598 }
599 
600 void HBHEHitMap::hcalHitsNeighborTowers(std::set<const HBHERecHit*>& v) const {
601  v.clear();
602  for (neighbor_const_iterator it1 = beginNeighbors(); it1 != endNeighbors(); ++it1) {
603  const PhysicsTower* twr = (*it1);
604  v.insert(twr->hcalhits.begin(), twr->hcalhits.end());
605  }
606  return;
607 }
608 
609 void HBHEHitMap::ecalHitsNeighborTowers(std::set<const EcalRecHit*>& v) const {
610  v.clear();
611  for (neighbor_const_iterator it1 = beginNeighbors(); it1 != endNeighbors(); ++it1) {
612  const PhysicsTower* twr = (*it1);
613  v.insert(twr->ecalhits.begin(), twr->ecalhits.end());
614  }
615 
616  return;
617 }
618 
619 void HBHEHitMap::tracksNeighborTowers(std::set<const reco::Track*>& v) const {
620  v.clear();
621  for (neighbor_const_iterator it1 = beginNeighbors(); it1 != endNeighbors(); ++it1) {
622  const PhysicsTower* twr = (*it1);
623  v.insert(twr->tracks.begin(), twr->tracks.end());
624  }
625  return;
626 }
627 
628 void HBHEHitMap::byTowers(std::vector<twrinfo>& v) const { assert(false); }
629 
630 void HBHEHitMap::insert(const HBHERecHit* hit, const PhysicsTower* twr, std::set<const PhysicsTower*>& neighbors) {
631  hits_[hit] = twr;
632  neighbors_.insert(neighbors.begin(), neighbors.end());
633 
634  // make sure none of the neighbors are also are part of the hitmap
635  for (hitmap_const_iterator it = beginHits(); it != endHits(); ++it) {
636  const PhysicsTower* t = it->second;
638 
639  // if a hit is also a neighbor, remove the neighbor
640  if (find != endNeighbors())
641  neighbors_.erase(find);
642  }
643  return;
644 }
645 
646 void HBHEHitMap::calcHits_(void) const {
647  hitEnergy_ = 0;
648  nHits_ = 0;
649  hitEnergyTrkFid_ = 0;
650  for (hitmap_const_iterator it = hits_.begin(); it != hits_.end(); ++it) {
651  const HBHERecHit* hit = it->first;
652  if (hit->id().ietaAbs() <= 26)
653  hitEnergyTrkFid_ += hit->energy();
654  hitEnergy_ += hit->energy();
655  ++nHits_;
656  }
657  return;
658 }
659 
663  std::set<const HBHERecHit*> v;
665  for (std::set<const HBHERecHit*>::const_iterator it = v.begin(); it != v.end(); ++it) {
666  const HBHERecHit* hit = (*it);
667  hcalEnergySameTowers_ += hit->energy();
669  }
670  return;
671 }
672 
676  std::set<const EcalRecHit*> v;
678  for (std::set<const EcalRecHit*>::const_iterator it = v.begin(); it != v.end(); ++it) {
679  const EcalRecHit* hit = (*it);
680  ecalEnergySameTowers_ += hit->energy();
682  }
683  return;
684 }
685 
688  nTracksSameTowers_ = 0;
689  std::set<const reco::Track*> v;
691  for (std::set<const reco::Track*>::const_iterator it = v.begin(); it != v.end(); ++it) {
692  const reco::Track* trk = (*it);
693  trackEnergySameTowers_ += trk->p();
695  }
696  return;
697 }
698 
702  std::set<const HBHERecHit*> v;
704  for (std::set<const HBHERecHit*>::const_iterator it = v.begin(); it != v.end(); ++it) {
705  const HBHERecHit* hit = (*it);
706  hcalEnergyNeighborTowers_ += hit->energy();
708  }
709  return;
710 }
711 
715  std::set<const EcalRecHit*> v;
717  for (std::set<const EcalRecHit*>::const_iterator it = v.begin(); it != v.end(); ++it) {
718  const EcalRecHit* hit = (*it);
719  ecalEnergyNeighborTowers_ += hit->energy();
721  }
722  return;
723 }
724 
728  std::set<const reco::Track*> v;
730  for (std::set<const reco::Track*>::const_iterator it = v.begin(); it != v.end(); ++it) {
731  const reco::Track* trk = (*it);
732  trackEnergyNeighborTowers_ += trk->p();
734  }
735  return;
736 }
737 
739 //
740 // HBHEHitMapOrganizer
741 //
743 
745  const ObjectValidatorAbs& objvalidator,
746  const PhysicsTowerOrganizer& pto,
747  const HcalFrontEndMap* hfemap)
748  : hfemap_(hfemap) {
749  // loop over the hits
750  for (HBHERecHitCollection::const_iterator it = hbhehitcoll_h->begin(); it != hbhehitcoll_h->end(); ++it) {
751  const HBHERecHit* hit = &(*it);
752  if (!objvalidator.validHit(*hit))
753  continue;
754 
755  // get the Physics Tower and the neighbors
756  const PhysicsTower* tower = pto.findTower(hit->id().ieta(), hit->id().iphi());
757 
758  std::set<const PhysicsTower*> neighbors;
759  pto.findNeighbors(hit->id().ieta(), hit->id().iphi(), neighbors);
760 
761  // organize the RBXs
762  int rbxidnum = hfemap_->lookupRBXIndex(hit->id());
763  rbxs_[rbxidnum].insert(hit, tower, neighbors);
764 
765  // organize the HPDs
766  int hpdidnum = hfemap_->lookupRMIndex(hit->id());
767  hpds_[hpdidnum].insert(hit, tower, neighbors);
768 
769  // organize the dihits
770  std::vector<const HBHERecHit*> hpdneighbors;
771  getHPDNeighbors(hit, hpdneighbors, pto);
772 
773  if (hpdneighbors.size() == 1) {
774  std::vector<const HBHERecHit*> hpdneighborsneighbors;
775  getHPDNeighbors(hpdneighbors[0], hpdneighborsneighbors, pto);
776 
777  if (hpdneighborsneighbors.size() == 1 && hpdneighborsneighbors[0] == hit &&
778  hit->energy() > hpdneighbors[0]->energy()) {
779  // we've found two hits who are neighbors in the same HPD, but who have no other
780  // neighbors (in the same HPD) in common. In order not to double-count, we
781  // require that the first hit has more energy
782 
783  const PhysicsTower* tower2 = pto.findTower(hpdneighbors[0]->id().ieta(), hpdneighbors[0]->id().iphi());
784  std::set<const PhysicsTower*> neighbors2;
785  pto.findNeighbors(hpdneighbors[0]->id().ieta(), hpdneighbors[0]->id().iphi(), neighbors2);
786 
787  HBHEHitMap dihit;
788  dihit.insert(hit, tower, neighbors);
789  dihit.insert(hpdneighbors[0], tower2, neighbors2);
790  dihits_.push_back(dihit);
791  }
792  } else if (hpdneighbors.empty()) {
793  // organize the monohits
794  HBHEHitMap monohit;
795  monohit.insert(hit, tower, neighbors);
796  monohits_.push_back(monohit);
797  }
798 
799  } // finished looping over HBHERecHits
800  return;
801 }
802 
803 void HBHEHitMapOrganizer::getRBXs(std::vector<HBHEHitMap>& v, double energy) const {
804  for (std::map<int, HBHEHitMap>::const_iterator it = rbxs_.begin(); it != rbxs_.end(); ++it) {
805  const HBHEHitMap& map = it->second;
806  if (map.hitEnergy() > energy)
807  v.push_back(map);
808  }
809  return;
810 }
811 
812 void HBHEHitMapOrganizer::getHPDs(std::vector<HBHEHitMap>& v, double energy) const {
813  for (std::map<int, HBHEHitMap>::const_iterator it = hpds_.begin(); it != hpds_.end(); ++it) {
814  const HBHEHitMap& map = it->second;
815  if (map.hitEnergy() > energy)
816  v.push_back(map);
817  }
818  return;
819 }
820 
821 void HBHEHitMapOrganizer::getDiHits(std::vector<HBHEHitMap>& v, double energy) const {
822  for (std::vector<HBHEHitMap>::const_iterator it = dihits_.begin(); it != dihits_.end(); ++it) {
823  if (it->hitEnergy() > energy)
824  v.push_back(*it);
825  }
826  return;
827 }
828 
829 void HBHEHitMapOrganizer::getMonoHits(std::vector<HBHEHitMap>& v, double energy) const {
830  for (std::vector<HBHEHitMap>::const_iterator it = monohits_.begin(); it != monohits_.end(); ++it) {
831  if (it->hitEnergy() > energy)
832  v.push_back(*it);
833  }
834  return;
835 }
836 
838  std::vector<const HBHERecHit*>& neighbors,
839  const PhysicsTowerOrganizer& pto) {
840  std::set<const PhysicsTower*> temp;
841  pto.findNeighbors(hit->id().ieta(), hit->id().iphi(), temp);
842 
843  // make sure to include the same tower that the hit is in
844  temp.insert(pto.findTower(hit->id().ieta(), hit->id().iphi()));
845 
846  // loop over the rechits in the temp neighbors
847  for (std::set<const PhysicsTower*>::const_iterator it1 = temp.begin(); it1 != temp.end(); ++it1) {
848  for (std::set<const HBHERecHit*>::const_iterator it2 = (*it1)->hcalhits.begin(); it2 != (*it1)->hcalhits.end();
849  ++it2) {
850  const HBHERecHit* hit2(*it2);
851  if (hit != hit2 && hfemap_->lookupRMIndex(hit->id()) == hfemap_->lookupRMIndex(hit2->id())) {
852  neighbors.push_back(hit2);
853  }
854  }
855  }
856  return;
857 }
HBHEHitMap::trackEnergyNeighborTowers_
double trackEnergyNeighborTowers_
Definition: HBHEIsolatedNoiseAlgos.h:319
HBHEIsolatedNoiseAlgos.h
HBHEHitMap::calcEcalNeighborTowers_
void calcEcalNeighborTowers_(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:712
CaloTowerDetId::ietaAbs
int ietaAbs() const
get the absolute value of the tower ieta
Definition: CaloTowerDetId.h:28
EcalRecHit
Definition: EcalRecHit.h:15
HBHEHitMap::tracksNeighborTowers
void tracksNeighborTowers(std::set< const reco::Track * > &v) const
Definition: HBHEIsolatedNoiseAlgos.cc:619
HBHEHitMap::ecalEnergyNeighborTowers_
double ecalEnergyNeighborTowers_
Definition: HBHEIsolatedNoiseAlgos.h:315
PhysicsTower::hcalhits
std::set< const HBHERecHit * > hcalhits
Definition: HBHEIsolatedNoiseAlgos.h:156
HBHERecHitAuxSetter::OFF_COMBINED
static const unsigned OFF_COMBINED
Definition: HBHERecHitAuxSetter.h:41
ObjectValidator::theHcalSevLvlComputer_
const HcalSeverityLevelComputer * theHcalSevLvlComputer_
Definition: HBHEIsolatedNoiseAlgos.h:138
PhysicsTowerOrganizer::PhysicsTowerOrganizer
PhysicsTowerOrganizer(const edm::Handle< HBHERecHitCollection > &hbhehitcoll_h, const edm::Handle< EcalRecHitCollection > &ebhitcoll_h, const edm::Handle< EcalRecHitCollection > &eehitcoll_h, const edm::Handle< std::vector< reco::TrackExtrapolation > > &trackextrapcoll_h, const ObjectValidatorAbs &objectvalidator, const CaloTowerConstituentsMap &ctcm, const CaloGeometry &geo)
Definition: HBHEIsolatedNoiseAlgos.cc:151
EcalSeverityLevel::kGood
Definition: EcalSeverityLevel.h:19
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11724
HcalSeverityLevelComputer::recoveredRecHit
bool recoveredRecHit(const DetId &myid, const uint32_t &myflag) const
Definition: HcalSeverityLevelComputer.cc:363
hit::id
unsigned int id
Definition: SiStripHitEffFromCalibTree.cc:92
HBHEHitMap::trackEnergySameTowers
double trackEnergySameTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:521
EcalSeverityLevelAlgo::severityLevel
EcalSeverityLevel::SeverityLevel severityLevel(const DetId &id) const
Evaluate status from id use channelStatus from DB.
Definition: EcalSeverityLevelAlgo.cc:85
HBHEHitMap::nHcalHitsSameTowers
int nHcalHitsSameTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:503
ESHandle.h
ObjectValidator::UseEcalRecoveredHits_
bool UseEcalRecoveredHits_
Definition: HBHEIsolatedNoiseAlgos.h:126
HcalFrontEndMap::lookupRMIndex
const int lookupRMIndex(DetId fId) const
Definition: HcalFrontEndMap.cc:63
reco::TrackBase::p
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
HBHEHitMap::hitEnergy
double hitEnergy(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:479
ecaldqm::zside
int zside(DetId const &)
Definition: EcalDQMCommonUtils.cc:189
ObjectValidator::theHcalChStatus_
const HcalChannelQuality * theHcalChStatus_
Definition: HBHEIsolatedNoiseAlgos.h:134
EBDetId
Definition: EBDetId.h:17
HBHEHitMapOrganizer::getHPDs
void getHPDs(std::vector< HBHEHitMap > &v, double energy) const
Definition: HBHEIsolatedNoiseAlgos.cc:812
HBHEHitMapOrganizer::hfemap_
const HcalFrontEndMap * hfemap_
Definition: HBHEIsolatedNoiseAlgos.h:345
HBHERecHit
Definition: HBHERecHit.h:13
ObjectValidator::~ObjectValidator
~ObjectValidator() override
Definition: HBHEIsolatedNoiseAlgos.cc:70
HBHEHitMap::calcTracksNeighborTowers_
void calcTracksNeighborTowers_(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:725
HBHEHitMap::calcTracksSameTowers_
void calcTracksSameTowers_(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:686
HBHERecHitAuxSetter.h
hgcalTowerProducer_cfi.tower
tower
Definition: hgcalTowerProducer_cfi.py:4
HBHEHitMap::findNeighbor
neighbor_const_iterator findNeighbor(const PhysicsTower *twr) const
Definition: HBHEIsolatedNoiseAlgos.h:277
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
cms::cuda::assert
assert(be >=bs)
ObjectValidator::UseHcalRecoveredHits_
bool UseHcalRecoveredHits_
Definition: HBHEIsolatedNoiseAlgos.h:125
HBHEHitMap::nHcalHitsSameTowers_
int nHcalHitsSameTowers_
Definition: HBHEIsolatedNoiseAlgos.h:300
ObjectValidator::validHit
bool validHit(const HBHERecHit &) const override
Definition: HBHEIsolatedNoiseAlgos.cc:72
PhysicsTower::tracks
std::set< const reco::Track * > tracks
Definition: HBHEIsolatedNoiseAlgos.h:158
ObjectValidatorAbs::validHit
virtual bool validHit(const HBHERecHit &) const =0
HBHEHitMap::nEcalHitsSameTowers
int nEcalHitsSameTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:515
HBHEHitMap::HBHEHitMap
HBHEHitMap()
Definition: HBHEIsolatedNoiseAlgos.cc:470
HBHEHitMapOrganizer::HBHEHitMapOrganizer
HBHEHitMapOrganizer(const edm::Handle< HBHERecHitCollection > &hbhehitcoll_h, const ObjectValidatorAbs &objvalidator, const PhysicsTowerOrganizer &pto, const HcalFrontEndMap *hfemap)
Definition: HBHEIsolatedNoiseAlgos.cc:744
HcalBarrel
Definition: HcalAssistant.h:33
findQualityFiles.v
v
Definition: findQualityFiles.py:179
HBHEHitMap::neighbor_const_iterator
std::set< const PhysicsTower * >::const_iterator neighbor_const_iterator
Definition: HBHEIsolatedNoiseAlgos.h:225
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
edm::Handle
Definition: AssociativeIterator.h:50
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
ObjectValidator::EcalAcceptSeverityLevel_
uint32_t EcalAcceptSeverityLevel_
Definition: HBHEIsolatedNoiseAlgos.h:124
reco::TrackBase::numberOfValidHits
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:798
HBHEHitMap::endNeighbors
neighbor_const_iterator endNeighbors(void) const
Definition: HBHEIsolatedNoiseAlgos.h:287
HcalCondObjectContainer::getValues
const Item * getValues(DetId fId, bool throwOnFail=true) const
Definition: HcalCondObjectContainer.h:159
EcalBarrel
Definition: EcalSubdetector.h:10
EcalRecHitCollections.h
HBHEHitMap::beginHits
hitmap_const_iterator beginHits(void) const
Definition: HBHEIsolatedNoiseAlgos.h:283
HBHEHitMapOrganizer::rbxs_
std::map< int, HBHEHitMap > rbxs_
Definition: HBHEIsolatedNoiseAlgos.h:346
CaloMETCollection.h
ObjectValidatorAbs
Definition: HBHEIsolatedNoiseAlgos.h:60
PhysicsTowerOrganizer::towers_
std::set< PhysicsTower, towercmp > towers_
Definition: HBHEIsolatedNoiseAlgos.h:206
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
HBHEHitMapOrganizer::getRBXs
void getRBXs(std::vector< HBHEHitMap > &v, double energy) const
Definition: HBHEIsolatedNoiseAlgos.cc:803
EDMException.h
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:637
DetId
Definition: DetId.h:17
HBHEHitMap
Definition: HBHEIsolatedNoiseAlgos.h:222
CaloGeometry
Definition: CaloGeometry.h:21
HBHEHitMap::ecalHitsSameTowers
void ecalHitsSameTowers(std::set< const EcalRecHit * > &v) const
Definition: HBHEIsolatedNoiseAlgos.cc:548
HBHEHitMap::hcalHitsNeighborTowers
void hcalHitsNeighborTowers(std::set< const HBHERecHit * > &v) const
Definition: HBHEIsolatedNoiseAlgos.cc:600
PhysicsTowerOrganizer::findTower
const PhysicsTower * findTower(const CaloTowerDetId &id) const
Definition: HBHEIsolatedNoiseAlgos.cc:248
Track.h
ObjectValidator::theEcalChStatus_
const EcalChannelStatus * theEcalChStatus_
Definition: HBHEIsolatedNoiseAlgos.h:135
TrackFwd.h
HBHEHitMap::nEcalHitsNeighborTowers
int nEcalHitsNeighborTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:582
HBHEHitMap::nHcalHitsNeighborTowers
int nHcalHitsNeighborTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:570
CaloMET.h
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
ObjectValidator::theEERecHitCollection_
const EcalRecHitCollection * theEERecHitCollection_
Definition: HBHEIsolatedNoiseAlgos.h:143
HBHEHitMap::ecalEnergySameTowers
double ecalEnergySameTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:509
reco::TrackExtrapolation::track
reco::TrackRef const & track() const
Definition: TrackExtrapolation.h:41
reco::Track
Definition: Track.h:27
CaloTowerConstituentsMap
Definition: CaloTowerConstituentsMap.h:18
HBHEHitMapOrganizer::getDiHits
void getDiHits(std::vector< HBHEHitMap > &v, double energy) const
Definition: HBHEIsolatedNoiseAlgos.cc:821
PhysicsTower::id
CaloTowerDetId id
Definition: HBHEIsolatedNoiseAlgos.h:155
ObjectValidator::EBThreshold_
double EBThreshold_
Definition: HBHEIsolatedNoiseAlgos.h:120
PhysicsTowerOrganizer
Definition: HBHEIsolatedNoiseAlgos.h:171
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
HBHEHitMap::nTracksNeighborTowers
int nTracksNeighborTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:594
Point3DBase< float, GlobalTag >
HcalFrontEndMap::lookupRBXIndex
const int lookupRBXIndex(DetId fId) const
Definition: HcalFrontEndMap.cc:76
ObjectValidator::theEBRecHitCollection_
const EcalRecHitCollection * theEBRecHitCollection_
Definition: HBHEIsolatedNoiseAlgos.h:142
EcalSeverityLevelAlgo.h
ObjectValidator::validTrack
bool validTrack(const reco::Track &) const override
Definition: HBHEIsolatedNoiseAlgos.cc:135
HBHEHitMap::nTracksSameTowers_
int nTracksSameTowers_
Definition: HBHEIsolatedNoiseAlgos.h:308
HBHEHitMap::nHits
int nHits(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:485
EEDetId
Definition: EEDetId.h:14
CaloGeometryRecord.h
HBHEHitMap::calcHcalSameTowers_
void calcHcalSameTowers_(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:660
HBHEHitMap::nTracksNeighborTowers_
int nTracksNeighborTowers_
Definition: HBHEIsolatedNoiseAlgos.h:320
EcalEndcap
Definition: EcalSubdetector.h:10
reco::TrackExtrapolation::positions
std::vector< Point > const & positions() const
Definition: TrackExtrapolation.h:42
HBHEHitMap::ecalEnergyNeighborTowers
double ecalEnergyNeighborTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:576
HcalSeverityLevelComputer::getSeverityLevel
int getSeverityLevel(const DetId &myid, const uint32_t &myflag, const uint32_t &mystatus) const
Definition: HcalSeverityLevelComputer.cc:304
HcalChannelStatus::getValue
uint32_t getValue() const
Definition: HcalChannelStatus.h:60
HBHEHitMap::tracksSameTowers
void tracksSameTowers(std::set< const reco::Track * > &v) const
Definition: HBHEIsolatedNoiseAlgos.cc:556
LEDCalibrationChannels.ieta
ieta
Definition: LEDCalibrationChannels.py:63
HBHEHitMap::trackEnergyNeighborTowers
double trackEnergyNeighborTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:588
CaloSubdetectorGeometry.h
HBHEHitMapOrganizer::getHPDNeighbors
void getHPDNeighbors(const HBHERecHit *hit, std::vector< const HBHERecHit * > &neighbors, const PhysicsTowerOrganizer &pto)
Definition: HBHEIsolatedNoiseAlgos.cc:837
HBHEHitMap::nHits_
int nHits_
Definition: HBHEIsolatedNoiseAlgos.h:296
edm::ParameterSet
Definition: ParameterSet.h:47
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
ObjectValidator::HESThreshold_
double HESThreshold_
Definition: HBHEIsolatedNoiseAlgos.h:118
HBHEHitMap::ecalHitsNeighborTowers
void ecalHitsNeighborTowers(std::set< const EcalRecHit * > &v) const
Definition: HBHEIsolatedNoiseAlgos.cc:609
PhysicsTower::ecalhits
std::set< const EcalRecHit * > ecalhits
Definition: HBHEIsolatedNoiseAlgos.h:157
HBHEHitMap::hits_
std::map< const HBHERecHit *, const PhysicsTower * > hits_
Definition: HBHEIsolatedNoiseAlgos.h:290
HBHEHitMap::hitEnergy_
double hitEnergy_
Definition: HBHEIsolatedNoiseAlgos.h:294
ObjectValidator::HEDThreshold_
double HEDThreshold_
Definition: HBHEIsolatedNoiseAlgos.h:119
HBHEHitMap::byTowers
void byTowers(std::vector< twrinfo > &v) const
Definition: HBHEIsolatedNoiseAlgos.cc:628
ObjectValidator::MinValidTrackNHits_
int MinValidTrackNHits_
Definition: HBHEIsolatedNoiseAlgos.h:131
HBHEHitMap::hcalEnergySameTowers
double hcalEnergySameTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:497
HBHEHitMap::trackEnergySameTowers_
double trackEnergySameTowers_
Definition: HBHEIsolatedNoiseAlgos.h:307
ObjectValidator::UseAllCombinedRechits_
bool UseAllCombinedRechits_
Definition: HBHEIsolatedNoiseAlgos.h:127
HBHEHitMap::findHit
hitmap_const_iterator findHit(const HBHERecHit *hit) const
Definition: HBHEIsolatedNoiseAlgos.h:274
CaloRecHitAuxSetter::getBit
constexpr bool getBit(const uint32_t u, const unsigned bitnum)
Definition: CaloRecHitAuxSetter.h:37
CaloTowerConstituentsMap::towerOf
CaloTowerDetId towerOf(const DetId &id) const
Get the tower id for this det id (or null if not known)
Definition: CaloTowerConstituentsMap.cc:26
CaloSubdetectorGeometry::getClosestCell
virtual DetId getClosestCell(const GlobalPoint &r) const
Definition: CaloSubdetectorGeometry.cc:44
HBHEHitMap::insert
void insert(const HBHERecHit *hit, const PhysicsTower *twr, std::set< const PhysicsTower * > &neighbors)
Definition: HBHEIsolatedNoiseAlgos.cc:630
HBHEHitMap::calcHcalNeighborTowers_
void calcHcalNeighborTowers_(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:699
HBHEHitMap::calcEcalSameTowers_
void calcEcalSameTowers_(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:673
DetId::Ecal
Definition: DetId.h:27
HBHEHitMap::hitEnergyTrkFid_
double hitEnergyTrkFid_
Definition: HBHEIsolatedNoiseAlgos.h:295
HcalChannelQuality.h
HBHEHitMap::hcalEnergyNeighborTowers
double hcalEnergyNeighborTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:564
CaloTowerDetId::iphi
int iphi() const
get the tower iphi
Definition: CaloTowerDetId.cc:30
PhysicsTower
Definition: HBHEIsolatedNoiseAlgos.h:154
ObjectValidator::HBThreshold_
double HBThreshold_
Definition: HBHEIsolatedNoiseAlgos.h:117
HBHEHitMap::nEcalHitsNeighborTowers_
int nEcalHitsNeighborTowers_
Definition: HBHEIsolatedNoiseAlgos.h:316
HBHEHitMapOrganizer::hpds_
std::map< int, HBHEHitMap > hpds_
Definition: HBHEIsolatedNoiseAlgos.h:346
interestingDetIdCollectionProducer_cfi.severityLevel
severityLevel
Definition: interestingDetIdCollectionProducer_cfi.py:10
HBHEHitMap::neighbors_
std::set< const PhysicsTower * > neighbors_
Definition: HBHEIsolatedNoiseAlgos.h:291
HBHEHitMap::ecalEnergySameTowers_
double ecalEnergySameTowers_
Definition: HBHEIsolatedNoiseAlgos.h:303
HBHEHitMapOrganizer::monohits_
std::vector< HBHEHitMap > monohits_
Definition: HBHEIsolatedNoiseAlgos.h:347
HcalEndcap
Definition: HcalAssistant.h:34
PhysicsTowerOrganizer::insert_
void insert_(CaloTowerDetId &id, const HBHERecHit *hit)
Definition: HBHEIsolatedNoiseAlgos.cc:416
HBHEHitMap::hcalHitsSameTowers
void hcalHitsSameTowers(std::set< const HBHERecHit * > &v) const
Definition: HBHEIsolatedNoiseAlgos.cc:533
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
HBHEHitMap::nEcalHitsSameTowers_
int nEcalHitsSameTowers_
Definition: HBHEIsolatedNoiseAlgos.h:304
HBHEHitMap::hcalEnergySameTowers_
double hcalEnergySameTowers_
Definition: HBHEIsolatedNoiseAlgos.h:299
EcalSeverityLevel::kRecovered
Definition: EcalSeverityLevel.h:21
HBHEHitMap::nHcalHitsNeighborTowers_
int nHcalHitsNeighborTowers_
Definition: HBHEIsolatedNoiseAlgos.h:312
CaloGeometry.h
ObjectValidator::EEThreshold_
double EEThreshold_
Definition: HBHEIsolatedNoiseAlgos.h:121
HBHEHitMap::endHits
hitmap_const_iterator endHits(void) const
Definition: HBHEIsolatedNoiseAlgos.h:284
HBHEHitMap::hitEnergyTrackFiducial
double hitEnergyTrackFiducial(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:491
HcalFrontEndMap
Definition: HcalFrontEndMap.h:23
ObjectValidator::ObjectValidator
ObjectValidator(const edm::ParameterSet &)
Definition: HBHEIsolatedNoiseAlgos.cc:43
HBHEHitMap::nTracksSameTowers
int nTracksSameTowers(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:527
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
ObjectValidator::theEcalSevLvlAlgo_
const EcalSeverityLevelAlgo * theEcalSevLvlAlgo_
Definition: HBHEIsolatedNoiseAlgos.h:139
HcalRecHitCollections.h
HcalSeverityLevelComputer.h
HBHEHitMap::calcHits_
void calcHits_(void) const
Definition: HBHEIsolatedNoiseAlgos.cc:646
HBHEHitMap::hitmap_const_iterator
std::map< const HBHERecHit *, const PhysicsTower * >::const_iterator hitmap_const_iterator
Definition: HBHEIsolatedNoiseAlgos.h:224
ObjectValidator::HcalAcceptSeverityLevel_
uint32_t HcalAcceptSeverityLevel_
Definition: HBHEIsolatedNoiseAlgos.h:123
reco::TrackExtrapolation
Definition: TrackExtrapolation.h:22
HBHEHitMapOrganizer::dihits_
std::vector< HBHEHitMap > dihits_
Definition: HBHEIsolatedNoiseAlgos.h:347
genParticles_cff.map
map
Definition: genParticles_cff.py:11
ObjectValidator::MinValidTrackPt_
double MinValidTrackPt_
Definition: HBHEIsolatedNoiseAlgos.h:129
CaloTowerDetId::zside
int zside() const
get the z-side of the tower (1/-1)
Definition: CaloTowerDetId.h:26
HBHERecHit::id
constexpr HcalDetId id() const
get the id
Definition: HBHERecHit.h:41
dummy
Definition: DummySelector.h:38
reco::TrackBase::momentum
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:664
point
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
HBHEHitMap::hcalEnergyNeighborTowers_
double hcalEnergyNeighborTowers_
Definition: HBHEIsolatedNoiseAlgos.h:311
submitPVValidationJobs.t
string t
Definition: submitPVValidationJobs.py:644
HBHEHitMapOrganizer::getMonoHits
void getMonoHits(std::vector< HBHEHitMap > &v, double energy) const
Definition: HBHEIsolatedNoiseAlgos.cc:829
CaloRecHitAuxSetter.h
hit
Definition: SiStripHitEffFromCalibTree.cc:88
ObjectValidatorAbs::validTrack
virtual bool validTrack(const reco::Track &) const =0
PhysicsTowerOrganizer::findNeighbors
void findNeighbors(const CaloTowerDetId &id, std::set< const PhysicsTower * > &neighbors) const
Definition: HBHEIsolatedNoiseAlgos.cc:276
CaloTowerDetId
Definition: CaloTowerDetId.h:12
HBHEHitMap::beginNeighbors
neighbor_const_iterator beginNeighbors(void) const
Definition: HBHEIsolatedNoiseAlgos.h:286
ObjectValidator::MinValidTrackPtBarrel_
double MinValidTrackPtBarrel_
Definition: HBHEIsolatedNoiseAlgos.h:130