ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
python.processes.external.external_madspin.ExternalMadSpin Class Reference

Class for running external MadSpin process. More...

Inheritance diagram for python.processes.external.external_madspin.ExternalMadSpin:
Collaboration diagram for python.processes.external.external_madspin.ExternalMadSpin:

Public Member Functions

def __init__ (self, process)
 Constructor. More...
 
def needs_scheduling (self, process)
 Report whether the MadSpin process should be scheduled. More...
 
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

 name
 Name of this external process. More...
 
 executable
 External executable that will be used. More...
 
 parameters
 List of available parameters. More...
 

Detailed Description

Class for running external MadSpin process.

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

Definition at line 11 of file external_madspin.py.

Constructor & Destructor Documentation

◆ __init__()

def python.processes.external.external_madspin.ExternalMadSpin.__init__ (   self,
  process 
)

Constructor.

Parameters
processMadSpin process description string.

Definition at line 17 of file external_madspin.py.

17  def __init__(self, process):
18  """! Constructor.
19 
20  @param process MadSpin process description string.
21  """
22  super(ExternalMadSpin, self).__init__("MadSpin", os.environ["MADPATH"], "MadSpin", "madspin")
23 
24  # Add parameters used by MadSpin
25  self.add_keyword("alphaem_inv")
26  self.add_keyword("alphaqcd")
27  self.add_keyword("BR_t_to_Wb")
28  self.add_keyword("BR_t_to_Wd")
29  self.add_keyword("BR_t_to_Ws")
30  self.add_keyword("BR_W_to_hadrons")
31  self.add_keyword("BR_W_to_leptons")
32  self.add_keyword("bwcutoff")
33  self.add_keyword("ebeam1")
34  self.add_keyword("G_F")
35  self.add_keyword("MadSpin_decays")
36  self.add_keyword("MadSpin_enabled")
37  self.add_keyword("MadSpin_model")
38  self.add_keyword("MadSpin_mode")
39  self.add_keyword("MadSpin_nFlavours")
40  self.add_keyword("MadSpin_process", process)
41  self.add_keyword("MadSpin_taus_are_leptons")
42  self.add_keyword("MadSpin_max_weight_ps_point")
43  self.add_keyword("MadSpin_Nevents_for_max_weight")
44  self.add_keyword("MadSpin_paramcard")
45  self.add_keyword("mass_b")
46  self.add_keyword("mass_H")
47  self.add_keyword("mass_t")
48  self.add_keyword("mass_tau")
49  self.add_keyword("mass_W")
50  self.add_keyword("mass_Z")
51  self.add_keyword("powheg_top_decays_enabled")
52  self.add_keyword("width_H")
53  self.add_keyword("width_t")
54  self.add_keyword("width_W")
55  self.add_keyword("width_Z")
56  self.add_keyword("Wolfenstein_lambda") # for madspin decays with ckm-changing models
57  self.add_keyword("Wolfenstein_A") # for madspin decays with ckm-changing models
58  self.add_keyword("Wolfenstein_rho") # for madspin decays with ckm-changing models
59  self.add_keyword("Wolfenstein_eta") # for madspin decays with ckm-changing models
60 

Member Function Documentation

◆ 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 

◆ 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 

◆ 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 

◆ needs_scheduling()

def python.processes.external.external_madspin.ExternalMadSpin.needs_scheduling (   self,
  process 
)

Report whether the MadSpin process should be scheduled.

Parameters
processPowhegBox process.

Reimplemented from python.processes.external.external_base.ExternalBase.

Definition at line 61 of file external_madspin.py.

61  def needs_scheduling(self, process):
62  """! Report whether the MadSpin process should be scheduled.
63 
64  @param process PowhegBox process.
65  """
66  # Check that MadSpin is not disabled
67  self.expose()
68  if not self.MadSpin_enabled:
69  logger.warning("MadSpin not enabled")
70  return False
71  # Check that tops have not already been decayed
72  if self.powheg_top_decays_enabled:
73  logger.info("Powheg top quark decays are enabled. MadSpin will not be used for decays.")
74  return False
75  # Check that decays are in correct format
76  if not isinstance(self.MadSpin_decays, list):
77  logger.warning("Could not interpret 'MadSpin_decays' argument as a list of allowed decays!")
78  return False
79  # Check that decay list has at least one entry otherwise add defaults
80  if len(self.MadSpin_decays) == 0:
81  logger.warning("No MadSpin decays specified, so defaults will be used.")
82  for decay in ("t > w+ b, w+ > l+ vl", "t~ > w- b~, w- > l- vl~", "t > w+ b, w+ > j j", "t~ > w- b~, w- > j j"):
83  logger.info("... adding MadSpin decay: 'decay {0}'".format(decay))
84  list(self.parameters_by_name("MadSpin_decays"))[0].value.append("decay {0}".format(decay))
85  return True

◆ 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]

Member Data Documentation

◆ executable

python.processes.external.external_base.ExternalBase.executable
inherited

External executable that will be used.

Definition at line 32 of file external_base.py.

◆ name

python.processes.external.external_base.ExternalBase.name
inherited

Name of this external process.

Definition at line 28 of file external_base.py.

◆ parameters

python.processes.configurable.Configurable.parameters
inherited

List of available parameters.

Definition at line 19 of file configurable.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
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
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.configurable.Configurable.has_parameter
def has_parameter(self, parameter)
Definition: configurable.py:54
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
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
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.configurable.Configurable.has_keyword
def has_keyword(self, keyword)
Definition: configurable.py:51