ATLAS Offline Software
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
python.algorithms.scheduler.Scheduler Class Reference

Schedule algorithms in appropriate order. More...

Inheritance diagram for python.algorithms.scheduler.Scheduler:
Collaboration diagram for python.algorithms.scheduler.Scheduler:

Public Member Functions

def __init__ (self)
 Constructor. More...
 
def add (self, name, *args)
 Add a component to the sequence. More...
 
def print_structure (self)
 Print the sequence to the logger. More...
 
def run_preprocessors (self)
 Run all preprocessors in order. More...
 
def run_generators (self)
 Run all event generators in order. More...
 
def run_postprocessors (self)
 Run all postprocessors in order. More...
 

Public Attributes

 sequence
 Sequence of functions to run. More...
 

Static Public Attributes

string powheg_LHE_output = "pwgevents.lhe"
 Name of PowhegBox output LHE events. More...
 
list ordered_preprocessors = ["directory cleaner", "reweighter"]
 Preprocessing evaluation order. More...
 
list ordered_event_generators = ["singlecore", "multicore", "merge output", "output validation"]
 Event generation evaluation order. More...
 
list ordered_postprocessors
 Postprocessing evaluation order. More...
 
dictionary preprocessor_fn_dict
 Map preprocessing names to functions. More...
 
dictionary generator_fn_dict
 Map event generation names to functions. More...
 
dictionary postprocessor_fn_dict
 Map postprocessing names to functions. More...
 

Detailed Description

Schedule algorithms in appropriate order.

Author
James Robinson james.nosp@m..rob.nosp@m.inson.nosp@m.@cer.nosp@m.n.ch

Definition at line 14 of file scheduler.py.

Constructor & Destructor Documentation

◆ __init__()

def python.algorithms.scheduler.Scheduler.__init__ (   self)

Constructor.

Definition at line 84 of file scheduler.py.

84  def __init__(self):
85  """! Constructor."""
86 
87  self.sequence = {"preprocessors": {}, "generators": {}, "postprocessors": {}}
88 
89  # Add universal components
90  self.add("output validator")
91  self.add("integration grid tester")
92  self.add("LHE file cleaner")
93 

Member Function Documentation

◆ add()

def python.algorithms.scheduler.Scheduler.add (   self,
  name,
args 
)

Add a component to the sequence.

Parameters
namename of component to add.
argsarguments to pass to this component when it runs.

Definition at line 94 of file scheduler.py.

94  def add(self, name, *args):
95  """! Add a component to the sequence.
96 
97  @param name name of component to add.
98  @param args arguments to pass to this component when it runs.
99  """
100  if name in self.ordered_preprocessors:
101  if name not in self.sequence["preprocessors"].keys():
102  self.sequence["preprocessors"][name] = args
103 
104  if name in self.ordered_event_generators:
105  if name not in self.sequence["generators"].keys():
106  self.sequence["generators"][name] = args
107 
108  if name in self.ordered_postprocessors:
109  if name not in self.sequence["postprocessors"].keys():
110  self.sequence["postprocessors"][name] = args
111 

◆ print_structure()

def python.algorithms.scheduler.Scheduler.print_structure (   self)

Print the sequence to the logger.

Definition at line 112 of file scheduler.py.

112  def print_structure(self):
113  """! Print the sequence to the logger."""
114  logger.info("Scheduling the following PowhegControl sequence:")
115  logger.info("|---+ Preprocessing:")
116  for name in sorted(self.sequence["preprocessors"].keys(), key=lambda x: self.ordered_preprocessors.index(x)):
117  logger.info(" |--- {}".format(name))
118  logger.info("|---+ Event generation:")
119  for name in sorted(self.sequence["generators"].keys(), key=lambda x: self.ordered_event_generators.index(x)):
120  logger.info(" |--- {}".format(name))
121  logger.info("|---+ Postprocessing:")
122  for name in sorted(self.sequence["postprocessors"].keys(), key=lambda x: self.ordered_postprocessors.index(x)):
123  logger.info(" |--- {}".format(name))
124 

◆ run_generators()

def python.algorithms.scheduler.Scheduler.run_generators (   self)

Run all event generators in order.

Definition at line 130 of file scheduler.py.

130  def run_generators(self):
131  """! Run all event generators in order."""
132  for name in filter(lambda x: x in self.sequence["generators"].keys(), self.ordered_event_generators):
133  self.generator_fn_dict[name](*self.sequence["generators"][name])
134 

◆ run_postprocessors()

def python.algorithms.scheduler.Scheduler.run_postprocessors (   self)

Run all postprocessors in order.

Definition at line 135 of file scheduler.py.

135  def run_postprocessors(self):
136  """! Run all postprocessors in order."""
137  for name in filter(lambda x: x in self.sequence["postprocessors"].keys(), self.ordered_postprocessors):
138  self.postprocessor_fn_dict[name](*self.sequence["postprocessors"][name])

◆ run_preprocessors()

def python.algorithms.scheduler.Scheduler.run_preprocessors (   self)

