ATLAS Offline Software
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
python.powheg_control.PowhegControl Class Reference

Provides PowhegConfig objects which are user-configurable in the jobOptions. More...

Inheritance diagram for python.powheg_control.PowhegControl:
Collaboration diagram for python.powheg_control.PowhegControl:

Public Member Functions

def __init__ (self, process_name, run_args=None, run_opts=None)
 Constructor. More...
 
def generate (self, create_run_card_only=False, save_integration_grids=True, use_external_run_card=False, remove_oldStyle_rwt_comments=False, is_bb4l_semilep=False)
 Run normal event generation. More...
 
def define_event_weight_group (self, group_name, parameters_to_vary, combination_method="none")
 Add a new named group of event weights. More...
 
def add_weight_to_group (self, group_name, weight_name, parameter_values)
 Add a new event weight to an existing group. More...
 
def __setattr__ (self, key, value)
 Override default attribute setting to stop users setting non-existent attributes. More...
 
def set_parameter_stage (self, parameterStageDict={})
 

Public Attributes

 scheduler
 Scheduler to determine algorithm ordering. More...
 
 process
 
 interface_frozen
 

Private Member Functions

def _generate_run_card (self)
 Initialise runcard with appropriate options. More...
 
def _generate_events (self, is_bb4l_semilep=False)
 Generate events according to the scheduler. More...
 

Private Attributes

 __run_directory
 Current directory. More...
 
 __output_LHE_file
 Name of output LHE file used by Generate_tf for showering. More...
 
 __event_weight_groups
 Dictionary of named groups of event weights. More...
 

Detailed Description

Provides PowhegConfig objects which are user-configurable in the jobOptions.

All subprocesses inherit from this class.

Author
James Robinson james.nosp@m..rob.nosp@m.inson.nosp@m.@cer.nosp@m.n.ch

Definition at line 33 of file powheg_control.py.

Constructor & Destructor Documentation

◆ __init__()

def python.powheg_control.PowhegControl.__init__ (   self,
  process_name,
  run_args = None,
  run_opts = None 
)

Constructor.

Parameters
run_argsGenerate_tf run arguments
run_optsathena run options

Definition at line 41 of file powheg_control.py.

