ATLAS Offline Software
Functions | Variables
python.algorithms.postprocessors.lhe_cleaner Namespace Reference

Functions

def lhe_cleaner (powheg_LHE_output)
 

Variables

 logger = Logging.logging.getLogger("PowhegControl")
 Get handle to Athena logging. More...
 

Function Documentation

◆ lhe_cleaner()

def python.algorithms.postprocessors.lhe_cleaner.lhe_cleaner (   powheg_LHE_output)
Post-process LHE file to conform to what the parton-shower generator expects.

@param powheg_LHE_output  Name of LHE file produced by PowhegBox.

Definition at line 11 of file lhe_cleaner.py.

11 def lhe_cleaner(powheg_LHE_output):
12  """Post-process LHE file to conform to what the parton-shower generator expects.
13 
14  @param powheg_LHE_output Name of LHE file produced by PowhegBox.
15  """
16  logger.info("Starting to run PowhegControl LHE file cleaner")
17  import os
18  os.system('cp {0} unmodified_{0}'.format(powheg_LHE_output))
19 
20 
28 
29  # Removing rwgt, pdf, and new weight comment lines if one such line looks buggy, i.e. if one NaN values is found
30  # Otherwise it would probably make Pythia crash (even versions which accept such comment lines)
31  pdf_removed = FileParser(powheg_LHE_output).text_remove_all_if_one_line_matches("^#pdf", "NaN")
32  rwg_removed = FileParser(powheg_LHE_output).text_remove_all_if_one_line_matches("^#rwgt", "NaN")
33  new_removed = FileParser(powheg_LHE_output).text_remove_all_if_one_line_matches("^#new weight", "NaN")
34  matching_removed = FileParser(powheg_LHE_output).text_remove_all_if_one_line_matches("^#matching", "NaN")
35  rdm_removed = FileParser(powheg_LHE_output).text_remove_all_if_one_line_matches("^ #Random", "NaN") # this one starts with a space
36 
37  if pdf_removed != 0:
38  logger.info("{} line(s) starting with '#pdf' were removed in {} since at least one looked buggy".format(pdf_removed, powheg_LHE_output))
39  if rwg_removed != 0:
40  logger.info("{} line(s) starting with '#rwgt' were removed in {} since at least one looked buggy".format(rwg_removed, powheg_LHE_output))
41  if new_removed != 0:
42  logger.info("{} line(s) starting with '#new weight' were removed in {} since at least one looked buggy".format(new_removed, powheg_LHE_output))
43  if matching_removed != 0:
44  logger.info("{} line(s) starting with '#matching' were removed in {} since at least one looked buggy".format(matching_removed, powheg_LHE_output))
45  if rdm_removed != 0:
46  logger.info("{} line(s) starting with ' #Random' were removed in {} since at least one looked buggy".format(rdm_removed, powheg_LHE_output)) # this one starts with a space
47 
48  # Correct LHE version identification; otherwise Pythia will treat all files as v1
49  FileParser(powheg_LHE_output).text_replace('LesHouchesEvents version="1.0"', 'LesHouchesEvents version="3.0"')

Variable Documentation

◆ logger

python.algorithms.postprocessors.lhe_cleaner.logger = Logging.logging.getLogger("PowhegControl")

Get handle to Athena logging.

Definition at line 8 of file lhe_cleaner.py.

vtune_athena.format
format
Definition: vtune_athena.py:14
python.algorithms.postprocessors.lhe_cleaner.lhe_cleaner
def lhe_cleaner(powheg_LHE_output)
Definition: lhe_cleaner.py:11