ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
python.processes.powheg.WWj.WWj Class Reference

Default Powheg configuration for W-boson pair production plus one jet. More...

Inheritance diagram for python.processes.powheg.WWj.WWj:
Collaboration diagram for python.processes.powheg.WWj.WWj:

Public Member Functions

def __init__ (self, base_directory, **kwargs)
 Constructor: all process options are set here. More...
 
def validate_decays (self)
 Validate the various decay mode keywords. More...
 
def default_PDFs (self)
 Default PDFs for this process. More...
 
def default_scales (self)
 Default scale variations for this process. More...
 
def files_for_cleanup (self)
 Wildcarded list of files created by this process that can be deleted. More...
 
def integration_file_names (self)
 Wildcarded list of integration files that might be created by this process. More...
 
def mandatory_integration_file_names (self)
 Wildcarded list of integration files that are needed for this process. More...
 
def powheg_version (self)
 Version of PowhegBox process. More...
 
def stage_is_completed (self, stage)
 Set whether the specified POWHEG-BOX generation stage is complete. More...
 
def hoppet_info (self)
 
def hoppet_warning (self)
 
def openloops_error (self)
 
def manually_set_openloops_paths (self)
 
def manually_set_openloops_gnu_paths (self)
 
def link_madloop_libraries (self)
 
def link_external_powheg_libraries (self, librarypath)
 
def add_algorithm (self, alg_or_process)
 Add an algorithm or external process to the sequence. More...
 
def prepare_to_parallelise (self, n_cores)
 Scale calculation parameters by n_cores. More...
 
def validate_parameters (self)
 Validate any parameters which need it before preparing runcard. More...
 
def validate_integration_parameters (self)
 Validate integration keywords by forcing to integer values. More...
 
def check_decay_mode (self, decay_mode, allowed_decay_modes=None)
 Check whether a decay mode is allowed an raise an exception if it is not. More...
 
def check_using_integration_files (self)
 
def modify_parameter (self, stage=0)
 
def set_parameter_in_config (self, key, value)
 
def add_keyword (self, keyword, value=None, name=None, frozen=None, hidden=None, description=None, **kwargs)
 Register configurable parameter that is exposed to the user. More...
 
def expose (self)
 Add all names to the interface of this object. More...
 
def has_keyword (self, keyword)
 
def has_parameter (self, parameter)
 
def parameters_by_keyword (self, keyword)
 Retrieve all parameters that use a given keyword. More...
 
def parameters_by_name (self, name)
 Retrieve all parameters that use a given name. More...
 

Public Attributes

 allowed_decay_modes
 List of allowed decay modes. More...
 
 executable
 Powheg executable that will be used. More...
 
 process_revision
 SVN revision of process code. More...
 
 powhegbox_revision
 Log the PowhegBox version and process-code revision for AMI etc. More...
 
 cores
 Number of cores to use. More...
 
 algorithms
 List of additional algorithms to schedule. More...
 
 externals
 List of external processes to schedule. More...
 
 validation_functions
 List of validation functions to run before preparing runcard. More...
 
 is_reweightable
 Switch to determine whether reweighting is allowed. More...
 
 use_XML_reweighting
 Switch to determine whether XML reweighting should be used. More...
 
 remove_oldStyle_rwt_comments
 Switch to determine if the #rwgt and #pdf comments should be kept in lhe files despite using xml reweighting. More...
 
 warning_output
 Special treatment for some log messages. More...
 
 info_output
 
 error_output
 
 parameterStageDict
 Dictionary used to change parameters of the Powheg input. More...
 
 parameters
 List of available parameters. More...
 

Detailed Description

Default Powheg configuration for W-boson pair production plus one jet.

Create a configurable object with all applicable Powheg options.

Author
Timoth\'ee Theveneaux-Pelzer tpelz.nosp@m.er@c.nosp@m.ern.c.nosp@m.h

Definition at line 10 of file WWj.py.

Constructor & Destructor Documentation

◆ __init__()

def python.processes.powheg.WWj.WWj.__init__ (   self,
  base_directory,
**  kwargs 
)

Constructor: all process options are set here.

Parameters
base_directorypath to PowhegBox code.
kwargsdictionary of arguments from Generate_tf.

Definition at line 18 of file WWj.py.

