CMS 3D CMS Logo

ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init > Class Template Reference

selects a subset of a collection. More...

#include <PhysicsTools/UtilAlgos/interface/ObjectSelector.h>

Inheritance diagram for ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >:

ObjectRefVectorSelector< Selector, OutputCollection, SizeSelector, PostProcessor > ObjectShallowCloneSelector< Selector, SizeSelector, PostProcessor > ObjectShallowCloneSelector< SingleElementCollectionSelector< std::vector< InputItem >, Selector, edm::OwnVector, StoreContainer, RefAdder >, NonNullNumberSelector, PostProcessor > SingleObjectRefSelector< InputType, Selector, OutputCollection, StoreContainer, PostProcessor, StoreManager, Base, RefAdder > SingleObjectSelector< InputCollection, Selector, OutputCollection, StoreContainer, PostProcessor, StoreManager, Base, RefAdder > SingleObjectShallowCloneSelector< InputCollection, Selector, StoreContainer, PostProcessor, StoreManager, Base, RefAdder >

List of all members.

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


Detailed Description

template<typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, typename SizeSelector = NonNullNumberSelector, typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>, typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection>::type, typename Base = typename ::helper::StoreManagerTrait<OutputCollection>::base, typename Init = typename ::reco::modules::EventSetupInit<Selector>::type>
class ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >

selects a subset of a collection.

Author:
Luca Lista, INFN
Version:
Revision
1.25

Id
ObjectSelector.h,v 1.25 2008/02/04 10:44:27 llista Exp

Definition at line 39 of file ObjectSelector.h.


Constructor & Destructor Documentation

template<typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, typename SizeSelector = NonNullNumberSelector, typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>, typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection>::type, typename Base = typename ::helper::StoreManagerTrait<OutputCollection>::base, typename Init = typename ::reco::modules::EventSetupInit<Selector>::type>
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    }

template<typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, typename SizeSelector = NonNullNumberSelector, typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>, typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection>::type, typename Base = typename ::helper::StoreManagerTrait<OutputCollection>::base, typename Init = typename ::reco::modules::EventSetupInit<Selector>::type>
virtual ObjectSelector< Selector, OutputCollection, SizeSelector, PostProcessor, StoreManager, Base, Init >::~ObjectSelector (  )  [inline, virtual]

destructor

Definition at line 56 of file ObjectSelector.h.

00056 { }


Member Function Documentation

template<typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, typename SizeSelector = NonNullNumberSelector, typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>, typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection>::type, typename Base = typename ::helper::StoreManagerTrait<OutputCollection>::base, typename Init = typename ::reco::modules::EventSetupInit<Selector>::type>
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   }


Member Data Documentation

template<typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, typename SizeSelector = NonNullNumberSelector, typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>, typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection>::type, typename Base = typename ::helper::StoreManagerTrait<OutputCollection>::base, typename Init = typename ::reco::modules::EventSetupInit<Selector>::type>
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().

template<typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, typename SizeSelector = NonNullNumberSelector, typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>, typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection>::type, typename Base = typename ::helper::StoreManagerTrait<OutputCollection>::base, typename Init = typename ::reco::modules::EventSetupInit<Selector>::type>
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().

template<typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, typename SizeSelector = NonNullNumberSelector, typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>, typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection>::type, typename Base = typename ::helper::StoreManagerTrait<OutputCollection>::base, typename Init = typename ::reco::modules::EventSetupInit<Selector>::type>
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().

template<typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, typename SizeSelector = NonNullNumberSelector, typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>, typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection>::type, typename Base = typename ::helper::StoreManagerTrait<OutputCollection>::base, typename Init = typename ::reco::modules::EventSetupInit<Selector>::type>
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().

template<typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<typename Selector::collection>::type, typename SizeSelector = NonNullNumberSelector, typename PostProcessor = ::helper::NullPostProcessor<OutputCollection>, typename StoreManager = typename ::helper::StoreManagerTrait<OutputCollection>::type, typename Base = typename ::helper::StoreManagerTrait<OutputCollection>::base, typename Init = typename ::reco::modules::EventSetupInit<Selector>::type>
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().


The documentation for this class was generated from the following file:
Generated on Tue Jun 9 18:29:09 2009 for CMSSW by  doxygen 1.5.4