ATLAS Offline Software
yj.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2 
3 from ..powheg_V2 import PowhegV2
4 from textwrap import dedent
5 
6 
7 class yj(PowhegV2):
8  """
9  Powheg configuration for direct photon production, defined as having the leading-order processes
10  q q~ -> y g
11  q g -> y q
12  q~ g -> y q~
13 
14  Publication (please cite if using this process): https://arxiv.org/abs/1610.02275
15 
16  For a study using this process, see https://arxiv.org/abs/1709.04154
17 
18  The enhancement of photon radiation is described on page 137ff of this PhD thesis:
19  https://www.uni-muenster.de/imperia/md/content/physik_tp/theses/klasen/koenig_phd.pdf
20 
21  @author Stefan Richter <stefan.richter@cern.ch>
22  """
23 
24  def __init__(self, base_directory, **kwargs):
25  """! Constructor: all process options are set here.
26 
27  @param base_directory: path to PowhegBox code.
28  @param kwargs dictionary of arguments from Generate_tf.
29  """
30  super(yj, self).__init__(base_directory, "directphoton", **kwargs)
31 
32  # Add the writing of an initial reweighting file needed to get the Sudakov reweighting factor
33  # into the nominal event weight.
34  self.validation_functions.append("write_enhancedradfac_reweighting_file")
35 
36  # Add all keywords for this process, overriding defaults if required
37  self.add_keyword("alphaem_inv")
38  self.add_keyword("alphas_from_lhapdf")
39  self.add_keyword("bornktmin", 50.0)
40  self.add_keyword("bornonly")
41  # According to the authors' example located at (e.g.)
42  # POWHEG-BOX-V2/directphoton/testrun-lhc/powheg.input-save
43  # bornsuppfact=4000 is used "to get photons over a wide range of 100 GeV
44  # to over 1 TeV, not for low energy photons":
45  self.add_keyword("bornsuppfact", 4000)
46  self.add_keyword("bornzerodamp")
47  self.add_keyword("bottomthr")
48  self.add_keyword("bottomthrpdf")
49  self.add_keyword("btildeborn")
50  self.add_keyword("btildecoll")
51  self.add_keyword("btildereal")
52  self.add_keyword("btildevirt")
53  self.add_keyword("btlscalect")
54  self.add_keyword("btlscalereal")
55  self.add_keyword("charmthr")
56  self.add_keyword("charmthrpdf")
57  self.add_keyword("check_bad_st1")
58  self.add_keyword("check_bad_st2")
59  self.add_keyword("clobberlhe")
60  self.add_keyword("colltest")
61  self.add_keyword("compress_lhe")
62  self.add_keyword("compress_upb")
63  self.add_keyword("compute_rwgt")
64  self.add_keyword("doublefsr", 1)
65  self.add_keyword("emvirtual")
66  self.add_keyword("enhancedradfac", 50)
67  self.add_keyword("evenmaxrat")
68  self.add_keyword("facscfact", self.default_scales[0])
69  self.add_keyword("fastbtlbound")
70  self.add_keyword("fixedgrid")
71  self.add_keyword("fixedscale")
72  self.add_keyword("flg_debug")
73  self.add_keyword("foldcsi", 2)
74  self.add_keyword("foldphi", 1)
75  self.add_keyword("foldy", 5)
76  self.add_keyword("fullrwgt")
77  self.add_keyword("fullrwgtmode")
78  self.add_keyword("hdamp")
79  self.add_keyword("hfact")
80  self.add_keyword("icsimax", 1)
81  self.add_keyword("ih1")
82  self.add_keyword("ih2")
83  self.add_keyword("itmx1", 5)
84  self.add_keyword("itmx1rm")
85  self.add_keyword("itmx2", 5)
86  self.add_keyword("itmx2rm")
87  self.add_keyword("iupperfsr", 1)
88  self.add_keyword("iupperisr")
89  self.add_keyword("iymax", 5)
90  self.add_keyword("jacsing")
91  self.add_keyword("lhans1", self.default_PDFs)
92  self.add_keyword("lhans2", self.default_PDFs)
93  self.add_keyword("lhapdf6maxsets")
94  self.add_keyword("lhrwgt_descr")
95  self.add_keyword("lhrwgt_group_combine")
96  self.add_keyword("lhrwgt_group_name")
97  self.add_keyword("lhrwgt_id")
98  self.add_keyword("LOevents")
99  self.add_keyword("manyseeds")
100  self.add_keyword("max_io_bufsize")
101  self.add_keyword("maxseeds")
102  self.add_keyword("minlo")
103  self.add_keyword("mintupbratlim")
104  self.add_keyword("mintupbxless")
105  self.add_keyword("ncall1", 500000)
106  self.add_keyword("ncall1rm")
107  self.add_keyword("ncall2", 500000)
108  self.add_keyword("ncall2rm")
109  self.add_keyword("ncallfrominput")
110  self.add_keyword("noevents")
111  self.add_keyword("novirtual")
112  self.add_keyword("nubound", 500000)
113  self.add_keyword("olddij")
114  self.add_keyword("par_2gsupp", 4)
115  self.add_keyword("par_diexp", 4)
116  self.add_keyword("par_dijexp", 4)
117  self.add_keyword("parallelstage")
118  #self.add_keyword("pdfreweight")
119  self.add_keyword("ptsqmin")
120  self.add_keyword("ptsupp")
121  self.add_keyword("radregion")
122  self.add_keyword("rand1")
123  self.add_keyword("rand2")
124  self.add_keyword("renscfact", self.default_scales[1])
125  # Reweighting needs to already be run during the initial event
126  # generation for this process. The reason is that the additional event
127  # weight multiplied by a special Sudakov reweighting factor for enhanced
128  # photon radiation sampling (needed to get good signal statistics) needs
129  # to be written into the LHE file to be able to use it later as the
130  # nominal event weight. Any additional multiweights also use this weight
131  # as the reference weight. The "bare" weight not including the Sudakov
132  # reweighting factor is unphysical and should not be used. To enable the
133  # reweighting, a rwl_file provided (which is written
134  # automatically when this constructor is called).
135  # Note that rwl_add has to be set to 0! This parameter is for adding
136  # further weights to an LHE file from a previous run
137  self.add_keyword("rwl_add", 0)
138  self.add_keyword("rwl_file", 'reweighting_needed_for_enhancedradfac.xml')
139  self.add_keyword("rwl_format_rwgt")
140  self.add_keyword("rwl_group_events", 20000)
141  self.add_keyword("skipextratests")
142  self.add_keyword("smartsig")
143  self.add_keyword("softtest")
144  self.add_keyword("stage2init")
145  self.add_keyword("storeinfo_rwgt")
146  self.add_keyword("storemintupb")
147  self.add_keyword("testplots")
148  self.add_keyword("testsuda")
149  self.add_keyword("ubexcess_correct")
150  self.add_keyword("ubsigmadetails")
151  self.add_keyword("use-old-grid")
152  self.add_keyword("use-old-ubound")
153  self.add_keyword("withdamp")
154  self.add_keyword("withnegweights")
155  self.add_keyword("withsubtr")
156  self.add_keyword("xgriditeration")
157  self.add_keyword("xupbound", 2)
158 
160  """Writes reweighting XML file needed for initial event generation.
161 
162  Caution: it seems that the weight has to be called "default". Otherwise
163  Powheg will give an error.
164  """
165  with open('reweighting_needed_for_enhancedradfac.xml', 'w') as xmlfile:
166  contents = dedent('''\
167  <initrwgt>
168  <weightgroup name='nominal' combine='None'>
169  <weight id='0'>default</weight>
170  </weightgroup>
171  </initrwgt>
172  ''')
173  xmlfile.write(contents)
python.processes.powheg.yj.yj.write_enhancedradfac_reweighting_file
def write_enhancedradfac_reweighting_file(self)
Definition: yj.py:159
python.processes.powheg_base.PowhegBase.default_scales
def default_scales(self)
Default scale variations for this process.
Definition: powheg_base.py:246
python.processes.configurable.Configurable.add_keyword
def 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
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
python.processes.powheg.yj.yj
Definition: yj.py:7
python.processes.powheg_base.PowhegBase.validation_functions
validation_functions
List of validation functions to run before preparing runcard.
Definition: powheg_base.py:179
python.processes.powheg_base.PowhegBase.default_PDFs
def default_PDFs(self)
Default PDFs for this process.
Definition: powheg_base.py:241
Trk::open
@ open
Definition: BinningType.h:40
python.processes.powheg_V2.PowhegV2
Base class for PowhegBox V2 processes.
Definition: powheg_V2.py:6
python.processes.powheg.yj.yj.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: yj.py:24