ATLAS Offline Software
Loading...
Searching...
No Matches
VBF_osWW.py
Go to the documentation of this file.
1# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2
3from AthenaCommon import Logging
4from ..powheg_V2 import PowhegV2
5import itertools
6
7
8logger = Logging.logging.getLogger("PowhegControl")
9
10
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
168 """! Validate idvecbos, vdecaymodew1 and vdecaymodew2 keywords."""
169 self.expose() # convenience call to simplify syntax
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])]
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.
Definition VBF_osWW.py:167
__init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition VBF_osWW.py:37
Base class for PowhegBox V2 processes.
Definition powheg_V2.py:6
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=":")
Definition hcg.cxx:177