18  def __init__(self, base_directory, **kwargs):
19  """! Constructor: all process options are set here.
20 
21  @param base_directory: path to PowhegBox code.
22  @param kwargs dictionary of arguments from Generate_tf.
23  """
24  super(WWj, self).__init__(base_directory, "WWJ", **kwargs)
25 
26  # Add parameter validation functions
27  self.validation_functions.append("validate_decays")
28 
29 
30  self.allowed_decay_modes = ["w+ w- > e+ ve e- ve~",
31  "w+ w- > mu+ vm mu- vm~",
32  "w+ w- > tau+ vt tau- vt~",
33  "w+ w- > e+ ve mu- vm~ / mu+ vm e- ve~",
34  "w+ w- > l+ vl l'- vl'~",
35  "w+ w- > l+ vl j j / j j l- vl~",
36  "w+ w- > e+ ve j j / j j e- ve~ / mu+ vmu j j / j j mu- vmu~",
37  "w+ w- > j j j j",
38  "w+ w- > e+ ve mu- vm~",
39  "w+ w- > mu+ vm e- ve~"]
40 
41  # Add all keywords for this process, overriding defaults if required
42  self.add_keyword("bornktmin")
43  self.add_keyword("bornonly")
44  self.add_keyword("bornsuppfact")
45  self.add_keyword("bornzerodamp")
46  self.add_keyword("bottomthr")
47  self.add_keyword("bottomthrpdf")
48  self.add_keyword("btildeborn")
49  self.add_keyword("btildecoll")
50  self.add_keyword("btildereal")
51  self.add_keyword("btildevirt")
52  self.add_keyword("btlscalect")
53  self.add_keyword("btlscalereal")
54  self.add_keyword("charmthr")
55  self.add_keyword("charmthrpdf")
56  self.add_keyword("check_bad_st2")
57  self.add_keyword("clobberlhe")
58  self.add_keyword("colltest")
59  self.add_keyword("compress_lhe")
60  self.add_keyword("compress_upb")
61  self.add_keyword("compute_rwgt")
62  self.add_keyword("delg1_g")
63  self.add_keyword("delg1_z")
64  self.add_keyword("delk_g")
65  self.add_keyword("delk_z")
66  self.add_keyword("doublefsr")
67  self.add_keyword("dronly")
68  self.add_keyword("evenmaxrat")
69  self.add_keyword("facscfact", self.default_scales[0])
70  self.add_keyword("fastbtlbound")
71  self.add_keyword("fixedgrid")
72  self.add_keyword("fixedscale")
73  self.add_keyword("flg_debug")
74  self.add_keyword("foldcsi")
75  self.add_keyword("foldphi")
76  self.add_keyword("foldy")
77  self.add_keyword("fullrwgt")
78  self.add_keyword("fullrwgtmode")
79  self.add_keyword("hdamp")
80  self.add_keyword("hfact")
81  self.add_keyword("icsimax")
82  self.add_keyword("ih1")
83  self.add_keyword("ih2")
84  self.add_keyword("itmx1", 4)
85  self.add_keyword("itmx1rm")
86  self.add_keyword("itmx2", 5)
87  self.add_keyword("itmx2rm")
88  self.add_keyword("iupperfsr")
89  self.add_keyword("iupperisr")
90  self.add_keyword("iymax")
91  self.add_keyword("lambda_g")
92  self.add_keyword("lambda_z")
93  self.add_keyword("lhans1", self.default_PDFs)
94  self.add_keyword("lhans2", self.default_PDFs)
95  self.add_keyword("lhapdf6maxsets")
96  self.add_keyword("lhrwgt_descr")
97  self.add_keyword("lhrwgt_group_combine")
98  self.add_keyword("lhrwgt_group_name")
99  self.add_keyword("lhrwgt_id")
100  self.add_keyword("LOevents")
101  self.add_keyword("manyseeds")
102  self.add_keyword("max_io_bufsize")
103  self.add_keyword("maxseeds")
104  self.add_keyword("minlo")
105  self.add_keyword("mintupbratlim")
106  self.add_keyword("mintupbxless")
107  self.add_keyword("ncall1", 40000)
108  self.add_keyword("ncall1rm")
109  self.add_keyword("ncall2", 80000)
110  self.add_keyword("ncall2rm")
111  self.add_keyword("ncallfrominput")
112  self.add_keyword("noevents")
113  self.add_keyword("novirtual")
114  self.add_keyword("nubound", 30000)
115  self.add_keyword("nnlops")
116  self.add_keyword("olddij")
117  self.add_keyword("par_2gsupp")
118  self.add_keyword("par_diexp")
119  self.add_keyword("par_dijexp")
120  self.add_keyword("parallelstage")
121  self.add_keyword("pdfreweight")
122  self.add_keyword("ptsqmin")
123  self.add_keyword("ptsupp")
124  self.add_keyword("radregion")
125  self.add_keyword("rand1")
126  self.add_keyword("rand2")
127  self.add_keyword("renscfact", self.default_scales[1])
128  self.add_keyword("runningscales") # 0 = fixed scale 2m(W), 1=m(WW), 2=mT(W+) + mT(W-)
129  self.add_keyword("runningwidth")
130  self.add_keyword("rwl_add")
131  self.add_keyword("rwl_file")
132  self.add_keyword("rwl_format_rwgt")
133  self.add_keyword("rwl_group_events")
134  self.add_keyword("skipextratests")
135  self.add_keyword("smartsig")
136  self.add_keyword("softtest")
137  self.add_keyword("stage2init")
138  self.add_keyword("storeinfo_rwgt")
139  self.add_keyword("storemintupb")
140  self.add_keyword("testplots")
141  self.add_keyword("testsuda")
142  self.add_keyword("tevscale")
143  self.add_keyword("ubexcess_correct")
144  self.add_keyword("ubsigmadetails")
145  self.add_keyword("use-old-grid")
146  self.add_keyword("use-old-ubound")
147  self.add_keyword("withdamp")
148  self.add_keyword("withnegweights")
149  self.add_keyword("withsubtr")
150  self.add_keyword("e+e-")
151  self.add_keyword("mu+mu-")
152  self.add_keyword("tau+tau-")
153  self.add_keyword("leptonic_notau")
154  self.add_keyword("leptonic")
155  self.add_keyword("hadronic")
156  self.add_keyword("semileptonic", "w+ w- > l+ vl l'- vl'~", name="decay_mode", hidden=False)
157  self.add_keyword("semileptonic_notau")
158  self.add_keyword("e+mu-")
159  self.add_keyword("mu+e-")
160  self.add_keyword("xgriditeration")
161  self.add_keyword("xupbound")
162  self.add_keyword("zerowidth")
163 

