CMS 3D CMS Logo

ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder > Class Template Reference

selects object pairs wose combination satiefies a specific selection for instance, could be based on invariant mass, deltaR , deltaPhi, etc. More...

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

List of all members.

Public Types

typedef InputCollection collection

Public Member Functions

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

Private Types

typedef container::const_iterator const_iterator
typedef StoreContainer container
typedef const
InputCollection::value_type * 
reference

Private Attributes

RefAdder addRef_
Selector select_
StoreContainer selected_


Detailed Description

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
class ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >

selects object pairs wose combination satiefies a specific selection for instance, could be based on invariant mass, deltaR , deltaPhi, etc.

Author:
Luca Lista, INFN
Version:
Revision
1.9

Id
ObjectPairCollectionSelector.h,v 1.9 2008/02/04 10:44:27 llista Exp

Definition at line 26 of file ObjectPairCollectionSelector.h.


Member Typedef Documentation

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
typedef InputCollection ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::collection

Definition at line 28 of file ObjectPairCollectionSelector.h.

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
typedef container::const_iterator ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::const_iterator [private]

Definition at line 33 of file ObjectPairCollectionSelector.h.

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
typedef StoreContainer ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::container [private]

Definition at line 32 of file ObjectPairCollectionSelector.h.

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
typedef const InputCollection::value_type* ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::reference [private]

Definition at line 31 of file ObjectPairCollectionSelector.h.


Constructor & Destructor Documentation

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::ObjectPairCollectionSelector ( const edm::ParameterSet cfg  )  [inline]

Definition at line 36 of file ObjectPairCollectionSelector.h.

00036                                                             : 
00037     select_(reco::modules::make<Selector>(cfg)) { }


Member Function Documentation

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
const_iterator ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::begin ( void   )  const [inline]

Definition at line 38 of file ObjectPairCollectionSelector.h.

References ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::selected_.

00038 { return selected_.begin(); }

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
const_iterator ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::end ( void   )  const [inline]

Definition at line 39 of file ObjectPairCollectionSelector.h.

References ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::selected_.

00039 { return selected_.end(); }

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
void ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::select ( const edm::Handle< InputCollection > &  c,
const edm::Event ,
const edm::EventSetup  
) [inline]

Definition at line 40 of file ObjectPairCollectionSelector.h.

References ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::addRef_, i, j, s, ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::select_, ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::selected_, and v.

00040                                                                                             {
00041     unsigned int s = c->size();
00042     std::vector<bool> v(s, false);
00043     for(unsigned int i = 0; i < s; ++i)
00044       for(unsigned int j = i + 1; j < s; ++j) {
00045         if(select_((*c)[i], (*c)[j]))
00046           v[i] = v[j] = true;
00047       }
00048     selected_.clear();
00049     for(unsigned int i = 0; i < s; ++i)
00050     if (v[i]) 
00051       addRef_(selected_, c, i);
00052   }


Member Data Documentation

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
RefAdder ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::addRef_ [private]

Definition at line 57 of file ObjectPairCollectionSelector.h.

Referenced by ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::select().

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
Selector ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::select_ [private]

Definition at line 55 of file ObjectPairCollectionSelector.h.

Referenced by ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::select().

template<typename InputCollection, typename Selector, typename StoreContainer = std::vector<const typename InputCollection::value_type *>, typename RefAdder = typename helper::SelectionAdderTrait<InputCollection, StoreContainer>::type>
StoreContainer ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::selected_ [private]

Definition at line 56 of file ObjectPairCollectionSelector.h.

Referenced by ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::begin(), ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::end(), and ObjectPairCollectionSelector< InputCollection, Selector, StoreContainer, RefAdder >::select().


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