CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Private Attributes | Friends
SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder > Class Template Reference

#include <SingleElementCollectionSelector.h>

Public Types

typedef InputCollection collection
 
typedef container::const_iterator const_iterator
 
typedef StoreContainer container
 
typedef Selector selector
 

Public Member Functions

const_iterator begin () const
 
const_iterator end () const
 
void select (const edm::Handle< InputCollection > &c, const edm::Event &, const edm::EventSetup &)
 
 SingleElementCollectionSelector (const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC)
 

Private Attributes

RefAdder addRef_
 
selector select_
 
container selected_
 

Friends

struct reco::modules::SingleElementCollectionSelectorEventSetupInit< SingleElementCollectionSelector >
 

Detailed Description

template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
class SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >

selects a subset of a collection based on single element selection done via functor

Author
Luca Lista, INFN
Version
Revision:
1.1
Id:
SingleElementCollectionSelector.h,v 1.1 2009/03/03 13:07:28 llista Exp

Definition at line 37 of file SingleElementCollectionSelector.h.

Member Typedef Documentation

template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
typedef InputCollection SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::collection

Definition at line 38 of file SingleElementCollectionSelector.h.

template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
typedef container::const_iterator SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::const_iterator

Definition at line 41 of file SingleElementCollectionSelector.h.

template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
typedef StoreContainer SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::container

Definition at line 39 of file SingleElementCollectionSelector.h.

template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
typedef Selector SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::selector

Definition at line 40 of file SingleElementCollectionSelector.h.

Constructor & Destructor Documentation

template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::SingleElementCollectionSelector ( const edm::ParameterSet cfg,
edm::ConsumesCollector &&  iC 
)
inline

Definition at line 42 of file SingleElementCollectionSelector.h.

43  : select_(reco::modules::make<Selector>(cfg, iC)) {}

Member Function Documentation

template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
const_iterator SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::begin ( void  ) const
inline

Definition at line 44 of file SingleElementCollectionSelector.h.

44 { return selected_.begin(); }
template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
const_iterator SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::end ( void  ) const
inline
template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
void SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::select ( const edm::Handle< InputCollection > &  c,
const edm::Event ,
const edm::EventSetup  
)
inline

Definition at line 46 of file SingleElementCollectionSelector.h.

46  {
47  selected_.clear();
48  for (size_t idx = 0; idx < c->size(); ++idx) {
49  if (select_((*c)[idx]))
50  addRef_(selected_, c, idx);
51  }
52  }

Friends And Related Function Documentation

template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
friend struct reco::modules::SingleElementCollectionSelectorEventSetupInit< SingleElementCollectionSelector >
friend

Definition at line 58 of file SingleElementCollectionSelector.h.

Member Data Documentation

template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
RefAdder SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::addRef_
private
template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
selector SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::select_
private
template<typename InputCollection, typename Selector, typename OutputCollection = typename ::helper::SelectedOutputCollectionTrait<InputCollection>::type, typename StoreContainer = typename ::helper::StoreContainerTrait<OutputCollection>::type, typename RefAdder = typename ::helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
container SingleElementCollectionSelector< InputCollection, Selector, OutputCollection, StoreContainer, RefAdder >::selected_
private

Definition at line 55 of file SingleElementCollectionSelector.h.

Referenced by SingleElementCollectionSelector< reco::TrackCollection, StringCutObjectSelector< reco::Track >, typename::helper::SelectedOutputCollectionTrait< reco::TrackCollection >::type, typename::helper::StoreContainerTrait< typename::helper::SelectedOutputCollectionTrait< reco::TrackCollection >::type >::type, typename::helper::SelectionAdderTrait< reco::TrackCollection, typename::helper::StoreContainerTrait< typename::helper::SelectedOutputCollectionTrait< reco::TrackCollection >::type >::type >::type >::begin(), SingleElementCollectionSelector< reco::TrackCollection, StringCutObjectSelector< reco::Track >, typename::helper::SelectedOutputCollectionTrait< reco::TrackCollection >::type, typename::helper::StoreContainerTrait< typename::helper::SelectedOutputCollectionTrait< reco::TrackCollection >::type >::type, typename::helper::SelectionAdderTrait< reco::TrackCollection, typename::helper::StoreContainerTrait< typename::helper::SelectedOutputCollectionTrait< reco::TrackCollection >::type >::type >::type >::end(), and SingleElementCollectionSelector< reco::TrackCollection, StringCutObjectSelector< reco::Track >, typename::helper::SelectedOutputCollectionTrait< reco::TrackCollection >::type, typename::helper::StoreContainerTrait< typename::helper::SelectedOutputCollectionTrait< reco::TrackCollection >::type >::type, typename::helper::SelectionAdderTrait< reco::TrackCollection, typename::helper::StoreContainerTrait< typename::helper::SelectedOutputCollectionTrait< reco::TrackCollection >::type >::type >::type >::select().