41  def __init__(self, process_name, run_args=None, run_opts=None):
42  """! Constructor.
43 
44  @param run_args Generate_tf run arguments
45  @param run_opts athena run options
46  """
47 
48  self.__run_directory = os.environ["PWD"]
49 
50 
51  self.__output_LHE_file = "PowhegOTF._1.events"
52 
53 
54  self.__event_weight_groups = collections.OrderedDict()
55 
56 
57  self.scheduler = Scheduler()
58 
59  # Load run arguments
60  process_kwargs = {"cores": int(os.environ.pop("ATHENA_CORE_NUMBER", 1))}
61  if run_args is None:
62  logger.warning("No run arguments found! Using defaults.")
63  else:
64  # Read values from run_args
65  if hasattr(run_args, "ecmEnergy"):
66  process_kwargs["beam_energy"] = 0.5 * run_args.ecmEnergy
67  if hasattr(run_args, "maxEvents") and run_args.maxEvents > 0:
68  if hasattr(run_args, "outputEVNTFile") or hasattr(run_args, "outputYODAFile"):
69  process_kwargs["nEvents"] = int(1.1 * run_args.maxEvents + 0.5)
70  else:# default nEvents value is maxEvents for lhe-only production
71  process_kwargs["nEvents"] = run_args.maxEvents
72  else:#default is 10k events if no --maxEvents was set
73  if hasattr(run_args, "outputEVNTFile") or hasattr(run_args, "outputYODAFile"):
74  process_kwargs["nEvents"] = 11000 # 10% safety factor if we shower the events
75  else:
76  process_kwargs["nEvents"] = 10000 # no safety factor for lhe-only production
77  if hasattr(run_args, "randomSeed"):
78  process_kwargs["random_seed"] = run_args.randomSeed
79  if hasattr(run_args, "outputTXTFile"):
80  for tarball_suffix in [x for x in [".tar.gz", ".tgz"] if x in run_args.outputTXTFile]:
81 
82  self.__output_LHE_file = run_args.outputTXTFile.split(tarball_suffix)[0] + ".events"
83  self.scheduler.add("output tarball preparer", self.__output_LHE_file, run_args.outputTXTFile)
84  # Set inputGeneratorFile to match output events file - otherwise Generate_tf check will fail
85  run_args.inputGeneratorFile = self.__output_LHE_file
86 
87  # Load correct process
88  self.process = getattr(processes.powheg, process_name)(os.environ["POWHEGPATH"].replace("POWHEG-BOX", ""), **process_kwargs)
89 
90  # check if pre-made integration grids will be used or not
91  self.process.check_using_integration_files()
92 
93  # Expose all keyword parameters as attributes of this config object
94  for parameter in self.process.parameters:
95  if parameter.is_visible:
96  setattr(self, parameter.name, parameter.value)
97 
98  # Expose all external parameters as attributes of this config object
99  for external in self.process.externals.values():
100  for parameter in external.parameters:
101  if parameter.is_visible:
102  setattr(self, parameter.name, parameter.value)
103 
104  # Add appropriate directory cleanup for this process
105  self.scheduler.add("directory cleaner", self.process)
106 
107  # Schedule correct output file naming
108  self.scheduler.add("output file renamer", self.__output_LHE_file)
109 
110  # Enable parallel mode if AthenaMP mode is enabled. Also force multistage mode for RES.
111  if self.process.cores == 1 and self.process.powheg_version != "RES":
112  self.scheduler.add("singlecore", self.process)
113  else:
114  if self.process.cores == 1:
115  logger.info("Configuring this POWHEG-BOX-RES process to run in multistage mode")
116  else:
117  # Try to modify the transform opts to suppress athenaMP mode
118  logger.info("This job is running with an athenaMP-like whole-node setup, requesting {} cores".format(self.process.cores))
119  if hasattr(run_opts, "nprocs"):
120  logger.info("Re-configuring to keep athena running serially while parallelising POWHEG-BOX generation.")
121  run_opts.nprocs = 0
122  else:
123  logger.warning("Running in multicore mode but no 'nprocs' option was provided!")
124  self.scheduler.add("multicore", self.process)
125  self.scheduler.add("merge output", self.process.cores, self.nEvents)
126  list(self.process.parameters_by_name("manyseeds"))[0].value = 1
127 
128  # Freeze the interface so that no new attributes can be added
129  self.interface_frozen = True
130 
131  # Print executable being used
132  logger.info("Configured for event generation with: {}".format(self.process.executable))
133 

Member Function Documentation

◆ __setattr__()

def python.powheg_control.PowhegControl.__setattr__ (   self,
  key,
  value 
)

Override default attribute setting to stop users setting non-existent attributes.

@exceptions AttributeError Raise an AttributeError if the interface is frozen

Parameters
keyAttribute name.
valueValue to set the attribute to.

Definition at line 372 of file powheg_control.py.

372  def __setattr__(self, key, value):
373  """! Override default attribute setting to stop users setting non-existent attributes.
374 
375  @exceptions AttributeError Raise an AttributeError if the interface is frozen
376 
377  @param key Attribute name.
378  @param value Value to set the attribute to.
379  """
380  # If this is a known parameter then keep the values in sync
381  if hasattr(self, "process"):
382  # ... for parameters of the process
383  for parameter in self.process.parameters_by_name(key):
384  parameter.ensure_default()
385  parameter.value = value
386  # ... and for parameters of any external processes
387  for external in self.process.externals.values():
388  for parameter in external.parameters_by_name(key):
389  parameter.ensure_default()
390  parameter.value = value
391  # If the interface is frozen then raise an attribute error
392  if hasattr(self, "interface_frozen") and self.interface_frozen:
393  if not hasattr(self, key):
394  raise AttributeError("This POWHEG-BOX process has no option '{}'".format(key))
395  object.__setattr__(self, key, value)
396 

