Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
2f5558f
Add ATLASZPT8TEV{M,Y}DIST datasets
cschwan Oct 28, 2020
4cf5bd9
Fix variable naming and cuts
cschwan Oct 28, 2020
6b5b120
Fix analysis file
cschwan Oct 28, 2020
1f5375c
Disable threads for PDF uncertainties
cschwan Nov 7, 2020
f208552
Add support for metadata
cschwan Feb 3, 2021
b9a35dd
Fix compression when adding metadata
cschwan Feb 3, 2021
770bc4d
Optimize grids after creation
cschwan Feb 7, 2021
55ceda4
Insert runcard into grids
cschwan Feb 8, 2021
d8e6fed
Enable boolean cuts
cschwan Dec 9, 2020
375dd39
Improve output of the final check
cschwan Feb 11, 2021
b8abd79
Print scale-varied differences
cschwan Feb 11, 2021
250f71c
Simplify writing of postrun scripts
cschwan Feb 11, 2021
38f85a7
Add runcard even if there is no `metadata.txt`
cschwan Feb 11, 2021
ff13482
Add results to metadata
cschwan Feb 11, 2021
34edf17
Fix center-of-mass energy
cschwan Feb 17, 2021
253c9ea
Add abscoscs{min,max} cuts
cschwan Oct 29, 2020
b8fe310
Implement atlas_zpt_8tev_mdist cut
cschwan Feb 18, 2021
e0e8dd6
Fix binning and cuts
cschwan Feb 18, 2021
ba2101a
Add metadata
cschwan Feb 18, 2021
005a868
Fix analysis file and cuts
cschwan Feb 18, 2021
f391287
Set cuts to the parameters chosen by NNPDF
cschwan Feb 18, 2021
d307456
Increase statistics
cschwan Feb 18, 2021
edde7cc
Update metadata
cschwan Mar 26, 2021
c928933
Update coupling specification
cschwan Mar 26, 2021
e784f6c
Merge branch 'master' into ATLASZPT8TEV
cschwan Apr 9, 2021
37939ba
Set missing parameters
cschwan Apr 9, 2021
7712c1a
Add NNPDF identifiers
cschwan Apr 9, 2021
245c01f
Rename datasets
cschwan Apr 11, 2021
339cbce
Fix coupling specification
cschwan Apr 11, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
287 changes: 287 additions & 0 deletions nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/analysis.f
Original file line number Diff line number Diff line change
@@ -0,0 +1,287 @@
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', 74, 0d0, 74d0)

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
double precision p(0:4,nexternal)
double precision wgts(*)
double precision ppl(0:3),pplb(0:3),ppv(0:3),ptv,xmll,xbin
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 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=getinvm(ppv(0),ppv(1),ppv(2),ppv(3))
ptv=sqrt(ppv(1)**2+ppv(2)**2)

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,xbin,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
48 changes: 48 additions & 0 deletions nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/change_scale_to_ht2.patch
Original file line number Diff line number Diff line change
@@ -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
29 changes: 29 additions & 0 deletions nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/launch.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
launch @OUTPUT@
fixed_order = ON
set gf @GF@
set mh @MH@
set mt @MT@
set mw @MW@
set mz @MZ@
set wh @WH@
set wt @WT@
set ww @WW@
set wz @WZ@
set ebeam1 4000
set ebeam2 4000
set pdlabel lhapdf
set lhaid 324900
set dynamical_scale_choice 10
set reweight_scale True
set ptl = 20.0
set etal = 2.4
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
set req_acc_FO 0.0001
set pineappl True
done
quit
13 changes: 13 additions & 0 deletions nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/metadata.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
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
x2_label=ptll
x2_label_tex=$p_{\mathrm{T},\ell\bar{\ell}}$
x2_unit=GeV
y_label=dsig/dptll
y_label_tex=$\frac{\mathrm{d}\sigma}{\mathrm{d}p_{\mathrm{T},\ell\bar{\ell}}}$
y_unit=pb/GeV
7 changes: 7 additions & 0 deletions nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/output.txt
Original file line number Diff line number Diff line change
@@ -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^2<=2 QED^2<=6 [QCD]
output @OUTPUT@
quit
4 changes: 4 additions & 0 deletions nnpdf31_proc/ATLAS_ZPT_8TEV_MLL/postrun.sh
Original file line number Diff line number Diff line change
@@ -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}"
Loading