Member Function Documentation

◆ add_algorithm()

def python.processes.powheg_base.PowhegBase.add_algorithm (   self,
  alg_or_process 
)
inherited

Add an algorithm or external process to the sequence.

Parameters
processAlgorithm or external process to add.

Definition at line 205 of file powheg_base.py.

205  def add_algorithm(self, alg_or_process):
206  """! Add an algorithm or external process to the sequence.
207 
208  @param process Algorithm or external process to add.
209  """
210  # Either add to the list of algorithms to schedule
211  if isinstance(alg_or_process, str):
212  self.algorithms.append(alg_or_process)
213  # ... or add as an external process
214  else:
215  self.externals[alg_or_process.name] = alg_or_process
216 

◆ add_keyword()

def python.processes.configurable.Configurable.add_keyword (   self,
  keyword,
  value = None,
  name = None,
  frozen = None,
  hidden = None,
  description = None,
**  kwargs 
)
inherited

Register configurable parameter that is exposed to the user.

Parameters
keywordPowheg keyword that gets written to the runcard.
valueValue of the parameter.
nameConfigurable parameter name exposed to the user.
hiddenTrue if this parameter should be hidden from the user.
frozenTrue if this parameter cannot be changed.
descriptionDescription for the run card.
parameterName used in the run card if different.

Definition at line 21 of file configurable.py.

21  def add_keyword(self, keyword, value=None, name=None, frozen=None, hidden=None, description=None, **kwargs):
22  """! Register configurable parameter that is exposed to the user.
23 
24  @param keyword Powheg keyword that gets written to the runcard.
25  @param value Value of the parameter.
26  @param name Configurable parameter name exposed to the user.
27  @param hidden True if this parameter should be hidden from the user.
28  @param frozen True if this parameter cannot be changed.
29  @param description Description for the run card.
30  @param parameter Name used in the run card if different.
31  """
32  # Retrieve default settings from registry overriding if requested
33  defaults = Registry().get_defaults(keyword)
34  if value == defaults["value"] and value is not None and (hidden is not True):
35  if keyword not in ["ebeam1", "ebeam2"]:
36  logger.debug("Unnecessarily setting parameter {} to {} which is its default value!".format(keyword, value))
37  value = [value, defaults["value"]][value is None]
38  name = [name, defaults["name"]][name is None]
39  description = [description, defaults["description"]][description is None]
40  hidden = [hidden, defaults["hidden"]][hidden is None]
41  frozen = [frozen, defaults["frozen"]][frozen is None]
42  if keyword in [p.keyword for p in self.parameters]:
43  raise AttributeError("Keyword '{}' has already been defined for this process".format(keyword))
44  self.parameters.append(Parameter(keyword, name=name, value=value, frozen=frozen, hidden=hidden, description=description, **kwargs))
45 

◆ check_decay_mode()

def python.processes.powheg_base.PowhegBase.check_decay_mode (   self,
  decay_mode,
  allowed_decay_modes = None 
)
inherited

Check whether a decay mode is allowed an raise an exception if it is not.

Definition at line 280 of file powheg_base.py.

280  def check_decay_mode(self, decay_mode, allowed_decay_modes=None):
281  """! Check whether a decay mode is allowed an raise an exception if it is not."""
282  if allowed_decay_modes is None:
283  allowed_decay_modes = self.allowed_decay_modes
284  if decay_mode not in allowed_decay_modes:
285  logger.warning("Decay mode {} not recognised!".format(decay_mode))
286  logger.info("Allowed decay modes are:")
287  for allowed_decay_mode in allowed_decay_modes:
288  logger.info("... {}".format(allowed_decay_mode))
289  raise ValueError("Decay mode {} not recognised!".format(decay_mode))
290 

◆ check_using_integration_files()

def python.processes.powheg_base.PowhegBase.check_using_integration_files (   self)
inherited

Definition at line 291 of file powheg_base.py.