◆ _generate_events()

def python.powheg_control.PowhegControl._generate_events (   self,
  is_bb4l_semilep = False 
)
private

Generate events according to the scheduler.

Definition at line 282 of file powheg_control.py.

282  def _generate_events(self,is_bb4l_semilep=False):
283  """! Generate events according to the scheduler."""
284  # Setup heartbeat thread
285  heartbeat = HeartbeatTimer(600., "{}/eventLoopHeartBeat.txt".format(self.__run_directory))
286  heartbeat.setName("heartbeat thread")
287  heartbeat.daemon = True # Allow program to exit if this is the only live thread
288  heartbeat.start()
289 
290  # Print executable being used
291  logger.info("Using executable: {}".format(self.process.executable))
292 
293  # Additional arguments needed by some algorithms
294  extra_args = {"quark colour fixer": [self.process]}
295 
296  # Schedule external processes (eg. MadSpin, PHOTOS, NNLO reweighting)
297  for algorithm, external in self.process.externals.items():
298  if external.needs_scheduling(self.process):
299  self.scheduler.add(algorithm, external, *extra_args.get(algorithm, []))
300 
301  # Schedule additional algorithms (eg. quark colour fixer)
302  for algorithm in self.process.algorithms:
303  self.scheduler.add(algorithm, *extra_args.get(algorithm, []))
304 
305  updated_xwgtup = False
306  if len(list(self.process.parameters_by_keyword("ubexcess_correct"))) == 1:
307  if list(self.process.parameters_by_keyword("ubexcess_correct"))[0].value == 1:
308  algorithm = "LHE ubexcess_correct weight updater"
309  self.scheduler.add(algorithm, *extra_args.get(algorithm, []))
310  algorithm = "LHE file nominal weight updater"
311  self.scheduler.add(algorithm, *extra_args.get(algorithm, []))
312  logger.info ("Since parameter ubexcess_correct was set to 1, event weights need to be modified by correction factor which is calculated during event generation.")
313  logger.info ("Will also run LHE file nominal weight updater so that XWGTUP value is updated with value of reweighted nominal weight.")
314  updated_xwgtup = True
315  if not updated_xwgtup:
316  if len(list(self.process.parameters_by_keyword("for_reweighting"))) == 1:
317  if list(self.process.parameters_by_keyword("for_reweighting"))[0].value == 1:
318  algorithm = "LHE file nominal weight updater"
319  self.scheduler.add(algorithm, *extra_args.get(algorithm, []))
320  logger.info ("Since parameter for_reweighting was set to 1, virtual corrections are added at the reweighting stage only.")
321  logger.info ("Will run LHE file nominal weight updater so that XWGTUP value is updated with value of reweighted nominal weight.")
322 
323  # Output the schedule
324  self.scheduler.print_structure()
325 
326  # Run pre-processing
327  if not is_bb4l_semilep:
328  self.scheduler.run_preprocessors()
329 
330  # Run event generation
331  self.scheduler.run_generators()
332 
333  # Run post-processing
334  self.scheduler.run_postprocessors()
335 
336  # Kill heartbeat thread
337  heartbeat.cancel()
338 

◆ _generate_run_card()

def python.powheg_control.PowhegControl._generate_run_card (   self)
private

Initialise runcard with appropriate options.

Definition at line 159 of file powheg_control.py.

