ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Generators
PowhegControl
python
processes
powheg
ZZj_MiNNLO.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3
from
...
import
Logging
4
from
..powheg_RES
import
PowhegRES
5
6
7
logger = Logging.logging.getLogger(
"PowhegControl"
)
8
9
10
class
ZZj_MiNNLO
(
PowhegRES
):
11
"""! Default Powheg configuration for Z-boson pair production plus one jet using MiNNLOPS.
12
13
Create a configurable object with all applicable Powheg options.
14
15
@author Guglielmo Frattari <guglielmo.frattari@cern.ch>
16
"""
17
18
def
__init__
(self, base_directory, **kwargs):
19
"""! Constructor: all process options are set here.
20
21
@param base_directory: path to PowhegBox code.
22
@param kwargs dictionary of arguments from Generate_tf.
23
"""
24
errors = super(ZZj_MiNNLO, self).
openloops_error
()
25
warnings = super(ZZj_MiNNLO, self).
hoppet_warning
()
26
infos = super(ZZj_MiNNLO, self).
hoppet_info
()
27
infos.append(
"qqvvamp: increasing precision to"
)
28
super(ZZj_MiNNLO, self).
__init__
(base_directory,
"ZZJ"
,warning_output=warnings, info_output=infos, error_output=errors, **kwargs)
29
30
# Add parameter validation functions
31
self.
validation_functions
.append(
"validate_decays"
)
32
33
# Add flag for the MiNNLO reweight
34
self.
reweight_for_MiNNLO
=
True
35
36
37
self.
allowed_decay_modes
= [
"z z > e- e+ mu- mu+"
,
38
"z z > e- e+ tau- tau+"
,
39
"z z > mu- mu+ tau- tau+"
,
40
"z z > l- l+ l'- l'+"
,
41
"z z > e- e+ e- e+"
,
42
"z z > mu- mu+ mu- mu+"
,
43
"z z > tau- tau+ tau- tau+"
,
44
"z z > l- l+ l- l+"
,
45
"z z > e- e+ e- e+ / mu- mu+ mu- mu+"
,
46
"z z > e- e+ vl vl~"
,
47
"z z > mu- mu+ vl vl~"
,
48
"z z > tau- tau+ vl vl~"
,
49
"z z > l- l+ vl vl~"
,
50
"z z > e- e+ vl vl~ / mu- mu+ vl vl~"
,
51
"z z (+ w w) > e- e+ vl vl~"
,
52
"z z (+ w w) > mu- mu+ vl vl~"
,
53
"z z (+ w w) > tau- tau+ vl vl~"
,
54
"z z (+ w w) > l- l+ vl vl~"
,
55
"z z (+ w w) > e- e+ vl vl~ / mu- mu+ vl vl~"
,
56
"z z > j j j' j'"
,
57
"z z > j j j j"
,
58
"z z > l- l+ j j"
,
59
"z z > j j vl vl~"
]
60
61
# Add all keywords for this process, overriding defaults if required
62
self.
add_keyword
(
"ih1"
)
63
self.
add_keyword
(
"ih2"
)
64
self.
add_keyword
(
"lhans1"
, self.
default_PDFs
)
65
self.
add_keyword
(
"lhans2"
, self.
default_PDFs
)
66
self.
add_keyword
(
"alphas_from_pdf"
, 1)
67
self.
add_keyword
(
"fixedscale"
, 0)
68
self.
add_keyword
(
"whichscale"
, 1)
69
self.
add_keyword
(
"minlo"
, 1)
70
self.
add_keyword
(
"minnlo"
, 1)
71
self.
add_keyword
(
"modlog_p"
,
"-1d0"
)
72
self.
add_keyword
(
"Q0"
,
"0d0"
)
73
self.
add_keyword
(
"largeptscales"
, 1)
74
self.
add_keyword
(
"smartMiNLO"
, 1)
75
self.
add_keyword
(
"run_mode"
, 4)
76
self.
add_keyword
(
"rwl_group_events"
, 1)
77
self.
add_keyword
(
"renscfact"
, self.
default_scales
[1])
78
self.
add_keyword
(
"facscfact"
, self.
default_scales
[0])
79
self.
add_keyword
(
"storeinfo_rwgt"
, 1)
80
self.
add_keyword
(
"rwl_file"
)
81
self.
add_keyword
(
"rwl_add"
)
82
self.
add_keyword
(
"rwl_format_rwgt"
)
83
self.
add_keyword
(
"clobberlhe"
)
84
self.
add_keyword
(
"ewscheme"
)
85
self.
add_keyword
(
"gfermi"
)
86
self.
add_keyword
(
"zmass"
)
87
self.
add_keyword
(
"wmass"
)
88
self.
add_keyword
(
"hmass"
)
89
self.
add_keyword
(
"tmass"
)
90
self.
add_keyword
(
"bmass"
, 0)
91
self.
add_keyword
(
"zwidth"
)
92
self.
add_keyword
(
"wwidth"
)
93
self.
add_keyword
(
"twidth"
)
94
self.
add_keyword
(
"hwidth"
)
95
self.
add_keyword
(
"e-e+mu-mu+"
, 1, name=
"decay_mode"
, hidden=
False
)
96
self.
add_keyword
(
"e-e+tau-tau+"
)
97
self.
add_keyword
(
"mu-mu+tau-tau+"
)
98
self.
add_keyword
(
"4l_DF"
)
99
self.
add_keyword
(
"e-e+e-e+"
)
100
self.
add_keyword
(
"mu-mu+mu-mu+"
)
101
self.
add_keyword
(
"tau-tau+tau-tau+"
)
102
self.
add_keyword
(
"4l_SF"
)
103
self.
add_keyword
(
"4l_notau_SF"
)
104
self.
add_keyword
(
"e-e+nunu_DF"
)
105
self.
add_keyword
(
"mu-mu+nunu_DF"
)
106
self.
add_keyword
(
"tau-tau+nunu_DF"
)
107
self.
add_keyword
(
"2l2nu_DF"
)
108
self.
add_keyword
(
"2l2nu_notau_DF"
)
109
self.
add_keyword
(
"n_neutrinos_DF"
)
110
self.
add_keyword
(
"e-e+nunu_SF"
)
111
self.
add_keyword
(
"mu-mu+nunu_SF"
)
112
self.
add_keyword
(
"tau-tau+nunu_SF"
)
113
self.
add_keyword
(
"2l2nu_SF"
)
114
self.
add_keyword
(
"2l2nu_notau_SF"
)
115
self.
add_keyword
(
"4q_DF"
)
116
self.
add_keyword
(
"4q_SF"
)
117
self.
add_keyword
(
"2l2q"
)
118
self.
add_keyword
(
"2q2nu"
)
119
self.
add_keyword
(
"massive_leptons"
, 0)
120
self.
add_keyword
(
"e_mass"
, 0.000511)
121
self.
add_keyword
(
"mu_mass"
, 0.1057)
122
self.
add_keyword
(
"tau_mass"
, 1.777)
123
self.
add_keyword
(
"c_mass"
, 1.40)
124
self.
add_keyword
(
"b_mass"
, 4.92)
125
self.
add_keyword
(
"bornktmin"
, 0.26)
126
self.
add_keyword
(
"mll_min"
, 60)
127
self.
add_keyword
(
"mll_max"
, 120)
128
self.
add_keyword
(
"m4lcut"
, 4)
129
self.
add_keyword
(
"use-old-grid"
, 1)
130
self.
add_keyword
(
"ncall1"
, 30000)
131
self.
add_keyword
(
"itmx1"
, 1)
132
self.
add_keyword
(
"ncall2"
, 30000)
133
self.
add_keyword
(
"itmx2"
, 1)
134
self.
add_keyword
(
"foldcsi"
, 1)
135
self.
add_keyword
(
"foldy"
, 1)
136
self.
add_keyword
(
"foldphi"
, 1)
137
self.
add_keyword
(
"testplots"
, 0)
138
self.
add_keyword
(
"use-old-ubound"
, 1)
139
self.
add_keyword
(
"nubound"
, 50000)
140
self.
add_keyword
(
"storemintupb"
, 1)
141
self.
add_keyword
(
"xupbound"
, 2)
142
self.
add_keyword
(
"mintupbratlim"
, 1000)
143
self.
add_keyword
(
"ubexcess_correct"
, 1)
144
# self.add_keyword("btildeviol")
145
# self.add_keyword("corr_btilde")
146
# self.add_keyword("corr_remnant")
147
self.
add_keyword
(
"colltest"
, 0)
148
self.
add_keyword
(
"softtest"
, 0)
149
self.
add_keyword
(
"withdamp"
, 1)
150
self.
add_keyword
(
"smartsig"
, 1)
151
self.
add_keyword
(
"fastbtlbound"
, 1)
152
self.
add_keyword
(
"check_bad_st1"
)
153
self.
add_keyword
(
"check_bad_st2"
)
154
self.
add_keyword
(
"manyseeds"
)
155
self.
add_keyword
(
"parallelstage"
)
156
self.
add_keyword
(
"maxseeds"
)
157
self.
add_keyword
(
"xgriditeration"
)
158
159
def
validate_decays
(self):
160
"""! Validate the various decay mode keywords."""
161
self.
expose
()
# convenience call to simplify syntax
162
self.
check_decay_mode
(self.
decay_mode
, self.
allowed_decay_modes
)
163
# Enable appropriate decay mode
164
list(self.
parameters_by_keyword
(
"e-e+mu-mu+"
))[0].value = 0
165
__decay_mode_lookup = {
166
"z z > l- l+ l'- l'+"
:
"4l_DF"
,
167
"z z > e- e+ mu- mu+"
:
"e-e+mu-mu+"
,
168
"z z > e- e+ tau- tau+"
:
"e-e+tau-tau+"
,
169
"z z > mu- mu+ tau- tau+"
:
"mu-mu+tau-tau+"
,
170
"z z > e- e+ e- e+"
:
"e-e+e-e+"
,
171
"z z > mu- mu+ mu- mu+"
:
"mu-mu+mu-mu+"
,
172
"z z > tau- tau+ tau- tau+"
:
"tau-tau+tau-tau+"
,
173
"z z > l- l+ l- l+"
:
"4l_SF"
,
174
"z z > e- e+ e- e+ / mu- mu+ mu- mu+"
:
"4l_notau_SF"
,
175
"z z > e- e+ vl vl~"
:
"e-e+nunu_DF"
,
176
"z z > mu- mu+ vl vl~"
:
"mu-mu+nunu_DF"
,
177
"z z > tau- tau+ vl vl~"
:
"tau-tau+nunu_DF"
,
178
"z z > l- l+ vl vl~"
:
"2l2nu_DF"
,
179
"z z > e- e+ vl vl~ / mu- mu+ vl vl~"
:
"2l2nu_notau_DF"
,
180
"z z (+ w w) > e- e+ vl vl~"
:
"e-e+nunu_SF"
,
181
"z z (+ w w) > mu- mu+ vl vl~"
:
"mu-mu+nunu_SF"
,
182
"z z (+ w w) > tau- tau+ vl vl~"
:
"tau-tau+nunu_SF"
,
183
"z z (+ w w) > l- l+ vl vl~"
:
"2l2nu_SF"
,
184
"z z (+ w w) > e- e+ vl vl~ / mu- mu+ vl vl~"
:
"2l2nu_notau_SF"
,
185
"z z > j j j' j'"
:
"4q_DF"
,
186
"z z > j j j j"
:
"4q_SF"
,
187
"z z > l- l+ j j"
:
"2l2q"
,
188
"z z > j j vl vl~"
:
"2q2nu"
}
189
190
list(self.
parameters_by_keyword
(__decay_mode_lookup[self.
decay_mode
]))[0].value = 1
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.ZZj_MiNNLO.ZZj_MiNNLO
Default Powheg configuration for Z-boson pair production plus one jet using MiNNLOPS.
Definition
ZZj_MiNNLO.py:10
python.processes.powheg.ZZj_MiNNLO.ZZj_MiNNLO.__init__
__init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition
ZZj_MiNNLO.py:18
python.processes.powheg.ZZj_MiNNLO.ZZj_MiNNLO.validate_decays
validate_decays(self)
Validate the various decay mode keywords.
Definition
ZZj_MiNNLO.py:159
python.processes.powheg.ZZj_MiNNLO.ZZj_MiNNLO.allowed_decay_modes
list allowed_decay_modes
List of allowed decay modes.
Definition
ZZj_MiNNLO.py:37
python.processes.powheg.ZZj_MiNNLO.ZZj_MiNNLO.reweight_for_MiNNLO
bool reweight_for_MiNNLO
Definition
ZZj_MiNNLO.py:34
python.processes.powheg.ZZj_MiNNLO.ZZj_MiNNLO.decay_mode
decay_mode
Definition
ZZj_MiNNLO.py:162
python.processes.powheg_RES.PowhegRES
Base class for PowhegBox RES processes.
Definition
powheg_RES.py:7
python.processes.powheg_base.PowhegBase.hoppet_info
hoppet_info(self)
Definition
powheg_base.py:23
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.openloops_error
openloops_error(self)
Definition
powheg_base.py:51
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
python.processes.powheg_base.PowhegBase.hoppet_warning
hoppet_warning(self)
Definition
powheg_base.py:44
Generated on
for ATLAS Offline Software by
1.17.0