292 
293  search_strings = [] # list of filename patters to be searched for
294  found_files = [] # list of found files will be printed out for info
295  missing_patterns = [] # list of filename patters which hasn't been found but would be needed for pre-made integration grids
296  try:
297  search_strings = self.mandatory_integration_file_names
298  except AttributeError:
299  logger.fatal("No integration grid file name patterns defined for this process.")
300  raise
301  for s in search_strings:
302  found = glob.glob(s)
303  if found != []:
304  found_files += found
305  else:
306  missing_patterns.append(s)
307  if missing_patterns == []:
308  logger.info("Integration grid files found locally. Event generation shall continue, skipping the integration step.")
309  logger.info("Integration grid files found locally: {}".format(found_files))
310  else:
311  logger.info("Integration grid files needed were not found locally. Event generation shall continue, starting by the integration step.")
312  logger.info("Missing integration grid files with these patterns: {}".format(missing_patterns))
313  logger.info("Integration grid files found locally (if any): {}".format(found_files))
314 
315 

◆ default_PDFs()

def python.processes.powheg_V2.PowhegV2.default_PDFs (   self)
inherited

Default PDFs for this process.

Reimplemented from python.processes.powheg_base.PowhegBase.

Definition at line 27 of file powheg_V2.py.

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 

◆ default_scales()

def python.processes.powheg_V2.PowhegV2.default_scales (   self)
inherited

Default scale variations for this process.

Reimplemented from python.processes.powheg_base.PowhegBase.

Definition at line 41 of file powheg_V2.py.

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 

◆ expose()

def python.processes.configurable.Configurable.expose (   self)
inherited

Add all names to the interface of this object.

Definition at line 46 of file configurable.py.

46  def expose(self):
47  """! Add all names to the interface of this object."""
48  for parameter in self.parameters:
49  setattr(self, parameter.name, parameter.value)
50 

◆ files_for_cleanup()

def python.processes.powheg_V2.PowhegV2.files_for_cleanup (   self)
inherited

Wildcarded list of files created by this process that can be deleted.

Reimplemented from python.processes.powheg_base.PowhegBase.

Definition at line 47 of file powheg_V2.py.

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 

◆ has_keyword()

def python.processes.configurable.Configurable.has_keyword (   self,
  keyword 
)
inherited

Definition at line 51 of file configurable.py.

51  def has_keyword(self, keyword):
52  return (len(list(self.parameters_by_keyword(keyword))) > 0)
53 

◆ has_parameter()

def python.processes.configurable.Configurable.has_parameter (   self,
  parameter 
)
inherited

Definition at line 54 of file configurable.py.

54  def has_parameter(self, parameter):
55  return (len(list(self.parameters_by_name(parameter))) > 0)
56 

◆ hoppet_info()

def python.processes.powheg_base.PowhegBase.hoppet_info (   self)
inherited
Returns a list of strings to be treated as info messages in the log
They otherwise throw an error with HOPPET v. 1.2.0
Cf. AGENE-2016

Definition at line 23 of file powheg_base.py.

23  def hoppet_info(self):
24  '''
25  Returns a list of strings to be treated as info messages in the log
26  They otherwise throw an error with HOPPET v. 1.2.0
27  Cf. AGENE-2016
28  '''
29  return ["-----------------------------------------------------------",
30  "Welcome to HOPPET v. 1.2.0",
31  "Higher Order Perturbative Parton Evolution Toolkit",
32  "Written by Gavin P. Salam (2001-2012)",
33  "with contributions from Juan Rojo",
34  "Frederic Dreyer and Alexander Karlberg",
35  "It is made available under the GNU public license,",
36  "with the additional request that if you use it or any",
37  "derivative of it in scientific work then you should cite:",
38  "G.P. Salam & J. Rojo, CPC 180(2009)120 (arXiv:0804.3755).",
39  "You are also encouraged to cite the original references,",
40  "for LO, NLO and NNLO splitting functions, the QCD",
41  "1, 2 and 3 loop beta functions and the coupling and",
42  "PDF and coupling mass threshold matching functions."]
43 

◆ hoppet_warning()

def python.processes.powheg_base.PowhegBase.hoppet_warning (   self)
inherited
Returns a list of strings to be treated as warning messages in the log
They otherwise throw an error

Definition at line 44 of file powheg_base.py.

44  def hoppet_warning(self):
45  '''
46  Returns a list of strings to be treated as warning messages in the log
47  They otherwise throw an error
48  '''
49  return ["WARNING in InitMTMNNLO: using parametrisation (less accuracte) for A2PShg"]
50 

◆ integration_file_names()

def python.processes.powheg_V2.PowhegV2.integration_file_names (   self)
inherited

Wildcarded list of integration files that might be created by this process.

All files matching these patterns will be included in the gridpack.

Reimplemented from python.processes.powheg_base.PowhegBase.

Definition at line 67 of file powheg_V2.py.

67  def integration_file_names(self):
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 

◆ link_external_powheg_libraries()

def python.processes.powheg_base.PowhegBase.link_external_powheg_libraries (   self,
  librarypath 
)
inherited
Manual fix for external libraries path.
This library is expected to be installed in the POWHEGPATH folder.
Needs to be adjusted if the version of the library changes.

