From f60077ed442546b11f250685f0137b6fceaa80b7 Mon Sep 17 00:00:00 2001
From: Klaus Rabbertz <klaus.rabbertz@cern.ch>
Date: Sun, 24 Dec 2023 11:28:19 +0100
Subject: [PATCH] Add prod. setup of 2jetfc.CMS8-ak07.fnl3832-fc-v2

---
 setup/configs/2jetfc.fnl3832-fc-v2_luigi.cfg  | 642 ++++++++++++++++++
 setup/runcards/2jetfc.fnl3832-fc-v2.run       | 123 ++++
 .../2jetfc.fnl3832-fc-v2.SteerModify.str      |  80 +++
 setup/steerings/2jetfc.fnl3832-fc-v2.str      | 250 +++++++
 4 files changed, 1095 insertions(+)
 create mode 100644 setup/configs/2jetfc.fnl3832-fc-v2_luigi.cfg
 create mode 100644 setup/runcards/2jetfc.fnl3832-fc-v2.run
 create mode 100644 setup/steerings/2jetfc.fnl3832-fc-v2.SteerModify.str
 create mode 100644 setup/steerings/2jetfc.fnl3832-fc-v2.str

diff --git a/setup/configs/2jetfc.fnl3832-fc-v2_luigi.cfg b/setup/configs/2jetfc.fnl3832-fc-v2_luigi.cfg
new file mode 100644
index 0000000..5085064
--- /dev/null
+++ b/setup/configs/2jetfc.fnl3832-fc-v2_luigi.cfg
@@ -0,0 +1,642 @@
+[core]
+no_lock = True
+# Set local scheduler
+local_scheduler = True
+#default-scheduler-host = condorcentral.etp.kit.edu
+#default-scheduler-port = 8082
+
+[scheduler]
+retry_count = 0
+retry_delay = 86400
+
+[worker]
+keep_alive = False
+ping_interval = 20
+wait_interval = 20
+max_reschedules = 1
+
+[DEFAULT]
+# Switch my debugging on/off (not yet implemented in most tasks)
+#my_debug = True
+
+# Name of your analysis
+name = fnl3832-fc-v2
+
+# If known, set proper Rivet_Id for data comparison plots
+rivetid = CMS_2017_I1598460
+
+# NNLOJET process and job name (the jobname is $channel-$jobnameext), and technical cutoff with leading 'y'
+process = 2jetfc
+jobnameext = CMS8-ak07
+cutoff = y1.00E-08
+multi_channel = .false. .false. .false. 5 5 5 5
+
+# NNLOJET channels
+# Complete LIST to be used in production; serves to create dictionary with settings per channel; settings must have same lengths!
+allchannels = ["LO", "R", "V", "RRa", "RRb", "RV", "VV"]
+# Default space-separated list of channels to be used in specific tasks; can be used as command line option.
+# With coloured particles in final state (jets): 7 channels
+channels = LO R V RRa RRb RV VV
+# No coloured particle in final state (W,Z,H): 6 channels
+# channels = LO R V RR RV VV
+
+# Grid merging setup as defined in combine.ini; check compatibility
+final_tables = {
+    "LO": ["LO"],
+# Use the following lines when NLO is ready to be merged in as well (don't forget to add/remove a comma above)
+    "NLO": ["LO", "R", "V"],
+    "NLO_only": ["R", "V"],
+# Use the following lines when NNLO is ready to be merged in as well (don't forget to add/remove a comma above)
+    "NNLO_only": ["RRa", "RRb", "RV", "VV"],
+    "NNLO": ["LO", "R", "V", "RRa", "RRb", "RV", "VV"]
+  }
+
+# List of all observables (APPLfast grid names for NNLOJET histograms)
+observables = [
+    "fnl3832-fc-v2_yb0_ys0_ptavgj12",
+    "fnl3832-fc-v2_yb0_ys1_ptavgj12",
+    "fnl3832-fc-v2_yb0_ys2_ptavgj12",
+    "fnl3832-fc-v2_yb1_ys0_ptavgj12",
+    "fnl3832-fc-v2_yb1_ys1_ptavgj12",
+    "fnl3832-fc-v2_yb2_ys0_ptavgj12"
+  ]
+
+# Default htcondor job submission configuration (modifiable for each task)
+htcondor_accounting_group = cms.jet
+#htcondor_accounting_group = cms.production
+htcondor_requirements = (TARGET.ProvidesCPU==true)
+htcondor_remote_job = True
+#htcondor_user_proxy = /tmp/x509up_u12010
+htcondor_user_proxy = /home/rabbertz/.globus/x509_proxy
+# Time in seconds
+htcondor_walltime = 84000
+htcondor_request_cpus = 1
+htcondor_use_cpus = 1 1 1 1 1 1 1
+# For all cores in total
+htcondor_request_memory = 4096
+htcondor_universe = docker
+htcondor_docker_image = mschnepf/slc7-condocker
+# Disk usage on WN (def = 1000000)
+htcondor_request_disk = 2000000
+
+# Create log files in htcondor jobs
+transfer_logs = True
+
+# Set tolerance for workflow success with failed branches
+tolerance = 0
+
+# Submit only missing htcondor workflow branches (should always be true)
+only_missing = True
+
+# Do not resubmit automatically (default is 5); important for debugging!
+retries = 7
+
+# Bootstrap file to be sourced at beginning of htcondor jobs
+bootstrap_file = bootstrap_NNLOJET_modules2_rev6591_bridge-1.0.0_202309.sh
+
+# Local directories, defaults are 'grids', 'plots', 'tags', 'warmups'
+# - unpacking and merging of grids in local directories $merge_dir/$name/[$channel|Combined]
+#merge_dir = grids
+# - production of plots in local directories $plots_dir/$name
+#plots_dir = plots
+# - storing tags to mark tasks as finished in separate local directories $tags_dir/[Combine|FnloCppread]
+#tags_dir = tags
+# - unpacking of NNLOJET and fastNLO warmups into local directories $warm_dir/[warmup|rewarmup|fastwarm|mergefastwarm]/$name
+#warm_dir  = warmups
+
+# fastNLO cppread options for grid/table comparison to NNLOJET original
+# Confer the NNLOJET run file
+# PDF choice for production
+pdf = NNPDF31_nnlo_as_0118
+# Central scale choice for grid closure, cf. NNLOJET run file & nnlobridge setup [kScale1, kScale2, scale12, scale21, kProd = scale1*scale2]
+# Either one scale for all or one per observable
+scale = kScale1
+# Central scale choice(s) for flex-table evaluation, cf. fastNLO enumerator EScaleFunctionalForm: "0"=kScale1, "1"=kScale2, "2"=kQuadraticSum, ..., "9"=kProd, ...
+# For now one number for both, mur and muf; fixed-scale tables must have 0 here
+scaleindex = 0
+# Central plus scale variations, cf. NNLOJET run file & nnlobridge setup
+# None: --> 1; fixed-scale: --> 7; flex-scale low pT: --> -6; flex-scale high pT: --> -12
+# Either one number for all or one per observable
+scalecombs = 7 7 7 7 7 7
+ascode = LHAPDF
+norm = no
+
+# Included in analysis.tar.gz
+# Path to base runcard file
+base_runcard = 2jetfc.fnl3832-fc-v2.run
+# Local directory with all steering files
+steer_dir = steeringfiles
+
+#
+# START of the ACTION
+#
+
+[Warmup]
+# produced @ grid storage under Warmup
+
+# Override some defaults for this task
+# htcondor config
+# If BWFORCLUSTER is too full
+#htcondor_requirements = (TARGET.ProvidesCPU==true)
+#htcondor_requirements = (TARGET.CloudSite=="blade")
+#htcondor_request_cpus = 1
+#htcondor_use_cpus = 1 1 1 1 1 1 1
+#htcondor_requirements = (TARGET.CloudSite=="topas")
+#htcondor_request_cpus = 42
+#htcondor_use_cpus = 28 28 28 28 28 28 28
+htcondor_requirements = (TARGET.CloudSite=="BWFORCLUSTER")
+#htcondor_request_cpus = 20
+#htcondor_use_cpus = 20 20 20 20 20 20 20
+# for all cores in total
+#htcondor_request_memory = 8000
+
+# Set multicore usage per channel
+htcondor_request_cpus = 4
+htcondor_use_cpus = 4 4 4 4 4 4 4
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+# NNLOJET event count and integration steps for every channel
+# MUST be of the same length as channels!
+#starting_seed = 0
+
+# 1st test setup, <~ 5 minutes
+# (main integration may have run separately ...;
+#  see also luigi_warmup_nemo and luigi_warmup_topas, if existing, configs for settings)
+# first seed for first branch, counting upwards
+warmup_events = 10000 10000 10000 1000 1000 1000 1000
+warmup_iterations = 3 3 3 3 3 3 3
+# time in seconds
+htcondor_walltime = 3600
+
+# Make warmup unusable without explicit editing to avoid reproducing 'lost' warmups on-the-fly!
+# Such jobs would either run for a long time or be of very low quality.
+# With seeds starting below zero, NNLOJET reports an error, but unfortunately with return code=0.
+# This is captured in the Warmup task.
+starting_seed = -9
+
+# Real warmup is from git@github.com:neorobin88/APPLfast2.git: ProcessRuncards/CMS8TeVJets1705.02628/ptavg3DR07/modules2/FC/warmupgridwithColourSample
+
+[CopyWarmup]
+# untar'ed to local storage under $warm_dir/warmup/$name
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+
+# Up to NLO only
+#channels = LO R V
+
+[PlotVegasGrids]
+# produced @ local storage under $plots_dir
+
+# gnuplotted into local storage $warm_dir/warmup/$name
+# Needs gnuplot version > 4.6 --> does not work on Centos7 portal machines
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+
+# Up to NLO only
+#channels = LO R V
+
+[Rewarmup]
+# produced @ grid storage under Rewarmup
+
+# Override some defaults for this task
+# htcondor config
+#htcondor_requirements = (TARGET.CloudSite=="blade")
+htcondor_request_cpus = 1
+htcondor_use_cpus = 1 1 1 1 1 1 1
+#htcondor_requirements = (TARGET.CloudSite=="topas")
+#htcondor_request_cpus = 42
+#htcondor_use_cpus = 28 28 28 28 28 28 28
+htcondor_requirements = (TARGET.CloudSite=="BWFORCLUSTER")
+#htcondor_request_cpus = 20
+#htcondor_use_cpus = 20 20 20 20 20 20 20
+# for all cores in total
+htcondor_request_memory = 8000
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+# NNLOJET event count and integration steps for every channel
+# MUST be of the same length as channels!
+
+# Test setup
+# first seed for first branch, counting upwards
+starting_seed = 10
+warmup_events = 1000 1000 1000 1000 1000 1000 1000
+warmup_iterations = 3 3 3 3 3 3 3
+# time in seconds
+htcondor_walltime = 1800
+
+# No rewarmup was run!
+
+[CopyRewarmup]
+# untar'ed to local storage under $warm_dir/rewarmup/$name
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+
+[FastWarm]
+# produced @ grid storage under FastWarm
+
+# override some defaults for this task
+# accept as complete at 95%
+acceptance = 0.95
+# htcondor config
+htcondor_request_memory = 2000
+# If BWFORCLUSTER is too full
+#htcondor_requirements = (TARGET.ProvidesCPU==true)
+# If ETP blades are too slow
+#htcondor_requirements = (TARGET.CloudSite=="BWFORCLUSTER")
+# Everything fast
+htcondor_requirements = ((TARGET.CloudSite=="BWFORCLUSTER")||(TARGET.CloudSite=="schnepf")||(TARGET.CloudSite=="topas"))
+# Up to 6h
+#htcondor_requirements = ((TARGET.CloudSite=="schnepf")||(TARGET.CloudSite=="topas")||(TARGET.CloudSite=="forHLR2"))
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+# NNLOJET event count and number of jobs for each channel
+starting_seeds = 1000 2000 3000 4000 5000 6000 7000
+
+# 1st test setup, <~ 5 minutes
+#fastwarm_events = 1000 200 1000 100 250 200 1000
+#fastwarm_events = 1000000 200000 1000000 25000 250000 200000 1000000
+#fastwarm_jobs = 1 1 1 1 1 1 1
+#fastwarm_jobs = 2 2 2 2 2 2 2
+# time in seconds
+#htcondor_walltime = 180
+
+# 2nd test setup, <~ 20-30 minutes (22, 30, 22, 51, 51, 30, 22 min)
+#fastwarm_events = 20000000 4000000 20000000 500000 5000000 4000000 20000000
+#fastwarm_jobs = 2 2 2 2 2 2 2
+# time in seconds
+#htcondor_walltime = 1800
+
+# Final setup, ~12 hours (15, 21, 15, 18, 19, 22, 15)
+fastwarm_events = 600000000 90000000 600000000 7000000 70000000 90000000 600000000
+fastwarm_jobs = 20 20 20 20 20 20 20
+# time in seconds
+htcondor_walltime = 44000
+
+[CopyFastWarm]
+# untar'ed to local storage under $warm_dir/fastwarm/$name
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+
+[MergeFastWarm]
+# produced @ grid storage under MergeFastWarm
+
+# Reuse merged fast warmup from fnl2412e for fix- and flex-scale tables
+
+[CopyMergeFastWarm]
+# untar'ed to local storage under $warm_dir/mergefastwarm/$name
+
+[FastProd]
+# produced @ grid storage under FastProd
+# Uncomment to define subdirectory per allchannel to delimit file numbers; default '.'
+# fastprod_subdirs = LO R V ...
+
+# override some defaults for this task
+# accept as complete at 95%
+acceptance = 0.95
+# If BWFORCLUSTER is too full
+#htcondor_requirements = (TARGET.ProvidesCPU==true)
+#htcondor_requirements = (TARGET.Cloudsite=="blade")
+#htcondor_requirements = (TARGET.CloudSite=="topas")
+# If ETP blades are too slow
+#htcondor_requirements = (TARGET.CloudSite=="BWFORCLUSTER")
+# Everything fast
+#htcondor_requirements = (TARGET.CloudSite=="BWFORCLUSTER")
+#htcondor_requirements = ((TARGET.CloudSite=="BWFORCLUSTER")||(TARGET.CloudSite=="topas"))
+htcondor_requirements = ((TARGET.CloudSite=="BWFORCLUSTER")||(TARGET.CloudSite=="topas")||(TARGET.CloudSite=="mdm"))
+#htcondor_requirements = ((TARGET.CloudSite=="BWFORCLUSTER")||(TARGET.CloudSite=="schnepf")||(TARGET.CloudSite=="topas"))
+#htcondor_request_memory = 7500
+htcondor_request_memory = 4000
+
+# Set multicore usage per channel
+htcondor_request_cpus = 1
+htcondor_use_cpus = 1 1 1 1 1 1 1
+#htcondor_request_cpus = 4
+#htcondor_use_cpus = 4 4 4 4 4 4 4
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+#fastprod_subdirs = LO R . . . . .
+# NNLOJET seeds, event count, and number of jobs for each channel
+starting_seeds = 10000 20000 30000 40000 50000 60000 70000
+
+# 1st test setup, 1 core,  ~20 min (60, 100, 116, 116, 25, 26, 82) min, (nemo, topas)
+#fastprod_events = 20000000 176000 650000 16000 17000 24000 650000
+
+# 2nd test setup, 1 cores, ~60 min (15,  24,  37,  61, 26, 27, 38) min, (nemo, topas)
+# --> kev/min/core: 333, 2.1, 5.4, 0.13, 0.67, 0.93, 8.6
+#fastprod_events = 5000000 50000 200000 8000 17500 25000 325000
+# 2nd test setup, 4 cores, ~60 min (18, 19, 19, 34, 16, 15, 24) min, (nemo, topas)
+# --> kev/min/core: 139, 1.3, 5.3, 0.12, 0.55, 0.83, 6.8 --> speed 1-core/4-core: 2.4, 1.6, 1.1, 1.1, 1.2, 1.1, 1.3
+#fastprod_events = 10000000 100000 400000 16000 35000 50000 650000
+#fastprod_jobs = 2 2 2 2 2 2 2
+# time in seconds
+#htcondor_walltime = 3600
+
+# Final setup, ~22 h, 1,1,1,4,4,4,4 cores (14->16->?, 11->20->?, 13->19->?, 12->18->?, 12->20->21, 10->21->?, 10->21->?) h
+#fastprod_events = 240000000 1250000 4000000 335000 1500000 2000000 18000000
+#fastprod_events = 300000000 2500000 6500000 500000 2750000 4400000 40000000
+#fastprod_events = 300000000 2500000 6500000 600000 3000000 4400000 40000000
+fastprod_events = 380000000 2700000 7200000 600000 3000000 4600000 42000000
+#fastprod_jobs = 10 10 10 0 0 0 0
+#fastprod_jobs = 0 0 0 10 10 10 10
+#fastprod_jobs = 10 10 10 10 10 10 10
+#fastprod_jobs = 0 0 0 100 100 100 50
+#fastprod_jobs = 15 20 20 0 0 0 0
+#fastprod_jobs = 15 20 20 100 100 100 50
+#fastprod_jobs = 25 250 50 0 0 0 0
+#fastprod_jobs = 25 500 100 0 0 0 0
+#fastprod_jobs = 0 0 0 500 250 500 75
+#fastprod_jobs = 0 0 0 1000 250 2000 75
+#fastprod_jobs = 25 250 50 500 250 500 75
+#fastprod_jobs = 25 500 100 1000 250 1000 75
+#fastprod_jobs = 25 1000 100 1000 250 1000 75
+fastprod_jobs = 25 1081 100 9101 250 9101 75
+# Jobs from Klaus: LO : s10000-10024, V  : s30000-30099, VV : s70000-70074, RRb: s50000-50249
+# Jobs from Klaus: R  : s20000-20999, RRa: s40000-40999, RV : s60000-61999
+# Jobs from Lucas: R  : s25001-25080, RRa: s45001-49100, RV : s65001-69100
+htcondor_walltime = 86000
+
+[CopyTables]
+# copied to local storage under $merge_dir/$name/CHANNEL, see above
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+
+# Up to LO/NLO only
+#channels = LO
+#channels = LO R V
+
+# accept as complete at 95%
+acceptance = 0.95
+
+# Uncomment the following line to have this task ignore the level
+# of completeness of the previous required task (FastProd).
+# In that case this task works on whatever is ready to be treated,
+# but interrupts the chain of requirements in the workflow.
+force = True
+
+[FnloCppread]
+# produced @ local storage under $merge_dir/$name/CHANNEL
+# ATTENTION: Combine now requires FnloCppread instead of CopyTables such that all grids have been checked for readability beforehand!
+# ATTENTION: Incomplete table availability with unlimited branches and mutiple workers leads to unending task
+# --> Needs to be stopped/killed manually
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+
+# Up to LO/NLO only
+#channels = LO
+#channels = LO R V
+
+# Accept as complete at 95%
+acceptance = 0.95
+
+# Uncomment the following line to have this task ignore the level
+# of completeness of the previous required task (CopyTables).
+# In that case this task works on whatever is ready to be treated,
+# but interrupts the chain of requirements in the workflow.
+force = True
+
+[Combine]
+# produced @ local storage under $merge_dir/$name/Combined
+# Always consumes only one worker, but uses multiple threads inside the script by NNLOJET as set below by number of cores
+
+# Always needs all channels up to some order LO, NLO, or NNLO
+channels = LO R V RRa RRb RV VV
+#channels = LO R V
+#channels = LO
+
+# Path to combine.ini config; check compatibility to desired order
+combine_ini = combine.ini
+#combine_ini = combine-LO.ini
+#combine_ini = combine-NLO.ini
+# Update of only part of the contributions
+#combine_ini = combine-Real.ini
+#combine_ini = combine-RRaRV.ini
+
+# Number of cores for NNLOJET combine script
+cores = 20
+
+[Recombine]
+# produced @ local storage under $merge_dir/$name/Combined
+# Produces the files for adding stat. uncertainties to the grids; profits from multiple workers
+
+# Needs all input channels up to some order plus combined channels as defined in combine_ini
+channels = LO R V RRa RRb RV VV NLO NLO_only NNLO NNLO_only
+#channels = LO R V
+#channels = LO
+
+# Path to combine.ini config; check compatibility to desired order
+combine_ini = combine.ini
+#combine_ini = combine-LO.ini
+#combine_ini = combine-NLO.ini
+# Update of only part of the contributions
+#combine_ini = combine-Real.ini
+#combine_ini = combine-RRaRV.ini
+
+# Number of cores for NNLOJET combine script
+cores = 20
+
+[MergeFastProd]
+# produced @ local storage under $merge_dir/$name/Combined/Final
+
+# Always needs all channels up to some order LO, NLO, or NNLO
+#channels = LO R V RRa RRb RV VV
+
+# Up to LO/NLO only
+#channels = LO
+#channels = LO R V
+
+# NNLOJET weight file to use for merging (LO, NLO, or NNLO)
+weightorder = NNLO
+
+# Accept as complete at 95%
+acceptance = 0.95
+
+# Execute workflow as local workflow instead of htcondor workflow (useful for merging small amount of grids, to be removed later)
+workflow = local
+
+[MergeFinal]
+# produced @ local storage under $merge_dir/$name/Combined/Final
+
+# Channels are set via final_tables dictionary
+final_tables = {
+    "LO": ["LO"],
+# Use the following lines when NLO is ready to be merged in as well (don't forget to add/remove a comma above)
+    "NLO": ["LO", "R", "V"],
+    "NLO_only": ["R", "V"],
+# Use the following lines when NNLO is ready to be merged in as well (don't forget to add/remove a comma above)
+    "NNLO_only": ["RRa", "RRb", "RV", "VV"],
+    "NNLO": ["LO", "R", "V", "RRa", "RRb", "RV", "VV"]
+  }
+
+[AddStatunc]
+# produced @ local storage under $merge_dir/$name/Combined/Final
+# Requires Recombine and MergeFinal to have run
+# ATTENTION: Requires fastNLO v2.5!
+
+# Should be added for each order
+orders = [ "LO", "NLO", "NNLO" ]
+#orders = [ "LO", "NLO" ]
+#orders = [ "LO" ]
+
+# Rivet_Id must have been defined in default section.
+# Make sure SteerModify.str contains a scenario description with RIVET_ID=
+# Then provide here the histogram identifiers for data comparison plots if possible
+histoids = ["d01-x01-y01", "d03-x01-y01", "d05-x01-y01", "d07-x01-y01", "d09-x01-y01", "d11-x01-y01" ]
+
+[FnloCppreadFinal]
+# produced @ local storage under $merge_dir/$name/Combined/Final
+
+# Needs all input channels up to some order plus combined channels as defined in combine_ini
+channels = LO R V RRa RRb RV VV NLO NLO_only NNLO NNLO_only
+#channels = LO R V NLO NLO_only
+#channels = LO
+
+#######################
+# New plotting setup! #
+#######################
+
+[PlotRuntime]
+# produced @ local storage under $plots_dir
+# Only requires CopyTables to have run
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+
+# Up to LO/NLO only
+#channels = LO
+#channels = LO R V
+
+# Uncomment the following line to have this task ignore the level
+# of completeness of the previous required task (CopyTables).
+# In that case this task works on whatever is ready to be treated,
+# but interrupts the chain of requirements in the workflow.
+force = True
+
+[SingleGridClosure]
+# produced @ local storage under $plots_dir
+# Requires FnloCppread to have run
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+
+# Up to LO/NLO only
+#channels = LO
+#channels = LO R V
+
+# Uncomment the following line to have this task ignore the level
+# of completeness of the previous required task (FnloCppread).
+# In that case this task works on whatever is ready to be treated,
+# but interrupts the chain of requirements in the workflow.
+force = True
+
+[MultiGridClosure]
+# produced @ local storage under $plots_dir
+# Requires FnloCppread to have run
+
+# Uncomment the following line to have only channels changing with jet size R to complement other analysis
+#channels = R RRa RRb RV
+
+# Up to LO/NLO only
+#channels = LO
+#channels = LO R V
+# Needs correct fastNLO 'scalecombs' parameter to be set, see above
+
+# Uncomment the following line to have this task ignore the level
+# of completeness of the previous required task (FnloCppread).
+# In that case this task works on whatever is ready to be treated,
+# but interrupts the chain of requirements in the workflow.
+force = True
+
+[MergedGridClosure]
+# produced @ local storage under $plots_dir
+# Requires FnloCppreadFinal to have run
+
+# Needs all input channels up to some order plus combined channels as defined in combine_ini
+channels = LO R V RRa RRb RV VV NLO NLO_only NNLO NNLO_only
+
+# Up to LO/NLO only
+#channels = LO
+#channels = LO R V
+
+# Only subset available
+#channels = NNLO
+
+[StatUncertainty]
+# produced @ local storage under $plots_dir
+
+# Highest available order (if NNLO too imprecise, maybe just up to NLO as well)
+orders = [ "NNLO" ]
+# Only needs one grid to read scenario info; numbers are from NNLOJET dat files
+
+# Uncomment to show statistical uncertainties only for summed up channels per order (LO, NLO_only, NNLO_only)
+#channellist = sum
+
+[Absolute]
+# produced @ local storage under $plots_dir
+
+# Needs all input channels up to some order plus combined channels as defined in combine_ini
+channels = LO R V RRa RRb RV VV NLO NLO_only NNLO NNLO_only
+#channels = LO R V NLO NLO_only
+#channels = LO
+
+# Only subset available
+#channels = NNLO
+
+[KfacComparison]
+# produced @ local storage under $plots_dir
+
+# Highest available order
+orders = ["NNLO"]
+
+[ScaleUncertainty]
+# produced @ local storage under $plots_dir
+
+# Highest available order (if NNLO too imprecise, maybe just up to NLO as well)
+orders = [ "NNLO" ]
+# Needs correct fastNLO 'scaleindex' parameter to be set
+# Only one scale choice in this production
+scaleindex = 0
+# Show statistical uncertainties from corresponding NNLOJET dat files directly, "", or re-evaluated from fastNLO grid, "0"
+# Note: '0' needs '_v25' tables (output of task AddStatunc)
+#datfiles = [ "", "0" ]
+datfiles = [ "" ]
+
+[PdfUncertainty]
+# produced @ local storage under $plots_dir
+
+# Might be interesting for each order (Attention: ME and PDF orders are not matched!)
+orders = [ "NNLO" ]
+pdfsets = CT14nnlo,MMHT2014nnlo68cl,NNPDF31_nnlo_as_0118,ABMP16als118_5_nnlo
+# Needs correct fastNLO 'scaleindex' parameter to be set
+# One scale choice fully sufficient here
+scaleindex = 0
+
+[DataComparison]
+# produced @ local storage under $plots_dir
+# Requires AddStatunc to have run
+# Produces Rivet-like comparison plots to data, if available.
+# Rivet_Id must have been defined in default section.
+# ATTENTION: Requires fastNLO + YODA + Rivet setup with Python2 because of malfunction in Rivet with Python3
+
+# Show comparison to all orders
+orders = [ "LO", "NLO", "NNLO" ]
+#orders = [ "LO", "NLO" ]
+#orders = [ "LO" ]
+
+# Needs correct fastNLO 'scalename' parameter to be set
+scalenames = [ "kScale1" ]
+
+# Select theory uncertainty to show, default is 6P scale uncertainty, alternatives are:
+# NN, 2P, 6P, HS, HA, HP, HC, MC, L6, AS, ST (see `fnlo-tk-yodaout -h` for details)
+#uncertainty = ST
+# Rescale uncertainties to be shown by factor, default=1
+#dxsrescale  = 10
diff --git a/setup/runcards/2jetfc.fnl3832-fc-v2.run b/setup/runcards/2jetfc.fnl3832-fc-v2.run
new file mode 100644
index 0000000..73149a9
--- /dev/null
+++ b/setup/runcards/2jetfc.fnl3832-fc-v2.run
@@ -0,0 +1,123 @@
+!###############################################!
+!##                                           ##!
+!##     _  ___  ____   ____     ____________  ##!
+!##    / |/ / |/ / /  / __ \__ / / __/_  __/  ##!
+!##   /    /    / /__/ /_/ / // / _/  / /     ##!
+!##  /_/|_/_/|_/____/\____/\___/___/ /_/      ##!
+!##                                           ##!
+!##                                RUNCARD    ##!
+!###############################################!
+
+
+PROCESS 2jetfc
+  collider = pp
+  sqrts = 8000
+  jet = antikt[0.7]
+  jet_exclusive = .false.   ! inclusive or exclusive Njet
+  jet_recomb = V4           ! recombination scheme: V4 is 4-vector addition
+  decay_type = 0            ! 0 no decay?
+END_PROCESS
+
+
+RUN @CHANNEL@-CMS8-ak07     ! job name
+  PDF = NNPDF31_nnlo_as_0118[0] ! PDFset[member]
+  tcut = 1d-8                   ! y0, appears in filenames of warmup
+  iseed   = @SEED@              ! seed index
+  cache_kinematics = .true.     ! caching for kinematics; normally true
+  reset_vegas_grid = .true.     ! normally true
+  lips_reduce      = .true.     ! optimisation for identical particles in FS; normally true
+  angular_average  = .true.     ! azimuthal rotation; only relevant for NNLO; can always be true; might be false for RR
+  multi_channel    = @MULTI_CHANNEL@ ! color sampling; true faster, less precise; true/false must be consistent between warmup & production; can be set to 5 instead of true
+  @RUNMODE@ = @EVENTS@[@ITERATIONS@] ! Normally #iterations is 1 for production
+END_RUN
+
+
+PARAMETERS
+  MASS[H]   = 125
+  WIDTH[H]  = 0.004029643852
+  MASS[Z]   = 91.1876
+  WIDTH[Z]  = 2.4952
+  MASS[W]   = 80.398
+  WIDTH[W]  = 2.1054
+  MASS[t]   = 173.2
+  WIDTH[t]  = 1.41
+  MASS[b]   = 4.18
+  MASS[c]   = 1.275
+  MASS[tau] = 1.777
+END_PARAMETERS
+
+
+@UNIT_PHASE@
+
+
+SELECTORS
+! Base event selection
+        select jets_pt min = 50.0
+        select jets_abs_y max = 5.0
+        select njets min = 2
+! Leading jets
+        select abs_yj1 max = 3.0
+        select abs_yj2 max = 3.0
+END_SELECTORS
+
+
+HISTOGRAMS
+
+      ptavg_j12 > fnl3832-fc-v2_yb0_ys0_ptavgj12 [133,153,174,196,220,245,272,300,330,362,395,430,468,507,548,592,638,686,737,790,846,905,967,1032,1101,1172,1248,1327,1410,1497,1588,1784] grid=fnl3832-fc-v2_yb0_ys0_ptavgj12.fast
+      HISTOGRAM_SELECTORS
+          select yboost  min=0.0 max=1.0
+          select ystar   min=0.0 max=1.0
+      END_HISTOGRAM_SELECTORS
+
+      ptavg_j12 > fnl3832-fc-v2_yb0_ys1_ptavgj12 [133,153,174,196,220,245,272,300,330,362,395,430,468,507,548,592,638,686,737,790,846,905,967,1032,1101,1172,1248] grid=fnl3832-fc-v2_yb0_ys1_ptavgj12.fast
+      HISTOGRAM_SELECTORS
+          select yboost  min=0.0 max=1.0
+          select ystar   min=1.0 max=2.0
+      END_HISTOGRAM_SELECTORS
+
+      ptavg_j12 > fnl3832-fc-v2_yb0_ys2_ptavgj12 [133,153,174,196,220,245,272,300,330,362,395,430,468,507,548] grid=fnl3832-fc-v2_yb0_ys2_ptavgj12.fast
+      HISTOGRAM_SELECTORS
+          select yboost  min=0.0 max=1.0
+          select ystar   min=2.0 max=3.0
+      END_HISTOGRAM_SELECTORS
+
+      ptavg_j12 > fnl3832-fc-v2_yb1_ys0_ptavgj12 [133,153,174,196,220,245,272,300,330,362,395,430,468,507,548,592,638,686,737,790,846,905,967,1032] grid=fnl3832-fc-v2_yb1_ys0_ptavgj12.fast
+      HISTOGRAM_SELECTORS
+          select yboost  min=1.0 max=2.0
+          select ystar   min=0.0 max=1.0
+      END_HISTOGRAM_SELECTORS
+
+      ptavg_j12 > fnl3832-fc-v2_yb1_ys1_ptavgj12 [133,153,174,196,220,245,272,300,330,362,395,430,468,507,548,592,638,686] grid=fnl3832-fc-v2_yb1_ys1_ptavgj12.fast
+      HISTOGRAM_SELECTORS
+          select yboost  min=1.0 max=2.0
+          select ystar   min=1.0 max=2.0
+      END_HISTOGRAM_SELECTORS
+
+      ptavg_j12 > fnl3832-fc-v2_yb2_ys0_ptavgj12 [133,153,174,196,220,245,272,300,330,362,395,430] grid=fnl3832-fc-v2_yb2_ys0_ptavgj12.fast
+      HISTOGRAM_SELECTORS
+          select yboost  min=2.0 max=3.0
+          select ystar   min=0.0 max=1.0
+      END_HISTOGRAM_SELECTORS
+
+END_HISTOGRAMS
+
+
+SCALES
+! Central scale followed by 6 scale-factor variations
+! To correspond to fastNLO, order must be:
+    muf = 1.0 * m12     mur = 1.0 * m12
+    muf = 0.5 * m12     mur = 0.5 * m12
+    muf = 2.0 * m12     mur = 2.0 * m12
+    muf = 1.0 * m12     mur = 0.5 * m12
+    muf = 0.5 * m12     mur = 1.0 * m12
+    muf = 2.0 * m12     mur = 1.0 * m12
+    muf = 1.0 * m12     mur = 2.0 * m12
+END_SCALES
+
+
+REWEIGHT ptj1**6
+
+
+CHANNELS
+  @CHANNEL@ ! LO, R, V, RRa, RRb, RV, VV ! no region entry anymore! No coloured particle in FS (W,Z,H) --> RR;
+END_CHANNELS
diff --git a/setup/steerings/2jetfc.fnl3832-fc-v2.SteerModify.str b/setup/steerings/2jetfc.fnl3832-fc-v2.SteerModify.str
new file mode 100644
index 0000000..d8e5c7e
--- /dev/null
+++ b/setup/steerings/2jetfc.fnl3832-fc-v2.SteerModify.str
@@ -0,0 +1,80 @@
+#----------------------
+#   Input and output
+#----------------------
+#InTable    TableToModify.tab.gz
+#OutTable   ModifiedTable.tab.gz
+# or define via command line
+
+#--------------------
+#   Info print out
+#--------------------
+Verbosity           INFO   # Set print out verbosity
+PrintSteeringCard   true   # Print steering provided on command line or within this file
+PrintInputA1        true   # Print table header of input table
+PrintInputA2        true   # Print table scenario of input table
+#PrintOutputA1       true   # Print table header of output table
+#PrintOutputA2       true   # Print table scenario of output table
+
+#-------------------------------------------
+#   Modify parameters of the table header
+#   Leave value empty for no modification
+#-------------------------------------------
+Itabversion 25000          # Change table version (Expert option!)
+#ScenName fnlabcd          # Change scenario name
+
+# --------------------------------------------
+#   Modify parameters of the table scenario
+#   Leave value empty for no modification
+# --------------------------------------------
+AttachScDescription false  # Append to (true) or replace (false) existing scenario description
+ScDescript {
+  "d3sigma-dijet_dpTavg_dyb_dys_[pb_GeV]"
+  "CMS_Collaboration"
+  "Dijet_pTavg_yb0-2_ys0-2"
+  "anti-kT_R=0.7"
+  "CMS-PAPER-SMP-16-011, arXiv:1705.02628, Eur. Phys. J. C 77, 746 (2017)."
+  "RIVET_ID=,INSPIRE_RECORD=1598460"
+  "THEORY_LABEL=NNLOJET modules2 FC"
+  "provided by:"
+  "fastNLO_2.5.1"
+  "If you use this table, please cite:"
+  "  D. Britzger, K. Rabbertz, F. Stober, M. Wobisch, Proc. DIS 2012, 217 (2012), arXiv:1208.3641."
+}
+
+# --------------------------------------------
+#   Modify the table contributions
+# --------------------------------------------
+
+#--------------------------------------------------------------------
+#   Modify code description
+#   (Same description for all perturbative contributions!)
+#--------------------------------------------------------------------
+CodeDescript {
+  "NNLOJET_rev5918, please cite: T. Gehrmann et al., PoS RADCOR2017, 074 (2018), arXiv:1801.06415."
+  "Dijet production, please cite: J. Currie et al., Phys. Rev. Lett. 119, 152001 (2017), arXiv:1705.10271."
+  "Dijet scale choice, please cite: A. Gehrmann-de Ridder et al., Phys. Rev. Lett. 123, 102001 (2019), arXiv:1905.09047."
+  "APPLfast interface, please cite: D. Britzger et al., Eur. Phys. J. C79, 845 (2019), arXiv:1906.05303."
+}
+
+#--------------------------------------------------------------------
+#   Add InfoBlocks with statistical/numerical uncertainty
+#--------------------------------------------------------------------
+InfoBlockFlag1   0         # Default: 0 Statistical/numerical uncertainty
+InfoBlockFlag2   1         # Default: 1 = quadratic addition; else: 0 = linear addition
+
+InfoBlockDescr { # Same description for each contribution
+  "Default statistical uncertainties from NNLOJET."
+}
+
+# For NNLOJET dat files also add:
+#
+#InfoBlockFiles { # For each order separately: NNLOJET dat files, fastNLO statunc log files, txt files using 1 or 2 columns
+#  *.LO.*.dat
+#  *.NLO_only.*.dat
+#  *.NNLO_only.*.dat
+#}
+#InfoBlockOrders { # Attribution of dat files to respective orders
+#  "LO"
+#  "NLO"
+#  "NNLO"
+#}
diff --git a/setup/steerings/2jetfc.fnl3832-fc-v2.str b/setup/steerings/2jetfc.fnl3832-fc-v2.str
new file mode 100644
index 0000000..41e2216
--- /dev/null
+++ b/setup/steerings/2jetfc.fnl3832-fc-v2.str
@@ -0,0 +1,250 @@
+# -*-sh-*-
+# ==================================================================== #
+#
+#   A steering file for creating a fastNLO table/grid (with NNLOJET)
+#   This is an example for a global steering for ALL tables/grids of a scenario
+#
+#   The grid production is performed in three steps:
+#   I.   A warmup run for NNLOJET to perform essential integrations
+#        See NNLOJET for details. fastNLO is not used or called at this stage.
+#   II.  A warmup run for fastNLO that determines the accessed phase space
+#        in momentum fraction x and process scale mu_r, mu_f.
+#        Only a few fastNLO settings are used here, see below.
+#        The output is written into a warmup file named after the
+#        the NNLOJET process name, e.g. 'ZJ', the NNLOJET job name, e.g.
+#        'LO-CMS13-ak07', and the NNLOJET grid name, e.g.
+#        ptz > ZJtriple_yb0_ystar0_ptz [30, 100, 200, 300, 400, 1000] grid = ZJtriple_yb0_ystar0_ptz.fast
+#              NNLOJET histo                                                 fastNLO grid
+#        ==> ZJ.LO-CMS13-ak07.ZJtriple_yb0_ystar0_ptz.wrm
+#        This warmup file stores some settings for fastNLO in addition to
+#        the accessed phase space (with number of events per bin!) for
+#        each order of NNLOJET run (LO, R, V, RRa, RRb, RV, VV).
+#        For a later combination ALL production runs in step III below
+#        MUST use the SAME warmup file. The latter should be the largest
+#        accessed phase space as combined from any order in NNLOJET!
+#        ==> the expected filename for this unique warmup file is
+#            ZJ.ZJtriple_yb0_ystar0_ptz.wrm
+#        without the job name info.
+#   III. Many production runs filling fastNLO grids for various orders
+#        of a process from NNLOJET that later must be combined.
+#        See NNLOJET for details.
+#        Most fastNLO settings are taken into account here.
+#
+#   This steering file has to be used in combination with a NNLOJET
+#   run card, where most of the essential seetings like the
+#   observable and its binning are defined.
+#   Modifications or additional settings respect the following hierarchy:
+#   1.  From the interface package nnlo-bridge default settings for
+#       fastNLO with NNLOJET are made and information from NNLOJET is
+#       passed to fastNLO.
+#   2.  A steering file named after the NNLOJET grid name for fastNLO,
+#       e.g. from the example above
+#             ==> ZJ.ZJtriple_yb0_ystar0_ptz.str
+#       can be used to set steer parameters individually for each fastNLO grid.
+#       Settings from step 1 can be overwritten. Be careful not to make
+#       changes inconsistent with what is defined in the NNLOJET run card
+#       or what is mandatory for the interface to work!
+#   3a. In production runs the previously derived warmup file is read.
+#   3b. A global steering file named after only the first part of
+#       the NNLOJET grid name for fastNLO, 'ZJtriple', which is also used
+#       as fastNLO scenario name,
+#             ==> ZJ.ZJtriple.str
+#       can be used to set steer parameters globally for all fastNLO grids.
+#       Settings from step 2 are not overwritten, but lead to warnings.
+#   4.  In principal, parameters can also be set on the command line, but
+#       this has not been tested yet.
+#
+##### TODO: The special scale-factor settings are not necessary anymore with the modules2 interface
+##### TODO: The method how to set two different scales in flex-scale grids needs to be tested
+#
+##### BEGIN OF DESCRIPTION NEEDING UPDATE
+#
+#   Special remarks on scale settings:
+#   ----------------------------------
+#   Lacking sufficient scale choice information from NNLOJET the following
+#   settings are assumed for flexible-scale tables that allow two central
+#   scale choices to be stored simultaneously:
+#                                          DIS       pp
+#   - the 1st scale set for muf defines   scale1   scale2
+#   - the 1st scale set for mur defines   scale2   scale1
+#   To check the closure between NNLOJET and fastNLO the proper
+#   ASYMMETRIC central scale choice must be used when evaluating a
+#   fastNLO grid with fnlo-tk-cppread, either scale12 or scale21.
+#
+#   It is recommended to set ScaleDescriptionScale1 and
+#   ScaleDescriptionScale2 accordingly.
+#
+#   If multiple entries per event are requested using NNLOJET COMPOSITE
+#   histos AND a scale definition varying with each entry is desired,
+#   then one central scale, e.g. ptmax=ptj1, must be defined for both
+#   muf and mur, and the InclusiveJets flag must be set in the fastNLO
+#   steering file.
+#
+#                                              DIS       pp
+#   - the 1st scale set for muf&mur defines   scale1   scale2
+#   - the stored observable defines           scale2   scale1
+#   To check the closure between NNLOJET and fastNLO the proper
+#   SYMMETRIC central scale choice must be used when evaluating a
+#   fastNLO grid with fnlo-tk-cppread, either scale1 or scale2.
+#
+#                                              DIS(?)   pp
+#   - the 1st scale set for muf&mur defines   scale1   scale2=mu/obs(!)
+#   - the stored observable defines           scale2   scale1
+#   To check the closure between NNLOJET and fastNLO the proper
+#   SYMMETRIC central scale choice must be used when evaluating a
+#   fastNLO grid with fnlo-tk-cppread, i.e. for pp scale1*scale2.
+#
+##### END OF DESCRIPTION NEEDING UPDATE
+#
+# ==================================================================== #
+
+# ==================================================================== #
+#
+#   Scenario specific settings
+#
+#   Either set individually for each fastNLO grid or globally for all
+#
+# ==================================================================== #
+
+# -------------------------------------------------------------------- #
+#   Settings to be modified already for Warmup
+#   (These are stored in the warmup file!)
+# -------------------------------------------------------------------- #
+#CheckScaleLimitsAgainstBins     true             # (def.=true) Set limits for scale nodes to bin borders, if possible. Good if scale equals the binned observable.
+                                                  # Scales and scale factors must be set in the NNLOJET run card
+ScaleDescriptionScale1          "m12_[GeV]"      # (def.='scale1') Reset the 1st scale name and unit, e.g. "<pT_1,2>_[GeV]" (Note: The 1st scale must always be in units of [GeV]!)
+ScaleDescriptionScale2          "m12_[GeV]"      # (def.='scale2') Reset the 2nd scale name and unit (ONLY for flexible-scale tables)
+#DifferentialDimension             1              # (must be 1) So far the interface to NNLOJET supports only 1-dim histograms. DO NOT CHANGE!
+DimensionLabels {                                # Labels (symbol and unit) for the measurement dimension (from outer to inner "loop")
+   "ptavgj12_[GeV]"                              # The default following the example above would be: "ptz"
+}
+#DimensionIsDifferential {                        # (must be 2) Specify for each dimension whether
+#   2                                             #   0 : the cross section is NOT differential,        i.e. there are two bin borders,
+#}                                                #                                                     but NO division (normalization) by bin width
+                                                  #   1 : the cross section is point-wise differential, i.e. only one point is given
+                                                  #   2 : the cross section is bin-wise differential,   i.e. there are two bin borders
+                                                  # Since NNLOJET provides bin-wise differential distributions use option 2. DO NOT CHANGE!
+
+# -------------------------------------------------------------------- #
+#   Description of scenario
+#
+#   (Write each line of description in quotation marks)
+# -------------------------------------------------------------------- #
+ScenarioName fnl3832-fc-v2                        # (def.=NNLOJET process name) No white space allowed here!
+ScenarioDescription {                             # Replace generic one-line text by desired (multi-line) description
+    "d3sigma-dijet_dpTavg_dyb_dys_[pb_GeV]"
+    "CMS_Collaboration"
+    "Dijet_pTavg_yb0-2_ys0-2"
+    "anti-kT_R=0.7"
+    "CMS-PAPER-SMP-16-011, arXiv:1705.02628, Eur. Phys. J. C 77, 746 (2017)."
+    "INSPIRE_RECORD=1598460"
+    "THEORY_LABEL=NNLOJET modules2 FC"
+    "provided by:"
+    "fastNLO_2.5.1"
+    "If you use this table, please cite:"
+    "  D. Britzger, K. Rabbertz, F. Stober, M. Wobisch, Proc. DIS 2012, 217 (2012), arXiv:1208.3641."
+}
+PublicationUnits                12               # (def.=12) Cross section unit to be used for output (negative power of 10, e.g. 12->pb, 15->fb)
+                                                 # For comparison, e.g. via Rivet, should correspond to published data cross sections
+
+# -------------------------------------------------------------------- #
+#   Cuts
+# -------------------------------------------------------------------- #
+# To bet set via NNLOJET run card
+
+# -------------------------------------------------------------------- #
+#   Observable normalization
+# -------------------------------------------------------------------- #
+#CalculateBinSize               true              # (def.=true)    Calculate bin width from lower and upper bin boundaries
+#BinSizeFactor                    1.              # (def.=1.)      Possibility to provide additional normalization factor, e.g. of 2. for bins in |y|
+#BinSize { x1 x2 x3 ... }                         # (def. not set) If 'CalculateBinSize' is 'false' provide table with bin widths 'by hand' for normalization
+
+# -------------------------------------------------------------------- #
+#   Observable binning
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+#   Use either 'SingleDifferentialBinning' or
+#     'DoubleDifferentialBinning' or
+#     'TripleDifferentialBinning'
+#   in accord with 'DifferentialDimension' above
+# -------------------------------------------------------------------- #
+# To bet set via the NNLOJET run card
+
+# ==================================================================== #
+#
+#   Process specific and therefore at least partially theory-code
+#   dependent settings
+#
+# ==================================================================== #
+# To bet set directly from NNLOJET interface and via the NNLOJET run card
+
+# ==================================================================== #
+#
+#   A few special settings only used with NNLOJET so far
+#
+# ==================================================================== #
+#InclusiveJets                   true             # (def.=false) Flag to vary the mur, muf scale per entry, not just per event
+#                                                 # Must be set in accordance with NNLOJET run card!
+#                                                 # Only possible with flexible-scale grids
+
+# ==================================================================== #
+#
+#   General fastNLO settings
+#
+# ==================================================================== #
+GlobalVerbosity                 INFO             # (def.=WARNING) Global output verbosity of fastNLO toolkit,
+                                                 # (and of user scenario code if implemented).
+                                                 # Possible values are: DEBUG, MANUAL, INFO, WARNING, ERROR, SILENT
+FlexibleScaleTable              true             # (def.=false) Create table fully flexible in mu_f (larger size), true, or
+                                                 # table with fixed number of mu_f scale factors
+CacheType                        2               # Default caching settings
+CacheMax                        30
+CacheCompare                    10
+
+# ==================================================================== #
+#
+#   Specific fastNLO settings (normally do not need to be changed)
+#   Only change when you know what you are doing ...!
+#
+# ==================================================================== #
+#OutputFilename           fastNLO.tab             # Overwrites default filename of fastNLO output table, e.g. ZJ.LO-CMS13.vBa.ZJtriple_yb0_ystar0_ptz.s92394.tab.gz
+#OutputPrecision                 8                # (def.=8) Number of decimal digits to store in output table
+#OutputCompression               true             # (def.=true) Write out fastNLO table/grid in gzipped format (requires zlib)
+#ScaleVariationFactors {                          # (def.=1.0 0.5 2.0) Must be set in accordance with NNLOJET run card! Factorization scale variations (only needed for fixed-scale tables)
+#  1.0 0.5 2.0                                    # List of scale factors must include factor '1.0'
+#}                                                # Scale factors will be ordered according to fastNLO convention: (1, min, ... , max)
+#ReadBinningFromSteering         false            # (must be true) Specify where the binning is defined.
+#ApplyPDFReweighting             true             # (def.=true) Apply reweighting of PDFs for an optimized interpolation
+
+# -------------------------------------------------------------------- #
+#   Choose fastNLO interpolation kernels and distance measures
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+#   Currently implemented interpolation kernels
+#     Catmull
+#     Lagrange
+#     OneNode
+#     Linear
+#
+#   Currently implemented distance measures
+#     linear
+#     loglog025        eq. to (log(log(4*x)))
+#     log10
+#     sqrtlog10        eq. to sqrt(log_10(x))
+#
+#   For a constant scale like M_Z use e.g.
+#     Mu1_Kernel                      OneNode
+#     Mu1_DistanceMeasure             "log10"
+#     Mu1_NNodes                      1
+# -------------------------------------------------------------------- #
+#X_Kernel                        Lagrange         # (def.= pp: Lagrange;  DIS: Catmull)
+#X_DistanceMeasure               sqrtlog10        # (def.= pp: sqrtlog10; DIS: log10)
+#X_NNodes                        20               # (def.= pp: 20;        DIS: 18)
+#X_NNodeCounting                 NodesPerBin      # (def.=NodesPerBin)
+
+#Mu1_Kernel                      Lagrange         # (def.=Lagrange)
+#Mu1_DistanceMeasure             "loglog025"      # (def.=loglog025)
+#Mu1_NNodes                      6                # (def.=6)
+
+# Scale2 not used for fixed-scale tables
+Mu2_Kernel                      OneNode          # (def.=Lagrange)
+Mu2_DistanceMeasure             "loglog025"      # (def.=loglog025)
+Mu2_NNodes                      1                # (def.=6)
-- 
GitLab