From 2f5558fdf043b4b88de6da71fcdc791f2d0dec6f Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Wed, 28 Oct 2020 11:28:24 +0100 Subject: [PATCH 01/28] Add ATLASZPT8TEV{M,Y}DIST datasets --- nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f | 121 ++++++++++++++++++ .../change_scale_to_ht2.patch | 48 +++++++ nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt | 22 ++++ nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt | 7 + nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f | 104 +++++++++++++++ .../change_scale_to_ht2.patch | 48 +++++++ nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt | 22 ++++ nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt | 7 + 8 files changed, 379 insertions(+) create mode 100644 nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f create mode 100644 nnpdf31_proc/ATLASZPT8TEVMDIST/change_scale_to_ht2.patch create mode 100644 nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt create mode 100644 nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt create mode 100644 nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f create mode 100644 nnpdf31_proc/ATLASZPT8TEVYDIST/change_scale_to_ht2.patch create mode 100644 nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt create mode 100644 nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f b/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f new file mode 100644 index 00000000..66668f04 --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f @@ -0,0 +1,121 @@ +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + subroutine analysis_begin(nwgt,weights_info) +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + + implicit none + integer nwgt + character*(*) weights_info(*) + + call set_error_estimation(1) + call HwU_inithist(nwgt,weights_info) + call HwU_book(1,'Z pT', 60, 0d0, 60d0) + + return + end + +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + subroutine analysis_end(dummy) +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + + implicit none + double precision dummy + call HwU_write_file + return + end + +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + subroutine analysis_fill(p,istatus,ipdg,wgts,ibody) +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + + implicit none + include 'nexternal.inc' + include 'cuts.inc' + integer istatus(nexternal) + integer iPDG(nexternal) + integer ibody + integer i,ptbin,mllbin + integer j + double precision p(0:4,nexternal) + double precision wgts(*) + double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,mll + double precision getinvm + external getinvm + + double precision p_reco(0:4,nexternal) + integer iPDG_reco(nexternal) + + call recombine_momenta(rphreco, etaphreco, lepphreco, quarkphreco, + $ p, iPDG, p_reco, iPDG_reco) + + do j = nincoming+1, nexternal + if (iPDG_reco(j).eq.13) ppl(0:3)=p_reco(0:3,j) + if (iPDG_reco(j).eq.-13) pplb(0:3)=p_reco(0:3,j) + enddo + do i=0,3 + ppv(i)=ppl(i)+pplb(i) + enddo + + ptv=sqrt(ppv(1)**2+ppv(2)**2) + + if (ptv.ge.30d0.and.ptv.lt.37d0) then + ptbin = 0 + elseif (ptv.ge.37d0.and.ptv.lt.45d0) then + ptbin = 1 + elseif (ptv.ge.45d0.and.ptv.lt.55d0) then + ptbin = 2 + elseif (ptv.ge.55d0.and.ptv.lt.65d0) then + ptbin = 3 + elseif (ptv.ge.65d0.and.ptv.lt.75d0) then + ptbin = 4 + elseif (ptv.ge.75d0.and.ptv.lt.85d0) then + ptbin = 5 + elseif (ptv.ge.85d0.and.ptv.lt.105d0) then + ptbin = 6 + elseif (ptv.ge.105d0.and.ptv.lt.150d0) then + ptbin = 7 + elseif (ptv.ge.150d0.and.ptv.lt.200d0) then + ptbin = 8 + elseif (ptv.ge.200d0.and.ptv.lt.900d0) then + ptbin = 9 + endif + + mll=getinvm(ppv(0),ppv(1),ppv(2),ppv(3)) + + if (ptv.ge.12d0.and.ptv.lt.20d0) then + mllbin = 0 + elseif (ptv.ge.20d0.and.ptv.lt.30d0) then + mllbin = 1 + elseif (ptv.ge.30d0.and.ptv.lt.46d0) then + mllbin = 2 + elseif (ptv.ge.46d0.and.ptv.lt.66d0) then + mllbin = 3 + elseif (ptv.ge.66d0.and.ptv.lt.116d0) then + mllbin = 4 + elseif (ptv.ge.116d0.and.ptv.lt.150d0) then + mllbin = 5 + endif + + call HwU_fill(1,dble(10*mllbin+ptbin),wgts) + + 999 return + end + +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + + function getinvm(en,ptx,pty,pl) + implicit none + real*8 getinvm,en,ptx,pty,pl,tiny,tmp + parameter (tiny=1.d-5) +c + tmp=en**2-ptx**2-pty**2-pl**2 + if(tmp.gt.0.d0)then + tmp=sqrt(tmp) + elseif(tmp.gt.-tiny)then + tmp=0.d0 + else + write(*,*)'Attempt to compute a negative mass' + stop + endif + getinvm=tmp + return + end diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/change_scale_to_ht2.patch b/nnpdf31_proc/ATLASZPT8TEVMDIST/change_scale_to_ht2.patch new file mode 100644 index 00000000..4877080e --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/change_scale_to_ht2.patch @@ -0,0 +1,48 @@ +--- CMSDY2D11/SubProcesses/setscales.f 2020-05-21 17:23:55.126143088 +0200 ++++ CMSDY2D11/SubProcesses/setscales.f.new 2020-05-21 17:27:26.262700419 +0200 +@@ -527,6 +527,17 @@ + integer i,j + character*80 temp_scale_id + common/ctemp_scale_id/temp_scale_id ++ integer iPDG_reco(nexternal) ++ double precision ppl(0:3), pplb(0:3), ppv(0:3), xmll ++ double precision p_reco(0:4,nexternal), p_in(0:4,nexternal) ++c les houches accord stuff to identify particles ++c ++ integer idup(nexternal,maxproc),mothup(2,nexternal,maxproc), ++ & icolup(2,nexternal,maxflow),niprocs ++ common /c_leshouche_inc/idup,mothup,icolup,niprocs ++c Masses of external particles ++ double precision pmass(nexternal) ++ common/to_mass/pmass + c + tmp=0 + if(ickkw.eq.-1)then +@@ -568,10 +579,23 @@ + cc dynamical_scale_choice = 10 cc + cc in the run_card (run_card.dat) cc + ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +- write(*,*) "User-defined scale not set" +- stop 1 +- temp_scale_id='User-defined dynamical scale' ! use a meaningful string +- tmp = 0d0 ++ temp_scale_id='CMS_Z_13TEV' ! use a meaningful string ++ do i=1,nexternal ++ p_in(0:3,i) = pp(0:3,i) ++ p_in(4,i) = pmass(i) ++ enddo ++ call recombine_momenta(rphreco, etaphreco, lepphreco, quarkphreco, ++ $ p_in, idup(1,1), p_reco, iPDG_reco) ++ ++ do j = nincoming+1, nexternal ++ if (iPDG_reco(j).eq.13) ppl(0:3)=p_reco(0:3,j) ++ if (iPDG_reco(j).eq.-13) pplb(0:3)=p_reco(0:3,j) ++ enddo ++ do i=0,3 ++ ppv(i)=ppl(i)+pplb(i) ++ enddo ++ ++ tmp=dsqrt(max(0d0,(ppv(0)+ppv(3))*(ppv(0)-ppv(3)))) + ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + cc USER-DEFINED SCALE: END OF USER CODE cc + ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt new file mode 100644 index 00000000..f3b32a55 --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt @@ -0,0 +1,22 @@ +launch @OUTPUT@ +fixed_order = ON +set mz @MZ@ +set ymt @YMT@ +set ebeam1 6500 +set ebeam2 6500 +set pdlabel lhapdf +set lhaid 324900 +set dynamical_scale_choice 10 +set reweight_scale True +set ptl = 20.0 +set etal = 2.4 +set mll = 12.0 +set ptj = 0.0 +#user_defined_cut set mmllmax = 150.0 +#user_defined_cut set ptzmin = 30.0 +#user_defined_cut set ptzmax = 900.0 +#user_defined_cut set yz = 2.4 +set req_acc_FO 0.01 +set pineappl True +done +quit diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt new file mode 100644 index 00000000..b08451c0 --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt @@ -0,0 +1,7 @@ +set complex_mass_scheme True +import model loop_qcd_qed_sm_Gmu +define p = p b b~ +define j = p +generate p p > mu+ mu- j QCD=1 QED=3 [QCD] +output @OUTPUT@ +quit diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f b/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f new file mode 100644 index 00000000..5cd9eedf --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f @@ -0,0 +1,104 @@ +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + subroutine analysis_begin(nwgt,weights_info) +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + + implicit none + integer nwgt + character*(*) weights_info(*) + + call set_error_estimation(1) + call HwU_inithist(nwgt,weights_info) + call HwU_book(1,'Z pT', 60, 0d0, 60d0) + + return + end + +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + subroutine analysis_end(dummy) +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + + implicit none + double precision dummy + call HwU_write_file + return + end + +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + subroutine analysis_fill(p,istatus,ipdg,wgts,ibody) +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + + implicit none + include 'nexternal.inc' + include 'cuts.inc' + integer istatus(nexternal) + integer iPDG(nexternal) + integer ibody + integer i,ptbin + integer j + double precision p(0:4,nexternal) + double precision wgts(*) + double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,yll + double precision getabsy + external getabsy + + double precision p_reco(0:4,nexternal) + integer iPDG_reco(nexternal) + + call recombine_momenta(rphreco, etaphreco, lepphreco, quarkphreco, + $ p, iPDG, p_reco, iPDG_reco) + + do j = nincoming+1, nexternal + if (iPDG_reco(j).eq.13) ppl(0:3)=p_reco(0:3,j) + if (iPDG_reco(j).eq.-13) pplb(0:3)=p_reco(0:3,j) + enddo + do i=0,3 + ppv(i)=ppl(i)+pplb(i) + enddo + + ptv=sqrt(ppv(1)**2+ppv(2)**2) + + if (ptv.ge.30d0.and.ptv.lt.37d0) then + ptbin = 0 + elseif (ptv.ge.37d0.and.ptv.lt.45d0) then + ptbin = 1 + elseif (ptv.ge.45d0.and.ptv.lt.55d0) then + ptbin = 2 + elseif (ptv.ge.55d0.and.ptv.lt.65d0) then + ptbin = 3 + elseif (ptv.ge.65d0.and.ptv.lt.75d0) then + ptbin = 4 + elseif (ptv.ge.75d0.and.ptv.lt.85d0) then + ptbin = 5 + elseif (ptv.ge.85d0.and.ptv.lt.105d0) then + ptbin = 6 + elseif (ptv.ge.105d0.and.ptv.lt.150d0) then + ptbin = 7 + elseif (ptv.ge.150d0.and.ptv.lt.200d0) then + ptbin = 8 + elseif (ptv.ge.200d0.and.ptv.lt.900d0) then + ptbin = 9 + endif + + yll=getabs(ppv(0),ppv(3)) + + call HwU_fill(1,dble(10*idint(yll/0.4d0)+ptbin),wgts) + + 999 return + end + +cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + + function getabsy(en,pl) + implicit none + real*8 getabsy,en,pl,tmp +c + tmp=pl/en + if(abs(tmp).lt.1d0)then + tmp=abs(atanh(tmp)) + else + write(*,*)'Attempt to compute atanh(x) with x > 1' + stop + endif + getabsy=tmp + return + end diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/change_scale_to_ht2.patch b/nnpdf31_proc/ATLASZPT8TEVYDIST/change_scale_to_ht2.patch new file mode 100644 index 00000000..4877080e --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/change_scale_to_ht2.patch @@ -0,0 +1,48 @@ +--- CMSDY2D11/SubProcesses/setscales.f 2020-05-21 17:23:55.126143088 +0200 ++++ CMSDY2D11/SubProcesses/setscales.f.new 2020-05-21 17:27:26.262700419 +0200 +@@ -527,6 +527,17 @@ + integer i,j + character*80 temp_scale_id + common/ctemp_scale_id/temp_scale_id ++ integer iPDG_reco(nexternal) ++ double precision ppl(0:3), pplb(0:3), ppv(0:3), xmll ++ double precision p_reco(0:4,nexternal), p_in(0:4,nexternal) ++c les houches accord stuff to identify particles ++c ++ integer idup(nexternal,maxproc),mothup(2,nexternal,maxproc), ++ & icolup(2,nexternal,maxflow),niprocs ++ common /c_leshouche_inc/idup,mothup,icolup,niprocs ++c Masses of external particles ++ double precision pmass(nexternal) ++ common/to_mass/pmass + c + tmp=0 + if(ickkw.eq.-1)then +@@ -568,10 +579,23 @@ + cc dynamical_scale_choice = 10 cc + cc in the run_card (run_card.dat) cc + ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc +- write(*,*) "User-defined scale not set" +- stop 1 +- temp_scale_id='User-defined dynamical scale' ! use a meaningful string +- tmp = 0d0 ++ temp_scale_id='CMS_Z_13TEV' ! use a meaningful string ++ do i=1,nexternal ++ p_in(0:3,i) = pp(0:3,i) ++ p_in(4,i) = pmass(i) ++ enddo ++ call recombine_momenta(rphreco, etaphreco, lepphreco, quarkphreco, ++ $ p_in, idup(1,1), p_reco, iPDG_reco) ++ ++ do j = nincoming+1, nexternal ++ if (iPDG_reco(j).eq.13) ppl(0:3)=p_reco(0:3,j) ++ if (iPDG_reco(j).eq.-13) pplb(0:3)=p_reco(0:3,j) ++ enddo ++ do i=0,3 ++ ppv(i)=ppl(i)+pplb(i) ++ enddo ++ ++ tmp=dsqrt(max(0d0,(ppv(0)+ppv(3))*(ppv(0)-ppv(3)))) + ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + cc USER-DEFINED SCALE: END OF USER CODE cc + ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt new file mode 100644 index 00000000..fdd5162f --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt @@ -0,0 +1,22 @@ +launch @OUTPUT@ +fixed_order = ON +set mz @MZ@ +set ymt @YMT@ +set ebeam1 6500 +set ebeam2 6500 +set pdlabel lhapdf +set lhaid 324900 +set dynamical_scale_choice 10 +set reweight_scale True +set ptl = 20.0 +set etal = 2.4 +set mll = 66.0 +set ptj = 0.0 +#user_defined_cut set mmllmax = 116.0 +#user_defined_cut set ptzmin = 30.0 +#user_defined_cut set ptzmax = 900.0 +#user_defined_cut set yz = 2.4 +set req_acc_FO 0.01 +set pineappl True +done +quit diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt new file mode 100644 index 00000000..b08451c0 --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt @@ -0,0 +1,7 @@ +set complex_mass_scheme True +import model loop_qcd_qed_sm_Gmu +define p = p b b~ +define j = p +generate p p > mu+ mu- j QCD=1 QED=3 [QCD] +output @OUTPUT@ +quit From 4cf5bd96ad5076de4f4cd2486d03a5a1d6f28ca4 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Wed, 28 Oct 2020 12:25:05 +0100 Subject: [PATCH 02/28] Fix variable naming and cuts --- nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f b/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f index 66668f04..9a456aaf 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f @@ -37,7 +37,7 @@ subroutine analysis_fill(p,istatus,ipdg,wgts,ibody) integer j double precision p(0:4,nexternal) double precision wgts(*) - double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,mll + double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,xmll double precision getinvm external getinvm @@ -79,19 +79,19 @@ subroutine analysis_fill(p,istatus,ipdg,wgts,ibody) ptbin = 9 endif - mll=getinvm(ppv(0),ppv(1),ppv(2),ppv(3)) + xmll=getinvm(ppv(0),ppv(1),ppv(2),ppv(3)) - if (ptv.ge.12d0.and.ptv.lt.20d0) then + if (xmll.ge.12d0.and.xmll.lt.20d0) then mllbin = 0 - elseif (ptv.ge.20d0.and.ptv.lt.30d0) then + elseif (xmll.ge.20d0.and.xmll.lt.30d0) then mllbin = 1 - elseif (ptv.ge.30d0.and.ptv.lt.46d0) then + elseif (xmll.ge.30d0.and.xmll.lt.46d0) then mllbin = 2 - elseif (ptv.ge.46d0.and.ptv.lt.66d0) then + elseif (xmll.ge.46d0.and.xmll.lt.66d0) then mllbin = 3 - elseif (ptv.ge.66d0.and.ptv.lt.116d0) then + elseif (xmll.ge.66d0.and.xmll.lt.116d0) then mllbin = 4 - elseif (ptv.ge.116d0.and.ptv.lt.150d0) then + elseif (xmll.ge.116d0.and.xmll.lt.150d0) then mllbin = 5 endif From 6b5b120352668b31177545924e84731b75604e3b Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Wed, 28 Oct 2020 12:47:00 +0100 Subject: [PATCH 03/28] Fix analysis file --- nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f b/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f index 5cd9eedf..0ec37ad8 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f @@ -79,7 +79,7 @@ subroutine analysis_fill(p,istatus,ipdg,wgts,ibody) ptbin = 9 endif - yll=getabs(ppv(0),ppv(3)) + yll=getabsy(ppv(0),ppv(3)) call HwU_fill(1,dble(10*idint(yll/0.4d0)+ptbin),wgts) From 1f5375cf5f12335f210d84516a125d58abfc0a49 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Sat, 7 Nov 2020 18:14:40 +0100 Subject: [PATCH 04/28] Disable threads for PDF uncertainties - just for the time being to avoid LHAPDF bug --- run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.sh b/run.sh index a0bea1fd..a0e674e9 100755 --- a/run.sh +++ b/run.sh @@ -147,7 +147,7 @@ EOF # (re-)produce predictions "${pineappl}" convolute "${grid}" "${pdfstring}" --scales 9 > pineappl.convolute "${pineappl}" orders "${grid}" "${pdfstring}" --absolute > pineappl.orders - "${pineappl}" pdf_uncertainty "${grid}" "${pdfstring}" > pineappl.pdf_uncertainty + "${pineappl}" pdf_uncertainty --threads=1 "${grid}" "${pdfstring}" > pineappl.pdf_uncertainty # extract the numerical results from mg5_aMC sed '/^ [+-]/!d' "${dataset}"/Events/run_01*/MADatNLO.HwU > results.mg5_aMC From f208552ee7bd18e8a0188a0f58dbb0706029015a Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Wed, 3 Feb 2021 16:15:50 +0100 Subject: [PATCH 05/28] Add support for metadata --- run.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/run.sh b/run.sh index a0e674e9..0f9b1759 100755 --- a/run.sh +++ b/run.sh @@ -167,6 +167,15 @@ EOF rm results.mg5_aMC results.grid + # add metadata + if [[ -f ../nnpdf31_proc/"${dataset}"/metadata.txt ]]; then + eval $(awk -F= "BEGIN { printf \"pineappl set $grid $grid.new \" } + { printf \"--entry %s '%s' \", \$1, \$2 } + END { printf \"\\n\" }" \ + ../nnpdf31_proc/"${dataset}"/metadata.txt) + mv $grid.new $grid + fi + # if there is anything to do after the run, do it! if [[ -x ../nnpdf31_proc/"${dataset}"/postrun.sh ]]; then cp ../nnpdf31_proc/"${dataset}"/postrun.sh . From b9a35dddbb7c8be63d235af05e75e9def69d0ed7 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Wed, 3 Feb 2021 18:12:34 +0100 Subject: [PATCH 06/28] Fix compression when adding metadata --- run.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/run.sh b/run.sh index 0f9b1759..50c3ee28 100755 --- a/run.sh +++ b/run.sh @@ -132,6 +132,15 @@ EOF # merge the final bins "${pineappl}" merge "${grid}" $(ls -v "${dataset}"/Events/run_01*/amcblast_obs_*.pineappl) + # add metadata + if [[ -f ../nnpdf31_proc/"${dataset}"/metadata.txt ]]; then + eval $(awk -F= "BEGIN { printf \"pineappl set $grid $grid.new \" } + { printf \"--entry %s '%s' \", \$1, \$2 } + END { printf \"\\n\" }" \ + ../nnpdf31_proc/"${dataset}"/metadata.txt) + mv $grid.new ${grid} + fi + lz4=$(which lz4 2> /dev/null || true) # compress the grid with `lz4` if it's available @@ -167,15 +176,6 @@ EOF rm results.mg5_aMC results.grid - # add metadata - if [[ -f ../nnpdf31_proc/"${dataset}"/metadata.txt ]]; then - eval $(awk -F= "BEGIN { printf \"pineappl set $grid $grid.new \" } - { printf \"--entry %s '%s' \", \$1, \$2 } - END { printf \"\\n\" }" \ - ../nnpdf31_proc/"${dataset}"/metadata.txt) - mv $grid.new $grid - fi - # if there is anything to do after the run, do it! if [[ -x ../nnpdf31_proc/"${dataset}"/postrun.sh ]]; then cp ../nnpdf31_proc/"${dataset}"/postrun.sh . From 770bc4dec9799c49a61a81e2757d715e4051ef81 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Sun, 7 Feb 2021 11:46:10 +0100 Subject: [PATCH 07/28] Optimize grids after creation --- run.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/run.sh b/run.sh index 50c3ee28..f9004fa1 100755 --- a/run.sh +++ b/run.sh @@ -132,6 +132,10 @@ EOF # merge the final bins "${pineappl}" merge "${grid}" $(ls -v "${dataset}"/Events/run_01*/amcblast_obs_*.pineappl) + # optimize the grids + "${pineappl}" optimize "${grid}" "${grid}".tmp + mv "${grid}".tmp "${grid}" + # add metadata if [[ -f ../nnpdf31_proc/"${dataset}"/metadata.txt ]]; then eval $(awk -F= "BEGIN { printf \"pineappl set $grid $grid.new \" } From 55ceda41b795f665b224e5e644d13021905dadb5 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Mon, 8 Feb 2021 10:17:50 +0100 Subject: [PATCH 08/28] Insert runcard into grids --- run.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/run.sh b/run.sh index f9004fa1..cb914bed 100755 --- a/run.sh +++ b/run.sh @@ -138,9 +138,10 @@ EOF # add metadata if [[ -f ../nnpdf31_proc/"${dataset}"/metadata.txt ]]; then + runcard="${dataset}"/Events/run_01*/run_01_tag_1_banner.txt eval $(awk -F= "BEGIN { printf \"pineappl set $grid $grid.new \" } { printf \"--entry %s '%s' \", \$1, \$2 } - END { printf \"\\n\" }" \ + END { printf \"--entry_from_file runcard ${runcard}\\n\" }" \ ../nnpdf31_proc/"${dataset}"/metadata.txt) mv $grid.new ${grid} fi From d8e6fed006573031e5f5d0b8552e81b90884f478 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Wed, 9 Dec 2020 10:20:18 +0100 Subject: [PATCH 09/28] Enable boolean cuts --- run.sh | 2 +- run_implement_user_defined_cuts.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/run.sh b/run.sh index cb914bed..71ae2cc4 100755 --- a/run.sh +++ b/run.sh @@ -118,7 +118,7 @@ EOF # if there are user-defined cuts, implement them if [[ -n ${user_defined_cuts[@]} ]]; then - user_defined_cuts=( $(echo "${user_defined_cuts[@]}" | grep -Eo '\w+[[:blank:]]+=[[:blank:]]+[+-]?[0-9]+([.][0-9]+)?') ) + user_defined_cuts=( $(echo "${user_defined_cuts[@]}" | grep -Eo '\w+[[:blank:]]+=[[:blank:]]+([+-]?[0-9]+([.][0-9]+)?|True|False)') ) ../run_implement_user_defined_cuts.py "${dataset}"/SubProcesses/cuts.f "${user_defined_cuts[@]}" fi diff --git a/run_implement_user_defined_cuts.py b/run_implement_user_defined_cuts.py index 84be19f4..f338ad52 100755 --- a/run_implement_user_defined_cuts.py +++ b/run_implement_user_defined_cuts.py @@ -162,7 +162,19 @@ for i in zip(reversed(sys.argv[2::3]), reversed(sys.argv[4::3])): name = i[0] value = i[1] - code = cuts_code[name].format(float(value)) + + try: + value = float(value) + except ValueError: + if value == "True": + value = ".true." + elif value == "False": + value = ".false." + else: + print('Error: format of value `{}` not understood'.format(value)) + exit(6) + + code = cuts_code[name].format(value) contents.insert(marker_pos, code) with open(filename, 'w') as fd: From 375dd3945a463ea8366255ccaa3896c8eff195a7 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 11 Feb 2021 10:53:25 +0100 Subject: [PATCH 10/28] Improve output of the final check --- run.sh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/run.sh b/run.sh index 71ae2cc4..bc6bc048 100755 --- a/run.sh +++ b/run.sh @@ -172,12 +172,17 @@ EOF # compare the results from the grid and from mg5_aMC paste -d ' ' results.grid results.mg5_aMC | awk \ 'function abs(x) { return x < 0.0 ? -x : x; } - BEGIN { print "----------------------------------------------------------------------------------------" - print " PineAPPL mg5_aMC mg5_aMC unc. sigmas per mille 9-point scale var. (MC)" - print "----------------------------------------------------------------------------------------" } - { printf "% e % e %e %8.3f %10.4f % e % e\n", - $1, $4, $5, $5 != 0.0 ? abs($1-$4)/$5 : 0.0, $4 != 0.0 ? abs($1-$4)/$4*1000 : 0.0, $7, $8 }' | \ - tee results.log + BEGIN { print "---------------------------------------------------------------------------------" + print " PineAPPL MC MC unc. sigmas 1/1000 9-point scale var. (MC)" + print "---------------------------------------------------------------------------------" } + { printf "% e % e %7.3f%% %7.3f %8.4f % e % e\n", + $1, + $4, + $4 != 0.0 ? $5/$4*100 : 0.0, + $5 != 0.0 ? abs($1-$4)/$5 : 0.0, + $4 != 0.0 ? abs($1-$4)/$4*1000 : 0.0, + $7, + $8 }' | tee results.log rm results.mg5_aMC results.grid From b8abd79dedb61a6cc8eeb8751c6b01f8fd3e7f29 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 11 Feb 2021 12:04:25 +0100 Subject: [PATCH 11/28] Print scale-varied differences --- README.md | 8 +++++++- run.sh | 50 ++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 45 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index a16f29be..dac0a1eb 100644 --- a/README.md +++ b/README.md @@ -116,5 +116,11 @@ The contents of this directory are: * `pineappl.orders`: Output of `pineappl orders` * `pineappl.pdf_uncertainty`: Output of `pineappl pdf_uncertainty` * `results.log`: The numerical results of the run, comparing the results of the - grid against the results from `mg5_aMC` + grid against the results from `mg5_aMC`. The first column (PineAPPL) are the + interpolated results, which should be similar to the Monte Carlo (MC) results + in the second column. The third column gives the relative MC uncertainty + (sigma). The next column gives the differences in terms of sigma. The final + three columns give the per mille differences of the central, minimum, and + maximum scale varied results. Ideally the first two columns are the same and + the remaining columns are zero. * `time.log`: Total `time` needed for the run diff --git a/run.sh b/run.sh index bc6bc048..6f6dac1f 100755 --- a/run.sh +++ b/run.sh @@ -159,7 +159,7 @@ EOF pdfstring=$(grep "set lhaid" "${launch_file}" | sed 's/set lhaid \([0-9]\+\)/\1/') # (re-)produce predictions - "${pineappl}" convolute "${grid}" "${pdfstring}" --scales 9 > pineappl.convolute + "${pineappl}" convolute "${grid}" "${pdfstring}" --scales 9 --absolute > pineappl.convolute "${pineappl}" orders "${grid}" "${pdfstring}" --absolute > pineappl.orders "${pineappl}" pdf_uncertainty --threads=1 "${grid}" "${pdfstring}" > pineappl.pdf_uncertainty @@ -167,22 +167,48 @@ EOF sed '/^ [+-]/!d' "${dataset}"/Events/run_01*/MADatNLO.HwU > results.mg5_aMC # extract the integrated results from the PineAPPL grid - cat pineappl.convolute | head -n -2 | tail -n +5 | awk '{ print $5 }' > results.grid + cat pineappl.convolute | head -n -2 | tail -n +5 | \ + awk '{ print $5, $6, $7, $8, $9, $10, $11, $12, $13, $14 }' > results.grid # compare the results from the grid and from mg5_aMC paste -d ' ' results.grid results.mg5_aMC | awk \ 'function abs(x) { return x < 0.0 ? -x : x; } - BEGIN { print "---------------------------------------------------------------------------------" - print " PineAPPL MC MC unc. sigmas 1/1000 9-point scale var. (MC)" - print "---------------------------------------------------------------------------------" } - { printf "% e % e %7.3f%% %7.3f %8.4f % e % e\n", + function max(x1,x2,x3,x4,x5,x6,x7,x8,x9) { + result=x1; + if (x2 > result) { result = x2; } + if (x3 > result) { result = x3; } + if (x4 > result) { result = x4; } + if (x5 > result) { result = x5; } + if (x6 > result) { result = x6; } + if (x7 > result) { result = x7; } + if (x8 > result) { result = x8; } + if (x9 > result) { result = x9; } + return result; + } + function min(x1,x2,x3,x4,x5,x6,x7,x8,x9) { + result=x1; + if (x2 < result) { result = x2; } + if (x3 < result) { result = x3; } + if (x4 < result) { result = x4; } + if (x5 < result) { result = x5; } + if (x6 < result) { result = x6; } + if (x7 < result) { result = x7; } + if (x8 < result) { result = x8; } + if (x9 < result) { result = x9; } + return result; + } + BEGIN { print "-----------------------------------------------------------------------" + print " PineAPPL MC sigma diff. central min max " + print " sigma 1/1000 1/1000 1/1000" + print "-----------------------------------------------------------------------" } + { printf "% e % e %7.3f%% %7.3f %8.4f %8.4f %8.4f\n", $1, - $4, - $4 != 0.0 ? $5/$4*100 : 0.0, - $5 != 0.0 ? abs($1-$4)/$5 : 0.0, - $4 != 0.0 ? abs($1-$4)/$4*1000 : 0.0, - $7, - $8 }' | tee results.log + $13, + $13 != 0.0 ? $14/$13*100 : 0.0, + $14 != 0.0 ? abs($1-$13)/$14 : 0.0, + $13 != 0.0 ? abs($1-$13)/$13*1000 : 0.0, + $16 != 0.0 ? abs(min($2, $3, $4, $5, $6, $7, $8, $9, $10)-$16)/$16*1000 : 0.0, + $17 != 0.0 ? abs(max($2, $3, $4, $5, $6, $7, $8, $9, $10)-$17)/$17*1000 : 0.0 }' | tee results.log rm results.mg5_aMC results.grid From 250f71cd51842ef4e49e9e26d5d2dfbeaac4ead6 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 11 Feb 2021 13:04:50 +0100 Subject: [PATCH 12/28] Simplify writing of postrun scripts - grid compression is done at the very end of `run.sh` --- run.sh | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/run.sh b/run.sh index 6f6dac1f..41527d73 100755 --- a/run.sh +++ b/run.sh @@ -146,15 +146,6 @@ EOF mv $grid.new ${grid} fi - lz4=$(which lz4 2> /dev/null || true) - - # compress the grid with `lz4` if it's available - if [[ -x ${lz4} ]]; then - lz4 -9 "${grid}" - rm "${grid}" - grid="${grid}.lz4" - fi - # find out which PDF set was used to generate the predictions pdfstring=$(grep "set lhaid" "${launch_file}" | sed 's/set lhaid \([0-9]\+\)/\1/') @@ -217,6 +208,14 @@ EOF cp ../nnpdf31_proc/"${dataset}"/postrun.sh . GRID=$grid ./postrun.sh fi + + lz4=$(which lz4 2> /dev/null || true) + + # compress the grid with `lz4` if it's available + if [[ -x ${lz4} ]]; then + lz4 -9 "${grid}" + rm "${grid}" + fi } check_args_and_cd_output "$@" From 38f85a7d0dcecb3bdda90f8f38af285a7868de54 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 11 Feb 2021 13:28:12 +0100 Subject: [PATCH 13/28] Add runcard even if there is no `metadata.txt` --- run.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/run.sh b/run.sh index 41527d73..1315fb8a 100755 --- a/run.sh +++ b/run.sh @@ -137,14 +137,16 @@ EOF mv "${grid}".tmp "${grid}" # add metadata + runcard="${dataset}"/Events/run_01*/run_01_tag_1_banner.txt if [[ -f ../nnpdf31_proc/"${dataset}"/metadata.txt ]]; then - runcard="${dataset}"/Events/run_01*/run_01_tag_1_banner.txt - eval $(awk -F= "BEGIN { printf \"pineappl set $grid $grid.new \" } + eval $(awk -F= "BEGIN { printf \"pineappl set ${grid} ${grid}.tmp \" } { printf \"--entry %s '%s' \", \$1, \$2 } END { printf \"--entry_from_file runcard ${runcard}\\n\" }" \ ../nnpdf31_proc/"${dataset}"/metadata.txt) - mv $grid.new ${grid} + else + "${pineappl}" set "${grid}" "${grid}".tmp --entry_from_file runcard ${runcard} fi + mv "${grid}".tmp "${grid}" # find out which PDF set was used to generate the predictions pdfstring=$(grep "set lhaid" "${launch_file}" | sed 's/set lhaid \([0-9]\+\)/\1/') From ff134829084c8343047aa7ee89b460945f387aa5 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 11 Feb 2021 13:32:29 +0100 Subject: [PATCH 14/28] Add results to metadata --- run.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/run.sh b/run.sh index 1315fb8a..5db22ff8 100755 --- a/run.sh +++ b/run.sh @@ -205,6 +205,9 @@ EOF rm results.mg5_aMC results.grid + "${pineappl}" set "${grid}" "${grid}".tmp --entry_from_file results results.log + mv "${grid}".tmp "${grid}" + # if there is anything to do after the run, do it! if [[ -x ../nnpdf31_proc/"${dataset}"/postrun.sh ]]; then cp ../nnpdf31_proc/"${dataset}"/postrun.sh . From 34edf176c1f750ddd93963d484a176bca09921f7 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Wed, 17 Feb 2021 23:13:46 +0100 Subject: [PATCH 15/28] Fix center-of-mass energy --- nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt | 4 ++-- nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt index f3b32a55..c431114b 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt @@ -2,8 +2,8 @@ launch @OUTPUT@ fixed_order = ON set mz @MZ@ set ymt @YMT@ -set ebeam1 6500 -set ebeam2 6500 +set ebeam1 4000 +set ebeam2 4000 set pdlabel lhapdf set lhaid 324900 set dynamical_scale_choice 10 diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt index fdd5162f..1df9e435 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt @@ -2,8 +2,8 @@ launch @OUTPUT@ fixed_order = ON set mz @MZ@ set ymt @YMT@ -set ebeam1 6500 -set ebeam2 6500 +set ebeam1 4000 +set ebeam2 4000 set pdlabel lhapdf set lhaid 324900 set dynamical_scale_choice 10 From 253c9ea5c7a849fccafa6aa5d3aa2c4639b160fd Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 29 Oct 2020 12:01:09 +0100 Subject: [PATCH 16/28] Add abscoscs{min,max} cuts --- run_implement_user_defined_cuts.py | 111 +++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/run_implement_user_defined_cuts.py b/run_implement_user_defined_cuts.py index f338ad52..a26b374f 100755 --- a/run_implement_user_defined_cuts.py +++ b/run_implement_user_defined_cuts.py @@ -3,6 +3,14 @@ import os.path import sys +cuts_variables = { + 'abscoscs': '''c variables for abscoscs cuts + real*8 zcoscs,zenl,zptxl,zptyl,zpzl,zenal,zptxal,zptyal,zpzal + real*8 zpzll,zmll,zp1p,zp1m,zp2p,zp2m,zpt2ll + integer zlep,zalep +''', +} + cuts_code = { 'mmllmax': '''c cut for mmllmax (SFOS lepton pairs) do i=1,nexternal-1 @@ -111,6 +119,90 @@ endif enddo +''', + 'abscoscsmin': '''c cut on the minimum of the absolute value of the cosine of the Collins-Soper angle of SFOS pairs + do i=1,nexternal-1 + if (is_a_lm(i) .or. is_a_lp(i)) then + do j=i+1,nexternal + if (ipdg_reco(i) .eq. -ipdg_reco(j)) then + if (is_a_lm(i)) then + zlep=i + zalep=j + else + zlep=j + zalep=i + endif + zenl=p_reco(0,zlep) + zptxl=p_reco(1,zlep) + zptyl=p_reco(2,zlep) + zpzl=p_reco(3,zlep) + zenal=p_reco(0,zalep) + zptxal=p_reco(1,zalep) + zptyal=p_reco(2,zalep) + zpzal=p_reco(3,zalep) +c implementation of first formula on page 6 of https://arxiv.org/abs/1710.05167 + zp1p=zenl+zpzl + zp1m=zenl-zpzl + zp2p=zenal+zpzal + zp2m=zenal-zpzal + zpzll=zpzl+zpzal + zpt2ll=(zptxl+zptxal)*(zptxl+zptxal)+ + & (zptyl+zptyal)*(zptyl+zptyal) + zmll=sqrt((zenl+zenal)*(zenl+zenal)-(zpt2ll+zpzll*zpzll)) + zcoscs=sign((zp1p*zp2m-zp1m*zp2p)/ + & sqrt(zmll*zmll+zpt2ll)/zmll,zpzll) + + if (abs(zcoscs) .lt. {}) then + passcuts_user=.false. + return + endif + endif + enddo + endif + enddo + +''', + 'abscoscsmax': '''c cut on the maximum of the absolute value of the cosine of the Collins-Soper angle of SFOS pairs + do i=1,nexternal-1 + if (is_a_lm(i) .or. is_a_lp(i)) then + do j=i+1,nexternal + if (ipdg_reco(i) .eq. -ipdg_reco(j)) then + if (is_a_lm(i)) then + zlep=i + zalep=j + else + zlep=j + zalep=i + endif + zenl=p_reco(0,zlep) + zptxl=p_reco(1,zlep) + zptyl=p_reco(2,zlep) + zpzl=p_reco(3,zlep) + zenal=p_reco(0,zalep) + zptxal=p_reco(1,zalep) + zptyal=p_reco(2,zalep) + zpzal=p_reco(3,zalep) +c implementation of first formula on page 6 of https://arxiv.org/abs/1710.05167 + zp1p=zenl+zpzl + zp1m=zenl-zpzl + zp2p=zenal+zpzal + zp2m=zenal-zpzal + zpzll=zpzl+zpzal + zpt2ll=(zptxl+zptxal)*(zptxl+zptxal)+ + & (zptyl+zptyal)*(zptyl+zptyal) + zmll=sqrt((zenl+zenal)*(zenl+zenal)-(zpt2ll+zpzll*zpzll)) + zcoscs=sign((zp1p*zp2m-zp1m*zp2p)/ + & sqrt(zmll*zmll+zpt2ll)/zmll,zpzll) + + if (abs(zcoscs) .gt. {}) then + passcuts_user=.false. + return + endif + endif + enddo + endif + enddo + ''', } @@ -141,6 +233,25 @@ with open(filename, 'r') as fd: contents = fd.readlines() + insertion_marker = 'logical function passcuts_user' + marker_pos = -1 + + for lineno, value in enumerate(contents): + if insertion_marker in value: + marker_pos = lineno + break + + if marker_pos == -1: + print('Error: could not find insertion marker `{}` in cut file `{}`' + .format(insertion_marker, filename)) + exit(5) + + marker_pos = marker_pos + 8 + + for name in cuts_variables: + if any(i[0].startswith(name) for i in zip(sys.argv[2::3])): + contents.insert(marker_pos, cuts_variables[name]) + insertion_marker = 'USER-DEFINED CUTS' marker_pos = -1 From b8fe310533c89f1e95ed7eb8945881d4c03de0d5 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 18 Feb 2021 09:49:38 +0100 Subject: [PATCH 17/28] Implement atlas_zpt_8tev_mdist cut --- run_implement_user_defined_cuts.py | 61 ++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/run_implement_user_defined_cuts.py b/run_implement_user_defined_cuts.py index a26b374f..d66caf51 100755 --- a/run_implement_user_defined_cuts.py +++ b/run_implement_user_defined_cuts.py @@ -8,6 +8,9 @@ real*8 zcoscs,zenl,zptxl,zptyl,zpzl,zenal,zptxal,zptyal,zpzal real*8 zpzll,zmll,zp1p,zp1m,zp2p,zp2m,zpt2ll integer zlep,zalep +''', + 'atlas_zpt_8tev_mdist': '''c variables for atlas_zpt_8tev_mdist cut + double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,xmll ''', } @@ -203,6 +206,64 @@ endif enddo +''', + 'atlas_zpt_8tev_mdist': '''c + if ({}) then + do i = nincoming+1, nexternal + if (iPDG_reco(i).eq.13) ppl(0:3)=p_reco(0:3,i) + if (iPDG_reco(i).eq.-13) pplb(0:3)=p_reco(0:3,i) + enddo + do i=0,3 + ppv(i)=ppl(i)+pplb(i) + enddo + + xmll=sqrt(ppv(0)**2-ppv(1)**2-ppv(2)**2-ppv(3)**2) + ptv=sqrt(ppv(1)**2+ppv(2)**2) + + if (ptv.gt.900d0) then + passcuts_user=.false. + return + endif + + if (xmll.lt.12d0) then + passcuts_user=.false. + return + elseif (xmll.lt.20d0) then + if (ptv.lt.45d0) then + passcuts_user=.false. + return + endif + elseif (xmll.lt.30d0) then + if (ptv.lt.45d0) then + passcuts_user=.false. + return + endif + elseif (xmll.lt.46d0) then + if (ptv.lt.45d0) then + passcuts_user=.false. + return + endif + elseif (xmll.lt.66d0) then + if (ptv.lt.30d0) then + passcuts_user=.false. + return + endif + elseif (xmll.lt.116d0) then + if (ptv.lt.27.5d0) then + passcuts_user=.false. + return + endif + elseif (xmll.lt.150d0) then + if (ptv.lt.30d0) then + passcuts_user=.false. + return + endif + else + passcuts_user=.false. + return + endif + endif + ''', } From e0e8dd654733380be0f1b524f6fdecfbfaa832a2 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 18 Feb 2021 09:52:05 +0100 Subject: [PATCH 18/28] Fix binning and cuts --- nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f | 254 ++++++++++++++++++---- nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt | 8 +- nnpdf31_proc/ATLASZPT8TEVMDIST/postrun.sh | 4 + 3 files changed, 217 insertions(+), 49 deletions(-) create mode 100755 nnpdf31_proc/ATLASZPT8TEVMDIST/postrun.sh diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f b/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f index 9a456aaf..e34834a3 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f @@ -8,7 +8,7 @@ subroutine analysis_begin(nwgt,weights_info) call set_error_estimation(1) call HwU_inithist(nwgt,weights_info) - call HwU_book(1,'Z pT', 60, 0d0, 60d0) + call HwU_book(1,'Z pT', 74, 0d0, 74d0) return end @@ -33,11 +33,10 @@ subroutine analysis_fill(p,istatus,ipdg,wgts,ibody) integer istatus(nexternal) integer iPDG(nexternal) integer ibody - integer i,ptbin,mllbin - integer j + integer i double precision p(0:4,nexternal) double precision wgts(*) - double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,xmll + double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,xmll,xbin double precision getinvm external getinvm @@ -47,55 +46,222 @@ subroutine analysis_fill(p,istatus,ipdg,wgts,ibody) call recombine_momenta(rphreco, etaphreco, lepphreco, quarkphreco, $ p, iPDG, p_reco, iPDG_reco) - do j = nincoming+1, nexternal - if (iPDG_reco(j).eq.13) ppl(0:3)=p_reco(0:3,j) - if (iPDG_reco(j).eq.-13) pplb(0:3)=p_reco(0:3,j) + do i = nincoming+1, nexternal + if (iPDG_reco(i).eq.13) ppl(0:3)=p_reco(0:3,i) + if (iPDG_reco(i).eq.-13) pplb(0:3)=p_reco(0:3,i) enddo do i=0,3 ppv(i)=ppl(i)+pplb(i) enddo - ptv=sqrt(ppv(1)**2+ppv(2)**2) - - if (ptv.ge.30d0.and.ptv.lt.37d0) then - ptbin = 0 - elseif (ptv.ge.37d0.and.ptv.lt.45d0) then - ptbin = 1 - elseif (ptv.ge.45d0.and.ptv.lt.55d0) then - ptbin = 2 - elseif (ptv.ge.55d0.and.ptv.lt.65d0) then - ptbin = 3 - elseif (ptv.ge.65d0.and.ptv.lt.75d0) then - ptbin = 4 - elseif (ptv.ge.75d0.and.ptv.lt.85d0) then - ptbin = 5 - elseif (ptv.ge.85d0.and.ptv.lt.105d0) then - ptbin = 6 - elseif (ptv.ge.105d0.and.ptv.lt.150d0) then - ptbin = 7 - elseif (ptv.ge.150d0.and.ptv.lt.200d0) then - ptbin = 8 - elseif (ptv.ge.200d0.and.ptv.lt.900d0) then - ptbin = 9 - endif - xmll=getinvm(ppv(0),ppv(1),ppv(2),ppv(3)) + ptv=sqrt(ppv(1)**2+ppv(2)**2) - if (xmll.ge.12d0.and.xmll.lt.20d0) then - mllbin = 0 - elseif (xmll.ge.20d0.and.xmll.lt.30d0) then - mllbin = 1 - elseif (xmll.ge.30d0.and.xmll.lt.46d0) then - mllbin = 2 - elseif (xmll.ge.46d0.and.xmll.lt.66d0) then - mllbin = 3 - elseif (xmll.ge.66d0.and.xmll.lt.116d0) then - mllbin = 4 - elseif (xmll.ge.116d0.and.xmll.lt.150d0) then - mllbin = 5 + if (xmll.lt.12d0) then + write (*,*) "error: event outside bins", xmll + stop 1 + elseif (xmll.lt.20d0) then + if (ptv.lt.45d0) then + write (*,*) "error: event outside bins", ptv + stop 1 + elseif (ptv.lt.55d0) then + xbin = 0.5d0 + elseif (ptv.lt.65d0) then + xbin = 1.5d0 + elseif (ptv.lt.75d0) then + xbin = 2.5d0 + elseif (ptv.lt.85d0) then + xbin = 3.5d0 + elseif (ptv.lt.105d0) then + xbin = 4.5d0 + elseif (ptv.lt.150d0) then + xbin = 5.5d0 + elseif (ptv.lt.200d0) then + xbin = 6.5d0 + elseif (ptv.lt.900d0) then + xbin = 7.5d0 + else + write (*,*) "error: event outside bins", ptv + stop 1 + endif + elseif (xmll.lt.30d0) then + if (ptv.lt.45d0) then + write (*,*) "error: event outside bins", ptv + stop 1 + elseif (ptv.lt.55d0) then + xbin = 8.5d0 + elseif (ptv.lt.65d0) then + xbin = 9.5d0 + elseif (ptv.lt.75d0) then + xbin = 10.5d0 + elseif (ptv.lt.85d0) then + xbin = 11.5d0 + elseif (ptv.lt.105d0) then + xbin = 12.5d0 + elseif (ptv.lt.150d0) then + xbin = 13.5d0 + elseif (ptv.lt.200d0) then + xbin = 14.5d0 + elseif (ptv.lt.900d0) then + xbin = 15.5d0 + else + write (*,*) "error: event outside bins", ptv + stop 1 + endif + elseif (xmll.lt.46d0) then + if (ptv.lt.45d0) then + write (*,*) "error: event outside bins", ptv + stop 1 + elseif (ptv.lt.55d0) then + xbin = 16.5d0 + elseif (ptv.lt.65d0) then + xbin = 17.5d0 + elseif (ptv.lt.75d0) then + xbin = 18.5d0 + elseif (ptv.lt.85d0) then + xbin = 19.5d0 + elseif (ptv.lt.105d0) then + xbin = 20.5d0 + elseif (ptv.lt.150d0) then + xbin = 21.5d0 + elseif (ptv.lt.200d0) then + xbin = 22.5d0 + elseif (ptv.lt.900d0) then + xbin = 23.5d0 + else + write (*,*) "error: event outside bins", ptv + stop 1 + endif + elseif (xmll.lt.66d0) then + if (ptv.lt.30d0) then + write (*,*) "error: event outside bins", ptv + stop 1 + elseif (ptv.lt.37d0) then + xbin = 24.5d0 + elseif (ptv.lt.45d0) then + xbin = 25.5d0 + elseif (ptv.lt.55d0) then + xbin = 26.5d0 + elseif (ptv.lt.65d0) then + xbin = 27.5d0 + elseif (ptv.lt.75d0) then + xbin = 28.5d0 + elseif (ptv.lt.85d0) then + xbin = 29.5d0 + elseif (ptv.lt.105d0) then + xbin = 30.5d0 + elseif (ptv.lt.150d0) then + xbin = 31.5d0 + elseif (ptv.lt.200d0) then + xbin = 32.5d0 + elseif (ptv.lt.900d0) then + xbin = 33.5d0 + else + write (*,*) "error: event outside bins", ptv + stop 1 + endif + elseif (xmll.lt.116d0) then + if (ptv.lt.27.5d0) then + write (*,*) "error: event outside bins", ptv + stop 1 + elseif (ptv.lt.30d0) then + xbin = 34.5d0 + elseif (ptv.lt.33d0) then + xbin = 35.5d0 + elseif (ptv.lt.36d0) then + xbin = 36.5d0 + elseif (ptv.lt.39d0) then + xbin = 37.5d0 + elseif (ptv.lt.42d0) then + xbin = 38.5d0 + elseif (ptv.lt.45d0) then + xbin = 39.5d0 + elseif (ptv.lt.48d0) then + xbin = 40.5d0 + elseif (ptv.lt.51d0) then + xbin = 41.5d0 + elseif (ptv.lt.54d0) then + xbin = 42.5d0 + elseif (ptv.lt.57d0) then + xbin = 43.5d0 + elseif (ptv.lt.61d0) then + xbin = 44.5d0 + elseif (ptv.lt.65d0) then + xbin = 45.5d0 + elseif (ptv.lt.70d0) then + xbin = 46.5d0 + elseif (ptv.lt.75d0) then + xbin = 47.5d0 + elseif (ptv.lt.80d0) then + xbin = 48.5d0 + elseif (ptv.lt.85d0) then + xbin = 49.5d0 + elseif (ptv.lt.95d0) then + xbin = 50.5d0 + elseif (ptv.lt.105d0) then + xbin = 51.5d0 + elseif (ptv.lt.125d0) then + xbin = 52.5d0 + elseif (ptv.lt.150d0) then + xbin = 53.5d0 + elseif (ptv.lt.175d0) then + xbin = 54.5d0 + elseif (ptv.lt.200d0) then + xbin = 55.5d0 + elseif (ptv.lt.250d0) then + xbin = 56.5d0 + elseif (ptv.lt.300d0) then + xbin = 57.5d0 + elseif (ptv.lt.350d0) then + xbin = 58.5d0 + elseif (ptv.lt.400d0) then + xbin = 59.5d0 + elseif (ptv.lt.470d0) then + xbin = 60.5d0 + elseif (ptv.lt.550d0) then + xbin = 61.5d0 + elseif (ptv.lt.650d0) then + xbin = 62.5d0 + elseif (ptv.lt.900d0) then + xbin = 63.5d0 + else + write (*,*) "error: event outside bins", ptv + stop 1 + endif + elseif (xmll.lt.150d0) then + if (ptv.lt.30d0) then + write (*,*) "error: event outside bins", ptv + stop 1 + elseif (ptv.lt.37d0) then + xbin = 64.5d0 + elseif (ptv.lt.45d0) then + xbin = 65.5d0 + elseif (ptv.lt.55d0) then + xbin = 66.5d0 + elseif (ptv.lt.65d0) then + xbin = 67.5d0 + elseif (ptv.lt.75d0) then + xbin = 68.5d0 + elseif (ptv.lt.85d0) then + xbin = 69.5d0 + elseif (ptv.lt.105d0) then + xbin = 70.5d0 + elseif (ptv.lt.150d0) then + xbin = 71.5d0 + elseif (ptv.lt.200d0) then + xbin = 72.5d0 + elseif (ptv.lt.900d0) then + xbin = 73.5d0 + else + write (*,*) "error: event outside bins", ptv + stop 1 + endif + else + write (*,*) "error: event outside bins", xmll + stop 1 endif - call HwU_fill(1,dble(10*mllbin+ptbin),wgts) + call HwU_fill(1,xbin,wgts) 999 return end diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt index c431114b..16fd5250 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt @@ -8,14 +8,12 @@ set pdlabel lhapdf set lhaid 324900 set dynamical_scale_choice 10 set reweight_scale True -set ptl = 20.0 +set ptl = 0.0 set etal = 2.4 -set mll = 12.0 set ptj = 0.0 -#user_defined_cut set mmllmax = 150.0 -#user_defined_cut set ptzmin = 30.0 -#user_defined_cut set ptzmax = 900.0 +set mll_sf = 12.0 #user_defined_cut set yz = 2.4 +#user_defined_cut set atlas_zpt_8tev_mdist = True set req_acc_FO 0.01 set pineappl True done diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/postrun.sh b/nnpdf31_proc/ATLASZPT8TEVMDIST/postrun.sh new file mode 100755 index 00000000..581dca57 --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/postrun.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +pineappl remap "${GRID}" "${GRID}".tmp '12,20,30,46,66,116,150;45,55,65,75,85,105,150,200,900|||30,37,45,55,65,75,85,105,150,200,900|27.5,30,33,36,39,42,45,48,51,54,57,61,65,70,75,80,85,95,105,125,150,175,200,250,300,350,400,470,550,650,900|30,37,45,55,65,75,85,105,150,200,900' --ignore_obs_norm 1 +mv "${GRID}".tmp "${GRID}" From ba2101a19b1fc5e0f9a9bf8ee16b75b144219265 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 18 Feb 2021 09:59:02 +0100 Subject: [PATCH 19/28] Add metadata --- nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt | 10 ++++++++++ nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt | 9 +++++++++ 2 files changed, 19 insertions(+) create mode 100644 nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt create mode 100644 nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt new file mode 100644 index 00000000..d9c87983 --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt @@ -0,0 +1,10 @@ +arxiv=1512.02192 +description=ATLAS transverse momentum of the Z boson at 8 TeV +hepdata=10.17182/hepdata.71339.v1/t35, 10.17182/hepdata.71339.v1/t36, 10.17182/hepdata.71339.v1/t37, 10.17182/hepdata.71339.v1/t38, 10.17182/hepdata.71339.v1/t39, 10.17182/hepdata.71339.v1/t40 +x1_label=M_ll +x1_label_tex=$M_{\ell\bar{\ell}}$ +x1_unit=GeV +x2_label=pt_ll +x2_label_tex=$p_\mathrm{T}^{\ell\bar{\ell}}$ +x2_unit=GeV +y_unit=pb diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt new file mode 100644 index 00000000..47f99f44 --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt @@ -0,0 +1,9 @@ +arxiv=1512.02192 +description=ATLAS transverse momentum of the Z boson at 8 TeV +hepdata=10.17182/hepdata.71339.v1/t29, 10.17182/hepdata.71339.v1/t30, 10.17182/hepdata.71339.v1/t31, 10.17182/hepdata.71339.v1/t32, 10.17182/hepdata.71339.v1/t33, 10.17182/hepdata.71339.v1/t34 +x1_label=y_ll +x1_label_tex=$y_{\ell\bar{\ell}}$ +x2_label=pt_ll +x2_label_tex=$p_\mathrm{T}^{\ell\bar{\ell}}$ +x2_unit=GeV +y_unit=pb From 005a868129153c7ba4da2e3830f7f36020947fe2 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 18 Feb 2021 11:41:02 +0100 Subject: [PATCH 20/28] Fix analysis file and cuts --- nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt | 2 +- nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f | 91 +++++++++++++++-------- nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt | 4 +- nnpdf31_proc/ATLASZPT8TEVYDIST/postrun.sh | 4 + 4 files changed, 69 insertions(+), 32 deletions(-) create mode 100755 nnpdf31_proc/ATLASZPT8TEVYDIST/postrun.sh diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt index 16fd5250..21b51b98 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt @@ -8,7 +8,7 @@ set pdlabel lhapdf set lhaid 324900 set dynamical_scale_choice 10 set reweight_scale True -set ptl = 0.0 +set ptl = 20.0 set etal = 2.4 set ptj = 0.0 set mll_sf = 12.0 diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f b/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f index 0ec37ad8..f31388be 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f @@ -8,7 +8,8 @@ subroutine analysis_begin(nwgt,weights_info) call set_error_estimation(1) call HwU_inithist(nwgt,weights_info) - call HwU_book(1,'Z pT', 60, 0d0, 60d0) + call HwU_book(1,'Z pT', 80, 0d0, 80d0) + call HwU_book(2,'Z pT', 40,80d0,120d0) return end @@ -33,11 +34,10 @@ subroutine analysis_fill(p,istatus,ipdg,wgts,ibody) integer istatus(nexternal) integer iPDG(nexternal) integer ibody - integer i,ptbin - integer j + integer i double precision p(0:4,nexternal) double precision wgts(*) - double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,yll + double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,xyll,xbin double precision getabsy external getabsy @@ -47,41 +47,74 @@ subroutine analysis_fill(p,istatus,ipdg,wgts,ibody) call recombine_momenta(rphreco, etaphreco, lepphreco, quarkphreco, $ p, iPDG, p_reco, iPDG_reco) - do j = nincoming+1, nexternal - if (iPDG_reco(j).eq.13) ppl(0:3)=p_reco(0:3,j) - if (iPDG_reco(j).eq.-13) pplb(0:3)=p_reco(0:3,j) + do i = nincoming+1, nexternal + if (iPDG_reco(i).eq.13) ppl(0:3)=p_reco(0:3,i) + if (iPDG_reco(i).eq.-13) pplb(0:3)=p_reco(0:3,i) enddo do i=0,3 ppv(i)=ppl(i)+pplb(i) enddo + xyll=getabsy(ppv(0),ppv(3)) ptv=sqrt(ppv(1)**2+ppv(2)**2) - if (ptv.ge.30d0.and.ptv.lt.37d0) then - ptbin = 0 - elseif (ptv.ge.37d0.and.ptv.lt.45d0) then - ptbin = 1 - elseif (ptv.ge.45d0.and.ptv.lt.55d0) then - ptbin = 2 - elseif (ptv.ge.55d0.and.ptv.lt.65d0) then - ptbin = 3 - elseif (ptv.ge.65d0.and.ptv.lt.75d0) then - ptbin = 4 - elseif (ptv.ge.75d0.and.ptv.lt.85d0) then - ptbin = 5 - elseif (ptv.ge.85d0.and.ptv.lt.105d0) then - ptbin = 6 - elseif (ptv.ge.105d0.and.ptv.lt.150d0) then - ptbin = 7 - elseif (ptv.ge.150d0.and.ptv.lt.200d0) then - ptbin = 8 - elseif (ptv.ge.200d0.and.ptv.lt.900d0) then - ptbin = 9 + if (xyll.lt.2.4d0) then + xbin = 20d0 * real(int(6d0 * xyll/2.4d0)) + else + write (*,*) "error: event outside bins", ptv, xyll + stop 1 endif - yll=getabsy(ppv(0),ppv(3)) + if (ptv.lt.2d0) then + xbin = xbin + 0.5d0 + elseif (ptv.lt.4d0) then + xbin = xbin + 1.5d0 + elseif (ptv.lt.6d0) then + xbin = xbin + 2.5d0 + elseif (ptv.lt.8d0) then + xbin = xbin + 3.5d0 + elseif (ptv.lt.10d0) then + xbin = xbin + 4.5d0 + elseif (ptv.lt.13d0) then + xbin = xbin + 5.5d0 + elseif (ptv.lt.16d0) then + xbin = xbin + 6.5d0 + elseif (ptv.lt.20d0) then + xbin = xbin + 7.5d0 + elseif (ptv.lt.25d0) then + xbin = xbin + 8.5d0 + elseif (ptv.lt.30d0) then + xbin = xbin + 9.5d0 + elseif (ptv.lt.37d0) then + xbin = xbin + 10.5d0 + elseif (ptv.lt.45d0) then + xbin = xbin + 11.5d0 + elseif (ptv.lt.55d0) then + xbin = xbin + 12.5d0 + elseif (ptv.lt.65d0) then + xbin = xbin + 13.5d0 + elseif (ptv.lt.75d0) then + xbin = xbin + 14.5d0 + elseif (ptv.lt.85d0) then + xbin = xbin + 15.5d0 + elseif (ptv.lt.105d0) then + xbin = xbin + 16.5d0 + elseif (ptv.lt.150d0) then + xbin = xbin + 17.5d0 + elseif (ptv.lt.200d0) then + xbin = xbin + 18.5d0 + elseif (ptv.lt.900d0) then + xbin = xbin + 19.5d0 + else + write (*,*) "error: event outside bins", ptv, xyll + stop 1 + endif - call HwU_fill(1,dble(10*idint(yll/0.4d0)+ptbin),wgts) + if (xbin.lt.80d0) then + call HwU_fill(1,xbin,wgts) + else + call HwU_fill(2,xbin,wgts) + endif 999 return end diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt index 1df9e435..6bb1219b 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt @@ -10,10 +10,10 @@ set dynamical_scale_choice 10 set reweight_scale True set ptl = 20.0 set etal = 2.4 -set mll = 66.0 set ptj = 0.0 +set mll_sf = 66.0 #user_defined_cut set mmllmax = 116.0 -#user_defined_cut set ptzmin = 30.0 +#user_defined_cut set ptzmin = 0.0 #user_defined_cut set ptzmax = 900.0 #user_defined_cut set yz = 2.4 set req_acc_FO 0.01 diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/postrun.sh b/nnpdf31_proc/ATLASZPT8TEVYDIST/postrun.sh new file mode 100755 index 00000000..bd5243de --- /dev/null +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/postrun.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +pineappl remap "${GRID}" "${GRID}".tmp '0,0.4,0.8,1.2,1.6,2,2.4;0,2,4,6,8,10,13,16,20,25,30,37,45,55,65,75,85,105,150,200,900' --ignore_obs_norm 1 +mv "${GRID}".tmp "${GRID}" From f3912879501c5b36777b61907cc5316c6114bce1 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 18 Feb 2021 10:39:13 +0100 Subject: [PATCH 21/28] Set cuts to the parameters chosen by NNPDF --- nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt | 4 +++- nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt index 21b51b98..ac2fe4fe 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt @@ -10,7 +10,9 @@ set dynamical_scale_choice 10 set reweight_scale True set ptl = 20.0 set etal = 2.4 -set ptj = 0.0 +set ptj = 5.0 +set jetradius = 0.5 +set jetalgo = -1 set mll_sf = 12.0 #user_defined_cut set yz = 2.4 #user_defined_cut set atlas_zpt_8tev_mdist = True diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt index 6bb1219b..0a1f29b7 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt @@ -10,7 +10,9 @@ set dynamical_scale_choice 10 set reweight_scale True set ptl = 20.0 set etal = 2.4 -set ptj = 0.0 +set ptj = 5.0 +set jetradius = 0.5 +set jetalgo = -1 set mll_sf = 66.0 #user_defined_cut set mmllmax = 116.0 #user_defined_cut set ptzmin = 0.0 From d307456c8f154363ca4d54e63b0525d235124b57 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Thu, 18 Feb 2021 12:52:12 +0100 Subject: [PATCH 22/28] Increase statistics --- nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt | 2 +- nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt index ac2fe4fe..df2a4129 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt @@ -16,7 +16,7 @@ set jetalgo = -1 set mll_sf = 12.0 #user_defined_cut set yz = 2.4 #user_defined_cut set atlas_zpt_8tev_mdist = True -set req_acc_FO 0.01 +set req_acc_FO 0.0001 set pineappl True done quit diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt index 0a1f29b7..58fa8aa2 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt @@ -18,7 +18,7 @@ set mll_sf = 66.0 #user_defined_cut set ptzmin = 0.0 #user_defined_cut set ptzmax = 900.0 #user_defined_cut set yz = 2.4 -set req_acc_FO 0.01 +set req_acc_FO 0.0001 set pineappl True done quit From edde7cc8448781a1af6efb65886aff970c6f8071 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 26 Mar 2021 13:17:52 +0100 Subject: [PATCH 23/28] Update metadata --- nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt | 10 ++++++---- nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt | 11 +++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt index d9c87983..8f784fc9 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt @@ -1,10 +1,12 @@ arxiv=1512.02192 description=ATLAS transverse momentum of the Z boson at 8 TeV hepdata=10.17182/hepdata.71339.v1/t35, 10.17182/hepdata.71339.v1/t36, 10.17182/hepdata.71339.v1/t37, 10.17182/hepdata.71339.v1/t38, 10.17182/hepdata.71339.v1/t39, 10.17182/hepdata.71339.v1/t40 -x1_label=M_ll +x1_label=Mll x1_label_tex=$M_{\ell\bar{\ell}}$ x1_unit=GeV -x2_label=pt_ll -x2_label_tex=$p_\mathrm{T}^{\ell\bar{\ell}}$ +x2_label=ptll +x2_label_tex=$p_{\mathrm{T},\ell\bar{\ell}}$ x2_unit=GeV -y_unit=pb +y_label=dsig/dptll +y_label_tex=$\frac{\mathrm{d}\sigma}{\mathrm{d}p_{\mathrm{T},\ell\bar{\ell}}}$ +y_unit=pb/GeV diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt index 47f99f44..be0f6522 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt @@ -1,9 +1,12 @@ arxiv=1512.02192 description=ATLAS transverse momentum of the Z boson at 8 TeV hepdata=10.17182/hepdata.71339.v1/t29, 10.17182/hepdata.71339.v1/t30, 10.17182/hepdata.71339.v1/t31, 10.17182/hepdata.71339.v1/t32, 10.17182/hepdata.71339.v1/t33, 10.17182/hepdata.71339.v1/t34 -x1_label=y_ll +x1_label=yll x1_label_tex=$y_{\ell\bar{\ell}}$ -x2_label=pt_ll -x2_label_tex=$p_\mathrm{T}^{\ell\bar{\ell}}$ +x1_unit= +x2_label=ptll +x2_label_tex=$p_{\mathrm{T},\ell\bar{\ell}}$ x2_unit=GeV -y_unit=pb +y_label=dsig/dptll +y_label_tex=$\frac{\mathrm{d}\sigma}{\mathrm{d}p_{\mathrm{T},\ell\bar{\ell}}}$ +y_unit=pb/GeV From c9289331bcf98ecdb9f84f2b923f6c702762874c Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 26 Mar 2021 13:19:04 +0100 Subject: [PATCH 24/28] Update coupling specification --- nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt | 2 +- nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt index b08451c0..818698a6 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt @@ -2,6 +2,6 @@ set complex_mass_scheme True import model loop_qcd_qed_sm_Gmu define p = p b b~ define j = p -generate p p > mu+ mu- j QCD=1 QED=3 [QCD] +generate p p > mu+ mu- j QCD^2<=2 QED^2<=6 [QCD] output @OUTPUT@ quit diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt index b08451c0..64473998 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt @@ -2,6 +2,6 @@ set complex_mass_scheme True import model loop_qcd_qed_sm_Gmu define p = p b b~ define j = p -generate p p > mu+ mu- j QCD=1 QED=3 [QCD] +generate p p > mu+ mu- j QCD^2=2 QED^2=6 [QCD] output @OUTPUT@ quit From 37939baea4c33b2c0eb551c4def66dcb72c47d6b Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 9 Apr 2021 19:41:18 +0200 Subject: [PATCH 25/28] Set missing parameters --- nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt | 9 ++++++++- nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt index df2a4129..63976c3a 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt @@ -1,7 +1,14 @@ launch @OUTPUT@ fixed_order = ON +set gf @GF@ +set mh @MH@ +set mt @MT@ +set mw @MW@ set mz @MZ@ -set ymt @YMT@ +set wh @WH@ +set wt @WT@ +set ww @WW@ +set wz @WZ@ set ebeam1 4000 set ebeam2 4000 set pdlabel lhapdf diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt index 58fa8aa2..0763feb3 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt @@ -1,7 +1,14 @@ launch @OUTPUT@ fixed_order = ON +set gf @GF@ +set mh @MH@ +set mt @MT@ +set mw @MW@ set mz @MZ@ -set ymt @YMT@ +set wh @WH@ +set wt @WT@ +set ww @WW@ +set wz @WZ@ set ebeam1 4000 set ebeam2 4000 set pdlabel lhapdf From 7712c1aa72ebf56dff52ce426aa73b52f251bff0 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Fri, 9 Apr 2021 19:41:28 +0200 Subject: [PATCH 26/28] Add NNPDF identifiers --- nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt | 1 + nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt b/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt index 8f784fc9..d9ff782d 100644 --- a/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt +++ b/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt @@ -1,6 +1,7 @@ arxiv=1512.02192 description=ATLAS transverse momentum of the Z boson at 8 TeV hepdata=10.17182/hepdata.71339.v1/t35, 10.17182/hepdata.71339.v1/t36, 10.17182/hepdata.71339.v1/t37, 10.17182/hepdata.71339.v1/t38, 10.17182/hepdata.71339.v1/t39, 10.17182/hepdata.71339.v1/t40 +nnpdf_id=ATLASZPT8TEVMDIST x1_label=Mll x1_label_tex=$M_{\ell\bar{\ell}}$ x1_unit=GeV diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt b/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt index be0f6522..fa20f9a5 100644 --- a/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt +++ b/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt @@ -1,6 +1,7 @@ arxiv=1512.02192 description=ATLAS transverse momentum of the Z boson at 8 TeV hepdata=10.17182/hepdata.71339.v1/t29, 10.17182/hepdata.71339.v1/t30, 10.17182/hepdata.71339.v1/t31, 10.17182/hepdata.71339.v1/t32, 10.17182/hepdata.71339.v1/t33, 10.17182/hepdata.71339.v1/t34 +nnpdf_id=ATLASZPT8TEVYDIST x1_label=yll x1_label_tex=$y_{\ell\bar{\ell}}$ x1_unit= From 245c01f7c583263e26d527d98c03bddb9e8bef66 Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Sun, 11 Apr 2021 15:19:49 +0200 Subject: [PATCH 27/28] Rename datasets --- nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/analysis.f | 0 .../change_scale_to_ht2.patch | 0 nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/launch.txt | 0 .../{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/metadata.txt | 0 nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/output.txt | 0 nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/postrun.sh | 0 nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/analysis.f | 0 .../change_scale_to_ht2.patch | 0 nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/launch.txt | 0 .../{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/metadata.txt | 0 nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/output.txt | 0 nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/postrun.sh | 0 12 files changed, 0 insertions(+), 0 deletions(-) rename nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/analysis.f (100%) rename nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/change_scale_to_ht2.patch (100%) rename nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/launch.txt (100%) rename nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/metadata.txt (100%) rename nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/output.txt (100%) rename nnpdf31_proc/{ATLASZPT8TEVMDIST => ATLAS_ZPT_8TEV_MLL}/postrun.sh (100%) rename nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/analysis.f (100%) rename nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/change_scale_to_ht2.patch (100%) rename nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/launch.txt (100%) rename nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/metadata.txt (100%) rename nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/output.txt (100%) rename nnpdf31_proc/{ATLASZPT8TEVYDIST => ATLAS_ZPT_8TEV_YLL}/postrun.sh (100%) diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f b/nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/analysis.f similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVMDIST/analysis.f rename to nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/analysis.f diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/change_scale_to_ht2.patch b/nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/change_scale_to_ht2.patch similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVMDIST/change_scale_to_ht2.patch rename to nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/change_scale_to_ht2.patch diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt b/nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/launch.txt similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVMDIST/launch.txt rename to nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/launch.txt diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt b/nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/metadata.txt similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVMDIST/metadata.txt rename to nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/metadata.txt diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt b/nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/output.txt similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVMDIST/output.txt rename to nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/output.txt diff --git a/nnpdf31_proc/ATLASZPT8TEVMDIST/postrun.sh b/nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/postrun.sh similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVMDIST/postrun.sh rename to nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/postrun.sh diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f b/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/analysis.f similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVYDIST/analysis.f rename to nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/analysis.f diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/change_scale_to_ht2.patch b/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/change_scale_to_ht2.patch similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVYDIST/change_scale_to_ht2.patch rename to nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/change_scale_to_ht2.patch diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt b/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/launch.txt similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVYDIST/launch.txt rename to nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/launch.txt diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt b/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/metadata.txt similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVYDIST/metadata.txt rename to nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/metadata.txt diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt b/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/output.txt similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVYDIST/output.txt rename to nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/output.txt diff --git a/nnpdf31_proc/ATLASZPT8TEVYDIST/postrun.sh b/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/postrun.sh similarity index 100% rename from nnpdf31_proc/ATLASZPT8TEVYDIST/postrun.sh rename to nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/postrun.sh From 339cbce42890704a32a24b4a093558e90a6c9fca Mon Sep 17 00:00:00 2001 From: Christopher Schwan Date: Sun, 11 Apr 2021 15:22:56 +0200 Subject: [PATCH 28/28] Fix coupling specification --- nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/output.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/output.txt b/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/output.txt index 64473998..818698a6 100644 --- a/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/output.txt +++ b/nnpdf31_proc/ATLAS_ZPT_8TEV_YLL/output.txt @@ -2,6 +2,6 @@ set complex_mass_scheme True import model loop_qcd_qed_sm_Gmu define p = p b b~ define j = p -generate p p > mu+ mu- j QCD^2=2 QED^2=6 [QCD] +generate p p > mu+ mu- j QCD^2<=2 QED^2<=6 [QCD] output @OUTPUT@ quit