#include <PhysicsTools/UtilAlgos/interface/ObjectSelector.h>
Public Member Functions | |
ObjectSelector (const edm::ParameterSet &cfg) | |
constructor | |
virtual | ~ObjectSelector () |
destructor | |
Private Member Functions | |
bool | filter (edm::Event &evt, const edm::EventSetup &es) |
process one event | |
Private Attributes | |
bool | filter_ |
filter event | |
PostProcessor | postProcessor_ |
post processor | |
Selector | selector_ |
Object collection selector. | |
SizeSelector | sizeSelector_ |
selected object collection size selector | |
edm::InputTag | src_ |
source collection label |
Definition at line 39 of file ObjectSelector.h.
ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >::ObjectSelector | ( | const edm::ParameterSet & | cfg | ) | [inline, explicit] |
constructor
Definition at line 42 of file ObjectSelector.h.
00042 : 00043 Base(cfg), 00044 src_(cfg.template getParameter<edm::InputTag>("src")), 00045 filter_(false), 00046 selector_(cfg), 00047 sizeSelector_(reco::modules::make<SizeSelector>(cfg)), 00048 postProcessor_(cfg) { 00049 const std::string filter("filter"); 00050 std::vector<std::string> bools = cfg.template getParameterNamesForType<bool>(); 00051 bool found = std::find(bools.begin(), bools.end(), filter) != bools.end(); 00052 if (found) filter_ = cfg.template getParameter<bool>(filter); 00053 postProcessor_.init(* this); 00054 }
virtual ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >::~ObjectSelector | ( | ) | [inline, virtual] |
bool ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >::filter | ( | edm::Event & | evt, | |
const edm::EventSetup & | es | |||
) | [inline, private] |
process one event
Definition at line 60 of file ObjectSelector.h.
Referenced by ObjectSelector< Selector, std::vector< ProtoJet >, SizeSelector, PostProcessor >::ObjectSelector().
00060 { 00061 Init::init(selector_, evt, es); 00062 using namespace std; 00063 edm::Handle<typename Selector::collection> source; 00064 evt.getByLabel(src_, source); 00065 StoreManager manager(source); 00066 selector_.select(source, evt, es); 00067 manager.cloneAndStore(selector_.begin(), selector_.end(), evt); 00068 bool result = (! filter_ || sizeSelector_(manager.size())); 00069 edm::OrphanHandle<OutputCollection> filtered = manager.put(evt); 00070 postProcessor_.process(filtered, evt); 00071 return result; 00072 }
bool ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >::filter_ [private] |
filter event
Definition at line 76 of file ObjectSelector.h.
Referenced by ObjectSelector< Selector, std::vector< ProtoJet >, SizeSelector, PostProcessor >::filter(), and ObjectSelector< Selector, std::vector< ProtoJet >, SizeSelector, PostProcessor >::ObjectSelector().
PostProcessor ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >::postProcessor_ [private] |
post processor
Definition at line 82 of file ObjectSelector.h.
Referenced by ObjectSelector< Selector, std::vector< ProtoJet >, SizeSelector, PostProcessor >::filter(), and ObjectSelector< Selector, std::vector< ProtoJet >, SizeSelector, PostProcessor >::ObjectSelector().
Selector ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >::selector_ [private] |
Object collection selector.
Definition at line 78 of file ObjectSelector.h.
Referenced by ObjectSelector< Selector, std::vector< ProtoJet >, SizeSelector, PostProcessor >::filter().
SizeSelector ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >::sizeSelector_ [private] |
selected object collection size selector
Definition at line 80 of file ObjectSelector.h.
Referenced by ObjectSelector< Selector, std::vector< ProtoJet >, SizeSelector, PostProcessor >::filter().
edm::InputTag ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >::src_ [private] |
source collection label
Definition at line 74 of file ObjectSelector.h.
Referenced by ObjectSelector< Selector, std::vector< ProtoJet >, SizeSelector, PostProcessor >::filter(), and reco::modules::MCMatchCandRefSelector::newEvent().