Assists in assimilating all pat::UserData into pat objects. More...
#include <PhysicsTools/PatAlgos/interface/PATUserDataHelper.h>
Public Types | |
typedef StringObjectFunction < ObjectType > | function_type |
Public Member Functions | |
void | add (ObjectType &patObject, edm::Event const &iEvent, edm::EventSetup const &iSetup) |
PATUserDataHelper (const edm::ParameterSet &iConfig) | |
PATUserDataHelper () | |
~PATUserDataHelper () | |
Static Public Member Functions | |
static void | fillDescription (edm::ParameterSetDescription &iDesc) |
Private Attributes | |
std::vector< std::string > | functionLabels_ |
std::vector< std::string > | functionNames_ |
std::vector< function_type > | functions_ |
pat::PATUserDataMerger < ObjectType, pat::helper::AddUserCand > | userCandMerger_ |
pat::PATUserDataMerger < ObjectType, pat::helper::AddUserPtr > | userDataMerger_ |
pat::PATUserDataMerger < ObjectType, pat::helper::AddUserFloat > | userFloatMerger_ |
pat::PATUserDataMerger < ObjectType, pat::helper::AddUserInt > | userIntMerger_ |
Assists in assimilating all pat::UserData into pat objects.
This will pull the following from the event stream (if they exist) and put them into the object in question, all indexed by the reco objects that make up the pat objects in question:
ValueMap<double> ValueMap<int> ValueMap<Ptr<UserData> > ValueMap<CandidatePtr>
This is accomplished by using PATUserDataMergers.
This also can add "in situ" string-parser-based methods directly.
Definition at line 53 of file PATUserDataHelper.h.
typedef StringObjectFunction<ObjectType> pat::PATUserDataHelper< ObjectType >::function_type |
Definition at line 57 of file PATUserDataHelper.h.
pat::PATUserDataHelper< ObjectType >::PATUserDataHelper | ( | ) | [inline] |
Definition at line 59 of file PATUserDataHelper.h.
{}
pat::PATUserDataHelper< ObjectType >::PATUserDataHelper | ( | const edm::ParameterSet & | iConfig | ) |
Definition at line 90 of file PATUserDataHelper.h.
References Exception, pat::PATUserDataHelper< ObjectType >::functionLabels_, pat::PATUserDataHelper< ObjectType >::functionNames_, and pat::PATUserDataHelper< ObjectType >::functions_.
: userDataMerger_ (iConfig.getParameter<edm::ParameterSet>("userClasses")), userFloatMerger_ (iConfig.getParameter<edm::ParameterSet>("userFloats")), userIntMerger_ (iConfig.getParameter<edm::ParameterSet>("userInts")), userCandMerger_ (iConfig.getParameter<edm::ParameterSet>("userCands")), functionNames_ (iConfig.getParameter<std::vector<std::string> >("userFunctions")), functionLabels_ (iConfig.getParameter<std::vector<std::string> >("userFunctionLabels")) { // Make sure the sizes match if ( functionNames_.size() != functionLabels_.size() ) { throw cms::Exception("Size mismatch") << "userFunctions and userFunctionLabels do not have the same size, they must be the same\n"; } // Loop over the function names, create a new string-parser function object // with all of them. This operates on ObjectType std::vector<std::string>::const_iterator funcBegin = functionNames_.begin(), funcEnd = functionNames_.end(), funcIt = funcBegin; for ( ; funcIt != funcEnd; ++funcIt) { functions_.push_back( StringObjectFunction<ObjectType>( *funcIt ) ); } }
pat::PATUserDataHelper< ObjectType >::~PATUserDataHelper | ( | ) | [inline] |
Definition at line 61 of file PATUserDataHelper.h.
{}
void pat::PATUserDataHelper< ObjectType >::add | ( | ObjectType & | patObject, |
edm::Event const & | iEvent, | ||
edm::EventSetup const & | iSetup | ||
) |
Definition at line 126 of file PATUserDataHelper.h.
Referenced by pat::PATElectronProducer::produce(), pat::PATJetProducer::produce(), pat::PATMETProducer::produce(), pat::PATCompositeCandidateProducer::produce(), pat::PATMuonProducer::produce(), pat::PATPhotonProducer::produce(), pat::PATTauProducer::produce(), and pat::PATGenericParticleProducer::produce().
{ // Add "complex" user data to the PAT object userDataMerger_.add( patObject, iEvent, iSetup ); userFloatMerger_.add( patObject, iEvent, iSetup ); userIntMerger_.add( patObject, iEvent, iSetup ); userCandMerger_.add( patObject, iEvent, iSetup ); // Add "inline" user-selected functions to the PAT object typename std::vector<function_type>::const_iterator funcBegin = functions_.begin(), funcEnd = functions_.end(), funcIt = funcBegin; if ( functionLabels_.size() == functions_.size() ) { for ( ; funcIt != funcEnd; ++funcIt) { double d = (*funcIt)( patObject ); patObject.addUserFloat( functionLabels_[funcIt - funcBegin], d ); } } }
void pat::PATUserDataHelper< ObjectType >::fillDescription | ( | edm::ParameterSetDescription & | iDesc | ) | [static] |
Definition at line 153 of file PATUserDataHelper.h.
References edm::ParameterSetDescription::add().
{ edm::ParameterSetDescription dataMergerPSet; pat::PATUserDataMerger<ObjectType, pat::helper::AddUserPtr>::fillDescription(dataMergerPSet); iDesc.add("userClasses", dataMergerPSet); iDesc.add("userFloats", dataMergerPSet); iDesc.add("userInts", dataMergerPSet); iDesc.add("userCands", dataMergerPSet); std::vector<std::string> emptyVectorOfStrings; iDesc.add<std::vector<std::string> >("userFunctions",emptyVectorOfStrings); iDesc.add<std::vector<std::string> >("userFunctionLabels",emptyVectorOfStrings); }
std::vector<std::string> pat::PATUserDataHelper< ObjectType >::functionLabels_ [private] |
Definition at line 83 of file PATUserDataHelper.h.
Referenced by pat::PATUserDataHelper< ObjectType >::PATUserDataHelper().
std::vector<std::string> pat::PATUserDataHelper< ObjectType >::functionNames_ [private] |
Definition at line 82 of file PATUserDataHelper.h.
Referenced by pat::PATUserDataHelper< ObjectType >::PATUserDataHelper().
std::vector<function_type > pat::PATUserDataHelper< ObjectType >::functions_ [private] |
Definition at line 84 of file PATUserDataHelper.h.
Referenced by pat::PATUserDataHelper< ObjectType >::PATUserDataHelper().
pat::PATUserDataMerger<ObjectType, pat::helper::AddUserCand> pat::PATUserDataHelper< ObjectType >::userCandMerger_ [private] |
Definition at line 79 of file PATUserDataHelper.h.
pat::PATUserDataMerger<ObjectType, pat::helper::AddUserPtr> pat::PATUserDataHelper< ObjectType >::userDataMerger_ [private] |
Definition at line 73 of file PATUserDataHelper.h.
pat::PATUserDataMerger<ObjectType, pat::helper::AddUserFloat> pat::PATUserDataHelper< ObjectType >::userFloatMerger_ [private] |
Definition at line 75 of file PATUserDataHelper.h.
pat::PATUserDataMerger<ObjectType, pat::helper::AddUserInt> pat::PATUserDataHelper< ObjectType >::userIntMerger_ [private] |
Definition at line 77 of file PATUserDataHelper.h.