7 #include "Pythia8/PhaseSpace.h"
37 virtual double multiplySigmaBy(
const SigmaProcess* sigmaProcessPtr,
const PhaseSpace* phaseSpacePtr,
bool ) {
40 if (sigmaProcessPtr->nFinal() != 1)
return 0.;
46 const int idRes = sigmaProcessPtr->resonanceA();
47 const double mRes = particleDataPtr->m0(idRes);
48 const double wRes = particleDataPtr->mWidth(idRes);
49 const double m2Res = mRes*mRes;
50 const double GamMRat = wRes/mRes;
51 const double sHat = phaseSpacePtr->sHat();
52 const double rH = std::sqrt(sHat);
53 const double weightBW = pow2(sHat - m2Res) + pow2(sHat * GamMRat);
58 double weightpT_G = 1;
70 const double p0 = 12.4176;
71 const double p1 = -0.364611;
72 const double p2 = 0.00293827;
73 const double p3 = 4.3106e-07;
74 const double p4 = -2.61662e-09;
75 const double p5 = 1.33037e-12;
76 const double p6 = -2.07848e-16;
82 const double p0 = 41237.9;
83 const double p1 = -95.9745;
84 const double p2 = 0.0979667;
85 const double p3 = -5.14644e-05;
86 const double p4 = 1.45857e-08;
87 const double p5 = -2.13169e-12;
88 const double p6 = 1.26473e-16;
94 const double p0 = 1.11676e+06;
95 const double p1 = -925.647;
96 const double p2 = 0.311595;
97 const double p3 = -5.38465e-05;
98 const double p4 = 4.92286e-09;
99 const double p5 = -2.1452e-13;
100 const double p6 = 2.97112e-18;
103 else if (rH <= 6500) {
106 const double p0 = 9.70964e+13;
107 const double p1 = -4.17142e-03;
108 const double p2 = -3.06415e-03;
111 weight = weightBW * weightPL;
120 const double p0 = 0.00384785;
121 const double p1 = -1.72701e-05;
122 const double p2 = 2.25365e-08;
123 const double p3 = -6.15774e-12;
124 const double p4 = 4.85585e-16;
127 else if (rH < 6000) {
128 const double p10 = 0.00659488 ;
129 const double p11 = 2.68603e-05;
130 const double p12 = -7.80009e-09;
131 const double p13 = 5.54463e-13;
134 else if (rH < 13000) {
135 weightpT_G = 1./
exp(2.14289
e+00 - 1.17687
e-03*rH);
139 weight = weightpT_G * (1 + rH/13000.);
145 }
else if (rH < 2500) {
158 else if (rH < 6000) {
171 else if (rH < 8000) {
184 else if (rH <= 10500) {
197 weight = weightBW * weightPL;
203 throw std::runtime_error(
"Unknown GravFlat:EnergyMode = " +
std::to_string(emode) +
" (should be either 8 or 13!)");