Definition at line 122 of file powheg_base.py.

122  def link_external_powheg_libraries(self, librarypath):
123  '''
124  Manual fix for external libraries path.
125  This library is expected to be installed in the POWHEGPATH folder.
126  Needs to be adjusted if the version of the library changes.
127  '''
128  logger.warning("Applying manual fixes for library paths:" + librarypath)
129  logger.debug("LD_LIBRARY_PATH (before) = {0}".format(os.getenv('LD_LIBRARY_PATH')))
130  ldpath = os.getenv('LD_LIBRARY_PATH')
131  powhegpath = os.getenv('POWHEGPATH')
132  librarypath = glob.glob(powhegpath+librarypath)
133  ldpath_new = ldpath+ ":" + librarypath[0]
134  os.environ['LD_LIBRARY_PATH'] = ldpath_new
135  logger.debug("LD_LIBRARY_PATH (after) = {0}".format(os.getenv('LD_LIBRARY_PATH')))
136 

◆ link_madloop_libraries()

def python.processes.powheg_base.PowhegBase.link_madloop_libraries (   self)
inherited
Manual fix for MadLoop libraries, avoiding issues when /afs not available
This is NOT a viable long-term solution and should be made obsolete after the migration
The trick consists in making a symbolic link of some directory in the installation
which contains some files needed by MadLoop

Definition at line 94 of file powheg_base.py.

94  def link_madloop_libraries(self):
95  '''
96  Manual fix for MadLoop libraries, avoiding issues when /afs not available
97  This is NOT a viable long-term solution and should be made obsolete after the migration
98  The trick consists in making a symbolic link of some directory in the installation
99  which contains some files needed by MadLoop
100  '''
101  import os
102  logger.warning("Applying manual, hard-coded fixes for MadLoop library paths")
103  MadLoop_virtual = os.path.dirname(self.executable)+"/virtual"
104  logger.info("Trying to link directory {} locally".format(MadLoop_virtual))
105  if not os.access(MadLoop_virtual,os.R_OK):
106  logger.fatal("Impossible to access directory {} needed for this process which uses MadLoop".format(MadLoop_virtual))
107  if os.access("virtual",os.R_OK):# checking if link already exists
108  logger.info("Found \"virtual\" probably from previous run - deleting it to recreate it with correct path")
109  try:
110  os.remove("virtual")
111  except Exception:
112  logger.fatal("Impossible to remove \"virtual\" symbolic link - exiting...")
113  raise
114  os.symlink(MadLoop_virtual, "virtual")
115  link = os.readlink("virtual")
116  if link != MadLoop_virtual:
117  logger.fatal("Symbolic link \"virtual\" points to {0} while it should point to {1} - linking probably didn't work. Exiting...".format(link,MadLoop_virtual))
118  raise
119  else:
120  logger.info("Local directory \"virtual\" now points to {}".format(MadLoop_virtual))
121 

◆ mandatory_integration_file_names()

def python.processes.powheg_V2.PowhegV2.mandatory_integration_file_names (   self)
inherited

Wildcarded list of integration files that are needed for this process.

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.

Reimplemented from python.processes.powheg_base.PowhegBase.

Definition at line 80 of file powheg_V2.py.

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 

◆ manually_set_openloops_gnu_paths()

def python.processes.powheg_base.PowhegBase.manually_set_openloops_gnu_paths (   self)
inherited
Manual fix for OpenLoops libraries path, avoiding issues when /afs not available
This is NOT a viable long-term solution and should be made obsolete after the migration
away from AFS is more advanced.

Definition at line 76 of file powheg_base.py.

77  '''
78  Manual fix for OpenLoops libraries path, avoiding issues when /afs not available
79  This is NOT a viable long-term solution and should be made obsolete after the migration
80  away from AFS is more advanced.
81  '''
82  import os
83  logger.warning("Applying manual, hard-coded fixes for OpenLoops library paths")
84  logger.info("OpenLoopsPath (before) = {0}".format(os.getenv('OpenLoopsPath')))
85  logger.debug("LD_LIBRARY_PATH (before) = {0}".format(os.getenv('LD_LIBRARY_PATH')))
86  OLPath = os.path.dirname(self.executable)+"/obj-gnu"
87  os.environ['OpenLoopsPath'] = OLPath
88  ldpath = os.getenv('LD_LIBRARY_PATH')
89  ldpath_new = OLPath+ ":" + OLPath + "/proclib:" + ldpath
90  os.environ['LD_LIBRARY_PATH'] = ldpath_new
91  logger.info("OpenLoopsPath (after) = {0}".format(os.getenv('OpenLoopsPath')))
92  logger.debug("LD_LIBRARY_PATH (after) = {0}".format(os.getenv('LD_LIBRARY_PATH')))
93 

◆ manually_set_openloops_paths()

def python.processes.powheg_base.PowhegBase.manually_set_openloops_paths (   self)
inherited
Manual fix for OpenLoops libraries path, avoiding issues when /afs not available
This is NOT a viable long-term solution and should be made obsolete after the migration
away from AFS is more advanced.

