File indexing completed on 2023-03-17 11:18:08
0001
0002
0003
0004
0005
0006
0007
0008 #include <memory>
0009 #include <vector>
0010 #include <string>
0011
0012
0013 #include "FWCore/Framework/interface/Frameworkfwd.h"
0014 #include "FWCore/Framework/interface/global/EDFilter.h"
0015 #include "FWCore/Framework/interface/Event.h"
0016 #include "FWCore/Framework/interface/MakerMacros.h"
0017 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0018 #include "FWCore/Utilities/interface/Exception.h"
0019
0020
0021
0022
0023
0024 class CentralityFilter : public edm::global::EDFilter<> {
0025 public:
0026 explicit CentralityFilter(const edm::ParameterSet&);
0027 ~CentralityFilter() override;
0028
0029 private:
0030 bool filter(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
0031
0032
0033
0034 std::vector<int> selectedBins_;
0035 edm::EDGetTokenT<int> tag_;
0036 };
0037
0038 CentralityFilter::CentralityFilter(const edm::ParameterSet& iConfig)
0039 : selectedBins_(iConfig.getParameter<std::vector<int> >("selectedBins")) {
0040 using namespace edm;
0041 tag_ = consumes<int>(iConfig.getParameter<edm::InputTag>("BinLabel"));
0042 }
0043
0044 CentralityFilter::~CentralityFilter() {}
0045
0046
0047 bool CentralityFilter::filter(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const {
0048 bool result = false;
0049
0050 using namespace edm;
0051 int bin = iEvent.get(tag_);
0052
0053 for (unsigned int i = 0; i < selectedBins_.size(); ++i) {
0054 if (bin == selectedBins_[i])
0055 result = true;
0056 }
0057
0058 return result;
0059 }
0060
0061
0062 DEFINE_FWK_MODULE(CentralityFilter);