159  def _generate_run_card(self):
160  """! Initialise runcard with appropriate options."""
161  # Check that event generation is correctly set up
162  if (hasattr(self, "bornsuppfact") and self.bornsuppfact > 0.0) and (hasattr(self, "bornktmin") and self.bornktmin <= 0.0):
163  logger.warning("These settings: bornsuppfact = {} and bornktmin = {} cannot be used to generate events!".format(self.bornsuppfact, self.bornktmin))
164  logger.warning("Only fixed-order distributions can be produced with these settings!")
165 
166  # Scale-down number of events produced in each run if running in multicore mode
167  if self.process.cores > 1:
168  logger.info("Preparing to parallelise: running with {} jobs".format(self.process.cores))
169  self.process.prepare_to_parallelise(self.process.cores)
170 
171  # Validate any parameters which need validation/processing
172  self.process.validate_parameters()
173 
174  # Construct sorted list of configurable parameters for users - including those from external processes
175  parameters_unsorted = list(self.process.parameters)
176  for external in self.process.externals.values():
177  parameters_unsorted.extend(external.parameters)
178  parameters_sorted = [x[1] for x in sorted(dict((p.name.lower(), p) for p in parameters_unsorted).items(), key=lambda x: x[0])]
179 
180  # Print sorted list of configurable parameters
181  logger.info("=========================================================================================================")
182  logger.info("| User configurable parameters for this process |")
183  logger.info("=========================================================================================================")
184  logger.info("| Option name | ATLAS default | Description |")
185  logger.info("=========================================================================================================")
186  for parameter in [p for p in parameters_sorted if p.is_visible]:
187  _default_value = "default" if (parameter.default_value is None or parameter.default_value == "") else str(parameter.default_value)
188  logger.info("| {:<25} | {:>19} | {}".format(parameter.name, _default_value, parameter.description))
189  logger.info("========================================================================================================")
190 
191  # Print list of parameters that have been changed by the user
192  parameters_changed = [p for p in parameters_sorted if p.value is not p.default_value]
193  logger.info("In these jobOptions {} parameter(s) have been changed from their default value:".format(len(parameters_changed)))
194  for idx, parameter in enumerate(parameters_changed):
195  logger.info(" {:<3} {:<19} {:>15} => {}".format("{})".format(idx + 1), "{}:".format(parameter.name), str(parameter.default_value), parameter.value))
196 
197  # Check for parameters which can result in non-equal event weights being used
198  event_weight_options = []
199 
200  # Write out final runcard
201  run_card_path = "{}/powheg.input".format(self.__run_directory)
202  logger.info("Writing POWHEG-BOX runcard to {}".format(run_card_path))
203  with open(run_card_path, "w") as f_runcard:
204  for parameter in sorted(self.process.parameters, key=lambda p: p.keyword.lower()):
205  if parameter.name == "bornsuppfact" and parameter.value > 0:
206  event_weight_options.append(("Born-level suppression", "magnitude"))
207  if parameter.name == "withnegweights" and parameter.value > 0:
208  event_weight_options.append(("negative event weights", "sign"))
209  # PDF variations
210  if parameter.name == "PDF" and isinstance(parameter.value, collections.abc.Iterable):
211  if "PDF_variation" not in self.__event_weight_groups.keys(): # skip if this group already exists
212  if len(parameter.value) < 2:
213  logger.error("Use 'PowhegConfig.PDF = {0}' rather than 'PowhegConfig.PDF = [{0}]'".format(parameter.value[0] if len(parameter.value) > 0 else "<value>"))
214  raise TypeError("Use 'PowhegConfig.PDF = {0}' rather than 'PowhegConfig.PDF = [{0}]'".format(parameter.value[0] if len(parameter.value) > 0 else "<value>"))
215  self.define_event_weight_group("PDF_variation", ["PDF"], combination_method="hessian")
216  for PDF in map(int, parameter.value[1:]):
217  self.add_weight_to_group("PDF_variation", "MUR1_MUF1_PDF{:d}".format(PDF), [PDF])
218  # Scale variations
219  if parameter.name in ["mu_F", "mu_R"] and isinstance(parameter.value, collections.abc.Iterable):
220  pdfs = list(self.process.parameters_by_name("PDF"))[0].value
221  nominal_pdf = pdfs if isinstance(pdfs, int) or isinstance(pdfs, str) else pdfs[0]
222  if "scale_variation" not in self.__event_weight_groups.keys(): # skip if this group already exists
223  mu_Rs = list(self.process.parameters_by_name("mu_R"))[0].value
224  mu_Fs = list(self.process.parameters_by_name("mu_F"))[0].value
225  if len(parameter.value) < 2:
226  logger.error("Use 'PowhegConfig.{1} = {0}' rather than 'PowhegConfig.{1} = [{0}]'".format(parameter.value[0] if len(parameter.value) > 0 else "<value>", parameter.name))
227  raise TypeError("Use 'PowhegConfig.{1} = {0}' rather than 'PowhegConfig.{1} = [{0}]'".format(parameter.value[0] if len(parameter.value) > 0 else "<value>", parameter.name))
228  if not isinstance(mu_Rs, collections.abc.Iterable) or not isinstance(mu_Fs, collections.abc.Iterable) or len(mu_Rs) is not len(mu_Fs):
229  logger.error("Number of mu_R and mu_F variations must be the same.")
230  raise ValueError("Number of mu_R and mu_F variations must be the same.")
231  self.define_event_weight_group("scale_variation", ["mu_R", "mu_F"], combination_method="envelope")
232  for mu_R, mu_F in zip(map(float, mu_Rs[1:]), map(float, mu_Fs[1:])):
233  mu_R_text = _format_QCD_scale_text(mu_R)
234  mu_F_text = _format_QCD_scale_text(mu_F)
235  self.add_weight_to_group("scale_variation", "MUR{mur}_MUF{muf}_PDF{nominal_pdf}".format(mur=mu_R_text, muf=mu_F_text, nominal_pdf=nominal_pdf), [mu_R, mu_F])
236  f_runcard.write("{}\n".format(parameter))
237 
238  # Schedule cross-section_calculator
239  if len(event_weight_options) > 0:
240  self.scheduler.add("cross section calculator")
241  logger.warning("POWHEG-BOX has been configured to run with {}".format(" and ".join([x[0] for x in event_weight_options])))
242  logger.warning("This means that event weights will vary in {}.".format(" and ".join([x[1] for x in event_weight_options])))
243  logger.warning("The cross-section passed to the parton shower will be inaccurate.")
244  logger.warning("Please use the cross-section printed in the log file before showering begins.")
245 
246  # Schedule reweighting if more than the nominal weight is requested, or if for_reweighting is set to 1
247  doReweighting = False
248  if len(self.__event_weight_groups) >= 1:
249  doReweighting = True
250  elif len(list(self.process.parameters_by_keyword("for_reweighting"))) == 1:
251  if self.process.parameters_by_keyword("for_reweighting")[0].value == 1:
252  logger.warning ("No more than the nominal weight is requested, but for_reweighting is set to 1")
253  logger.warning ("Therefore, reweighting is enabled anyway, otherwise virtual corrections wouldn't be included")
254  doReweighting = True
255  if doReweighting:
256  # Change the order so that scale comes first and user-defined is last
257  __ordered_event_weight_groups_list = []
258  for __key in ["scale_variation", "PDF_variation"]:
259  if __key in self.__event_weight_groups.keys():
260  __ordered_event_weight_groups_list.append((__key, self.__event_weight_groups.pop(__key)))
261  for __item in self.__event_weight_groups.items():
262  __ordered_event_weight_groups_list.append(__item)
263  self.__event_weight_groups = collections.OrderedDict(__ordered_event_weight_groups_list)
264  for group_name, event_weight_group in self.__event_weight_groups.items():
265  _n_weights = len(event_weight_group) - 3 # there are always three entries: parameter_names, combination_method and keywords
266  # Sanitise weight groups, removing any with no entries
267  if _n_weights <= 0:
268  logger.warning("Ignoring weight group '{}' as it does not have any variations defined. Check your jobOptions!".format(group_name))
269  del self.__event_weight_groups[group_name] # this is allowed because items() makes a temporary copy of the dictionary
270  # Otherwise print weight group information for the user
271  else:
272  logger.info("Adding new weight group '{}' which contains {} weights defined by varying {} parameters".format(group_name, _n_weights, len(event_weight_group["parameter_names"])))
273  for parameter_name in event_weight_group["parameter_names"]:
274  logger.info("... {}".format(parameter_name))
275  if not self.process.has_parameter(parameter_name):
276  logger.warning("Parameter '{}' does not exist for this process!".format(parameter_name))
277  raise ValueError("Parameter '{}' does not exist for this process!".format(parameter_name))
278  # Add reweighting to scheduler
279  self.scheduler.add("reweighter", self.process, self.__event_weight_groups)
280 