Definition at line 58 of file powheg_base.py.

59  '''
60  Manual fix for OpenLoops libraries path, avoiding issues when /afs not available
61  This is NOT a viable long-term solution and should be made obsolete after the migration
62  away from AFS is more advanced.
63  '''
64  import os
65  logger.warning("Applying manual, hard-coded fixes for OpenLoops library paths")
66  logger.info("OpenLoopsPath (before) = {0}".format(os.getenv('OpenLoopsPath')))
67  logger.debug("LD_LIBRARY_PATH (before) = {0}".format(os.getenv('LD_LIBRARY_PATH')))
68  OLPath = os.path.dirname(self.executable)+"/obj-gfortran"
69  os.environ['OpenLoopsPath'] = OLPath
70  ldpath = os.getenv('LD_LIBRARY_PATH')
71  ldpath_new = OLPath+ ":" + OLPath + "/proclib:" + ldpath
72  os.environ['LD_LIBRARY_PATH'] = ldpath_new
73  logger.info("OpenLoopsPath (after) = {0}".format(os.getenv('OpenLoopsPath')))
74  logger.debug("LD_LIBRARY_PATH (after) = {0}".format(os.getenv('LD_LIBRARY_PATH')))
75 

◆ modify_parameter()

def python.processes.powheg_base.PowhegBase.modify_parameter (   self,
  stage = 0 
)
inherited

Definition at line 316 of file powheg_base.py.

316  def modify_parameter(self, stage = 0):
317 
318  #skip modifying if dict is empty
319  if not bool(self.parameterStageDict):
320  return
321 
322  logger.info("Modifying parameters for the stages : {0}".format(self.parameterStageDict))
323 
324 
325  for key in self.parameterStageDict:
326  settingsList = self.parameterStageDict[key]
327  if abs(settingsList[2] - stage) <=1e-09:
328  self.set_parameter_in_config(key,settingsList[1])
329  else:
330  self.set_parameter_in_config(key,settingsList[0])
331 

◆ openloops_error()

def python.processes.powheg_base.PowhegBase.openloops_error (   self)
inherited
Returns a list of strings to be treated as error messages in the log
They otherwise do not throw an error

Definition at line 51 of file powheg_base.py.

51  def openloops_error(self):
52  '''
53  Returns a list of strings to be treated as error messages in the log
54  They otherwise do not throw an error
55  '''
56  return ["[POWHEG-BOX+OpenLoops] Process not found!"]
57 

◆ parameters_by_keyword()

def python.processes.configurable.Configurable.parameters_by_keyword (   self,
  keyword 
)
inherited

Retrieve all parameters that use a given keyword.

Parameters
keywordPowheg keyword that gets written to the runcard.

Definition at line 57 of file configurable.py.

57  def parameters_by_keyword(self, keyword):
58  """! Retrieve all parameters that use a given keyword.
59 
60  @param keyword Powheg keyword that gets written to the runcard.
61  """
62  return [p for p in self.parameters if p.keyword == keyword]
63 

◆ parameters_by_name()

def python.processes.configurable.Configurable.parameters_by_name (   self,
  name 
)
inherited

Retrieve all parameters that use a given name.

Parameters
nameConfigurable parameter name exposed to the user.

Definition at line 64 of file configurable.py.

64  def parameters_by_name(self, name):
65  """! Retrieve all parameters that use a given name.
66 
67  @param name Configurable parameter name exposed to the user.
68  """
69  return [p for p in self.parameters if p.name == name]

◆ powheg_version()

def python.processes.powheg_V2.PowhegV2.powheg_version (   self)
inherited

Version of PowhegBox process.

Reimplemented from python.processes.powheg_base.PowhegBase.

Definition at line 92 of file powheg_V2.py.

92  def powheg_version(self):
93  """! Version of PowhegBox process."""
94  return "V2"
95 

◆ prepare_to_parallelise()

def python.processes.powheg_base.PowhegBase.prepare_to_parallelise (   self,
  n_cores 
)
inherited

Scale calculation parameters by n_cores.

Definition at line 247 of file powheg_base.py.

247  def prepare_to_parallelise(self, n_cores):
248  """! Scale calculation parameters by n_cores."""
249  __nEvents_unscaled = self.parameters_by_keyword("numevts")[0].value
250  for keyword in ["ncall1", "ncall1rm", "ncall2", "ncall2rm", "nubound", "numevts"]:
251  for parameter in self.parameters_by_keyword(keyword):
252  if int(parameter.value) > 0:
253  parameter.value = int(math.ceil(float(parameter.value) / n_cores))
254  __nEvents_scaled = self.parameters_by_keyword("numevts")[0].value
255  logger.info("Scaling number of events per job from {} down to {}".format(__nEvents_unscaled, __nEvents_scaled))
256  # Freeze parallelstage parameters before printing list for user
257  [parameter.freeze() for parameter in self.parameters_by_name("parallelstage")]
258 

◆ set_parameter_in_config()