Run all preprocessors in order.

Definition at line 125 of file scheduler.py.

125  def run_preprocessors(self):
126  """! Run all preprocessors in order."""
127  for name in filter(lambda x: x in self.sequence["preprocessors"].keys(), self.ordered_preprocessors):
128  self.preprocessor_fn_dict[name](*self.sequence["preprocessors"][name])
129 

Member Data Documentation

◆ generator_fn_dict

dictionary python.algorithms.scheduler.Scheduler.generator_fn_dict
static
Initial value:
= {
"merge output": partial(generators.merge_output, powheg_LHE_output=powheg_LHE_output),
"multicore": generators.multicore,
"output validator": partial(generators.output_validator, powheg_LHE_output=powheg_LHE_output),
"singlecore": generators.singlecore
}

Map event generation names to functions.

Definition at line 56 of file scheduler.py.

◆ ordered_event_generators

list python.algorithms.scheduler.Scheduler.ordered_event_generators = ["singlecore", "multicore", "merge output", "output validation"]
static

Event generation evaluation order.

Definition at line 27 of file scheduler.py.

◆ ordered_postprocessors

list python.algorithms.scheduler.Scheduler.ordered_postprocessors
static
Initial value:
= [
"quark colour fixer",
"PHOTOS",
"reweighter", "NNLO reweighter",
"LHE file nominal weight updater",
"mu2tau",
"mu2e",
"e2tau",
"e2mu",
"MadSpin",
"integration grid tester",
"cross section calculator",
"LHE file cleaner",
"output file renamer",
"output tarball preparer",
"integration gridpack creator",
"directory cleaner",
]

Postprocessing evaluation order.

Definition at line 30 of file scheduler.py.

◆ ordered_preprocessors

list python.algorithms.scheduler.Scheduler.ordered_preprocessors = ["directory cleaner", "reweighter"]
static

Preprocessing evaluation order.

Definition at line 24 of file scheduler.py.

◆ postprocessor_fn_dict

dictionary python.algorithms.scheduler.Scheduler.postprocessor_fn_dict
static
Initial value:
= {
"cross section calculator": partial(postprocessors.cross_section_calculator, powheg_LHE_output=powheg_LHE_output),
"directory cleaner": postprocessors.directory_cleaner,
"integration gridpack creator": postprocessors.integration_gridpack_creator,
"integration grid tester": postprocessors.integration_grid_tester,
"MadSpin": partial(postprocessors.MadSpin, powheg_LHE_output=powheg_LHE_output),
"NNLO reweighter": partial(postprocessors.NNLO_reweighter, powheg_LHE_output=powheg_LHE_output),
"output file renamer": partial(postprocessors.output_file_renamer, powheg_LHE_output=powheg_LHE_output),
"output tarball preparer": postprocessors.output_tarball_preparer,
"PHOTOS": partial(postprocessors.PHOTOS, powheg_LHE_output=powheg_LHE_output),
"reweighter": partial(postprocessors.reweighter, powheg_LHE_output=powheg_LHE_output),
"quark colour fixer": partial(postprocessors.quark_colour_fixer, powheg_LHE_output=powheg_LHE_output),
"mu2tau": partial(postprocessors.mu2tau, powheg_LHE_output=powheg_LHE_output),
"mu2e": partial(postprocessors.mu2e, powheg_LHE_output=powheg_LHE_output),
"e2tau": partial(postprocessors.e2tau, powheg_LHE_output=powheg_LHE_output),
"e2mu": partial(postprocessors.e2mu, powheg_LHE_output=powheg_LHE_output),
"LHE file cleaner": partial(postprocessors.lhe_cleaner, powheg_LHE_output=powheg_LHE_output),
"LHE file nominal weight updater": partial(postprocessors.lhe_nominal_weight_updater, powheg_LHE_output=powheg_LHE_output),
}

Map postprocessing names to functions.

Definition at line 64 of file scheduler.py.

◆ powheg_LHE_output

string python.algorithms.scheduler.Scheduler.powheg_LHE_output = "pwgevents.lhe"
static

Name of PowhegBox output LHE events.

Definition at line 21 of file scheduler.py.

◆ preprocessor_fn_dict

dictionary python.algorithms.scheduler.Scheduler.preprocessor_fn_dict
static
Initial value:
= {
"directory cleaner": preprocessors.directory_cleaner,
"reweighter": preprocessors.reweighter
}

Map preprocessing names to functions.

Definition at line 50 of file scheduler.py.

◆ sequence

python.algorithms.scheduler.Scheduler.sequence

Sequence of functions to run.

Definition at line 87 of file scheduler.py.


The documentation for this class was generated from the following file:
vtune_athena.format
format
Definition: vtune_athena.py:14
index
Definition: index.py:1
covarianceTool.filter
filter
Definition: covarianceTool.py:514
add
bool add(const std::string &hname, TKey *tobj)
Definition: fastadd.cxx:55
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename T::value_type > sorted(T begin, T end)
Helper function to create a sorted vector from an unsorted one.
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790