ATLAS Offline Software
powheg_V2.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
2 
3 from .powheg_base import PowhegBase
4 import glob
5 
7  """! Base class for PowhegBox V2 processes.
8 
9  All V2 processes inherit from this class.
10 
11  @author James Robinson <james.robinson@cern.ch>
12  """
13 
14  def __init__(self, base_directory, executable_name, warning_output = [], info_output = [], error_output = [], **kwargs):
15  """! Constructor.
16 
17  @param base_directory path to PowhegBox code.
18  @param executable_name folder containing appropriate PowhegBox executable.
19  @param is_LO True if this is a leading-order process.
20  @param warning_output list of patterns which if found in the output will be treated as warning in the log.
21  @param error_output list of patterns which if found in the output will be treated as error in the log.
22  @param info_output list of patterns which if found in the output will be treated as info in the log.
23  """
24  super(PowhegV2, self).__init__(base_directory, "POWHEG-BOX-V2", executable_name=executable_name, warning_output=warning_output, info_output=info_output, error_output=error_output, **kwargs)
25 
26  @property
27  def default_PDFs(self):
28  """! Default PDFs for this process."""
29  __PDF_list = list(range(260000, 260101)) # NNPDF30_nlo_as_0118 central with eigensets
30  __PDF_list += [266000, 265000] # NNPDF30_nlo_as_0119 and NNPDF30_nlo_as_0117
31  __PDF_list += [303200] # NNPDF30_nnlo_as_0118_hessian
32  __PDF_list += [27400, 27100] # MSHT20nnlo_as118, MSHT20nlo_as118
33  __PDF_list += [14000, 14400] # CT18NNLO, CT18NLO
34  __PDF_list += [304400, 304200] # NNPDF31_nnlo_as_0118_hessian, NNPDF31_nlo_as_0118_hessian
35  __PDF_list += [331500, 331100] # NNPDF40_nnlo_as_01180_hessian, NNPDF40_nlo_as_01180
36  __PDF_list += [14200, 14300, 14100] # CT18ANNLO, CT18XNNLO and CT18ZNNLO
37  __PDF_list += list(range(93300, 93343)) # PDF4LHC21_40_pdfas with eigensets
38  return __PDF_list
39 
40  @property
41  def default_scales(self):
42  """! Default scale variations for this process."""
43  return [[1.0, 1.0, 1.0, 0.5, 0.5, 2.0, 2.0],\
44  [1.0, 0.5, 2.0, 0.5, 1.0, 1.0, 2.0]]
45 
46  @property
47  def files_for_cleanup(self):
48  """! Wildcarded list of files created by this process that can be deleted."""
49  return [
50  "bornequiv",
51  "FlavRegList",
52  "fort.18",
53  "mint_upb_btildeupb.top",
54  "mint_upb_remnupb.top",
55  "pwg*.top",
56  "pwgboundviolations*.dat",
57  "pwgcounters*.dat",
58  "pwgseeds.dat",
59  "pwgubsigma.dat",
60  "pwhg_checklimits",
61  "realequiv*",
62  "reweighting_input.xml",
63  "virtequiv"
64  ]
65 
66  @property
68  """! Wildcarded list of integration files that might be created by this process."""
69  """! All files matching these patterns will be included in the gridpack."""
70  return [
71  "pwg*xg*.dat",
72  "pwg*upb*.dat",
73  "pwggrid*.dat",
74  "pwgfullgrid*.dat",
75  "pwgubound*.dat",
76  "pwg*stat.dat",
77  ]
78 
79  @property
81  """! Wildcarded list of integration files that are needed for this process."""
82  """! If some of the patterns don't match any files before running, a warning will be made to inform that no pre-made integration grid will be used."""
83  return [
84  "pwg*xg*.dat",
85  #"pwg*upb*.dat", # not needed by ttj MiNNLO
86  "pwggrid*.dat",
87  #"pwgfullgrid*.dat", # not needed by ttj MiNNLO
88  "pwgubound*.dat",
89  ]
90 
91  @property
92  def powheg_version(self):
93  """! Version of PowhegBox process."""
94  return "V2"
95 
96  def stage_is_completed(self, stage):
97  """! Set whether the specified POWHEG-BOX generation stage is complete."""
98  if stage == 1:
99  required_files = ["pwg*xg*.dat"]
100  elif stage == 2:
101  required_files = ["pwg*upb*.dat", "pwggrid*.dat"]
102  elif stage == 3:
103  required_files = ["pwgfullgrid*.dat", "pwgubound*.dat"]
104  else:
105  return False
106 
107  # Check that required files have been found
108  for required_file in required_files:
109  if not glob.glob(required_file):
110  return False
111  return True
python.processes.powheg_base.PowhegBase
Base class for PowhegBox processes.
Definition: powheg_base.py:14
python.processes.powheg_V2.PowhegV2.files_for_cleanup
def files_for_cleanup(self)
Wildcarded list of files created by this process that can be deleted.
Definition: powheg_V2.py:47
python.processes.powheg_V2.PowhegV2.powheg_version
def powheg_version(self)
Version of PowhegBox process.
Definition: powheg_V2.py:92
python.processes.powheg_V2.PowhegV2.__init__
def __init__(self, base_directory, executable_name, warning_output=[], info_output=[], error_output=[], **kwargs)
Constructor.
Definition: powheg_V2.py:14
python.processes.powheg_V2.PowhegV2.default_scales
def default_scales(self)
Default scale variations for this process.
Definition: powheg_V2.py:41
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
python.processes.powheg_V2.PowhegV2.mandatory_integration_file_names
def mandatory_integration_file_names(self)
Wildcarded list of integration files that are needed for this process.
Definition: powheg_V2.py:80
python.processes.powheg_V2.PowhegV2
Base class for PowhegBox V2 processes.
Definition: powheg_V2.py:6
python.KeyStore.list
def list(self, key=None)
Definition: KeyStore.py:318
python.processes.powheg_V2.PowhegV2.integration_file_names
def integration_file_names(self)
Wildcarded list of integration files that might be created by this process.
Definition: powheg_V2.py:67
python.processes.powheg_V2.PowhegV2.default_PDFs
def default_PDFs(self)
Default PDFs for this process.
Definition: powheg_V2.py:27
python.processes.powheg_V2.PowhegV2.stage_is_completed
def stage_is_completed(self, stage)
Set whether the specified POWHEG-BOX generation stage is complete.
Definition: powheg_V2.py:96