ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Generators
PowhegControl
python
algorithms
postprocessors
e2mu.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
3
from
...
import
Logging
4
from
...decorators
import
timed
5
from
...utility
import
LHE
6
import
shutil
7
8
9
logger = Logging.logging.getLogger(
"PowhegControl"
)
10
11
12
@timed("e2mu")
13
def
e2mu(powheg_LHE_output):
14
"""! Post-process existing events from electrons to muons
15
16
@param powheg_LHE_output Name of LHE file produced by PowhegBox.
17
18
@author Jan Kretzschmar <jan.kretzschmar@cern.ch>
19
"""
20
logger.warning(
"Converting LHE events from electron to muon decays."
)
21
22
# Get opening and closing strings
23
preamble = LHE.preamble(powheg_LHE_output)
24
postamble = LHE.postamble(powheg_LHE_output)
25
26
n_events = 0
27
powheg_LHE_mu =
"{}.mu"
.format(powheg_LHE_output)
28
with
open(powheg_LHE_mu,
"w"
)
as
f_output:
29
f_output.write(
"{}\n"
.format(preamble))
30
for
input_event
in
LHE.event_iterator(powheg_LHE_output):
31
is_event_changed, output_event = LHE.e2mu(input_event)
32
f_output.write(output_event)
33
n_events += [0, 1][is_event_changed]
34
f_output.write(postamble)
35
logger.info(
"Changed e->mu in {} events!"
.format(n_events))
36
37
# Make a backup of the original events
38
shutil.move(powheg_LHE_output,
"{}.e2mu_backup"
.format(powheg_LHE_output))
39
shutil.move(powheg_LHE_mu, powheg_LHE_output)
Generated on
for ATLAS Offline Software by
1.17.0