![]() |
|
|||
File indexing completed on 2023-03-17 10:45:26
0001 // -*- C++ -*- 0002 // 0003 // Package: CommonTools/RecoAlgos 0004 // Class: BooleanFlagFilter 0005 // 0006 /**\class BooleanFlagFilter BooleanFlagFilter.cc CommonTools/RecoAlgos/plugins/BooleanFlagFilter.cc 0007 0008 Description: [one line class summary] 0009 0010 Implementation: 0011 [Notes on implementation] 0012 */ 0013 // 0014 // Original Author: Igor Volobouev 0015 // Created: Fri, 20 Mar 2015 08:05:20 GMT 0016 // 0017 // 0018 0019 // system include files 0020 #include <memory> 0021 0022 // user include files 0023 #include "FWCore/Framework/interface/Frameworkfwd.h" 0024 #include "FWCore/Framework/interface/global/EDFilter.h" 0025 0026 #include "FWCore/Framework/interface/Event.h" 0027 #include "FWCore/Framework/interface/MakerMacros.h" 0028 0029 #include "FWCore/ParameterSet/interface/ParameterSet.h" 0030 0031 // 0032 // class declaration 0033 // 0034 0035 class BooleanFlagFilter : public edm::global::EDFilter<> { 0036 public: 0037 explicit BooleanFlagFilter(const edm::ParameterSet&); 0038 ~BooleanFlagFilter() override; 0039 0040 private: 0041 //virtual void beginJob() override; 0042 bool filter(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; 0043 //virtual void endJob() override; 0044 0045 //virtual void beginRun(edm::Run const&, edm::EventSetup const&) override; 0046 //virtual void endRun(edm::Run const&, edm::EventSetup const&) override; 0047 //virtual void beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override; 0048 //virtual void endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) override; 0049 0050 // ----------member data --------------------------- 0051 edm::EDGetTokenT<bool> inputToken_; 0052 bool reverse_; 0053 }; 0054 0055 // 0056 // constants, enums and typedefs 0057 // 0058 0059 // 0060 // static data member definitions 0061 // 0062 0063 // 0064 // constructors and destructor 0065 // 0066 BooleanFlagFilter::BooleanFlagFilter(const edm::ParameterSet& iConfig) { 0067 //now do what ever initialization is needed 0068 inputToken_ = consumes<bool>(iConfig.getParameter<edm::InputTag>("inputLabel")); 0069 reverse_ = iConfig.getParameter<bool>("reverseDecision"); 0070 } 0071 0072 BooleanFlagFilter::~BooleanFlagFilter() { 0073 // do anything here that needs to be done at desctruction time 0074 // (e.g. close files, deallocate resources etc.) 0075 } 0076 0077 // 0078 // member functions 0079 // 0080 0081 // ------------ method called on each new Event ------------ 0082 bool BooleanFlagFilter::filter(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const { 0083 using namespace edm; 0084 0085 Handle<bool> pIn; 0086 iEvent.getByToken(inputToken_, pIn); 0087 if (!pIn.isValid()) { 0088 throw edm::Exception(edm::errors::ProductNotFound) << " could not find requested flag\n"; 0089 return true; 0090 } 0091 0092 bool result = *pIn; 0093 if (reverse_) 0094 result = !result; 0095 0096 return result; 0097 } 0098 0099 // ------------ method called once each job just before starting event loop ------------ 0100 /* 0101 void 0102 BooleanFlagFilter::beginJob() 0103 { 0104 } 0105 */ 0106 0107 // ------------ method called once each job just after ending the event loop ------------ 0108 /* 0109 void 0110 BooleanFlagFilter::endJob() { 0111 } 0112 */ 0113 0114 // ------------ method called when starting to processes a run ------------ 0115 /* 0116 void 0117 BooleanFlagFilter::beginRun(edm::Run const&, edm::EventSetup const&) 0118 { 0119 } 0120 */ 0121 0122 // ------------ method called when ending the processing of a run ------------ 0123 /* 0124 void 0125 BooleanFlagFilter::endRun(edm::Run const&, edm::EventSetup const&) 0126 { 0127 } 0128 */ 0129 0130 // ------------ method called when starting to processes a luminosity block ------------ 0131 /* 0132 void 0133 BooleanFlagFilter::beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) 0134 { 0135 } 0136 */ 0137 0138 // ------------ method called when ending the processing of a luminosity block ------------ 0139 /* 0140 void 0141 BooleanFlagFilter::endLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) 0142 { 0143 } 0144 */ 0145 0146 //define this as a plug-in 0147 DEFINE_FWK_MODULE(BooleanFlagFilter);
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |