14 #ifndef Pythia8_CombineMatchingInput_H
15 #define Pythia8_CombineMatchingInput_H
18 #include "Pythia8/Pythia.h"
19 #include "Pythia8Plugins/GeneratorInput.h"
20 #include "Pythia8Plugins/JetMatching.h"
42 virtual bool initAfterBeams() {
43 if (!AlpgenHooks::initAfterBeams())
return false;
44 if (!JetMatchingAlpgen::initAfterBeams())
return false;
49 virtual bool canVetoProcessLevel() {
50 return JetMatchingAlpgen::canVetoProcessLevel();
52 virtual bool doVetoProcessLevel(
Event & proc) {
53 return JetMatchingAlpgen::doVetoProcessLevel(proc);
57 virtual bool canVetoPartonLevelEarly() {
58 return JetMatchingAlpgen::canVetoPartonLevelEarly();
60 virtual bool doVetoPartonLevelEarly(
const Event &proc) {
61 return JetMatchingAlpgen::doVetoPartonLevelEarly(proc);
84 virtual bool initAfterBeams() {
86 settingsPtr->flag(
"JetMatching:setMad",
false);
87 if (!AlpgenHooks::initAfterBeams())
return false;
88 if (!JetMatchingMadgraph::initAfterBeams())
return false;
93 virtual bool canVetoProcessLevel() {
94 return JetMatchingMadgraph::canVetoProcessLevel();
96 virtual bool doVetoProcessLevel(
Event& proc) {
97 return JetMatchingMadgraph::doVetoProcessLevel(proc);
101 virtual bool canVetoPartonLevelEarly() {
102 return JetMatchingMadgraph::canVetoPartonLevelEarly();
104 virtual bool doVetoPartonLevelEarly(
const Event& proc) {
105 return JetMatchingMadgraph::doVetoPartonLevelEarly(proc);
121 void setHook(Pythia& pythia) {
124 bool isAlpgenFile = ( pythia.word(
"Alpgen:file") !=
"void" );
125 int scheme = pythia.mode(
"JetMatching:scheme");
130 hook = make_shared<JetMatchingAlpgenInputAlpgen>(pythia);
132 hook = make_shared<JetMatchingMadgraphInputAlpgen>(pythia);
135 hook = make_shared<JetMatchingAlpgen>();
137 hook = make_shared<JetMatchingMadgraph>();
140 pythia.setUserHooksPtr(hook);
145 shared_ptr<UserHooks> hook;
153 #endif // Pythia8_CombineMatchingInput_H