CMS 3D CMS Logo

HcalStripHaloFilter.cc
Go to the documentation of this file.
7 
9 
10  public:
11 
12  explicit HcalStripHaloFilter(const edm::ParameterSet & iConfig);
13  ~HcalStripHaloFilter() override {}
14 
15  private:
16 
17  bool filter(edm::StreamID iID, edm::Event & iEvent, const edm::EventSetup & iSetup) const override;
18 
19  const bool taggingMode_;
21  const double maxEnergyRatio_;
22  const double minHadEt_;
24 };
25 
27  : taggingMode_ (iConfig.getParameter<bool> ("taggingMode"))
28  , maxWeightedStripLength_ (iConfig.getParameter<int>("maxWeightedStripLength"))
29  , maxEnergyRatio_ (iConfig.getParameter<double>("maxEnergyRatio"))
30  , minHadEt_ (iConfig.getParameter<double>("minHadEt"))
31  , beamHaloSummaryToken_(consumes<reco::BeamHaloSummary>(edm::InputTag("BeamHaloSummary")))
32 {
33  produces<bool>();
34 }
35 
37 
38  edm::Handle<reco::BeamHaloSummary> beamHaloSummary;
39  iEvent.getByToken(beamHaloSummaryToken_ , beamHaloSummary);
40 
41  bool pass = true;
42  auto const& problematicStrips = beamHaloSummary->getProblematicStrips();
43  for (unsigned int iStrip = 0; iStrip < problematicStrips.size(); iStrip++) {
44  int numContiguousCells = 0;
45  auto const& problematicStrip = problematicStrips[iStrip];
46  for (unsigned int iTower = 0; iTower < problematicStrip.cellTowerIds.size(); iTower++) {
47  numContiguousCells += (int)problematicStrip.cellTowerIds[iTower].first;
48  }
49  if( numContiguousCells > maxWeightedStripLength_
50  && problematicStrip.energyRatio < maxEnergyRatio_
51  && problematicStrip.hadEt > minHadEt_ ) {
52  pass = false;
53  break;
54  }
55  }
56 
57  iEvent.put(std::make_unique<bool>(pass));
58 
59  return taggingMode_ || pass; // return false if it is a beamhalo event
60 }
61 
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:125
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::EDGetTokenT< reco::BeamHaloSummary > beamHaloSummaryToken_
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
HcalStripHaloFilter(const edm::ParameterSet &iConfig)
bool filter(edm::StreamID iID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override
fixed size matrix
HLT enums.
std::vector< HaloTowerStrip > & getProblematicStrips()