◆ add_weight_to_group()

def python.powheg_control.PowhegControl.add_weight_to_group (   self,
  group_name,
  weight_name,
  parameter_values 
)

Add a new event weight to an existing group.

Parameters
group_nameName of the group of weights that this weight belongs to.
weight_nameName of this event weight.
parameter_valuesValues of the parameters.

Definition at line 356 of file powheg_control.py.

356  def add_weight_to_group(self, group_name, weight_name, parameter_values):
357  """! Add a new event weight to an existing group.
358 
359  @param group_name Name of the group of weights that this weight belongs to.
360  @param weight_name Name of this event weight.
361  @param parameter_values Values of the parameters.
362  """
363  if group_name not in self.__event_weight_groups.keys():
364  raise ValueError("Weight group '{}' has not been defined.".format(group_name))
365  n_expected = len(self.__event_weight_groups[group_name]["parameter_names"])
366  if len(parameter_values) is not n_expected:
367  raise ValueError("Expected {} parameter values but only got {}".format(n_expected, len(parameter_values)))
368  self.__event_weight_groups[group_name][weight_name] = []
369  for parameter_name, value in zip(self.__event_weight_groups[group_name]["parameter_names"], parameter_values):
370  self.__event_weight_groups[group_name][weight_name].append((parameter_name, value))
371 

