4from AthenaCommon
import Logging
5from ..external
import ExternalPHOTOS
6from ..powheg_V2
import PowhegV2
9logger = Logging.logging.getLogger(
"PowhegControl")
13 """! Default Powheg configuration for single W-boson production with electroweak corrections.
15 Create a configurable object with all applicable Powheg options.
17 @author James Robinson <james.robinson@cern.ch>
21 """! Constructor: all process options are set here.
23 @param base_directory: path to PowhegBox code.
24 @param kwargs dictionary of arguments from Generate_tf.
26 super(W_EW, self).
__init__(base_directory,
"W_ew-BMNNP", **kwargs)
35 self.
allowed_decay_modes = [
"w- > e- ve~",
"w- > mu- vm~",
"w- > tau- vt~",
"w+ > e+ ve",
"w+ > mu+ vm",
"w+ > tau+ vt"]
113 self.
add_keyword(
"masswindow_high", 30, description=
"mass window above W-mass peak in units of width_W.")
114 self.
add_keyword(
"masswindow_low", 30, description=
"mass window below W-mass peak in units of width_W.")
186 """! Validate idvecbos and vdecaymode keywords and check that 'no_ew' is compatible with 'PHOTOS_enabled'."""
189 logger.error(
"Attempting to run with native PHOTOS disabled but with EW corrections on.")
190 logger.error(
"This would require any later PHOTOS generation to run in vetoed mode.")
191 logger.error(
"Please change 'PHOTOS_enabled' and/or 'no_ew' in your jobOptions.")
192 raise ValueError(
"Incompatible options. Please change 'PHOTOS_enabled' and/or 'no_ew' in your jobOptions.")
194 if not os.path.isfile(self.
externals[
"PHOTOS"].executable):
195 logger.error(
"Attempting to configure native PHOTOS but executable not found at {0}".format(self.
externals[
"PHOTOS"].executable))
196 logger.error(
"Please consider changing 'PHOTOS_enabled' in your jobOptions")
197 raise IOError(
"Could not find PHOTOS executable: {0}".format(self.
externals[
"PHOTOS"].executable))
202 __decay_mode_lookup = {
"e- ve~": 11,
"mu- vm~": 13,
"tau- vt~": 15,
"e+ ve": -11,
"mu+ vm": -13,
"tau+ vt": -15}
add_keyword(self, keyword, value=None, name=None, frozen=None, hidden=None, description=None, **kwargs)
Register configurable parameter that is exposed to the user.
expose(self)
Add all names to the interface of this object.
parameters_by_name(self, name)
Retrieve all parameters that use a given name.
parameters_by_keyword(self, keyword)
Retrieve all parameters that use a given keyword.
Class for running external PHOTOS process.
Default Powheg configuration for single W-boson production with electroweak corrections.
__init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
list allowed_decay_modes
List of allowed decay modes.
validate_decays(self)
Validate idvecbos and vdecaymode keywords and check that 'no_ew' is compatible with 'PHOTOS_enabled'.
Base class for PowhegBox V2 processes.
dict externals
List of external processes to schedule.
list validation_functions
List of validation functions to run before preparing runcard.
add_algorithm(self, alg_or_process)
Add an algorithm or external process to the sequence.
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.
default_scales(self)
Default scale variations for this process.
std::vector< std::string > split(const std::string &s, const std::string &t=":")