ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Generators
PowhegControl
python
processes
powheg
ttj.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
from
..external
import
ExternalMadSpin
6
7
8
logger = Logging.logging.getLogger(
"PowhegControl"
)
9
10
11
# Dictionary to convert the PowhegControl decay mode names to the appropriate
12
# decay mode numbers understood by Powheg
13
#
14
# The PowhegControl decay modes with MadSpin in their name use MadSpin to
15
# generate the top decays, the others use Powheg
16
_decay_mode_lookup = {
17
"t t~ > all"
:
"22222"
,
18
"t t~ > b j j b~ j j"
:
"00022"
,
19
"t t~ > b l+ vl b~ l- vl~"
:
"22200"
,
20
"t t~ > b emu+ vemu b~ emu- vemu~"
:
"22000"
,
21
"t t~ > semileptonic"
:
"11111"
,
22
"t t~ > undecayed"
:
"00000"
,
23
"t t~ > all [MadSpin]"
:
"00000"
,
# switch off decays in Powheg and let MadSpin handle them!
24
}
25
26
27
class
ttj
(
PowhegV2
):
28
"""! Default Powheg configuration for top pair production plus one jet.
29
30
Create a configurable object with all applicable Powheg options.
31
32
@author James Robinson <james.robinson@cern.ch>
33
"""
34
35
def
__init__
(self, base_directory, **kwargs):
36
"""! Constructor: all process options are set here.
37
38
@param base_directory: path to PowhegBox code.
39
@param kwargs dictionary of arguments from Generate_tf.
40
"""
41
super(ttj, self).
__init__
(base_directory,
"ttbarj"
, **kwargs)
42
43
# Add algorithms to the sequence
44
self.
add_algorithm
(
ExternalMadSpin
(process=
"generate p p > t t~ j [QCD]"
))
45
46
# Add parameter validation functions
47
self.
validation_functions
.append(
"validate_decays"
)
48
49
51
self.
allowed_decay_modes
= sorted(_decay_mode_lookup.keys())
52
53
# Add all keywords for this process, overriding defaults if required
54
self.
add_keyword
(
"alphaem"
)
55
self.
add_keyword
(
"bcut"
)
56
self.
add_keyword
(
"bornktmin"
, 5.0)
57
self.
add_keyword
(
"bornonly"
)
58
self.
add_keyword
(
"bornsuppfact"
, 100.0)
59
self.
add_keyword
(
"bornzerodamp"
)
60
self.
add_keyword
(
"bottomthr"
)
61
self.
add_keyword
(
"bottomthrpdf"
)
62
self.
add_keyword
(
"charmthr"
)
63
self.
add_keyword
(
"charmthrpdf"
)
64
self.
add_keyword
(
"check_bad_st1"
)
65
self.
add_keyword
(
"check_bad_st2"
)
66
self.
add_keyword
(
"CKM_Vcb"
)
67
self.
add_keyword
(
"CKM_Vcd"
)
68
self.
add_keyword
(
"CKM_Vcs"
)
69
self.
add_keyword
(
"CKM_Vtb"
)
70
self.
add_keyword
(
"CKM_Vtd"
)
71
self.
add_keyword
(
"CKM_Vts"
)
72
self.
add_keyword
(
"CKM_Vub"
)
73
self.
add_keyword
(
"CKM_Vud"
)
74
self.
add_keyword
(
"CKM_Vus"
)
75
self.
add_keyword
(
"clobberlhe"
)
76
self.
add_keyword
(
'collremnsamp"'
)
77
self.
add_keyword
(
"colltest"
)
78
self.
add_keyword
(
"compute_rwgt"
)
79
self.
add_keyword
(
"elbranching"
)
80
self.
add_keyword
(
"facscfact"
, self.
default_scales
[0])
81
self.
add_keyword
(
"fastbtlbound"
)
82
self.
add_keyword
(
"ffltest"
)
83
self.
add_keyword
(
"flg_debug"
)
84
self.
add_keyword
(
"foldcsi"
, 2)
85
self.
add_keyword
(
"foldphi"
, 2)
86
self.
add_keyword
(
"foldy"
, 2)
87
self.
add_keyword
(
"fullrwgt"
)
88
self.
add_keyword
(
"fullrwgtmode"
)
89
self.
add_keyword
(
"ggproc"
)
90
self.
add_keyword
(
"gqbproc"
)
91
self.
add_keyword
(
"hdamp"
)
92
self.
add_keyword
(
"hfact"
)
93
self.
add_keyword
(
"icsimax"
, 3)
94
self.
add_keyword
(
"ih1"
)
95
self.
add_keyword
(
"ih2"
)
96
self.
add_keyword
(
"itmx1"
)
97
self.
add_keyword
(
"itmx2"
, 4)
98
self.
add_keyword
(
"iupperfsr"
)
99
self.
add_keyword
(
"iupperisr"
)
100
self.
add_keyword
(
"iymax"
, 3)
101
self.
add_keyword
(
"jacsing"
)
102
self.
add_keyword
(
"largecorrfact"
)
103
self.
add_keyword
(
"lhans1"
, self.
default_PDFs
)
104
self.
add_keyword
(
"lhans2"
, self.
default_PDFs
)
105
self.
add_keyword
(
"lhfm/bmass"
)
106
self.
add_keyword
(
"lhfm/cmass"
)
107
self.
add_keyword
(
"lhfm/emass"
)
108
self.
add_keyword
(
"lhfm/mumass"
)
109
self.
add_keyword
(
"lhfm/taumass"
)
110
self.
add_keyword
(
"manyseeds"
)
111
self.
add_keyword
(
"masswindow_high"
)
112
self.
add_keyword
(
"masswindow_low"
)
113
self.
add_keyword
(
"ncall1"
, 51000)
114
self.
add_keyword
(
"ncall1rm"
)
115
self.
add_keyword
(
"ncall2"
, 91000)
116
self.
add_keyword
(
"ncall2rm"
)
117
self.
add_keyword
(
"nubound"
, 11000)
118
self.
add_keyword
(
"par_2gsupp"
)
119
self.
add_keyword
(
"par_diexp"
)
120
self.
add_keyword
(
"par_dijexp"
)
121
self.
add_keyword
(
"par_fsrtinycsi"
)
122
self.
add_keyword
(
"par_fsrtinyy"
)
123
self.
add_keyword
(
"par_isrtinycsi"
)
124
self.
add_keyword
(
"par_isrtinyy"
)
125
self.
add_keyword
(
"parallelstage"
)
126
self.
add_keyword
(
"pdfreweight"
)
127
self.
add_keyword
(
"psgen"
)
128
self.
add_keyword
(
"ptmin_jet"
, 20.0)
129
self.
add_keyword
(
"ptsqmin"
)
130
self.
add_keyword
(
"ptsupp"
)
131
self.
add_keyword
(
"qgproc"
)
132
self.
add_keyword
(
"qqbproc"
)
133
self.
add_keyword
(
"qqpproc"
)
134
self.
add_keyword
(
"qqproc"
)
135
self.
add_keyword
(
"R_jet"
)
136
self.
add_keyword
(
"radregion"
)
137
self.
add_keyword
(
"rand1"
)
138
self.
add_keyword
(
"rand2"
)
139
self.
add_keyword
(
"renscfact"
, self.
default_scales
[1])
140
self.
add_keyword
(
"runningscale"
)
141
self.
add_keyword
(
"rwl_add"
)
142
self.
add_keyword
(
"rwl_file"
)
143
self.
add_keyword
(
"rwl_format_rwgt"
)
144
self.
add_keyword
(
"rwl_group_events"
)
145
self.
add_keyword
(
"semileptonic"
, hidden=
True
)
146
self.
add_keyword
(
"smartsig"
)
147
self.
add_keyword
(
"softtest"
)
148
self.
add_keyword
(
"sthw2"
)
149
self.
add_keyword
(
"storeinfo_rwgt"
)
150
self.
add_keyword
(
"testplots"
)
151
self.
add_keyword
(
"testsuda"
)
152
self.
add_keyword
(
"topdecaymode"
,
"t t~ > all"
, name=
"decay_mode"
)
153
self.
add_keyword
(
"topmass"
)
154
self.
add_keyword
(
"topwidth"
)
155
self.
add_keyword
(
"ubsigmadetails"
)
156
self.
add_keyword
(
"use-old-grid"
)
157
self.
add_keyword
(
"use-old-ubound"
)
158
self.
add_keyword
(
"use_OLP_Interface"
,1)
159
self.
add_keyword
(
"withdamp"
)
160
self.
add_keyword
(
"withnegweights"
)
161
self.
add_keyword
(
"withsubtr"
)
162
self.
add_keyword
(
"Wmass"
)
163
self.
add_keyword
(
"Wwidth"
)
164
self.
add_keyword
(
"xupbound"
, 6)
165
self.
add_keyword
(
"zerowidth"
)
166
self.
add_keyword
(
"Zmass"
)
167
self.
add_keyword
(
"Zwidth"
)
168
169
def
validate_decays
(self):
170
"""! Validate semileptonic and topdecaymode keywords."""
171
self.
expose
()
# convenience call to simplify syntax
172
if
self.
decay_mode
not
in
self.
allowed_decay_modes
:
173
error_message =
"Decay mode '{given}' not recognised, valid choices are: '{choices}'!"
.format(given=self.
decay_mode
, choices=
"', '"
.join(self.
allowed_decay_modes
))
174
logger.warning(error_message)
175
raise
ValueError(error_message)
176
177
# Check if MadSpin decays are requested.
178
# Accordingly, MadSpin will run or not run.
179
if
"MadSpin"
in
self.
decay_mode
:
180
self.
externals
[
"MadSpin"
].
parameters_by_keyword
(
"powheg_top_decays_enabled"
)[0].value =
False
181
self.
externals
[
"MadSpin"
].
parameters_by_keyword
(
"MadSpin_model"
)[0].value =
"loop_sm-no_b_mass"
182
self.
externals
[
"MadSpin"
].
parameters_by_keyword
(
"MadSpin_nFlavours"
)[0].value = 5
183
184
self.
parameters_by_keyword
(
"topdecaymode"
)[0].value = _decay_mode_lookup[self.
decay_mode
]
185
if
self.
decay_mode
==
"t t~ > semileptonic"
:
186
# Parameter semileptonic must be set to 1 to actually get semileptonic decays, because the topdecaymode=11111 also allows fully hadronic decays (with one up and one charm quark)
187
self.
parameters_by_keyword
(
"semileptonic"
)[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.external.external_madspin.ExternalMadSpin
Class for running external MadSpin process.
Definition
external_madspin.py:11
python.processes.powheg.ttj.ttj
Default Powheg configuration for top pair production plus one jet.
Definition
ttj.py:27
python.processes.powheg.ttj.ttj.__init__
__init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition
ttj.py:35
python.processes.powheg.ttj.ttj.allowed_decay_modes
allowed_decay_modes
List of allowed decay modes (The sorting of the list is just to increase readability when it's printe...
Definition
ttj.py:51
python.processes.powheg.ttj.ttj.decay_mode
str decay_mode
Definition
ttj.py:179
python.processes.powheg.ttj.ttj.validate_decays
validate_decays(self)
Validate semileptonic and topdecaymode keywords.
Definition
ttj.py:169
python.processes.powheg_V2.PowhegV2
Base class for PowhegBox V2 processes.
Definition
powheg_V2.py:6
python.processes.powheg_base.PowhegBase.externals
dict externals
List of external processes to schedule.
Definition
powheg_base.py:124
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.add_algorithm
add_algorithm(self, alg_or_process)
Add an algorithm or external process to the sequence.
Definition
powheg_base.py:156
python.processes.powheg_base.PowhegBase.default_scales
default_scales(self)
Default scale variations for this process.
Definition
powheg_base.py:194
Generated on
for ATLAS Offline Software by
1.17.0