CMS 3D CMS Logo

pat::PATUserDataMerger< ObjectType, Operation > Class Template Reference

Assimilates pat::UserData into pat objects. More...

#include <PhysicsTools/PatAlgos/interface/PATUserDataMerger.h>

List of all members.

Public Member Functions

void add (ObjectType &patObject, edm::Event const &iEvent, edm::EventSetup const &iSetup)
 PATUserDataMerger (const edm::ParameterSet &iConfig)
 PATUserDataMerger ()
 ~PATUserDataMerger ()

Private Attributes

Operation loader_
std::vector< edm::InputTaguserDataSrc_


Detailed Description

template<typename ObjectType, typename Operation>
class pat::PATUserDataMerger< ObjectType, Operation >

Assimilates pat::UserData into pat objects.

This expects one input: src: The data to add to the objects that get passed to this object, which are ValueMaps to some type (like UserData or double).

This will be called from PATUserDataHelper to handle the templated cases like UserData or double. PATUserDataHelper will then add all the instantiated cases.

Author:
Salvatore Rappoccio
Version:
Id
PATUserDataMerger.h,v 1.4.4.2 2009/04/28 14:29:39 gpetrucc Exp

Definition at line 62 of file PATUserDataMerger.h.


Constructor & Destructor Documentation

template<typename ObjectType, typename Operation>
pat::PATUserDataMerger< ObjectType, Operation >::PATUserDataMerger (  )  [inline]

Definition at line 66 of file PATUserDataMerger.h.

00066 {}

template<typename ObjectType, typename Operation>
pat::PATUserDataMerger< ObjectType, Operation >::PATUserDataMerger ( const edm::ParameterSet iConfig  )  [inline]

Definition at line 86 of file PATUserDataMerger.h.

00086                                                                                               :
00087   userDataSrc_(iConfig.getParameter<std::vector<edm::InputTag> >("src") )
00088 {
00089 }

template<typename ObjectType, typename Operation>
pat::PATUserDataMerger< ObjectType, Operation >::~PATUserDataMerger (  )  [inline]

Definition at line 68 of file PATUserDataMerger.h.

00068 {}


Member Function Documentation

template<class ObjectType, typename Operation>
void pat::PATUserDataMerger< ObjectType, Operation >::add ( ObjectType &  patObject,
edm::Event const &  iEvent,
edm::EventSetup const &  iSetup 
) [inline]

Definition at line 110 of file PATUserDataMerger.h.

References edm::Event::getByLabel(), edm::Ptr< T >::id(), pat::PATUserDataMerger< ObjectType, Operation >::loader_, and pat::PATUserDataMerger< ObjectType, Operation >::userDataSrc_.

Referenced by pat::PATUserDataHelper< ObjectType >::add().

00113 {
00114 
00115   std::vector<edm::InputTag>::const_iterator input_it = userDataSrc_.begin(),
00116     input_begin = userDataSrc_.begin(),
00117     input_end = userDataSrc_.end();
00118 
00119   for ( ; input_it != input_end; ++input_it ) {
00120 
00121     // Declare the object handles:
00122     // ValueMap containing the values, or edm::Ptr's to the UserData that
00123     //   is associated to those PAT Objects
00124     edm::Handle<typename Operation::product_type> userData;
00125 
00126     // Get the objects by label
00127     iEvent.getByLabel( *input_it, userData );
00128 
00129     edm::Ptr<reco::Candidate> recoObject = patObject.originalObjectRef();
00130     if ( userData->contains( recoObject.id() ) ) {
00131       loader_.addData( patObject, input_it->encode(), (*userData)[recoObject]);
00132     }
00133 
00134   }
00135   
00136 }


Member Data Documentation

template<typename ObjectType, typename Operation>
Operation pat::PATUserDataMerger< ObjectType, Operation >::loader_ [private]

Definition at line 78 of file PATUserDataMerger.h.

Referenced by pat::PATUserDataMerger< ObjectType, Operation >::add().

template<typename ObjectType, typename Operation>
std::vector<edm::InputTag> pat::PATUserDataMerger< ObjectType, Operation >::userDataSrc_ [private]

Definition at line 77 of file PATUserDataMerger.h.

Referenced by pat::PATUserDataMerger< ObjectType, Operation >::add().


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