def python.processes.powheg_base.PowhegBase.set_parameter_in_config (   self,
  key,
  value 
)
inherited

Definition at line 332 of file powheg_base.py.

332  def set_parameter_in_config(self, key, value):
333  FileParser("powheg.input").text_replace(key+".*", key+" {}".format(value))

◆ stage_is_completed()

def python.processes.powheg_V2.PowhegV2.stage_is_completed (   self,
  stage 
)
inherited

Set whether the specified POWHEG-BOX generation stage is complete.

Reimplemented from python.processes.powheg_base.PowhegBase.

Definition at line 96 of file powheg_V2.py.

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

◆ validate_decays()

def python.processes.powheg.WWj.WWj.validate_decays (   self)

Validate the various decay mode keywords.

Definition at line 164 of file WWj.py.

164  def validate_decays(self):
165  """! Validate the various decay mode keywords."""
166  self.expose() # convenience call to simplify syntax
167  self.check_decay_mode(self.decay_mode, self.allowed_decay_modes)
168  # Enable appropriate decay mode
169  list(self.parameters_by_keyword("semileptonic"))[0].value = 0 # disable the one used as a proxy for decay mode
170  __decay_mode_lookup = { "w+ w- > e+ ve e- ve~": "e+e-",
171  "w+ w- > mu+ vm mu- vm~": "mu+mu-",
172  "w+ w- > tau+ vt tau- vt~": "tau+tau-",
173  "w+ w- > e+ ve mu- vm~ / mu+ vm e- ve~": "leptonic_notau",
174  "w+ w- > l+ vl l'- vl'~": "leptonic",
175  "w+ w- > l+ vl j j / j j l- vl~": "hadronic",
176  "w+ w- > e+ ve j j / j j e- ve~ / mu+ vmu j j / j j mu- vmu~": "semileptonic",
177  "w+ w- > j j j j": "semileptonic_notau",
178  "w+ w- > e+ ve mu- vm~": "e+mu-",
179  "w+ w- > mu+ vm e- ve~": "mu+e-"}
180 
181  list(self.parameters_by_keyword(__decay_mode_lookup[self.decay_mode]))[0].value = 1

◆ validate_integration_parameters()

def python.processes.powheg_base.PowhegBase.validate_integration_parameters (   self)
inherited

Validate integration keywords by forcing to integer values.

Definition at line 269 of file powheg_base.py.

270  """! Validate integration keywords by forcing to integer values."""
271  self.expose() # convenience call to simplify syntax
272  for name in ("foldcsi", "foldphi", "foldy", "itmx1", "itmx2", "ncall1", "ncall2", "nEvents"):
273  for parameter in self.parameters_by_name(name):
274  try:
275  parameter.value = int(parameter.value)
276  except TypeError:
277  logger.fatal("Failed to validate {} with value {}".format(name, parameter.value))
278  raise
279 

◆ validate_parameters()

def python.processes.powheg_base.PowhegBase.validate_parameters (   self)
inherited

Validate any parameters which need it before preparing runcard.

Definition at line 264 of file powheg_base.py.

264  def validate_parameters(self):
265  """! Validate any parameters which need it before preparing runcard."""
266  for function_name in self.validation_functions:
267  getattr(self, function_name)()
268 

Member Data Documentation

◆ algorithms

python.processes.powheg_base.PowhegBase.algorithms
inherited

List of additional algorithms to schedule.

Definition at line 170 of file powheg_base.py.

◆ allowed_decay_modes

python.processes.powheg.WWj.WWj.allowed_decay_modes

List of allowed decay modes.

Definition at line 30 of file WWj.py.

◆ cores

python.processes.powheg_base.PowhegBase.cores
inherited

Number of cores to use.

Definition at line 167 of file powheg_base.py.

◆ error_output

python.processes.powheg_base.PowhegBase.error_output
inherited

Definition at line 199 of file powheg_base.py.

◆ executable

python.processes.powheg_base.PowhegBase.executable
inherited

Powheg executable that will be used.

Definition at line 151 of file powheg_base.py.

◆ externals

python.processes.powheg_base.PowhegBase.externals
inherited

List of external processes to schedule.

Definition at line 173 of file powheg_base.py.

◆ info_output

python.processes.powheg_base.PowhegBase.info_output
inherited

Definition at line 198 of file powheg_base.py.

◆ is_reweightable

python.processes.powheg_base.PowhegBase.is_reweightable
inherited

Switch to determine whether reweighting is allowed.

Definition at line 188 of file powheg_base.py.

◆ parameters

python.processes.configurable.Configurable.parameters
inherited

List of available parameters.

Definition at line 19 of file configurable.py.

◆ parameterStageDict

python.processes.powheg_base.PowhegBase.parameterStageDict
inherited

Dictionary used to change parameters of the Powheg input.

The structure is: {"parameter" : [default_value, changed_value, parallelstage_to_changed_value]}

Definition at line 203 of file powheg_base.py.

◆ powhegbox_revision

python.processes.powheg_base.PowhegBase.powhegbox_revision
inherited

