CMS 3D CMS Logo

MCTruthCompositeMatcher< C1, C2 > Class Template Reference

#include <PhysicsTools/HepMCCandAlgos/interface/MCTruthCompositeMatcher.h>

Inheritance diagram for MCTruthCompositeMatcher< C1, C2 >:

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

List of all members.

Public Member Functions

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

Private Types

typedef CandMatcher< C1, C2 >
::map_type 
map_type

Private Member Functions

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

Private Attributes

std::vector< edm::InputTagmatchMaps_
edm::InputTag src_


Detailed Description

template<typename C1, typename C2 = C1>
class MCTruthCompositeMatcher< C1, C2 >

Definition at line 13 of file MCTruthCompositeMatcher.h.


Member Typedef Documentation

template<typename C1, typename C2 = C1>
typedef CandMatcher<C1, C2>::map_type MCTruthCompositeMatcher< C1, C2 >::map_type [private]

Definition at line 18 of file MCTruthCompositeMatcher.h.


Constructor & Destructor Documentation

template<typename C1, typename C2>
MCTruthCompositeMatcher< C1, C2 >::MCTruthCompositeMatcher ( const edm::ParameterSet cfg  )  [inline, explicit]

Definition at line 29 of file MCTruthCompositeMatcher.h.

00029                                                                                       :
00030   src_( cfg.template getParameter<edm::InputTag>( "src" ) ),
00031   matchMaps_( cfg.template getParameter<std::vector<edm::InputTag> >( "matchMaps" ) ) {
00032   produces<map_type>();
00033 }

template<typename C1, typename C2>
MCTruthCompositeMatcher< C1, C2 >::~MCTruthCompositeMatcher (  )  [inline]

Definition at line 36 of file MCTruthCompositeMatcher.h.

00036                                                           {
00037 }


Member Function Documentation

template<typename C1, typename C2>
void MCTruthCompositeMatcher< C1, C2 >::produce ( edm::Event evt,
const edm::EventSetup  
) [inline, private, virtual]

Implements edm::EDProducer.

Definition at line 40 of file MCTruthCompositeMatcher.h.

References edm::Event::getByLabel(), i, maps, edm::match(), MCTruthCompositeMatcher< C1, C2 >::matchMaps_, edm::Event::put(), HcalSimpleRecAlgoImpl::reco(), MCTruthCompositeMatcher< C1, C2 >::src_, and std.

00040                                                                                       {
00041   using namespace edm;
00042   using namespace reco;
00043   using namespace std;
00044   typedef typename CandMatcher<C1, C2>::reference_type reference_type;
00045   Handle<C1> cands;
00046   evt.getByLabel(src_, cands);
00047   
00048   size_t nMaps = matchMaps_.size();
00049   std::vector<const map_type *> maps;
00050   maps.reserve( nMaps );
00051   for( size_t i = 0; i != nMaps; ++ i ) {
00052     Handle<map_type> matchMap;
00053     evt.getByLabel( matchMaps_[i], matchMap );
00054     maps.push_back( & * matchMap );
00055   } 
00056   MCCandMatcher<C1, C2> match( maps );
00057   auto_ptr<map_type> matchMap( new map_type );
00058   for( size_t i = 0; i != cands->size(); ++ i ) {
00059     const typename C1::value_type & cand = ( * cands )[ i ];
00060     reference_type mc(match( cand ));
00061     if ( mc.isNonnull() ) {
00062       matchMap->insert( reference_type( cands, i ), mc );      
00063     }
00064   }
00065 
00066   evt.put( matchMap );
00067 }


Member Data Documentation

template<typename C1, typename C2 = C1>
std::vector<edm::InputTag> MCTruthCompositeMatcher< C1, C2 >::matchMaps_ [private]

Definition at line 20 of file MCTruthCompositeMatcher.h.

Referenced by reco::modulesNew::MCTruthCompositeMatcher::produce(), and MCTruthCompositeMatcher< C1, C2 >::produce().

template<typename C1, typename C2 = C1>
edm::InputTag MCTruthCompositeMatcher< C1, C2 >::src_ [private]

Definition at line 19 of file MCTruthCompositeMatcher.h.

Referenced by reco::modulesNew::MCTruthCompositeMatcher::produce(), and MCTruthCompositeMatcher< C1, C2 >::produce().


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