3from AthenaCommon
import Logging
4from ..powheg_V2
import PowhegV2
8logger = Logging.logging.getLogger(
"PowhegControl")
13 Default Powheg configuration for Z-boson pair plus jet 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 ZZ continuum, as
19 described in https://arxiv.org/abs/1312.3252. 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.zz_res_type = 1`
22 for the WW continuum and
23 :code:`PowhegConfig.zz_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.zz_res_type = 0`.
30 If you use this process for a publication, please cite:
31 https://arxiv.org/abs/1312.3252
32 as well as the usual Powheg(Box) publications
34 @author Timothee Theveneaux-Pelzer <tpelzer@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_ZZ, self).
__init__(base_directory,
"VBF_Z_Z", **kwargs)
50 z_decay_products = [
"e+ e-",
"mu+ mu-",
"ve ve~",
"vm vm~",
"d d~",
"s s~",
"u u~",
"c- c~",
"(d d~ / s s~)",
"(u u~ / c c~)" ]
52 self.
allowed_decay_modes = [
"z z > {} {}".format(*x)
for x
in itertools.product(z_decay_products, z_decay_products)]
172 """! Validate idvecbos, vdecaymodew1 and vdecaymodew2 keywords."""
177 _decay_mode_lookup = {
189 list(self.
parameters_by_keyword(
"vdecaymodeZ1"))[0].value = _decay_mode_lookup[
" ".join(_decay_products[0:2])]
190 list(self.
parameters_by_keyword(
"vdecaymodeZ2"))[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.
__init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
validate_decays(self)
Validate idvecbos, vdecaymodew1 and vdecaymodew2 keywords.
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=":")