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

Class for running external VBFNLO process. More...

Inheritance diagram for python.processes.external.external_vbf_nlo.ExternalVBFNLO:
Collaboration diagram for python.processes.external.external_vbf_nlo.ExternalVBFNLO:

Public Member Functions

def __init__ (self, vector_boson, allowed_decay_modes)
 Constructor. More...
 
def needs_scheduling (self, process)
 Report whether the VBFNLO 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

 allowed_decay_modes
 List of allowed decay modes. More...
 
 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 VBFNLO process.

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

Definition at line 10 of file external_vbf_nlo.py.

Constructor & Destructor Documentation

◆ __init__()

def python.processes.external.external_vbf_nlo.ExternalVBFNLO.__init__ (   self,
  vector_boson,
  allowed_decay_modes 
)

Constructor.

Parameters
processVBFNLO process

Definition at line 16 of file external_vbf_nlo.py.

16  def __init__(self, vector_boson, allowed_decay_modes):
17  """! Constructor.
18 
19  @param process VBFNLO process
20  """
21  super(ExternalVBFNLO, self).__init__("VBFNLO")
22 
23 
24  self.allowed_decay_modes = allowed_decay_modes
25 
26  # Add parameters used by VBFNLO
27  self.add_keyword("alphaem_inv")
28  self.add_keyword("vdecaymode", list(self.allowed_decay_modes)[0], name="decay_mode", description="{} boson decay mode. [{}]".format(vector_boson, allowed_decay_modes))
29  self.add_keyword("G_F")
30  self.add_keyword("mass_b")
31  self.add_keyword("mass_c")
32  self.add_keyword("mass_H")
33  self.add_keyword("mass_t")
34  self.add_keyword("mass_tau")
35  self.add_keyword("mass_W")
36  self.add_keyword("mass_Z")
37  self.add_keyword("sthw2")
38  self.add_keyword("width_H")
39 

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_vbf_nlo.ExternalVBFNLO.needs_scheduling (   self,
  process 
)

Report whether the VBFNLO process should be scheduled.

Parameters
processPowhegBox process.

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

Definition at line 40 of file external_vbf_nlo.py.

40  def needs_scheduling(self, process):
41  """! Report whether the VBFNLO process should be scheduled.
42 
43  @param process PowhegBox process.
44  """
45  self.expose() # convenience call to simplify syntax
46  if self.decay_mode not in self.allowed_decay_modes:
47  logger.fatal("Decay mode {} not recognised!".format(self.decay_mode))
48  raise ValueError("VBF NLO cannot be correctly configured.")
49  # Convert allowed decay mode into PROC_ID/DECAYMODE
50  __vector_boson_type = self.decay_mode.split(">")[0].strip()
51  __vector_boson_decay = self.decay_mode.split(" ")[2].replace("+", "").replace("-", "")
52  if __vector_boson_type in ["w+", "w-", "z"] and __vector_boson_decay == "tau":
53  logger.warning("Powheg/VBFNLO does support directly tau decays for VBF W, Z production")
54  logger.warning("Ask to generate muon decays and hack the LHE files - make sure to validate!")
55  __vector_boson_decay = "mu"
56  process.add_algorithm("mu2tau")
57  # Add runcard entries
58  VBF_runcard_entries = [("PROC_ID", {"z": 120, "w+": 130, "w-": 140}[__vector_boson_type], "{} boson".format(__vector_boson_type)),
59  ("DECAYMODE", {"e": 11, "mu": 13}[__vector_boson_decay], self.decay_mode),
60  ("HMASS", self.mass_H, list(self.parameters_by_name("mass_H"))[0].description),
61  ("HWIDTH", self.width_H, list(self.parameters_by_name("width_H"))[0].description),
62  ("EWSCHEME", 4, "Explicitly specify all EW parameters"),
63  ("ANOM_CPL", 0, "Disable anomalous couplings as these are not supported by the authors"),
64  ("TOPMASS", self.mass_t, list(self.parameters_by_name("mass_t"))[0].description),
65  ("TAU_MASS", self.mass_tau, list(self.parameters_by_name("mass_tau"))[0].description),
66  ("BOTTOMMASS", self.mass_b, list(self.parameters_by_name("mass_b"))[0].description),
67  ("CHARMMASS", self.mass_c, list(self.parameters_by_name("mass_c"))[0].description),
68  ("FERMI_CONST", self.G_F, list(self.parameters_by_name("G_F"))[0].description),
69  ("INVALFA", self.alphaem_inv, list(self.parameters_by_name("alphaem_inv"))[0].description),
70  ("SIN2W", self.sthw2, list(self.parameters_by_name("sthw2"))[0].description),
71  ("WMASS", self.mass_W, list(self.parameters_by_name("mass_W"))[0].description),
72  ("ZMASS", self.mass_Z, list(self.parameters_by_name("mass_Z"))[0].description)]
73  # Write special VBF runcard
74  with open("vbfnlo.input", "w") as f:
75  for runcard_entry in VBF_runcard_entries:
76  f.write("{:<15} {:<15} ! {}\n".format(*runcard_entry))
77  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

◆ allowed_decay_modes

python.processes.external.external_vbf_nlo.ExternalVBFNLO.allowed_decay_modes

List of allowed decay modes.

Definition at line 24 of file external_vbf_nlo.py.

◆ 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:
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
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
Trk::open
@ open
Definition: BinningType.h:40
python.processes.configurable.Configurable.has_keyword
def has_keyword(self, keyword)
Definition: configurable.py:51
Trk::split
@ split
Definition: LayerMaterialProperties.h:38