CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ObjectSelector.h
Go to the documentation of this file.
1 #ifndef RecoAlgos_ObjectSelector_h
2 #define RecoAlgos_ObjectSelector_h
3 
25 #include <utility>
26 #include <vector>
27 #include <memory>
28 #include <algorithm>
29 
30 template<typename Selector,
32  typename SizeSelector = NonNullNumberSelector,
33  typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>,
37  >
38 class ObjectSelector : public Base {
39 public:
41  explicit ObjectSelector(const edm::ParameterSet & cfg) :
42  Base(cfg),
43  src_(cfg.template getParameter<edm::InputTag>("src")),
44  filter_(false),
45  selector_(cfg),
46  sizeSelector_(reco::modules::make<SizeSelector>(cfg)),
47  postProcessor_(cfg) {
48  const std::string filter("filter");
49  std::vector<std::string> bools = cfg.template getParameterNamesForType<bool>();
50  bool found = std::find(bools.begin(), bools.end(), filter) != bools.end();
51  if (found) filter_ = cfg.template getParameter<bool>(filter);
52  postProcessor_.init(* this);
53  }
55  virtual ~ObjectSelector() { }
56 
57 private:
59  bool filter(edm::Event& evt, const edm::EventSetup& es) {
60  Init::init(selector_, evt, es);
61  using namespace std;
63  evt.getByLabel(src_, source);
64  StoreManager manager(source);
65  selector_.select(source, evt, es);
66  manager.cloneAndStore(selector_.begin(), selector_.end(), evt);
67  bool result = (! filter_ || sizeSelector_(manager.size()));
69  postProcessor_.process(filtered, evt);
70  return result;
71  }
75  bool filter_;
79  SizeSelector sizeSelector_;
81  PostProcessor postProcessor_;
82 };
83 
84 #endif
tuple base
Main Program
Definition: newFWLiteAna.py:92
type
Definition: HCALResponse.h:22
std::vector< ProtoJet > OutputCollection
Definition: JetRecoTypes.h:63
bool filter(edm::Event &evt, const edm::EventSetup &es)
process one event
int init
Definition: HydjetWrapper.h:63
S make(const edm::ParameterSet &cfg)
SizeSelector sizeSelector_
selected object collection size selector
bool filter_
filter event
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
static const TGPicture * filtered(bool iBackgroundIsBlack)
tuple result
Definition: query.py:137
virtual ~ObjectSelector()
destructor
Functor that operates on &lt;T&gt;
Definition: Selector.h:25
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
ObjectSelector(const edm::ParameterSet &cfg)
constructor
PostProcessor postProcessor_
post processor
edm::InputTag src_
source collection label
Selector selector_
Object collection selector.
def template
Definition: svgfig.py:520