3from AthenaCommon
import Logging
4from ..powheg_V2
import PowhegV2
8logger = Logging.logging.getLogger(
"PowhegControl")
13 Default Powheg configuration for opposite-sign W-boson pair plus jet pair production through vector boson fusion.
15 Create a configurable object with all applicable Powheg options.
17 Note that in the presence of a very sharp resonance, as is the case in a scenario with a light Higgs boson with a
18 mass below 200 GeV, the resonant Higgs contribution has to be evaluated separately from the WW continuum, as
19 described in https://arxiv.org/abs/1301.1695. In this case the entire event generation chain has to be performed
20 for each of these two contributions separately in two distinct working directories, setting
21 :code:`PowhegConfig.ww_res_type = 1`
22 for the WW continuum and
23 :code:`PowhegConfig.ww_res_type = 2`
24 for the Higgs resonance contribution. After all the runs have been performed for each case, the results have to
26 If the Higgs is heavy and broad, such a splitting is not necessary, and all contributions can be evaluated at the
28 :code:PowhegConfig.ww_res_type = 0`.
30 If you use this process for a publication, please cite:
31 https://arxiv.org/abs/1301.1695
32 as well as the usual Powheg(Box) publications
34 @author Stefan Richter <stefan.richter@cern.ch>
38 """! Constructor: all process options are set here.
40 @param base_directory: path to PowhegBox code.
41 @param kwargs dictionary of arguments from Generate_tf.
43 super(VBF_osWW, self).
__init__(base_directory,
"VBF_Wp_Wm", **kwargs)
49 wp_decay_products = [
"e+ ve",
"mu+ vm",
"tau+ vt",
"u d~",
"c s~",
"(u d~ / c s~)"]
50 wm_decay_products = [
"e- ve~",
"mu- vm~",
"tau- vt~",
"d u~",
"s c~",
"(d u~ / s c~)"]
52 self.
allowed_decay_modes = [
"w+ w- > {} {}".format(*x)
for x
in itertools.product(wp_decay_products, wm_decay_products)]
168 """! Validate idvecbos, vdecaymodew1 and vdecaymodew2 keywords."""
173 _decay_mode_lookup = {
179 "(u d~ / c s~)" : -7,
187 list(self.
parameters_by_keyword(
"vdecaymodeWp"))[0].value = _decay_mode_lookup[
" ".join(_decay_products[0:2])]
188 list(self.
parameters_by_keyword(
"vdecaymodeWm"))[0].value = _decay_mode_lookup[
" ".join(_decay_products[2:4])]
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_keyword(self, keyword)
Retrieve all parameters that use a given keyword.
validate_decays(self)
Validate idvecbos, vdecaymodew1 and vdecaymodew2 keywords.
__init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Base class for PowhegBox V2 processes.
list validation_functions
List of validation functions to run before preparing runcard.
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=":")