=== modified file 'src/SysCalc.cc' --- old/src/SysCalc.cc 2015-10-21 21:12:44 +0000 +++ new/src/SysCalc.cc 2016-01-22 11:27:53 +0000 @@ -652,20 +652,20 @@ int max = pdg.size()-1; double maxq = fact*q[max]; int maxpdg = beam*pdg[max]; - if(abs(maxpdg) == 21) maxpdg = 0; + if(abs(maxpdg) >= 21) maxpdg = abs(maxpdg)-21; maxpdg += 6; - vector pdfs = xfx(pdfnum, x[max], maxq); + vector pdfs = xfxphoton(pdfnum, x[max], maxq); weight *= pdfs[maxpdg]/x[max]; int pdgnow; for(int i=0; i < max; i++){ - pdfs = xfx(pdfnum, x[i], min(q[i], maxq)); + pdfs = xfxphoton(pdfnum, x[i], min(q[i], maxq)); pdgnow = beam*pdg[i]; - if(abs(pdgnow) == 21) pdgnow = 0; + if(abs(pdgnow) >= 21) pdgnow = abs(pdgnow)-21; pdgnow += 6; weight *= pdfs[pdgnow]/x[i]; - pdfs = xfx(pdfnum, x[i+1], min(q[i], maxq)); + pdfs = xfxphoton(pdfnum, x[i+1], min(q[i], maxq)); pdgnow = beam*pdg[i+1]; - if(abs(pdgnow) == 21) pdgnow = 0; + if(abs(pdgnow) >= 21) pdgnow = abs(maxpdg)-21; pdgnow += 6; weight /= (pdfs[pdgnow]/x[i+1]); }