◆ define_event_weight_group()

def python.powheg_control.PowhegControl.define_event_weight_group (   self,
  group_name,
  parameters_to_vary,
  combination_method = "none" 
)

Add a new named group of event weights.

@exceptions ValueError Raise a ValueError if reweighting is not supported.

Parameters
group_nameName of the group of weights.
parameters_to_varyNames of the parameters to vary.
combination_methodMethod for combining the weights.

Definition at line 339 of file powheg_control.py.

339  def define_event_weight_group(self, group_name, parameters_to_vary, combination_method="none"):
340  """! Add a new named group of event weights.
341 
342  @exceptions ValueError Raise a ValueError if reweighting is not supported.
343 
344  @param group_name Name of the group of weights.
345  @param parameters_to_vary Names of the parameters to vary.
346  @param combination_method Method for combining the weights.
347  """
348  if not self.process.is_reweightable:
349  logger.warning("Additional event weights cannot be added by this process! Remove reweighting lines from the jobOptions.")
350  raise ValueError("Additional event weights cannot be added by this process! Remove reweighting lines from the jobOptions.")
351  self.__event_weight_groups[group_name] = collections.OrderedDict()
352  self.__event_weight_groups[group_name]["parameter_names"] = parameters_to_vary
353  self.__event_weight_groups[group_name]["combination_method"] = combination_method
354  self.__event_weight_groups[group_name]["keywords"] = [[p.keyword for p in self.process.parameters_by_name(parameter)] for parameter in parameters_to_vary]
355 

◆ generate()

def python.powheg_control.PowhegControl.generate (   self,
  create_run_card_only = False,
  save_integration_grids = True,
  use_external_run_card = False,
  remove_oldStyle_rwt_comments = False,
  is_bb4l_semilep = False 
)

Run normal event generation.

Parameters
create_run_card_onlyOnly generate the run card.
save_integration_gridsSave the integration grids for future reuse.
use_external_run_cardUse a user-provided Powheg run card (powheg.input).
remove_oldStyle_rwt_commentsRemoves old-style '#rwgt', '#pdf', '#new weight', '#matching', and ' Random' comments in lhe files (kept by default despite using xml reweighting).

