10 #ifndef Pythia8_LHAFortran_H
11 #define Pythia8_LHAFortran_H
13 #include "Pythia8/PythiaStdlib.h"
22 #define heprup_ HEPRUP
23 #define hepeup_ HEPEUP
31 int pdfgup[2], pdfsup[2], idwtup, nprup;
32 double xsecup[100], xerrup[100], xmaxup[100];
38 double xwgtup, scalup, aqedup, aqcdup;
39 int idup[500], istup[500], mothup[500][2], icolup[500][2];
40 double pup[500][5], vtimup[500],spinup[500];
50 class LHAupFortran :
public LHAup {
60 if (!fillHepRup())
return false;
62 setBeamA(heprup_.idbmup[0], heprup_.ebmup[0], heprup_.pdfgup[0],
64 setBeamB(heprup_.idbmup[1], heprup_.ebmup[1], heprup_.pdfgup[1],
66 setStrategy(heprup_.idwtup);
68 for (
int ip = 0; ip < heprup_.nprup; ++ip) {
69 double xsec = max( 1e-10, heprup_.xsecup[ip]);
70 addProcess( heprup_.lprup[ip], xsec, heprup_.xerrup[ip],
74 eBeamA = heprup_.ebmup[0];
75 eBeamB = heprup_.ebmup[1];
81 bool setEvent(
int idProcIn = 0,
double = -1.) {
83 hepeup_.idprup = idProcIn;
85 if (!fillHepEup())
return false;
87 setProcess(hepeup_.idprup, hepeup_.xwgtup, hepeup_.scalup,
88 hepeup_.aqedup, hepeup_.aqcdup);
90 for (
int ip = 0; ip < hepeup_.nup; ++ip) addParticle(hepeup_.idup[ip],
91 hepeup_.istup[ip], hepeup_.mothup[ip][0], hepeup_.mothup[ip][1],
92 hepeup_.icolup[ip][0], hepeup_.icolup[ip][1], hepeup_.pup[ip][0],
93 hepeup_.pup[ip][1], hepeup_.pup[ip][2], hepeup_.pup[ip][3],
94 hepeup_.pup[ip][4], hepeup_.vtimup[ip], hepeup_.spinup[ip]) ;
96 setPdf( hepeup_.idup[0], hepeup_.idup[1], hepeup_.pup[0][3]/eBeamA,
97 hepeup_.pup[1][3]/eBeamB, 0., 0., 0.,
false);
105 double eBeamA, eBeamB;
119 #endif // Pythia8_LHAFortran_H