ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Generators
PowhegControl
python
processes
powheg
VBF_osWW.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2
3
from
...
import
Logging
4
from
..powheg_V2
import
PowhegV2
5
import
itertools
6
7
8
logger = Logging.logging.getLogger(
"PowhegControl"
)
9
10
11
class
VBF_osWW
(
PowhegV2
):
12
"""
13
Default Powheg configuration for opposite-sign W-boson pair plus jet pair production through vector boson fusion.
14
15
Create a configurable object with all applicable Powheg options.
16
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
25
be added.
26
If the Higgs is heavy and broad, such a splitting is not necessary, and all contributions can be evaluated at the
27
same time, setting
28
:code:PowhegConfig.ww_res_type = 0`.
29
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
33
34
@author Stefan Richter <stefan.richter@cern.ch>
35
"""
36
37
def
__init__
(self, base_directory, **kwargs):
38
"""! Constructor: all process options are set here.
39
40
@param base_directory: path to PowhegBox code.
41
@param kwargs dictionary of arguments from Generate_tf.
42
"""
43
super(VBF_osWW, self).
__init__
(base_directory,
"VBF_Wp_Wm"
, **kwargs)
44
45
# Add parameter validation functions
46
self.
validation_functions
.append(
"validate_decays"
)
47
48
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~)"
]
51
52
self.
allowed_decay_modes
= [
"w+ w- > {} {}"
.format(*x)
for
x
in
itertools.product(wp_decay_products, wm_decay_products)]
53
# Add all keywords for this process, overriding defaults if required
54
self.
add_keyword
(
"alphas_from_lhapdf"
)
55
self.
add_keyword
(
"bornktmin"
)
56
self.
add_keyword
(
"bornonly"
)
57
self.
add_keyword
(
"bornsuppfact"
, 100)
# self.add_keyword("bornsuppfact", 1)
58
self.
add_keyword
(
"bornzerodamp"
)
59
self.
add_keyword
(
"bottomthr"
)
60
self.
add_keyword
(
"bottomthrpdf"
)
61
self.
add_keyword
(
"btildeborn"
)
62
self.
add_keyword
(
"btildecoll"
)
63
self.
add_keyword
(
"btildereal"
)
64
self.
add_keyword
(
"btildevirt"
)
65
self.
add_keyword
(
"btlscalect"
, 1)
66
self.
add_keyword
(
"btlscalereal"
, 1)
67
self.
add_keyword
(
"charmthr"
)
68
self.
add_keyword
(
"charmthrpdf"
)
69
self.
add_keyword
(
"check_bad_st1"
)
70
self.
add_keyword
(
"check_bad_st2"
)
71
self.
add_keyword
(
"clobberlhe"
)
72
self.
add_keyword
(
"colltest"
)
73
self.
add_keyword
(
"compress_lhe"
)
74
self.
add_keyword
(
"compress_upb"
)
75
self.
add_keyword
(
"compute_rwgt"
)
76
self.
add_keyword
(
"doublefsr"
)
77
self.
add_keyword
(
"evenmaxrat"
)
78
self.
add_keyword
(
"facscfact"
, self.
default_scales
[0])
79
self.
add_keyword
(
"fakevirt"
)
80
self.
add_keyword
(
"fastbtlbound"
)
81
self.
add_keyword
(
"fixedgrid"
)
82
self.
add_keyword
(
"flg_debug"
)
83
self.
add_keyword
(
"foldcsi"
, 2)
84
self.
add_keyword
(
"foldphi"
)
85
self.
add_keyword
(
"foldy"
, 2)
86
self.
add_keyword
(
"fullrwgt"
)
87
self.
add_keyword
(
"fullrwgtmode"
)
88
self.
add_keyword
(
"hdamp"
)
89
self.
add_keyword
(
"hfact"
)
90
self.
add_keyword
(
"hmass"
)
91
self.
add_keyword
(
"hwidth"
)
92
self.
add_keyword
(
"icsimax"
)
93
self.
add_keyword
(
"ih1"
)
94
self.
add_keyword
(
"ih2"
)
95
self.
add_keyword
(
"itmx1"
, 3)
96
self.
add_keyword
(
"itmx1rm"
)
97
self.
add_keyword
(
"itmx2"
, 6)
98
self.
add_keyword
(
"itmx2rm"
)
99
self.
add_keyword
(
"iupperfsr"
)
100
self.
add_keyword
(
"iupperisr"
)
101
self.
add_keyword
(
"iymax"
)
102
self.
add_keyword
(
"lhans1"
, self.
default_PDFs
)
103
self.
add_keyword
(
"lhans2"
, self.
default_PDFs
)
104
self.
add_keyword
(
"lhapdf6maxsets"
)
105
self.
add_keyword
(
"lhrwgt_descr"
)
106
self.
add_keyword
(
"lhrwgt_group_combine"
)
107
self.
add_keyword
(
"lhrwgt_group_name"
)
108
self.
add_keyword
(
"lhrwgt_id"
)
109
self.
add_keyword
(
"LOevents"
)
110
self.
add_keyword
(
"manyseeds"
)
111
self.
add_keyword
(
"max_io_bufsize"
)
112
self.
add_keyword
(
"maxseeds"
, 1000)
113
self.
add_keyword
(
"minlo"
)
114
self.
add_keyword
(
"mintupbratlim"
)
115
self.
add_keyword
(
"mintupbxless"
)
116
self.
add_keyword
(
"ncall1"
, 700000)
117
self.
add_keyword
(
"ncall1rm"
)
118
self.
add_keyword
(
"ncall2"
, 900000)
119
self.
add_keyword
(
"ncall2rm"
)
120
self.
add_keyword
(
"ncallfrominput"
)
121
self.
add_keyword
(
"noevents"
)
122
self.
add_keyword
(
"novirtual"
)
123
self.
add_keyword
(
"nubound"
, 400000)
124
self.
add_keyword
(
"olddij"
)
125
self.
add_keyword
(
"par_2gsupp"
)
126
self.
add_keyword
(
"par_diexp"
)
127
self.
add_keyword
(
"par_dijexp"
)
128
self.
add_keyword
(
"parallelstage"
)
129
self.
add_keyword
(
"pdfreweight"
)
130
self.
add_keyword
(
"ptsqmin"
)
131
self.
add_keyword
(
"ptsupp"
)
132
self.
add_keyword
(
"radregion"
)
133
self.
add_keyword
(
"rand1"
)
134
self.
add_keyword
(
"rand2"
)
135
self.
add_keyword
(
"renscfact"
, self.
default_scales
[1])
136
self.
add_keyword
(
"runningscales"
, 1)
137
self.
add_keyword
(
"rwl_add"
)
138
self.
add_keyword
(
"rwl_file"
)
139
self.
add_keyword
(
"rwl_format_rwgt"
)
140
self.
add_keyword
(
"rwl_group_events"
)
141
self.
add_keyword
(
"smartsig"
)
142
self.
add_keyword
(
"softtest"
)
143
self.
add_keyword
(
"stage2init"
)
144
self.
add_keyword
(
"storeinfo_rwgt"
)
145
self.
add_keyword
(
"storemintupb"
)
146
self.
add_keyword
(
"testplots"
)
147
self.
add_keyword
(
"testsuda"
)
148
self.
add_keyword
(
"ubexcess_correct"
)
149
self.
add_keyword
(
"ubsigmadetails"
)
150
self.
add_keyword
(
"use-old-grid"
)
151
self.
add_keyword
(
"use-old-ubound"
)
152
self.
add_keyword
(
"vdecaymodeWm"
, hidden=
True
)
153
self.
add_keyword
(
"vdecaymodeWp"
, self.
allowed_decay_modes
[0], name=
"decay_mode"
)
154
self.
add_keyword
(
"withdamp"
, 1)
155
self.
add_keyword
(
"withnegweights"
)
156
self.
add_keyword
(
"withsubtr"
)
157
self.
add_keyword
(
"wmass"
)
158
self.
add_keyword
(
"ww_res_type"
)
159
self.
add_keyword
(
"wwidth"
)
160
self.
add_keyword
(
"xgriditeration"
)
161
self.
add_keyword
(
"xupbound"
, 2)
162
self.
add_keyword
(
"zerowidth"
)
163
# Note: the process-specific parameter 'fat jet' is not currently implemented in PowhegControl.
164
# If you need it, please contact the PowhegControl maintainer(s).
165
166
167
def
validate_decays
(self):
168
"""! Validate idvecbos, vdecaymodew1 and vdecaymodew2 keywords."""
169
self.
expose
()
# convenience call to simplify syntax
170
self.
check_decay_mode
(self.
decay_mode
, self.
allowed_decay_modes
)
171
# Calculate appropriate decay mode numbers
172
_decay_products = [p
for
p
in
self.
decay_mode
.
split
(
"> "
)[1].
split
(
" "
)]
173
_decay_mode_lookup = {
174
"e+ ve"
: -11,
175
"mu+ vm"
: -13,
176
"tau+ vt"
: -15,
177
"u d~"
: -1,
178
"c s~"
: -3,
179
"(u d~ / c s~)"
: -7,
180
"e- ve~"
: 11,
181
"mu- vm~"
: 13,
182
"tau- vt~"
: 15,
183
"d u~"
: 1,
184
"s c~"
: 3,
185
"(d u~ / s c~)"
: 7,
186
}
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])]
python.processes.configurable.Configurable.add_keyword
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.expose
expose(self)
Add all names to the interface of this object.
Definition
configurable.py:46
python.processes.configurable.Configurable.parameters_by_keyword
parameters_by_keyword(self, keyword)
Retrieve all parameters that use a given keyword.
Definition
configurable.py:57
python.processes.powheg.VBF_osWW.VBF_osWW
Definition
VBF_osWW.py:11
python.processes.powheg.VBF_osWW.VBF_osWW.validate_decays
validate_decays(self)
Validate idvecbos, vdecaymodew1 and vdecaymodew2 keywords.
Definition
VBF_osWW.py:167
python.processes.powheg.VBF_osWW.VBF_osWW.__init__
__init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition
VBF_osWW.py:37
python.processes.powheg.VBF_osWW.VBF_osWW.decay_mode
decay_mode
Definition
VBF_osWW.py:170
python.processes.powheg.VBF_osWW.VBF_osWW.allowed_decay_modes
list allowed_decay_modes
Definition
VBF_osWW.py:52
python.processes.powheg_V2.PowhegV2
Base class for PowhegBox V2 processes.
Definition
powheg_V2.py:6
python.processes.powheg_base.PowhegBase.validation_functions
list validation_functions
List of validation functions to run before preparing runcard.
Definition
powheg_base.py:127
python.processes.powheg_base.PowhegBase.check_decay_mode
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.
Definition
powheg_base.py:231
python.processes.powheg_base.PowhegBase.default_scales
default_scales(self)
Default scale variations for this process.
Definition
powheg_base.py:194
split
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition
hcg.cxx:179
Generated on
for ATLAS Offline Software by
1.17.0