Log the PowhegBox version and process-code revision for AMI etc.

Also set environment variable POWHEGVER to this contain this information SVN revision of PowhegBox code

Definition at line 164 of file powheg_base.py.

◆ process_revision

python.processes.powheg_base.PowhegBase.process_revision
inherited

SVN revision of process code.

Definition at line 154 of file powheg_base.py.

◆ remove_oldStyle_rwt_comments

python.processes.powheg_base.PowhegBase.remove_oldStyle_rwt_comments
inherited

Switch to determine if the #rwgt and #pdf comments should be kept in lhe files despite using xml reweighting.

Definition at line 194 of file powheg_base.py.

◆ use_XML_reweighting

python.processes.powheg_base.PowhegBase.use_XML_reweighting
inherited

Switch to determine whether XML reweighting should be used.

Definition at line 191 of file powheg_base.py.

◆ validation_functions

python.processes.powheg_base.PowhegBase.validation_functions
inherited

List of validation functions to run before preparing runcard.

Definition at line 176 of file powheg_base.py.

◆ warning_output

python.processes.powheg_base.PowhegBase.warning_output
inherited

Special treatment for some log messages.

Definition at line 197 of file powheg_base.py.


The documentation for this class was generated from the following file:
python.processes.configurable.Configurable.expose
def expose(self)
Add all names to the interface of this object.
Definition: configurable.py:46
python.processes.powheg_base.PowhegBase.hoppet_info
def hoppet_info(self)
Definition: powheg_base.py:23
python.processes.powheg_base.PowhegBase.validate_parameters
def validate_parameters(self)
Validate any parameters which need it before preparing runcard.
Definition: powheg_base.py:264
python.processes.powheg_base.PowhegBase.add_algorithm
def add_algorithm(self, alg_or_process)
Add an algorithm or external process to the sequence.
Definition: powheg_base.py:205
python.processes.powheg_base.PowhegBase.hoppet_warning
def hoppet_warning(self)
Definition: powheg_base.py:44
python.processes.powheg_base.PowhegBase.manually_set_openloops_gnu_paths
def manually_set_openloops_gnu_paths(self)
Definition: powheg_base.py:76
vtune_athena.format
format
Definition: vtune_athena.py:14
python.processes.configurable.Configurable.parameters_by_name
def parameters_by_name(self, name)
Retrieve all parameters that use a given name.
Definition: configurable.py:64
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.processes.powheg_base.PowhegBase.check_using_integration_files
def check_using_integration_files(self)
Definition: powheg_base.py:291
python.processes.configurable.Configurable.add_keyword
def add_keyword(self, keyword, value=None, name=None, frozen=None, hidden=None, description=None, **kwargs)
Register configurable parameter that is exposed to the user.
Definition: configurable.py:21
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.configurable.Configurable.has_parameter
def has_parameter(self, parameter)
Definition: configurable.py:54
python.processes.powheg_base.PowhegBase.prepare_to_parallelise
def prepare_to_parallelise(self, n_cores)
Scale calculation parameters by n_cores.
Definition: powheg_base.py:247
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
python.processes.powheg_base.PowhegBase.openloops_error
def openloops_error(self)
Definition: powheg_base.py:51
python.processes.powheg_base.PowhegBase.set_parameter_in_config
def set_parameter_in_config(self, key, value)
Definition: powheg_base.py:332
python.processes.configurable.Configurable.parameters_by_keyword
def parameters_by_keyword(self, keyword)
Retrieve all parameters that use a given keyword.
Definition: configurable.py:57
python.processes.powheg.ZZ.ZZ.validate_decays
def validate_decays(self)
Validate idvecbos and vdecaymode keywords.
Definition: ZZ.py:157
python.processes.powheg_V2.PowhegV2.powheg_version
def powheg_version(self)
Version of PowhegBox process.
Definition: powheg_V2.py:92
python.processes.powheg_base.PowhegBase.check_decay_mode
def check_decay_mode(self, decay_mode, allowed_decay_modes=None)
Check whether a decay mode is allowed an raise an exception if it is not.
Definition: powheg_base.py:280
python.processes.powheg_base.PowhegBase.validate_integration_parameters
def validate_integration_parameters(self)
Validate integration keywords by forcing to integer values.
Definition: powheg_base.py:269
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_base.PowhegBase.link_external_powheg_libraries
def link_external_powheg_libraries(self, librarypath)
Definition: powheg_base.py:122
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
python.processes.powheg_base.PowhegBase.link_madloop_libraries
def link_madloop_libraries(self)
Definition: powheg_base.py:94
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.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
python.processes.powheg_base.PowhegBase.modify_parameter
def modify_parameter(self, stage=0)
Definition: powheg_base.py:316
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.configurable.Configurable.has_keyword
def has_keyword(self, keyword)
Definition: configurable.py:51
python.processes.powheg_base.PowhegBase.manually_set_openloops_paths
def manually_set_openloops_paths(self)
Definition: powheg_base.py:58
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
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
readCCLHist.float
float
Definition: readCCLHist.py:83