00001 #include <string> 00002 #include <memory> 00003 00004 #include <boost/shared_ptr.hpp> 00005 00006 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00007 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00008 #include "FWCore/PluginManager/interface/PluginManager.h" 00009 #include "FWCore/PluginManager/interface/PluginFactory.h" 00010 00011 #include "GeneratorInterface/LHEInterface/interface/LHERunInfo.h" 00012 #include "GeneratorInterface/LHEInterface/interface/LHEEvent.h" 00013 00014 #include "GeneratorInterface/LHEInterface/interface/JetMatching.h" 00015 00016 EDM_REGISTER_PLUGINFACTORY(lhef::JetMatching::Factory, 00017 "GeneratorInterfaceLHEJetMatching"); 00018 00019 namespace lhef { 00020 00021 JetMatching::JetMatching(const edm::ParameterSet ¶ms) 00022 { 00023 } 00024 00025 JetMatching::~JetMatching() 00026 { 00027 } 00028 00029 void JetMatching::init(const boost::shared_ptr<LHERunInfo> &runInfo) 00030 { 00031 } 00032 00033 void JetMatching::beforeHadronisation( 00034 const boost::shared_ptr<LHEEvent> &event) 00035 { 00036 } 00037 00038 std::set<std::string> JetMatching::capabilities() const 00039 { 00040 std::set<std::string> result; 00041 result.insert("psFinalState"); 00042 result.insert("hepmc"); 00043 return result; 00044 } 00045 00046 std::auto_ptr<JetMatching> JetMatching::create( 00047 const edm::ParameterSet ¶ms) 00048 { 00049 std::string name = params.getParameter<std::string>("scheme"); 00050 00051 std::auto_ptr<JetMatching> plugin( 00052 Factory::get()->create("JetMatching" + name, params)); 00053 00054 if (!plugin.get()) 00055 throw cms::Exception("InvalidJetMatching") 00056 << "Unknown scheme \"" << name << "\"" 00057 " specified for jet matching in LHEProducer." 00058 << std::endl; 00059 00060 edm::LogInfo("Generator|LHEInterface") 00061 << "Using " << name << " for ME/PS jet matching." << std::endl; 00062 00063 return plugin; 00064 } 00065 00066 } // namespace lhef