File indexing completed on 2025-01-18 10:06:19
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef Pythia8_DireHooks_H
0009 #define Pythia8_DireHooks_H
0010
0011 #include "Pythia8/PythiaStdlib.h"
0012 #include "Pythia8/DireSplittings.h"
0013
0014 namespace Pythia8 {
0015
0016
0017
0018
0019
0020 class DireHooks {
0021
0022 public:
0023
0024
0025 virtual ~DireHooks() {}
0026
0027
0028 void initPtr( Info* infoPtrIn, BeamParticle* beamAPtrIn,
0029 BeamParticle* beamBPtrIn) {
0030 infoPtr = infoPtrIn;
0031 settingsPtr = infoPtr->settingsPtr;
0032 particleDataPtr = infoPtr->particleDataPtr;
0033 rndmPtr = infoPtr->rndmPtr;
0034 beamAPtr = beamAPtrIn;
0035 beamBPtr = beamBPtrIn;
0036 coupSMPtr = infoPtr->coupSMPtr;
0037 partonSystemsPtr = infoPtr->partonSystemsPtr;
0038 }
0039
0040
0041 virtual bool init() { return true; }
0042
0043
0044 virtual bool canLoadFSRKernels() {return false;}
0045 virtual bool doLoadFSRKernels(
0046 std::unordered_map< string, DireSplitting* >&) {return false;}
0047 virtual bool canLoadISRKernels() {return false;}
0048 virtual bool doLoadISRKernels(
0049 std::unordered_map< string, DireSplitting* >&) {return false;}
0050
0051
0052 virtual bool canSetRenScale() {return false;}
0053 virtual bool canSetFacScale() {return false;}
0054 virtual bool canSetStartScale() {return false;}
0055 virtual double doGetRenScale(double x1, double x2, double sH, double tH,
0056 double uH, bool massless, double m1sq, double m2sq, double m3sq,
0057 double m4sq) {
0058 if (false) cout << x1*x2*sH*tH*uH*massless*m1sq*m2sq*m3sq*m4sq;
0059 return -1.0;
0060 }
0061 virtual double doGetFacScale(double x1, double x2, double sH, double tH,
0062 double uH, bool massless, double m1sq, double m2sq, double m3sq,
0063 double m4sq) {
0064 if (false) cout << x1*x2*sH*tH*uH*massless*m1sq*m2sq*m3sq*m4sq;
0065 return -1.0;
0066 }
0067 virtual double doGetStartScale(double x1, double x2, double sH, double tH,
0068 double uH, bool massless, double m1sq, double m2sq, double m3sq,
0069 double m4sq) {
0070 if (false) cout << x1*x2*sH*tH*uH*massless*m1sq*m2sq*m3sq*m4sq;
0071 return -1.0;
0072 }
0073
0074 protected:
0075
0076
0077 DireHooks() : infoPtr(0), settingsPtr(0), particleDataPtr(0), rndmPtr(0),
0078 beamAPtr(0), beamBPtr(0), coupSMPtr(0), partonSystemsPtr(0) {}
0079
0080
0081 Info* infoPtr;
0082
0083
0084 Settings* settingsPtr;
0085
0086
0087 ParticleData* particleDataPtr;
0088
0089
0090 Rndm* rndmPtr;
0091
0092
0093 BeamParticle* beamAPtr;
0094 BeamParticle* beamBPtr;
0095
0096
0097 CoupSM* coupSMPtr;
0098
0099
0100 PartonSystems* partonSystemsPtr;
0101
0102 };
0103
0104
0105
0106 }
0107
0108 #endif