10 #ifndef Pythia8_UserHooks_H
11 #define Pythia8_UserHooks_H
14 #include "PartonSystems.h"
15 #include "PythiaStdlib.h"
16 #include "SigmaProcess.h"
42 SigmaTotal* sigmaTotPtrIn) { infoPtr = infoPtrIn;
43 settingsPtr = settingsPtrIn; particleDataPtr = particleDataPtrIn;
44 rndmPtr = rndmPtrIn; beamAPtr = beamAPtrIn; beamBPtr = beamBPtrIn;
45 beamPomAPtr = beamPomAPtrIn; beamPomBPtr = beamPomBPtrIn;
46 coupSMPtr = coupSMPtrIn; partonSystemsPtr = partonSystemsPtrIn;
47 sigmaTotPtr = sigmaTotPtrIn;
48 workEvent.init(
"(work event)", particleDataPtr);}
51 virtual bool canModifySigma() {
return false;}
54 virtual double multiplySigmaBy(
const SigmaProcess* sigmaProcessPtr,
55 const PhaseSpace* phaseSpacePtr,
bool inEvent);
58 virtual bool canBiasSelection() {
return false;}
61 virtual double biasSelectionBy(
const SigmaProcess* sigmaProcessPtr,
62 const PhaseSpace* phaseSpacePtr,
bool inEvent);
65 virtual double biasedSelectionWeight() {
return 1./selBias;}
68 virtual bool canVetoProcessLevel() {
return false;}
72 virtual bool doVetoProcessLevel(
Event& ) {
return false;}
76 virtual bool canVetoPT() {
return false;}
79 virtual double scaleVetoPT() {
return 0.;}
85 virtual bool doVetoPT(
int ,
const Event& ) {
return false;}
89 virtual bool canVetoStep() {
return false;}
92 virtual int numberVetoStep() {
return 1;}
97 virtual bool doVetoStep(
int ,
int ,
int ,
const Event& ) {
return false;}
101 virtual bool canVetoMPIStep() {
return false;}
104 virtual int numberVetoMPIStep() {
return 1;}
108 virtual bool doVetoMPIStep(
int ,
const Event& ) {
return false;}
111 virtual bool canVetoPartonLevel() {
return false;}
115 virtual bool doVetoPartonLevel(
const Event& ) {
return false;}
118 virtual bool canSetResonanceScale() {
return false;}
123 virtual double scaleResonance(
int,
const Event& ) {
return 0.;}
126 virtual bool canVetoISREmission() {
return false;}
132 virtual bool doVetoISREmission(
int,
const Event&,
int ) {
return false;}
135 virtual bool canVetoFSREmission() {
return false;}
143 virtual bool doVetoFSREmission(
int,
const Event&,
int,
bool =
false )
147 virtual bool canVetoMPIEmission() {
return false; }
152 virtual bool doVetoMPIEmission(
int,
const Event &) {
return false; }
187 void omitResonanceDecays(
const Event& process);
190 void subEvent(
const Event& event,
bool isHardest =
true);
213 bool useSameAlphaSasMPIIn =
true) {isInit =
false;
214 pT0timesMPI = pT0timesMPIIn; numberAlphaS = numberAlphaSIn;
215 useSameAlphaSasMPI = useSameAlphaSasMPIIn;}
218 virtual bool canModifySigma() {
return true;}
222 virtual double multiplySigmaBy(
const SigmaProcess* sigmaProcessPtr,
228 bool isInit, useSameAlphaSasMPI;
230 double pT0timesMPI, pT20;
241 #endif // Pythia8_UserHooks_H