![]() |
![]() |
#include <PhysicsTools/HepMCCandAlgos/interface/MCTruthCompositeMatcher.h>
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::InputTag > | matchMaps_ |
edm::InputTag | src_ |
Definition at line 13 of file MCTruthCompositeMatcher.h.
typedef CandMatcher<C1, C2>::map_type MCTruthCompositeMatcher< C1, C2 >::map_type [private] |
Definition at line 18 of file MCTruthCompositeMatcher.h.
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 }
MCTruthCompositeMatcher< C1, C2 >::~MCTruthCompositeMatcher | ( | ) | [inline] |
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 }
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().
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().