00001 #ifndef GeneratorInterface_LHEInterface_JetMatchingMLM_h 00002 #define GeneratorInterface_LHEInterface_JetMatchingMLM_h 00003 00004 #include <memory> 00005 #include <vector> 00006 00007 #include <HepMC/GenEvent.h> 00008 #include <HepMC/SimpleVector.h> 00009 00010 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00011 00012 #include "GeneratorInterface/LHEInterface/interface/JetMatching.h" 00013 00014 namespace lhef { 00015 00016 class JetInput; 00017 class JetClustering; 00018 00019 class JetMatchingMLM : public JetMatching { 00020 public: 00021 JetMatchingMLM(const edm::ParameterSet ¶ms); 00022 ~JetMatchingMLM(); 00023 00024 private: 00025 std::set<std::string> capabilities() const; 00026 00027 double match(const HepMC::GenEvent *partonLevel, 00028 const HepMC::GenEvent *finalState, 00029 bool showeredFinalState); 00030 00031 enum MatchMode { 00032 kExclusive = 0, 00033 kInclusive 00034 }; 00035 00036 const double maxDeltaR; 00037 const double minJetPt; 00038 double maxEta; 00039 double matchPtFraction; 00040 bool useEt; 00041 MatchMode matchMode; 00042 00043 std::auto_ptr<JetInput> partonInput; 00044 std::auto_ptr<JetInput> jetInput; 00045 std::auto_ptr<JetClustering> jetClustering; 00046 }; 00047 00048 } // namespace lhef 00049 00050 #endif // GeneratorCommon_LHEInterface_JetMatchingMLM_h