|
ATLAS Offline Software
|
Go to the documentation of this file.
3 from AthenaCommon
import Logging
4 from .external_base
import ExternalBase
7 logger = Logging.logging.getLogger(
"PowhegControl")
11 """! Class for running external VBFNLO process.
13 @author James Robinson <james.robinson@cern.ch>
16 def __init__(self, vector_boson, allowed_decay_modes):
19 @param process VBFNLO process
21 super(ExternalVBFNLO, self).
__init__(
"VBFNLO")
41 """! Report whether the VBFNLO process should be scheduled.
43 @param process PowhegBox process.
47 logger.fatal(
"Decay mode {} not recognised!".
format(self.decay_mode))
48 raise ValueError(
"VBF NLO cannot be correctly configured.")
50 __vector_boson_type = self.decay_mode.
split(
">")[0].strip()
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")
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),
62 (
"EWSCHEME", 4,
"Explicitly specify all EW parameters"),
63 (
"ANOM_CPL", 0,
"Disable anomalous couplings as these are not supported by the authors"),
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))
std::string replace(std::string s, const std::string &s2, const std::string &s3)
def expose(self)
Add all names to the interface of this object.
def parameters_by_name(self, name)
Retrieve all parameters that use a given name.
def __init__(self, vector_boson, allowed_decay_modes)
Constructor.
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.
def needs_scheduling(self, process)
Report whether the VBFNLO process should be scheduled.
Class for running external VBFNLO process.
Base class for external processes.
allowed_decay_modes
List of allowed decay modes.