Definition at line 134 of file powheg_control.py.

134  def generate(self, create_run_card_only=False, save_integration_grids=True, use_external_run_card=False, remove_oldStyle_rwt_comments=False, is_bb4l_semilep=False):
135  """! Run normal event generation.
136 
137  @param create_run_card_only Only generate the run card.
138  @param save_integration_grids Save the integration grids for future reuse.
139  @param use_external_run_card Use a user-provided Powheg run card (powheg.input).
140  @param remove_oldStyle_rwt_comments Removes old-style '#rwgt', '#pdf', '#new weight', '#matching', and ' #Random' comments in lhe files (kept by default despite using xml reweighting).
141  """
142  # we are now always using xml reweighting - set this to False if you still want the old style
143  self.process.use_XML_reweighting = True
144 
145  self.process.remove_oldStyle_rwt_comments = remove_oldStyle_rwt_comments
146 
147  # Schedule integration gridpack creator if requested
148  if save_integration_grids:
149  self.scheduler.add("integration gridpack creator", self.process)
150 
151  # Run appropriate generation functions
152  if not use_external_run_card:
153  self._generate_run_card()
154  else:
155  logger.warning("Using native Powheg run card (must be located at './powheg.input' in order for Powheg to find it!) to configure event generation, instead of PowhegControl configuration interface")
156  if not create_run_card_only:
157  self._generate_events(is_bb4l_semilep)
158 

◆ set_parameter_stage()

def python.powheg_control.PowhegControl.set_parameter_stage (   self,
  parameterStageDict = {} 
)

Definition at line 397 of file powheg_control.py.

397  def set_parameter_stage(self, parameterStageDict = {}):
398  logger.info("Setting parameters for the stages : {0}".format(parameterStageDict))
399 
400  self.process.parameterStageDict = parameterStageDict

Member Data Documentation

◆ __event_weight_groups

python.powheg_control.PowhegControl.__event_weight_groups
private

Dictionary of named groups of event weights.

Definition at line 54 of file powheg_control.py.

◆ __output_LHE_file

python.powheg_control.PowhegControl.__output_LHE_file
private

Name of output LHE file used by Generate_tf for showering.

Name of output LHE file.

Definition at line 51 of file powheg_control.py.

◆ __run_directory

python.powheg_control.PowhegControl.__run_directory
private

Current directory.

Definition at line 48 of file powheg_control.py.

◆ interface_frozen

python.powheg_control.PowhegControl.interface_frozen

Definition at line 129 of file powheg_control.py.

◆ process

python.powheg_control.PowhegControl.process

Definition at line 88 of file powheg_control.py.

◆ scheduler

python.powheg_control.PowhegControl.scheduler

Scheduler to determine algorithm ordering.

Definition at line 57 of file powheg_control.py.


The documentation for this class was generated from the following file:
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
python.processes.powheg_base.PowhegBase.validate_parameters
def validate_parameters(self)
Validate any parameters which need it before preparing runcard.
Definition: powheg_base.py:267
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:294
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:250
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
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
DigiModel.Scheduler
Scheduler
Definition: DigiModel.py:48
add
bool add(const std::string &hname, TKey *tobj)
Definition: fastadd.cxx:55
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
python.powheg_control._format_QCD_scale_text
def _format_QCD_scale_text(factor)
Definition: powheg_control.py:14
python.MadGraphUtils.generate
def generate(process_dir='PROC_mssm_0', grid_pack=False, gridpack_compile=False, extlhapath=None, required_accuracy=0.01, runArgs=None, bias_module=None, requirePMGSettings=False)
Definition: MadGraphUtils.py:391
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename T::value_type > sorted(T begin, T end)
Helper function to create a sorted vector from an unsorted one.
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:79
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
Trk::open
@ open
Definition: BinningType.h:40
str
Definition: BTagTrackIpAccessor.cxx:11
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
python.PyAthenaComps.__setattr__
__setattr__
Definition: PyAthenaComps.py:39