CMS 3D CMS Logo

IsolationProducer< C1, C2, Alg, OutputCollection, Setup > Class Template Reference

#include <PhysicsTools/IsolationAlgos/interface/IsolationProducer.h>

Inheritance diagram for IsolationProducer< C1, C2, Alg, OutputCollection, Setup >:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

 IsolationProducer (const edm::ParameterSet &)
 ~IsolationProducer ()

Private Member Functions

void produce (edm::Event &, const edm::EventSetup &)

Private Attributes

Alg alg_
edm::InputTag elements_
edm::InputTag src_


Detailed Description

template<typename C1, typename C2, typename Alg, typename OutputCollection = edm::AssociationVector<edm::RefProd<C1>, std::vector<typename Alg::value_type> >, typename Setup = typename helper::IsolationAlgorithmSetup<Alg>::type>
class IsolationProducer< C1, C2, Alg, OutputCollection, Setup >

Definition at line 37 of file IsolationProducer.h.


Constructor & Destructor Documentation

template<typename C1, typename C2, typename Alg, typename OutputCollection, typename Setup>
IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::IsolationProducer ( const edm::ParameterSet cfg  )  [inline]

Definition at line 49 of file IsolationProducer.h.

00049                                                                                                         :
00050   src_( cfg.template getParameter<edm::InputTag>( "src" ) ),
00051   elements_( cfg.template getParameter<edm::InputTag>( "elements" ) ),
00052   alg_( reco::modules::make<Alg>( cfg ) ) {
00053   produces<OutputCollection>();
00054 }

template<typename C1, typename C2, typename Alg, typename OutputCollection, typename Setup>
IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::~IsolationProducer (  )  [inline]

Definition at line 57 of file IsolationProducer.h.

00057                                                                             {
00058 }


Member Function Documentation

template<typename C1, typename C2, typename Alg, typename OutputCollection, typename Setup>
void IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::produce ( edm::Event evt,
const edm::EventSetup es 
) [inline, private, virtual]

Implements edm::EDProducer.

Definition at line 61 of file IsolationProducer.h.

References IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::alg_, bookConverter::elements, IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::elements_, edm::Event::getByLabel(), i, init, edm::Event::put(), HLT_VtxMuL3::src, IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::src_, and std.

00061                                                                                                               {
00062   using namespace edm;
00063   using namespace std;
00064   Handle<C1> src;
00065   Handle<C2> elements;
00066   evt.getByLabel( src_, src );
00067   evt.getByLabel( elements_, elements );
00068 
00069   Setup::init( alg_, es );
00070 
00071   typename OutputCollection::refprod_type ref( src );
00072   auto_ptr<OutputCollection> isolations( new OutputCollection( ref )  );
00073 
00074   size_t i = 0;
00075   for( typename C1::const_iterator lep = src->begin(); lep != src->end(); ++ lep ) {
00076     typename Alg::value_type iso= alg_(*lep,*elements); 
00077     isolations->setValue( i++, iso );
00078   }
00079   evt.put( isolations );
00080 }


Member Data Documentation

template<typename C1, typename C2, typename Alg, typename OutputCollection = edm::AssociationVector<edm::RefProd<C1>, std::vector<typename Alg::value_type> >, typename Setup = typename helper::IsolationAlgorithmSetup<Alg>::type>
Alg IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::alg_ [private]

Definition at line 45 of file IsolationProducer.h.

Referenced by IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::produce().

template<typename C1, typename C2, typename Alg, typename OutputCollection = edm::AssociationVector<edm::RefProd<C1>, std::vector<typename Alg::value_type> >, typename Setup = typename helper::IsolationAlgorithmSetup<Alg>::type>
edm::InputTag IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::elements_ [private]

Definition at line 44 of file IsolationProducer.h.

Referenced by IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::produce().

template<typename C1, typename C2, typename Alg, typename OutputCollection = edm::AssociationVector<edm::RefProd<C1>, std::vector<typename Alg::value_type> >, typename Setup = typename helper::IsolationAlgorithmSetup<Alg>::type>
edm::InputTag IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::src_ [private]

Definition at line 44 of file IsolationProducer.h.

Referenced by IsolationProducer< C1, C2, Alg, OutputCollection, Setup >::produce().


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