diff --git a/FONLL/src/FONLL_wrap.f b/FONLL/src/FONLL_wrap.f index 5bf4a084c244668c53a3d8a3eb7fabf84490e994..a476a61c97bda953d8d7e20eb43ef6445a22c032 100644 --- a/FONLL/src/FONLL_wrap.f +++ b/FONLL/src/FONLL_wrap.f @@ -4,7 +4,7 @@ * ************************************************************************ subroutine FONLL_Set_Input(MassScheme,runm,Mcharm,MBottom,MTop, - 1 Q_ref,Alphas_ref,PtOrder,Scheme) + 1 Q_ref,Alphas_ref,PtOrder,Scheme,Smallx) * implicit none * @@ -17,7 +17,7 @@ double precision Q_ref,Alphas_ref character*7 Scheme character*5 MassScheme - logical runm + logical runm,Smallx double precision Q2save common / PreviousQ2 / Q2save ** @@ -54,6 +54,7 @@ call SetMassScheme(scheme) call SetNumberOfGrids(3) c call EnableDampingFONLL(.false.) +c call SetDampingPowerFONLL(-1,2,2) call SetGridParameters(1,50,3,9.8d-7) call SetGridParameters(2,40,3,1d-2) call SetGridParameters(3,40,3,7d-1) @@ -77,6 +78,13 @@ c call EnableDampingFONLL(.false.) endif endif * +* Small-x resummation +* + if(Smallx)then + call SetSmallxResummation(.true.,"NLL") + call SetQLimits(1.6d0,4550d0) + endif +* * Initialize the APFEL DIS module * call InitializeAPFEL_DIS() diff --git a/ewparam.txt b/ewparam.txt index 8caabee17fa41b553bafb272d6f808b28bf1ffcf..adfcc815eaee1ae3bea1825105d65655b2de8256 100644 --- a/ewparam.txt +++ b/ewparam.txt @@ -58,7 +58,8 @@ mst = 0.150d0 ! Heavy quark masses: - mch = 1.43d0 ! Synchronize with QCDNUM,RT + !mch = 1.43d0 ! Synchronize with QCDNUM,RT + mch = 1.46d0 ! Synchronize with QCDNUM,RT mtp = 173d0 ! Synchronize with QCDNUM mbt = 4.5d0 ! Synchronize with QCDNUM,RT diff --git a/include/dimensions.h b/include/dimensions.h index ded5b51c558f004b71bfd7942cb1300d6a8b1a0c..5beb0deed50be43be935d896be4a9f51b1eb0006 100644 --- a/include/dimensions.h +++ b/include/dimensions.h @@ -1,5 +1,5 @@ #ifndef NSYSMAX_C -#define NSYSMAX_C 750 +#define NSYSMAX_C 1500 #endif #ifndef NTOT_C #define NTOT_C 2700 diff --git a/minuit.in.txt b/minuit.in.txt index 22a64cb9c018e584d4517397d915277631133810..cb00443207ab6a3eb3a9499b5aab99c2355e9712 100644 --- a/minuit.in.txt +++ b/minuit.in.txt @@ -1,25 +1,25 @@ set title new 14p HERAPDF parameters - 2 'Bg' -0.061953 0.027133 - 3 'Cg' 5.562367 0.318464 - 7 'Aprig' 0.166118 0.028009 - 8 'Bprig' -0.383100 0.009784 + 2 'Bg' -0.089607 0.017340 + 3 'Cg' 6.181438 0.561598 + 7 'Aprig' -0.000253 0.000162 + 8 'Bprig' -0.963059 0.058750 9 'Cprig' 25.000000 0.000000 - 12 'Buv' 0.810476 0.016017 - 13 'Cuv' 4.823512 0.063844 - 15 'Euv' 9.921366 0.835891 - 22 'Bdv' 1.029995 0.061123 - 23 'Cdv' 4.846279 0.295439 - 33 'CUbar' 7.059694 0.809144 - 34 'DUbar' 1.548098 1.096540 - 41 'ADbar' 0.268798 0.008020 - 42 'BDbar' -0.127297 0.003628 - 43 'CDbar' 9.586246 1.448861 + 12 'Buv' 0.754313 0.025895 + 13 'Cuv' 4.944407 0.081892 + 15 'Euv' 11.487581 1.410932 + 22 'Bdv' 0.938383 0.084895 + 23 'Cdv' 4.689317 0.389127 + 33 'CUbar' 7.469599 1.312034 + 34 'DUbar' 3.542548 2.187603 + 41 'ADbar' 0.250268 0.008368 + 42 'BDbar' -0.165150 0.004035 + 43 'CDbar' 9.424084 1.829824 *call fcn 3 -*migrad 200000 -*hesse +migrad 200000 +hesse set print 3 return diff --git a/src/apfel.f b/src/apfel.f index 5d7f5a67422ead71c2c1b9eac10a752cd5c61fc0..2527633ad33a7cdc798ffa5344c99f4f094783a6 100644 --- a/src/apfel.f +++ b/src/apfel.f @@ -23,11 +23,10 @@ * if(iTheory.eq.35)then call SetTheory("QUniD") ! Set QCD+QED evolution (default) - call SetPDFEvolution("exactalpha") ! Use DGLAP evolution in terms of muF else call SetTheory("QCD") ! Set QCD evolution (default) - call SetPDFEvolution("exactalpha") ! Use DGLAP evolution in terms of alphas (rather than muF => faster for short steps) endif + call SetPDFEvolution("exactalpha") ! Use DGLAP evolution in terms of alphas (rather than muF => faster for short steps) call SetFastEvolution(.true.) ! Use fast evolution (default) call SetAlphaEvolution("exact") ! Use exact solution on the beta functions (default) call SetQLimits(0.5d0,20000d0) ! Evolution limits @@ -52,6 +51,13 @@ endif call SetMassMatchingScales(kmuc,kmub,kmut) * +* Small-x resummation +* + if(HF_SCHEME(9:12).eq."NLLx")then + call SetSmallxResummation(.true.,"NLL") + call SetQLimits(1.6d0,4550d0) + endif +* * Initialize APFEL * call InitializeAPFEL diff --git a/src/apfel_dum.f b/src/apfel_dum.f index e88417df09d321f8a438a0cd4942a601c36e2d5c..66a8c5f691d880fc4cbd36f22c46897b17b218ad 100644 --- a/src/apfel_dum.f +++ b/src/apfel_dum.f @@ -184,3 +184,11 @@ c---------------------------------------------------------- double precision Q,HeavyQuarkMass call print_apfel_error_message end + + subroutine SetSmallxResummation + call print_apfel_error_message + end + + subroutine SetQLimits + call print_apfel_error_message + end diff --git a/src/init_theory.f b/src/init_theory.f index 6cc466bb348cb50a1e41aab43e5b043bce382dab..a7441454d230c4d1a57c818cb49371e344c2f4d8 100644 --- a/src/init_theory.f +++ b/src/init_theory.f @@ -1,4 +1,3 @@ - subroutine init_theory_modules * ------------------------------------------------ @@ -165,7 +164,14 @@ C Q2 grid weights WGT_q2(2) = 1.d0 C Basic Q2 grid: QARR(1) = 1. - QARR(2) = 2.05D8 ! needed for lhapdf grid + QARR(2) = 2.05D8 ! needed for lhapdf grid +C Reduce the Q2 interval if small-x resummation through APFEL is included. + if(HFSCHEME.eq.3005.or. + 1 HFSCHEME.eq.3055.or. + 2 HFSCHEME.eq.3555)then + QARR(1) = starting_scale + QARR(2) = 2.025D7 ! needed for lhapdf grid + endif c QARR(2) = 64000000. ! enough for 8 TeV LHC. C Default sizes @@ -1428,7 +1434,7 @@ c#include "steering.inc" double precision Q_ref,Alphas_ref character*7 Scheme character*5 MassScheme - logical runm + logical runm,Smallx * MCharm = mch MBottom = mbt @@ -1444,6 +1450,7 @@ c#include "steering.inc" * MassScheme = "Pole" runm = .false. + Smallx = .false. if (I_FIT_order.eq.1) then write(6,*) 'You have selected the FONLL scheme at LO' write(6,*) '*****************************************' @@ -1466,6 +1473,11 @@ c#include "steering.inc" Scheme = "FONLL-A" MassScheme = "MSbar" runm = .true. + elseif(HFSCHEME.eq.3005)then + write(6,*) "You have selected the FONLL-A scheme", + 1 " with small-x resummation at NLL" + Scheme = "FONLL-A" + Smallx = .true. elseif(HFSCHEME.eq.55)then write(6,*) "You have selected the FONLL-B scheme", 1 " with poles masses" @@ -1481,6 +1493,11 @@ c#include "steering.inc" Scheme = "FONLL-B" MassScheme = "MSbar" runm = .true. + elseif(HFSCHEME.eq.3055)then + write(6,*) "You have selected the FONLL-B scheme", + 1 " with small-x resummation at NLL" + Scheme = "FONLL-B" + Smallx = .true. else call HF_errlog(310320151, 'F: '// 1 'At NLO only the FONLL-A and FONLL-B '// @@ -1502,6 +1519,11 @@ c#include "steering.inc" Scheme = "FONLL-C" MassScheme = "MSbar" runm = .true. + elseif(HFSCHEME.eq.3555)then + write(6,*) "You have selected the FONLL-C scheme", + 1 " with small-x resummation at NLL" + Scheme = "FONLL-C" + Smallx = .true. else call HF_errlog(310320152, 'F: '// 1 'At NNLO only the FONLL-C scheme '// @@ -1521,9 +1543,23 @@ c#include "steering.inc" 4 'steering.txt card.') endif endif +* +* If the small-x resummation is included check that APFEL is used also +* for the evolution. +* + if(Smallx)then + if(iTheory.ne.10.and.iTheory.ne.35)then + call HF_errlog(20102017, 'F: '// + 1 'When using the FONLL scheme with small-x '// + 2 'resummation, APFEL must be used for the '// + 3 'evolution. '// + 4 'Please set TheoryType = "DGLAP_APFEL" in the '// + 5 'steering.txt card.') + endif + endif * call FONLL_Set_Input(MassScheme,runm,Mcharm,MBottom,MTop, - 1 Q_ref,Alphas_ref,PtOrder,Scheme) + 1 Q_ref,Alphas_ref,PtOrder,Scheme,Smallx) * return end diff --git a/src/read_steer.f b/src/read_steer.f index 5aaa19f5e0f0e9cb2f58e5afcd443045686cc83d..57660fd3f3d4f36f6ed3e3abf9a0dfddc28a5022 100644 --- a/src/read_steer.f +++ b/src/read_steer.f @@ -1249,18 +1249,24 @@ C--------------------------------- HFSCHEME = 1005 elseif (HF_SCHEME.eq.'FONLL-A RUNM ON') then HFSCHEME = 2005 + elseif (HF_SCHEME.eq.'FONLL-A NLLx') then + HFSCHEME = 3005 elseif (HF_SCHEME.eq.'FONLL-B') then HFSCHEME = 55 elseif (HF_SCHEME.eq.'FONLL-B RUNM OFF') then HFSCHEME = 1055 elseif (HF_SCHEME.eq.'FONLL-B RUNM ON') then HFSCHEME = 2055 + elseif (HF_SCHEME.eq.'FONLL-B NLLx') then + HFSCHEME = 3055 elseif (HF_SCHEME.eq.'FONLL-C') then HFSCHEME = 555 elseif (HF_SCHEME.eq.'FONLL-C RUNM OFF') then HFSCHEME = 1555 elseif (HF_SCHEME.eq.'FONLL-C RUNM ON') then HFSCHEME = 2555 + elseif (HF_SCHEME.eq.'FONLL-C NLLx') then + HFSCHEME = 3555 elseif (HF_SCHEME.eq.'S-ACOT Chi') then HFSCHEME = 17 elseif (HF_SCHEME.eq.'S-ACOT Chi RC') then diff --git a/steering.txt b/steering.txt index fcd6a9eca2b5b8bc28f3c55d021b4a4ccefe2b80..ab852d87cee356bf9f12e50e6b8e4762d383ba23 100644 --- a/steering.txt +++ b/steering.txt @@ -7,14 +7,24 @@ ! Input files: - InputFileNames(1) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_920.dat' - InputFileNames(2) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_820.dat' - InputFileNames(3) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_575.dat' - InputFileNames(4) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_460.dat' - InputFileNames(5) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCem.dat' - InputFileNames(6) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCep.dat' - InputFileNames(7) = 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCem.dat' - + InputFileNames = + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_920-thexp.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_820-thexp.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_575-thexp.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_460-thexp.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCem-thexp.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCep-thexp.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCem-thexp.dat', + + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_920.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_820.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_575.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCep_460.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_NCem.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCep.dat', + 'datafiles/hera/h1zeusCombined/inclusiveDis/1506.06042/HERA1+2_CCem.dat', + ! 'Z0_applgrid_nnlo_reaction.dat', 'D0_Wel_pt25_asymmetry.dat' + ! 'datafiles/lhc/atlas/wzProduction/1203.4051/Z0_applgrid_nnlo.dat', &End @@ -26,9 +36,18 @@ ! CorrFileNames(1) = 'datafiles/hera/h1/jets/0904.3870/H1_NormInclJets_HighQ2_99-07___H1_NormInclJets_HighQ2_99-07.corr' &End +&ReduceSyst + ! even with tolerance =0 the following flag may speed up calculations + do_reduce = .false. ! turn-on to simplify/speedup chi2 calculation. + ! tolerance = 0.0 for exact calculation, > 0.0 for improved speed. + tolerance = 0.0 + ! depending on blas library, toggling the following flag may improve chi2 computation speed: + useBlas = .false. +&End + &CovarToNuisance ! Global switch for using nuisance param representation for covariance mat. - LConvertCovToNui = .false. + LConvertCovToNui = .False. ! Tolerance -- zero means exact transformation Tolerance = 0.0 @@ -183,6 +202,7 @@ ! Debug flag LDEBUG = False + ! Quadratic approximation for asymmetric uncertainties ! AsymErrorsIterations = 10 &End