File indexing completed on 2024-04-06 12:13:51
0001 #ifndef GeneratorInterface_PartonShowerVeto_JetMatching_h
0002 #define GeneratorInterface_PartonShowerVeto_JetMatching_h
0003
0004 #include <memory>
0005 #include <vector>
0006 #include <string>
0007 #include <set>
0008
0009
0010
0011
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013
0014 #include "fastjet/ClusterSequence.hh" // gives both PseudoJet & JetDefinition
0015
0016
0017 namespace lhef {
0018
0019 class LHERunInfo;
0020 class LHEEvent;
0021 class JetInput;
0022
0023 }
0024
0025 namespace gen {
0026
0027 class JetMatching {
0028 public:
0029 JetMatching(const edm::ParameterSet& params);
0030 virtual ~JetMatching();
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058 virtual void init(const lhef::LHERunInfo* runInfo);
0059 virtual bool initAfterBeams() { return true; }
0060 virtual void beforeHadronisation(const lhef::LHEEvent* event);
0061 virtual void beforeHadronisationExec();
0062
0063
0064
0065 virtual int match(const lhef::LHEEvent* partonLevel, const std::vector<fastjet::PseudoJet>* jetInput) = 0;
0066
0067
0068
0069
0070
0071 virtual std::set<std::string> capabilities() const;
0072
0073 void resetMatchingStatus() { fMatchingStatus = false; }
0074 bool isMatchingDone() { return fMatchingStatus; }
0075
0076 virtual const std::vector<int>* getPartonList() { return nullptr; }
0077 virtual double getJetEtaMax() const = 0;
0078
0079
0080
0081
0082
0083 static std::unique_ptr<JetMatching> create(const edm::ParameterSet& params);
0084
0085 protected:
0086 bool fMatchingStatus;
0087
0088
0089 };
0090
0091 }
0092
0093 #endif