From 34707d7593f9bd98716df7c393a70d8531c113bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=A4=C3=9Fler?= <johannesg@5d6.de> Date: Tue, 9 Jul 2024 17:42:46 +0200 Subject: [PATCH] Fix NodeDensity+log10, add test --- .../interface/check/fnlo-compare-tables.py | 63 +++--- .../nlojet++/interface/data/check/Makefile.am | 5 +- .../data/check/fix_lgx_NodeDensity.str | 207 ++++++++++++++++++ .../data/check/fix_lgx_NodesPerBin.str | 207 ++++++++++++++++++ ...odeDensity.str => fix_slx_NodeDensity.str} | 2 +- ...odesPerBin.str => fix_slx_NodesPerBin.str} | 2 +- .../data/check/flex_lgx_NodeDensity.str | 207 ++++++++++++++++++ .../data/check/flex_lgx_NodesPerBin.str | 207 ++++++++++++++++++ ...deDensity.str => flex_slx_NodeDensity.str} | 2 +- ...desPerBin.str => flex_slx_NodesPerBin.str} | 2 +- .../fastnlotoolkit/fastNLOInterpolBase.cc | 14 +- 11 files changed, 876 insertions(+), 42 deletions(-) create mode 100644 v2.5/generators/nlojet++/interface/data/check/fix_lgx_NodeDensity.str create mode 100644 v2.5/generators/nlojet++/interface/data/check/fix_lgx_NodesPerBin.str rename v2.5/generators/nlojet++/interface/data/check/{fix_NodeDensity.str => fix_slx_NodeDensity.str} (99%) rename v2.5/generators/nlojet++/interface/data/check/{fix_NodesPerBin.str => fix_slx_NodesPerBin.str} (99%) create mode 100644 v2.5/generators/nlojet++/interface/data/check/flex_lgx_NodeDensity.str create mode 100644 v2.5/generators/nlojet++/interface/data/check/flex_lgx_NodesPerBin.str rename v2.5/generators/nlojet++/interface/data/check/{flex_NodeDensity.str => flex_slx_NodeDensity.str} (99%) rename v2.5/generators/nlojet++/interface/data/check/{flex_NodesPerBin.str => flex_slx_NodesPerBin.str} (99%) diff --git a/v2.5/generators/nlojet++/interface/check/fnlo-compare-tables.py b/v2.5/generators/nlojet++/interface/check/fnlo-compare-tables.py index f00bbcce..287ca835 100755 --- a/v2.5/generators/nlojet++/interface/check/fnlo-compare-tables.py +++ b/v2.5/generators/nlojet++/interface/check/fnlo-compare-tables.py @@ -12,27 +12,30 @@ except ModuleNotFoundError: LIBDIR = os.environ["LIBDIR"] DATADIR = f"{os.path.dirname(os.path.abspath(__file__))}/../data/check/" -TYPES = ["fix", "flex"] -NAMES = ["NodesPerBin", "NodeDensity"] -SEEDS = [1000, 2000] +TABLE_TYPE = ["fix", "flex"] +NODE_COUNTING = ["NodesPerBin", "NodeDensity"] +DISTANCE_MEASURE = ["slx", "lgx"] +SEED = [1000, 2000] # fnlo.SetGlobalVerbosity(fnlo.DEBUG) os.system("rm -rf output") -os.system(f"ln -sf {DATADIR}InclusiveNJets_InclusiveJets_fix.wrm") -os.system(f"ln -sf {DATADIR}InclusiveNJets_InclusiveJets_flex.wrm") +os.system(f"ln -sf {DATADIR}InclusiveNJets_InclusiveJets_fix.wrm InclusiveNJets_InclusiveJets_fix_slx.wrm") +os.system(f"ln -sf {DATADIR}InclusiveNJets_InclusiveJets_fix.wrm InclusiveNJets_InclusiveJets_fix_lgx.wrm") +os.system(f"ln -sf {DATADIR}InclusiveNJets_InclusiveJets_flex.wrm InclusiveNJets_InclusiveJets_flex_slx.wrm") +os.system(f"ln -sf {DATADIR}InclusiveNJets_InclusiveJets_flex.wrm InclusiveNJets_InclusiveJets_flex_lgx.wrm") -def generate_table(vartype: str, name: str, seed: int): - os.system(f"ln -sf {DATADIR}{vartype}_{name}.str InclusiveNJets.str") - print("Asserting that steering file InclusiveNJets.str exists") +def generate_table(table_type: str, distance_measure: str, node_counting: str, seed: int): + os.system(f"ln -sf {DATADIR}{table_type}_{distance_measure}_{node_counting}.str InclusiveNJets.str") + print(f"Asserting that steering file InclusiveNJets.str -> {DATADIR}{table_type}_{distance_measure}_{node_counting}.str exists") assert os.path.exists("InclusiveNJets.str") os.system( "nlojet++ " "--calculate " "-c born " f"-s {seed} " - f"--name {vartype}_{name}_{seed:06d} " + f"--name {table_type}_{distance_measure}_{node_counting}_{seed:06d} " f" -u {LIBDIR}/fastnlo_interface_nlojet/libInclusiveNJets.la " "--max-event 10000 " "--save-after 10000 " @@ -40,27 +43,29 @@ def generate_table(vartype: str, name: str, seed: int): expected_outfile = "output/run-hhc-born-2jet.tab.gz" print(f"Asserting that there is a table under {expected_outfile}") assert os.path.exists(expected_outfile) - os.system(f"mv {expected_outfile} output/{vartype}_{name}_{seed:06d}.tab.gz") + os.system(f"mv {expected_outfile} output/{table_type}_{distance_measure}_{node_counting}_{seed:06d}.tab.gz") -for vartype in TYPES: - for steering_file in NAMES: - for seed in SEEDS: - generate_table(vartype, steering_file, seed) - os.system(f"fnlo-tk-merge2 output/{vartype}_{steering_file}_??????.tab.gz " - f"output/{vartype}_{steering_file}_merged.tab.gz") +for table_type in TABLE_TYPE: + for distance_measure in DISTANCE_MEASURE: + for node_counting in NODE_COUNTING: + for seed in SEED: + generate_table(table_type, distance_measure, node_counting, seed) + os.system( + f"fnlo-tk-merge2 output/{table_type}_{distance_measure}_{node_counting}_??????.tab.gz " + f"output/{table_type}_{distance_measure}_{node_counting}_merged.tab.gz") - for seed in SEEDS: - filename_0 = f"output/{vartype}_{NAMES[0]}_{seed:06d}.tab.gz" - filename_1 = f"output/{vartype}_{NAMES[1]}_{seed:06d}.tab.gz" - table_0 = fnlo.fastNLOTable(filename_0) - table_1 = fnlo.fastNLOTable(filename_1) - print(f"Asserting equal: {filename_0} <-> {filename_1}") - assert table_0.IsEquivalent(table_1, 1e-8) + for seed in SEED: + filename_0 = f"output/{table_type}_{distance_measure}_{NODE_COUNTING[0]}_{seed:06d}.tab.gz" + filename_1 = f"output/{table_type}_{distance_measure}_{NODE_COUNTING[1]}_{seed:06d}.tab.gz" + table_0 = fnlo.fastNLOTable(filename_0) + table_1 = fnlo.fastNLOTable(filename_1) + print(f"Asserting equal: {filename_0} <-> {filename_1}") + assert table_0.IsEquivalent(table_1, 1e-8) - filename_0 = f"output/{vartype}_{NAMES[0]}_merged.tab.gz" - filename_1 = f"output/{vartype}_{NAMES[1]}_merged.tab.gz" - table_0_merged = fnlo.fastNLOTable(filename_0) - table_1_merged = fnlo.fastNLOTable(filename_1) - print(f"Asserting equal: {filename_0} <-> {filename_1}") - assert table_0_merged.IsEquivalent(table_1_merged, 1e-8) + filename_0 = f"output/{table_type}_{distance_measure}_{NODE_COUNTING[0]}_merged.tab.gz" + filename_1 = f"output/{table_type}_{distance_measure}_{NODE_COUNTING[1]}_merged.tab.gz" + table_0_merged = fnlo.fastNLOTable(filename_0) + table_1_merged = fnlo.fastNLOTable(filename_1) + print(f"Asserting equal: {filename_0} <-> {filename_1}") + assert table_0_merged.IsEquivalent(table_1_merged, 1e-8) diff --git a/v2.5/generators/nlojet++/interface/data/check/Makefile.am b/v2.5/generators/nlojet++/interface/data/check/Makefile.am index d6d04cee..241d2c4f 100644 --- a/v2.5/generators/nlojet++/interface/data/check/Makefile.am +++ b/v2.5/generators/nlojet++/interface/data/check/Makefile.am @@ -16,8 +16,9 @@ AUTOMAKE_OPTIONS = gnu # born.tab.gz --> fnr0001midpHT_I723509_v23_fix-hhc-born-2jet.tab.gz # nlo.tab.gz --> fnr0001midpHT_I723509_v23_fix-hhc-nlo-2jet.tab.gz dist_check_DATA = steer.str warmup.txt born.tab.gz nlo.tab.gz compare-table-helper.py \ - fix_NodeDensity.str fix_NodesPerBin.str InclusiveNJets_InclusiveJets_fix.wrm \ - flex_NodeDensity.str flex_NodesPerBin.str InclusiveNJets_InclusiveJets_flex.wrm + InclusiveNJets_InclusiveJets_fix.wrm InclusiveNJets_InclusiveJets_flex.wrm \ + fix_slx_NodeDensity.str fix_slx_NodesPerBin.str flex_slx_NodeDensity.str flex_slx_NodesPerBin.str \ + fix_lgx_NodeDensity.str fix_lgx_NodesPerBin.str flex_lgx_NodeDensity.str flex_lgx_NodesPerBin.str # Files that are required to build the project but that can be # recreated IF the necessary autotools etc. are available by: diff --git a/v2.5/generators/nlojet++/interface/data/check/fix_lgx_NodeDensity.str b/v2.5/generators/nlojet++/interface/data/check/fix_lgx_NodeDensity.str new file mode 100644 index 00000000..3ad062b5 --- /dev/null +++ b/v2.5/generators/nlojet++/interface/data/check/fix_lgx_NodeDensity.str @@ -0,0 +1,207 @@ +# -*-sh-*- +# ==================================================================== # +# +# A steering file for creating a fastNLO table (with NLOJet++) +# +# ==================================================================== # + +# ==================================================================== # +# +# Scenario specific settings +# +# ==================================================================== # + +# -------------------------------------------------------------------- # +# Description of scenario +# (Write each line of description in quotation marks) +# -------------------------------------------------------------------- # +ScenarioName InclusiveJets_fix_lgx +ScenarioDescription { + "d2sigma-jet_dpT_dy_[pb_GeV]" + "CMS_Collaboration" + "Inclusive_Jet_pT" + "anti-kT_R=0.5" + "CMS-PAPER-QCD-10-011, arXiv:1106.0208, Phys. Rev. Lett. 107 (2011) 132001." + "RIVET_ID=CMS_2011_S9086218/D01-x01-y01,SPIRES_ID=9086218,INSPIRE_RECORD=902309" + "THEORY_LABEL=NLOJet++" + "provided by:" + "fastNLO_2.5.0" + "If you use this table, please cite:" + " D. Britzger, T. Kluge, K. Rabbertz, F. Stober, M. Wobisch, arXiv:1109.1310" +} +PublicationUnits 12 # Unit of data cross sections (negative power of 10, e.g. 12->pb, 15->fb) + +# -------------------------------------------------------------------- # +# Global scenario settings +# -------------------------------------------------------------------- # +JetAlgo 2 # fastjet jet algorithm +# # clustering jet algos: 0 = kT, 1 = CA, 2 = anti-kT +# # cone jet algos: 10 = SISCone, 11 = CDFMidPointCone, 12 = D0RunIICone +Rjet 0.5 # Jet size parameter: Required for all jets +#OvThr 0.5 # Overlap threshold: Required for cone jets (Normally 10: 0.75; 11,12: 0.50) +# # Overall jet phase space +ptjmin 18. # Minimal jet pT (minimum set in interface to fastjet: 1 GeV) +yjmin 0.0 # Minimal jet rapidity +yjmax 3.0 # Maximal jet rapidity +# Use either rapidity or pseudorapidity but not both! If both are set, only rapidity cuts are applied. +#etajmin 0.0 # Minimal jet pseudorapidity +#etajmax 3.0 # Maximal jet pseudorapidity +#Njetmin 1 # Minimal number of jets required to be in preselected phase space +# # (Normally one, i.e. single-jet inclusive) +#obs0min x.y # +#obs0max x.y # By default these values are derived from the binning in these +#obs1min x.y # observables and are set automatically. If required the min/max +#obs1max x.y # values for each of the maximally three observables can be set +#obs2min x.y # by hand. +#obs2max x.y # + +# -------------------------------------------------------------------- # +# Observable definition, dimensioning, and normalization +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Specify, how many differential dimensions are measured. +# Number must be consistent with DimensionLabels and DimensionIsDifferential, see below +# 1 : read in 'SingleDifferentialBinning' +# 2 : read in 'DoubleDifferentialBinning' +# 3 : read in 'TripleDifferentialBinning' +# -------------------------------------------------------------------- # +LeadingOrder 2 # Number of jets for the LO process +DifferentialDimension 2 # Dimensionality of binning +DimensionLabels { # Labels (symbol and unit) for the measurement dimensions (from outer to inner "loop") + "|y|" # This defines the observables to be calculated! + "pT_[GeV]" # Implemented observables are: "|y|", "pT_[GeV]", "phi" +} +DimensionIsDifferential { # Specify for each dimension whether + 2 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 + # and division by bin width +CalculateBinSize true # Calculate bin width from lower and upper bin boundaries +BinSizeFactor 2. # Possibility to provide additional normalization factor, e.g. of 2 for bins in |y| +#BinSize { x1 x2 x3 ... } # If 'CalculateBinSize' is 'false' provide table with bin widths 'by hand' for normalization + # + # If the calculation should not be divided by bin width, then use 'DimensionIsDifferential' equal '0' + # and set 'CalculateBinSize' 'true' for each dimension. + # +ScaleDescriptionScale1 "pT_jet_[GeV]" # This defines the scale to be used (Note: The 1st scale must always be in units of [GeV]!) +ScaleDescriptionScale2 "pT_max_[GeV]" # Specify 2nd scale name and unit (ONLY for flexible-scale tables) + # Implemented scales are: "pT_jet_[GeV]", "pT_max_[GeV]" + +# -------------------------------------------------------------------- # +# Observable binning +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Use either 'SingleDifferentialBinning' or +# 'DoubleDifferentialBinning' or +# 'TripleDifferentialBinning' +# in accord with 'DifferentialDimension' above +# -------------------------------------------------------------------- # +# Example for SingleDifferentialBinning: +#SingleDifferentialBinning { +# 7. 11. 18. 30. 50. 100. +#} + +# Example for DoubleDifferentialBinning: +DoubleDifferentialBinning {{ + 1stDimLo 1stDimUp "----- Array of bin-grid for 2nd dimension -----" + 0.0 0.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 737. 846. 1684. + 0.5 1.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 790. 1684. + 1.0 1.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 1410. + 1.5 2.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 1032. + 2.0 2.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 737. + 2.5 3.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 468. +}} + +# Example for TripleDifferentialBinning: +#TripleDifferentialBinning {{ +# 1stDimLo 1stDimUp 2ndDimLo 2ndDimUp "----- Array of bin-grid for 3rd dimension -----" +# 100. 150. -1.0 0.0 7. 11. 18. 30. 50. +# 150. 200. -1.0 0.0 7. 11. 18. 30. 50. +# 200. 400. 0.0 1.5 7. 11. 18. 30. 50. +# 400. 700. 0.0 1.5 7. 11. 18. 30. 50. +# 700. 5000. 1.5 2.5 7. 11. 18. 30. 50. +# 5000. 15000. 1.5 2.5 7. 11. 18. 30. 50. +#}} + +# ==================================================================== # +# +# Process specific and therefore at least partially theory-code +# dependent settings +# +# ==================================================================== # +CenterOfMassEnergy 7000. # Center-of-mass energy in GeV. +# Some examples from the past: 200. # RHIC +# 1800. # TeV Run I +# 1960. # TeV Run II +# 900. # LHC Injection Run +# 2360. # LHC Initial Run +# 2760. # LHC HIpp base Run +# 5020. # LHC HIpp base Run +# 7000. # LHC First Run (2010/2011) +# 8000. # LHC Second Run (2012) +# 13000. # LHC Next Run ? (2015) +# 14000. # LHC Design Run +PDF1 2212 # PDF of 1st hadron (following PDG convention). +PDF2 2212 # PDF of 2nd hadron (following PDG convention). +NPDF 2 +NPDFDim 1 + +# ==================================================================== # +# +# General fastNLO settings +# +# ==================================================================== # +#GlobalVerbosity DEBUG # Global output verbosity of fastNLO toolkit, def.=WARNING, +GlobalVerbosity INFO # Global output verbosity of fastNLO toolkit, def.=WARNING, + # (and of user scenario code if implemented). + # Possible values are: DEBUG, MANUAL, INFO, WARNING, ERROR, SILENT +OutputFilename InclusiveNJets.tab # Filename of fastNLO output table +OutputPrecision 8 # Number of decimal digits to store in output table, def.=8. +FlexibleScaleTable false # Create table fully flexible in mu_f (larger size), true, or + # table with fixed number of mu_f scale factors, def.=false. +ScaleVariationFactors { # Factorization scale variations (only needed for fixed-scale tables) + 0.5 1.0 2.0 # List of scale factors must include factor '1' +} # Scale factors will be ordered according to fastNLO convention: (1, min, ... , max) +ReadBinningFromSteering true # Specify if binning is read from this file. MUST be true for now! +IgnoreWarmupBinningCheck true # Ignore crosscheck of binning between steering and warmup + # Avoids problems with precision of bin borders e.g. in the case of Pi +#>>fastNLO-warmup.txt # Specify alternative filename to read warm-up results from, def.=SteerFileBasename_${ScenarioName}_warmup.txt + +# ==================================================================== # +# +# Specific fastNLO settings (normally do not need to be changed) +# Only change when you know what you are doing ...! +# +# ==================================================================== # +ApplyPDFReweighting true # Apply reweighting of pdfs for an optimized interpolation, def.=true. +CheckScaleLimitsAgainstBins true # Set limits for scale nodes to bin borders, if possible + +# -------------------------------------------------------------------- # +# 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)) +# -------------------------------------------------------------------- # +X_Kernel Lagrange +X_DistanceMeasure "log10" +X_NNodes 1 +X_NoOfNodesPerMagnitude false +X_NNodeCounting "NodeDensity" + +Mu1_Kernel Lagrange +Mu1_DistanceMeasure "loglog025" +Mu1_NNodes 6 +Mu1_NNodeCounting "NodesPerDim2" + +Mu2_Kernel Lagrange # Scale2 not used for fixed-scale tables +Mu2_DistanceMeasure "loglog025" +Mu2_NNodes 6 +Mu2_NNodeCounting "NodesPerDim2" diff --git a/v2.5/generators/nlojet++/interface/data/check/fix_lgx_NodesPerBin.str b/v2.5/generators/nlojet++/interface/data/check/fix_lgx_NodesPerBin.str new file mode 100644 index 00000000..5bcf8c51 --- /dev/null +++ b/v2.5/generators/nlojet++/interface/data/check/fix_lgx_NodesPerBin.str @@ -0,0 +1,207 @@ +# -*-sh-*- +# ==================================================================== # +# +# A steering file for creating a fastNLO table (with NLOJet++) +# +# ==================================================================== # + +# ==================================================================== # +# +# Scenario specific settings +# +# ==================================================================== # + +# -------------------------------------------------------------------- # +# Description of scenario +# (Write each line of description in quotation marks) +# -------------------------------------------------------------------- # +ScenarioName InclusiveJets_fix_lgx +ScenarioDescription { + "d2sigma-jet_dpT_dy_[pb_GeV]" + "CMS_Collaboration" + "Inclusive_Jet_pT" + "anti-kT_R=0.5" + "CMS-PAPER-QCD-10-011, arXiv:1106.0208, Phys. Rev. Lett. 107 (2011) 132001." + "RIVET_ID=CMS_2011_S9086218/D01-x01-y01,SPIRES_ID=9086218,INSPIRE_RECORD=902309" + "THEORY_LABEL=NLOJet++" + "provided by:" + "fastNLO_2.5.0" + "If you use this table, please cite:" + " D. Britzger, T. Kluge, K. Rabbertz, F. Stober, M. Wobisch, arXiv:1109.1310" +} +PublicationUnits 12 # Unit of data cross sections (negative power of 10, e.g. 12->pb, 15->fb) + +# -------------------------------------------------------------------- # +# Global scenario settings +# -------------------------------------------------------------------- # +JetAlgo 2 # fastjet jet algorithm +# # clustering jet algos: 0 = kT, 1 = CA, 2 = anti-kT +# # cone jet algos: 10 = SISCone, 11 = CDFMidPointCone, 12 = D0RunIICone +Rjet 0.5 # Jet size parameter: Required for all jets +#OvThr 0.5 # Overlap threshold: Required for cone jets (Normally 10: 0.75; 11,12: 0.50) +# # Overall jet phase space +ptjmin 18. # Minimal jet pT (minimum set in interface to fastjet: 1 GeV) +yjmin 0.0 # Minimal jet rapidity +yjmax 3.0 # Maximal jet rapidity +# Use either rapidity or pseudorapidity but not both! If both are set, only rapidity cuts are applied. +#etajmin 0.0 # Minimal jet pseudorapidity +#etajmax 3.0 # Maximal jet pseudorapidity +#Njetmin 1 # Minimal number of jets required to be in preselected phase space +# # (Normally one, i.e. single-jet inclusive) +#obs0min x.y # +#obs0max x.y # By default these values are derived from the binning in these +#obs1min x.y # observables and are set automatically. If required the min/max +#obs1max x.y # values for each of the maximally three observables can be set +#obs2min x.y # by hand. +#obs2max x.y # + +# -------------------------------------------------------------------- # +# Observable definition, dimensioning, and normalization +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Specify, how many differential dimensions are measured. +# Number must be consistent with DimensionLabels and DimensionIsDifferential, see below +# 1 : read in 'SingleDifferentialBinning' +# 2 : read in 'DoubleDifferentialBinning' +# 3 : read in 'TripleDifferentialBinning' +# -------------------------------------------------------------------- # +LeadingOrder 2 # Number of jets for the LO process +DifferentialDimension 2 # Dimensionality of binning +DimensionLabels { # Labels (symbol and unit) for the measurement dimensions (from outer to inner "loop") + "|y|" # This defines the observables to be calculated! + "pT_[GeV]" # Implemented observables are: "|y|", "pT_[GeV]", "phi" +} +DimensionIsDifferential { # Specify for each dimension whether + 2 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 + # and division by bin width +CalculateBinSize true # Calculate bin width from lower and upper bin boundaries +BinSizeFactor 2. # Possibility to provide additional normalization factor, e.g. of 2 for bins in |y| +#BinSize { x1 x2 x3 ... } # If 'CalculateBinSize' is 'false' provide table with bin widths 'by hand' for normalization + # + # If the calculation should not be divided by bin width, then use 'DimensionIsDifferential' equal '0' + # and set 'CalculateBinSize' 'true' for each dimension. + # +ScaleDescriptionScale1 "pT_jet_[GeV]" # This defines the scale to be used (Note: The 1st scale must always be in units of [GeV]!) +ScaleDescriptionScale2 "pT_max_[GeV]" # Specify 2nd scale name and unit (ONLY for flexible-scale tables) + # Implemented scales are: "pT_jet_[GeV]", "pT_max_[GeV]" + +# -------------------------------------------------------------------- # +# Observable binning +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Use either 'SingleDifferentialBinning' or +# 'DoubleDifferentialBinning' or +# 'TripleDifferentialBinning' +# in accord with 'DifferentialDimension' above +# -------------------------------------------------------------------- # +# Example for SingleDifferentialBinning: +#SingleDifferentialBinning { +# 7. 11. 18. 30. 50. 100. +#} + +# Example for DoubleDifferentialBinning: +DoubleDifferentialBinning {{ + 1stDimLo 1stDimUp "----- Array of bin-grid for 2nd dimension -----" + 0.0 0.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 737. 846. 1684. + 0.5 1.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 790. 1684. + 1.0 1.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 1410. + 1.5 2.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 1032. + 2.0 2.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 737. + 2.5 3.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 468. +}} + +# Example for TripleDifferentialBinning: +#TripleDifferentialBinning {{ +# 1stDimLo 1stDimUp 2ndDimLo 2ndDimUp "----- Array of bin-grid for 3rd dimension -----" +# 100. 150. -1.0 0.0 7. 11. 18. 30. 50. +# 150. 200. -1.0 0.0 7. 11. 18. 30. 50. +# 200. 400. 0.0 1.5 7. 11. 18. 30. 50. +# 400. 700. 0.0 1.5 7. 11. 18. 30. 50. +# 700. 5000. 1.5 2.5 7. 11. 18. 30. 50. +# 5000. 15000. 1.5 2.5 7. 11. 18. 30. 50. +#}} + +# ==================================================================== # +# +# Process specific and therefore at least partially theory-code +# dependent settings +# +# ==================================================================== # +CenterOfMassEnergy 7000. # Center-of-mass energy in GeV. +# Some examples from the past: 200. # RHIC +# 1800. # TeV Run I +# 1960. # TeV Run II +# 900. # LHC Injection Run +# 2360. # LHC Initial Run +# 2760. # LHC HIpp base Run +# 5020. # LHC HIpp base Run +# 7000. # LHC First Run (2010/2011) +# 8000. # LHC Second Run (2012) +# 13000. # LHC Next Run ? (2015) +# 14000. # LHC Design Run +PDF1 2212 # PDF of 1st hadron (following PDG convention). +PDF2 2212 # PDF of 2nd hadron (following PDG convention). +NPDF 2 +NPDFDim 1 + +# ==================================================================== # +# +# General fastNLO settings +# +# ==================================================================== # +#GlobalVerbosity DEBUG # Global output verbosity of fastNLO toolkit, def.=WARNING, +GlobalVerbosity INFO # Global output verbosity of fastNLO toolkit, def.=WARNING, + # (and of user scenario code if implemented). + # Possible values are: DEBUG, MANUAL, INFO, WARNING, ERROR, SILENT +OutputFilename InclusiveNJets.tab # Filename of fastNLO output table +OutputPrecision 8 # Number of decimal digits to store in output table, def.=8. +FlexibleScaleTable false # Create table fully flexible in mu_f (larger size), true, or + # table with fixed number of mu_f scale factors, def.=false. +ScaleVariationFactors { # Factorization scale variations (only needed for fixed-scale tables) + 0.5 1.0 2.0 # List of scale factors must include factor '1' +} # Scale factors will be ordered according to fastNLO convention: (1, min, ... , max) +ReadBinningFromSteering true # Specify if binning is read from this file. MUST be true for now! +IgnoreWarmupBinningCheck true # Ignore crosscheck of binning between steering and warmup + # Avoids problems with precision of bin borders e.g. in the case of Pi +#>>fastNLO-warmup.txt # Specify alternative filename to read warm-up results from, def.=SteerFileBasename_${ScenarioName}_warmup.txt + +# ==================================================================== # +# +# Specific fastNLO settings (normally do not need to be changed) +# Only change when you know what you are doing ...! +# +# ==================================================================== # +ApplyPDFReweighting true # Apply reweighting of pdfs for an optimized interpolation, def.=true. +CheckScaleLimitsAgainstBins true # Set limits for scale nodes to bin borders, if possible + +# -------------------------------------------------------------------- # +# 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)) +# -------------------------------------------------------------------- # +X_Kernel Lagrange +X_DistanceMeasure "log10" +X_NNodes 9 +X_NoOfNodesPerMagnitude false +X_NNodeCounting "NodesPerBin" + +Mu1_Kernel Lagrange +Mu1_DistanceMeasure "loglog025" +Mu1_NNodes 6 +Mu1_NNodeCounting "NodesPerBin" + +Mu2_Kernel Lagrange # Scale2 not used for fixed-scale tables +Mu2_DistanceMeasure "loglog025" +Mu2_NNodes 6 +Mu2_NNodeCounting "NodesPerBin" diff --git a/v2.5/generators/nlojet++/interface/data/check/fix_NodeDensity.str b/v2.5/generators/nlojet++/interface/data/check/fix_slx_NodeDensity.str similarity index 99% rename from v2.5/generators/nlojet++/interface/data/check/fix_NodeDensity.str rename to v2.5/generators/nlojet++/interface/data/check/fix_slx_NodeDensity.str index 8d2bfbd2..623959d0 100644 --- a/v2.5/generators/nlojet++/interface/data/check/fix_NodeDensity.str +++ b/v2.5/generators/nlojet++/interface/data/check/fix_slx_NodeDensity.str @@ -15,7 +15,7 @@ # Description of scenario # (Write each line of description in quotation marks) # -------------------------------------------------------------------- # -ScenarioName InclusiveJets_fix +ScenarioName InclusiveJets_fix_slx ScenarioDescription { "d2sigma-jet_dpT_dy_[pb_GeV]" "CMS_Collaboration" diff --git a/v2.5/generators/nlojet++/interface/data/check/fix_NodesPerBin.str b/v2.5/generators/nlojet++/interface/data/check/fix_slx_NodesPerBin.str similarity index 99% rename from v2.5/generators/nlojet++/interface/data/check/fix_NodesPerBin.str rename to v2.5/generators/nlojet++/interface/data/check/fix_slx_NodesPerBin.str index 2a45d07b..64c24414 100644 --- a/v2.5/generators/nlojet++/interface/data/check/fix_NodesPerBin.str +++ b/v2.5/generators/nlojet++/interface/data/check/fix_slx_NodesPerBin.str @@ -15,7 +15,7 @@ # Description of scenario # (Write each line of description in quotation marks) # -------------------------------------------------------------------- # -ScenarioName InclusiveJets_fix +ScenarioName InclusiveJets_fix_slx ScenarioDescription { "d2sigma-jet_dpT_dy_[pb_GeV]" "CMS_Collaboration" diff --git a/v2.5/generators/nlojet++/interface/data/check/flex_lgx_NodeDensity.str b/v2.5/generators/nlojet++/interface/data/check/flex_lgx_NodeDensity.str new file mode 100644 index 00000000..311bd37a --- /dev/null +++ b/v2.5/generators/nlojet++/interface/data/check/flex_lgx_NodeDensity.str @@ -0,0 +1,207 @@ +# -*-sh-*- +# ==================================================================== # +# +# A steering file for creating a fastNLO table (with NLOJet++) +# +# ==================================================================== # + +# ==================================================================== # +# +# Scenario specific settings +# +# ==================================================================== # + +# -------------------------------------------------------------------- # +# Description of scenario +# (Write each line of description in quotation marks) +# -------------------------------------------------------------------- # +ScenarioName InclusiveJets_flex_lgx +ScenarioDescription { + "d2sigma-jet_dpT_dy_[pb_GeV]" + "CMS_Collaboration" + "Inclusive_Jet_pT" + "anti-kT_R=0.5" + "CMS-PAPER-QCD-10-011, arXiv:1106.0208, Phys. Rev. Lett. 107 (2011) 132001." + "RIVET_ID=CMS_2011_S9086218/D01-x01-y01,SPIRES_ID=9086218,INSPIRE_RECORD=902309" + "THEORY_LABEL=NLOJet++" + "provided by:" + "fastNLO_2.5.0" + "If you use this table, please cite:" + " D. Britzger, T. Kluge, K. Rabbertz, F. Stober, M. Wobisch, arXiv:1109.1310" +} +PublicationUnits 12 # Unit of data cross sections (negative power of 10, e.g. 12->pb, 15->fb) + +# -------------------------------------------------------------------- # +# Global scenario settings +# -------------------------------------------------------------------- # +JetAlgo 2 # fastjet jet algorithm +# # clustering jet algos: 0 = kT, 1 = CA, 2 = anti-kT +# # cone jet algos: 10 = SISCone, 11 = CDFMidPointCone, 12 = D0RunIICone +Rjet 0.5 # Jet size parameter: Required for all jets +#OvThr 0.5 # Overlap threshold: Required for cone jets (Normally 10: 0.75; 11,12: 0.50) +# # Overall jet phase space +ptjmin 18. # Minimal jet pT (minimum set in interface to fastjet: 1 GeV) +yjmin 0.0 # Minimal jet rapidity +yjmax 3.0 # Maximal jet rapidity +# Use either rapidity or pseudorapidity but not both! If both are set, only rapidity cuts are applied. +#etajmin 0.0 # Minimal jet pseudorapidity +#etajmax 3.0 # Maximal jet pseudorapidity +#Njetmin 1 # Minimal number of jets required to be in preselected phase space +# # (Normally one, i.e. single-jet inclusive) +#obs0min x.y # +#obs0max x.y # By default these values are derived from the binning in these +#obs1min x.y # observables and are set automatically. If required the min/max +#obs1max x.y # values for each of the maximally three observables can be set +#obs2min x.y # by hand. +#obs2max x.y # + +# -------------------------------------------------------------------- # +# Observable definition, dimensioning, and normalization +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Specify, how many differential dimensions are measured. +# Number must be consistent with DimensionLabels and DimensionIsDifferential, see below +# 1 : read in 'SingleDifferentialBinning' +# 2 : read in 'DoubleDifferentialBinning' +# 3 : read in 'TripleDifferentialBinning' +# -------------------------------------------------------------------- # +LeadingOrder 2 # Number of jets for the LO process +DifferentialDimension 2 # Dimensionality of binning +DimensionLabels { # Labels (symbol and unit) for the measurement dimensions (from outer to inner "loop") + "|y|" # This defines the observables to be calculated! + "pT_[GeV]" # Implemented observables are: "|y|", "pT_[GeV]", "phi" +} +DimensionIsDifferential { # Specify for each dimension whether + 2 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 + # and division by bin width +CalculateBinSize true # Calculate bin width from lower and upper bin boundaries +BinSizeFactor 2. # Possibility to provide additional normalization factor, e.g. of 2 for bins in |y| +#BinSize { x1 x2 x3 ... } # If 'CalculateBinSize' is 'false' provide table with bin widths 'by hand' for normalization + # + # If the calculation should not be divided by bin width, then use 'DimensionIsDifferential' equal '0' + # and set 'CalculateBinSize' 'true' for each dimension. + # +ScaleDescriptionScale1 "pT_jet_[GeV]" # This defines the scale to be used (Note: The 1st scale must always be in units of [GeV]!) +ScaleDescriptionScale2 "pT_max_[GeV]" # Specify 2nd scale name and unit (ONLY for flexible-scale tables) + # Implemented scales are: "pT_jet_[GeV]", "pT_max_[GeV]" + +# -------------------------------------------------------------------- # +# Observable binning +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Use either 'SingleDifferentialBinning' or +# 'DoubleDifferentialBinning' or +# 'TripleDifferentialBinning' +# in accord with 'DifferentialDimension' above +# -------------------------------------------------------------------- # +# Example for SingleDifferentialBinning: +#SingleDifferentialBinning { +# 7. 11. 18. 30. 50. 100. +#} + +# Example for DoubleDifferentialBinning: +DoubleDifferentialBinning {{ + 1stDimLo 1stDimUp "----- Array of bin-grid for 2nd dimension -----" + 0.0 0.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 737. 846. 1684. + 0.5 1.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 790. 1684. + 1.0 1.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 1410. + 1.5 2.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 1032. + 2.0 2.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 737. + 2.5 3.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 468. +}} + +# Example for TripleDifferentialBinning: +#TripleDifferentialBinning {{ +# 1stDimLo 1stDimUp 2ndDimLo 2ndDimUp "----- Array of bin-grid for 3rd dimension -----" +# 100. 150. -1.0 0.0 7. 11. 18. 30. 50. +# 150. 200. -1.0 0.0 7. 11. 18. 30. 50. +# 200. 400. 0.0 1.5 7. 11. 18. 30. 50. +# 400. 700. 0.0 1.5 7. 11. 18. 30. 50. +# 700. 5000. 1.5 2.5 7. 11. 18. 30. 50. +# 5000. 15000. 1.5 2.5 7. 11. 18. 30. 50. +#}} + +# ==================================================================== # +# +# Process specific and therefore at least partially theory-code +# dependent settings +# +# ==================================================================== # +CenterOfMassEnergy 7000. # Center-of-mass energy in GeV. +# Some examples from the past: 200. # RHIC +# 1800. # TeV Run I +# 1960. # TeV Run II +# 900. # LHC Injection Run +# 2360. # LHC Initial Run +# 2760. # LHC HIpp base Run +# 5020. # LHC HIpp base Run +# 7000. # LHC First Run (2010/2011) +# 8000. # LHC Second Run (2012) +# 13000. # LHC Next Run ? (2015) +# 14000. # LHC Design Run +PDF1 2212 # PDF of 1st hadron (following PDG convention). +PDF2 2212 # PDF of 2nd hadron (following PDG convention). +NPDF 2 +NPDFDim 1 + +# ==================================================================== # +# +# General fastNLO settings +# +# ==================================================================== # +#GlobalVerbosity DEBUG # Global output verbosity of fastNLO toolkit, def.=WARNING, +GlobalVerbosity INFO # Global output verbosity of fastNLO toolkit, def.=WARNING, + # (and of user scenario code if implemented). + # Possible values are: DEBUG, MANUAL, INFO, WARNING, ERROR, SILENT +OutputFilename InclusiveNJets.tab # Filename of fastNLO output table +OutputPrecision 8 # Number of decimal digits to store in output table, def.=8. +FlexibleScaleTable true # Create table fully flexible in mu_f (larger size), true, or + # table with fixed number of mu_f scale factors, def.=false. +ScaleVariationFactors { # Factorization scale variations (only needed for fixed-scale tables) + 0.5 1.0 2.0 # List of scale factors must include factor '1' +} # Scale factors will be ordered according to fastNLO convention: (1, min, ... , max) +ReadBinningFromSteering true # Specify if binning is read from this file. MUST be true for now! +IgnoreWarmupBinningCheck true # Ignore crosscheck of binning between steering and warmup + # Avoids problems with precision of bin borders e.g. in the case of Pi +#>>fastNLO-warmup.txt # Specify alternative filename to read warm-up results from, def.=SteerFileBasename_${ScenarioName}_warmup.txt + +# ==================================================================== # +# +# Specific fastNLO settings (normally do not need to be changed) +# Only change when you know what you are doing ...! +# +# ==================================================================== # +ApplyPDFReweighting true # Apply reweighting of pdfs for an optimized interpolation, def.=true. +CheckScaleLimitsAgainstBins true # Set limits for scale nodes to bin borders, if possible + +# -------------------------------------------------------------------- # +# 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)) +# -------------------------------------------------------------------- # +X_Kernel Lagrange +X_DistanceMeasure "log10" +X_NNodes 1 +X_NoOfNodesPerMagnitude false +X_NNodeCounting "NodeDensity" + +Mu1_Kernel Lagrange +Mu1_DistanceMeasure "loglog025" +Mu1_NNodes 6 +Mu1_NNodeCounting "NodesPerDim2" + +Mu2_Kernel Lagrange # Scale2 not used for fixed-scale tables +Mu2_DistanceMeasure "loglog025" +Mu2_NNodes 6 +Mu2_NNodeCounting "NodesPerDim2" diff --git a/v2.5/generators/nlojet++/interface/data/check/flex_lgx_NodesPerBin.str b/v2.5/generators/nlojet++/interface/data/check/flex_lgx_NodesPerBin.str new file mode 100644 index 00000000..57f46d83 --- /dev/null +++ b/v2.5/generators/nlojet++/interface/data/check/flex_lgx_NodesPerBin.str @@ -0,0 +1,207 @@ +# -*-sh-*- +# ==================================================================== # +# +# A steering file for creating a fastNLO table (with NLOJet++) +# +# ==================================================================== # + +# ==================================================================== # +# +# Scenario specific settings +# +# ==================================================================== # + +# -------------------------------------------------------------------- # +# Description of scenario +# (Write each line of description in quotation marks) +# -------------------------------------------------------------------- # +ScenarioName InclusiveJets_flex_lgx +ScenarioDescription { + "d2sigma-jet_dpT_dy_[pb_GeV]" + "CMS_Collaboration" + "Inclusive_Jet_pT" + "anti-kT_R=0.5" + "CMS-PAPER-QCD-10-011, arXiv:1106.0208, Phys. Rev. Lett. 107 (2011) 132001." + "RIVET_ID=CMS_2011_S9086218/D01-x01-y01,SPIRES_ID=9086218,INSPIRE_RECORD=902309" + "THEORY_LABEL=NLOJet++" + "provided by:" + "fastNLO_2.5.0" + "If you use this table, please cite:" + " D. Britzger, T. Kluge, K. Rabbertz, F. Stober, M. Wobisch, arXiv:1109.1310" +} +PublicationUnits 12 # Unit of data cross sections (negative power of 10, e.g. 12->pb, 15->fb) + +# -------------------------------------------------------------------- # +# Global scenario settings +# -------------------------------------------------------------------- # +JetAlgo 2 # fastjet jet algorithm +# # clustering jet algos: 0 = kT, 1 = CA, 2 = anti-kT +# # cone jet algos: 10 = SISCone, 11 = CDFMidPointCone, 12 = D0RunIICone +Rjet 0.5 # Jet size parameter: Required for all jets +#OvThr 0.5 # Overlap threshold: Required for cone jets (Normally 10: 0.75; 11,12: 0.50) +# # Overall jet phase space +ptjmin 18. # Minimal jet pT (minimum set in interface to fastjet: 1 GeV) +yjmin 0.0 # Minimal jet rapidity +yjmax 3.0 # Maximal jet rapidity +# Use either rapidity or pseudorapidity but not both! If both are set, only rapidity cuts are applied. +#etajmin 0.0 # Minimal jet pseudorapidity +#etajmax 3.0 # Maximal jet pseudorapidity +#Njetmin 1 # Minimal number of jets required to be in preselected phase space +# # (Normally one, i.e. single-jet inclusive) +#obs0min x.y # +#obs0max x.y # By default these values are derived from the binning in these +#obs1min x.y # observables and are set automatically. If required the min/max +#obs1max x.y # values for each of the maximally three observables can be set +#obs2min x.y # by hand. +#obs2max x.y # + +# -------------------------------------------------------------------- # +# Observable definition, dimensioning, and normalization +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Specify, how many differential dimensions are measured. +# Number must be consistent with DimensionLabels and DimensionIsDifferential, see below +# 1 : read in 'SingleDifferentialBinning' +# 2 : read in 'DoubleDifferentialBinning' +# 3 : read in 'TripleDifferentialBinning' +# -------------------------------------------------------------------- # +LeadingOrder 2 # Number of jets for the LO process +DifferentialDimension 2 # Dimensionality of binning +DimensionLabels { # Labels (symbol and unit) for the measurement dimensions (from outer to inner "loop") + "|y|" # This defines the observables to be calculated! + "pT_[GeV]" # Implemented observables are: "|y|", "pT_[GeV]", "phi" +} +DimensionIsDifferential { # Specify for each dimension whether + 2 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 + # and division by bin width +CalculateBinSize true # Calculate bin width from lower and upper bin boundaries +BinSizeFactor 2. # Possibility to provide additional normalization factor, e.g. of 2 for bins in |y| +#BinSize { x1 x2 x3 ... } # If 'CalculateBinSize' is 'false' provide table with bin widths 'by hand' for normalization + # + # If the calculation should not be divided by bin width, then use 'DimensionIsDifferential' equal '0' + # and set 'CalculateBinSize' 'true' for each dimension. + # +ScaleDescriptionScale1 "pT_jet_[GeV]" # This defines the scale to be used (Note: The 1st scale must always be in units of [GeV]!) +ScaleDescriptionScale2 "pT_max_[GeV]" # Specify 2nd scale name and unit (ONLY for flexible-scale tables) + # Implemented scales are: "pT_jet_[GeV]", "pT_max_[GeV]" + +# -------------------------------------------------------------------- # +# Observable binning +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Use either 'SingleDifferentialBinning' or +# 'DoubleDifferentialBinning' or +# 'TripleDifferentialBinning' +# in accord with 'DifferentialDimension' above +# -------------------------------------------------------------------- # +# Example for SingleDifferentialBinning: +#SingleDifferentialBinning { +# 7. 11. 18. 30. 50. 100. +#} + +# Example for DoubleDifferentialBinning: +DoubleDifferentialBinning {{ + 1stDimLo 1stDimUp "----- Array of bin-grid for 2nd dimension -----" + 0.0 0.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 737. 846. 1684. + 0.5 1.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 790. 1684. + 1.0 1.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 592. 638. 686. 1410. + 1.5 2.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 468. 507. 548. 1032. + 2.0 2.5 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 330. 362. 395. 430. 737. + 2.5 3.0 18. 21. 24. 28. 32. 37. 43. 49. 56. 64. 74. 84. 97. 114. 133. 153. 174. 196. 220. 245. 272. 300. 468. +}} + +# Example for TripleDifferentialBinning: +#TripleDifferentialBinning {{ +# 1stDimLo 1stDimUp 2ndDimLo 2ndDimUp "----- Array of bin-grid for 3rd dimension -----" +# 100. 150. -1.0 0.0 7. 11. 18. 30. 50. +# 150. 200. -1.0 0.0 7. 11. 18. 30. 50. +# 200. 400. 0.0 1.5 7. 11. 18. 30. 50. +# 400. 700. 0.0 1.5 7. 11. 18. 30. 50. +# 700. 5000. 1.5 2.5 7. 11. 18. 30. 50. +# 5000. 15000. 1.5 2.5 7. 11. 18. 30. 50. +#}} + +# ==================================================================== # +# +# Process specific and therefore at least partially theory-code +# dependent settings +# +# ==================================================================== # +CenterOfMassEnergy 7000. # Center-of-mass energy in GeV. +# Some examples from the past: 200. # RHIC +# 1800. # TeV Run I +# 1960. # TeV Run II +# 900. # LHC Injection Run +# 2360. # LHC Initial Run +# 2760. # LHC HIpp base Run +# 5020. # LHC HIpp base Run +# 7000. # LHC First Run (2010/2011) +# 8000. # LHC Second Run (2012) +# 13000. # LHC Next Run ? (2015) +# 14000. # LHC Design Run +PDF1 2212 # PDF of 1st hadron (following PDG convention). +PDF2 2212 # PDF of 2nd hadron (following PDG convention). +NPDF 2 +NPDFDim 1 + +# ==================================================================== # +# +# General fastNLO settings +# +# ==================================================================== # +#GlobalVerbosity DEBUG # Global output verbosity of fastNLO toolkit, def.=WARNING, +GlobalVerbosity INFO # Global output verbosity of fastNLO toolkit, def.=WARNING, + # (and of user scenario code if implemented). + # Possible values are: DEBUG, MANUAL, INFO, WARNING, ERROR, SILENT +OutputFilename InclusiveNJets.tab # Filename of fastNLO output table +OutputPrecision 8 # Number of decimal digits to store in output table, def.=8. +FlexibleScaleTable true # Create table fully flexible in mu_f (larger size), true, or + # table with fixed number of mu_f scale factors, def.=false. +ScaleVariationFactors { # Factorization scale variations (only needed for fixed-scale tables) + 0.5 1.0 2.0 # List of scale factors must include factor '1' +} # Scale factors will be ordered according to fastNLO convention: (1, min, ... , max) +ReadBinningFromSteering true # Specify if binning is read from this file. MUST be true for now! +IgnoreWarmupBinningCheck true # Ignore crosscheck of binning between steering and warmup + # Avoids problems with precision of bin borders e.g. in the case of Pi +#>>fastNLO-warmup.txt # Specify alternative filename to read warm-up results from, def.=SteerFileBasename_${ScenarioName}_warmup.txt + +# ==================================================================== # +# +# Specific fastNLO settings (normally do not need to be changed) +# Only change when you know what you are doing ...! +# +# ==================================================================== # +ApplyPDFReweighting true # Apply reweighting of pdfs for an optimized interpolation, def.=true. +CheckScaleLimitsAgainstBins true # Set limits for scale nodes to bin borders, if possible + +# -------------------------------------------------------------------- # +# 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)) +# -------------------------------------------------------------------- # +X_Kernel Lagrange +X_DistanceMeasure "log10" +X_NNodes 9 +X_NoOfNodesPerMagnitude false +X_NNodeCounting "NodesPerBin" + +Mu1_Kernel Lagrange +Mu1_DistanceMeasure "loglog025" +Mu1_NNodes 6 +Mu1_NNodeCounting "NodesPerBin" + +Mu2_Kernel Lagrange # Scale2 not used for fixed-scale tables +Mu2_DistanceMeasure "loglog025" +Mu2_NNodes 6 +Mu2_NNodeCounting "NodesPerBin" diff --git a/v2.5/generators/nlojet++/interface/data/check/flex_NodeDensity.str b/v2.5/generators/nlojet++/interface/data/check/flex_slx_NodeDensity.str similarity index 99% rename from v2.5/generators/nlojet++/interface/data/check/flex_NodeDensity.str rename to v2.5/generators/nlojet++/interface/data/check/flex_slx_NodeDensity.str index a3eb18b3..fd1f5952 100644 --- a/v2.5/generators/nlojet++/interface/data/check/flex_NodeDensity.str +++ b/v2.5/generators/nlojet++/interface/data/check/flex_slx_NodeDensity.str @@ -15,7 +15,7 @@ # Description of scenario # (Write each line of description in quotation marks) # -------------------------------------------------------------------- # -ScenarioName InclusiveJets_flex +ScenarioName InclusiveJets_flex_slx ScenarioDescription { "d2sigma-jet_dpT_dy_[pb_GeV]" "CMS_Collaboration" diff --git a/v2.5/generators/nlojet++/interface/data/check/flex_NodesPerBin.str b/v2.5/generators/nlojet++/interface/data/check/flex_slx_NodesPerBin.str similarity index 99% rename from v2.5/generators/nlojet++/interface/data/check/flex_NodesPerBin.str rename to v2.5/generators/nlojet++/interface/data/check/flex_slx_NodesPerBin.str index 9ec5051a..66bc3485 100644 --- a/v2.5/generators/nlojet++/interface/data/check/flex_NodesPerBin.str +++ b/v2.5/generators/nlojet++/interface/data/check/flex_slx_NodesPerBin.str @@ -15,7 +15,7 @@ # Description of scenario # (Write each line of description in quotation marks) # -------------------------------------------------------------------- # -ScenarioName InclusiveJets_flex +ScenarioName InclusiveJets_flex_slx ScenarioDescription { "d2sigma-jet_dpT_dy_[pb_GeV]" "CMS_Collaboration" diff --git a/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc b/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc index 91ce9b43..618d9d8e 100644 --- a/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc +++ b/v2.5/toolkit/fastnlotoolkit/fastNLOInterpolBase.cc @@ -42,27 +42,27 @@ fastNLOInterpolBase::fastNLOInterpolBase(double density, fastNLOGrid::GridType t break; case fastNLOGrid::kLogLog025: valMaxH = Function_loglog025(fvalmax); - fvalmin = Function_loglog025_inv(valMaxH - valMinOffsetH); + fvalmin = Function_loglog025_inv(valMaxH + valMinOffsetH); break; case fastNLOGrid::kLog10: valMaxH = Function_log10(fvalmax); - fvalmin = Function_log10_inv(valMaxH - valMinOffsetH); + fvalmin = Function_log10_inv(valMaxH + valMinOffsetH); break; case fastNLOGrid::kSqrtLog10: valMaxH = Function_sqrtlog10(fvalmax); - fvalmin = Function_sqrtlog10_inv(valMaxH - valMinOffsetH); + fvalmin = Function_sqrtlog10_inv(valMaxH + valMinOffsetH); break; case fastNLOGrid::kLogLog: valMaxH = Function_loglog(fvalmax); - fvalmin = Function_loglog_inv(valMaxH - valMinOffsetH); + fvalmin = Function_loglog_inv(valMaxH + valMinOffsetH); break; case fastNLOGrid::k3rdrtLog10: valMaxH = Function_3rdrtlog10(fvalmax); - fvalmin = Function_3rdrtlog10_inv(valMaxH - valMinOffsetH); + fvalmin = Function_3rdrtlog10_inv(valMaxH + valMinOffsetH); break; case fastNLOGrid::k4thrtLog10: valMaxH = Function_4thrtlog10(fvalmax); - fvalmin = Function_4thrtlog10_inv(valMaxH - valMinOffsetH); + fvalmin = Function_4thrtlog10_inv(valMaxH + valMinOffsetH); break; default: error["MakeGridFromHGrid"]<<"Unknown grid type."<<endl; @@ -182,7 +182,7 @@ int fastNLOInterpolBase::FindLargestPossibleNode(double x, bool canExtend = fals if (canExtend && fExtendLow) { bool gridExtended = false; while ( x < fgrid[1] ) { - double newxH = fHgrid[0] - (fHgrid[1] - fHgrid[0]); + const double newxH = fHgrid[0] - (fHgrid[1] - fHgrid[0]); fHgrid.insert(fHgrid.begin(), newxH); switch (fdm) { -- GitLab