Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
python.CPBaseRunner.CPBaseRunner Class Reference
Inheritance diagram for python.CPBaseRunner.CPBaseRunner:
Collaboration diagram for python.CPBaseRunner.CPBaseRunner:

Public Member Functions

def __init__ (self)
 
def args (self)
 
def inputList (self)
 
def printFlags (self)
 
def addCustomArguments (self)
 
def makeAlgSequence (self)
 
def run (self)
 
def setup (self)
 
def printAvailableArguments (self)
 

Public Attributes

 logger
 
 parser
 
 config
 
 flags
 

Private Member Functions

def _defaultFlagsInitialization (self)
 
def _defaultParseArguments (self)
 
def _readYamlConfig (self)
 
def _parseInputFileList (path)
 

Private Attributes

 _args
 
 _inputList
 

Detailed Description

Definition at line 7 of file CPBaseRunner.py.

Constructor & Destructor Documentation

◆ __init__()

def python.CPBaseRunner.CPBaseRunner.__init__ (   self)

Definition at line 8 of file CPBaseRunner.py.

8  def __init__(self):
9  self.logger = logging.getLogger("CPBaseRunner")
10  self._args = None
11  self._inputList = None
12  self.parser = self._defaultParseArguments()
13  # parse the arguments here is a bad idea
14 

Member Function Documentation

◆ _defaultFlagsInitialization()

def python.CPBaseRunner.CPBaseRunner._defaultFlagsInitialization (   self)
private

Definition at line 56 of file CPBaseRunner.py.

56  def _defaultFlagsInitialization(self):
57  from AthenaConfiguration.AllConfigFlags import initConfigFlags
58  flags = initConfigFlags()
59  flags.Input.Files = self.inputList
60  flags.Exec.MaxEvents = self.args.max_events
61  return flags
62 

◆ _defaultParseArguments()

def python.CPBaseRunner.CPBaseRunner._defaultParseArguments (   self)
private

Definition at line 63 of file CPBaseRunner.py.

63  def _defaultParseArguments(self):
64  parser = argparse.ArgumentParser(
65  description='Runscript for CP Algorithm unit tests')
66  baseGroup = parser.add_argument_group('Base Script Options')
67  baseGroup.add_argument('--input-list', dest='input_list',
68  help='path to text file containing list of input files, or a single root file')
69  baseGroup.add_argument('--output-name', dest='output_name', default='output',
70  help='output name of the analysis root file')
71  baseGroup.add_argument('-e', '--max-events', dest='max_events', type=int, default=-1,
72  help='Number of events to run')
73  baseGroup.add_argument('-t', '--text-config', dest='text_config',
74  help='path to the YAML configuration file')
75  baseGroup.add_argument('--no-systematics', dest='no_systematics',
76  action='store_true', help='Disable systematics')
77  return parser
78 

◆ _parseInputFileList()

def python.CPBaseRunner.CPBaseRunner._parseInputFileList (   path)
private

Definition at line 91 of file CPBaseRunner.py.

91  def _parseInputFileList(path):
92  files = []
93  with open(path, 'r') as inputText:
94  for line in inputText.readlines():
95  # skip comments and empty lines
96  if line.startswith('#') or not line.strip():
97  continue
98  files += line.split(',')
99  # remove leading/trailing whitespaces, and \n
100  files = [file.strip() for file in files]
101  return files
102 

◆ _readYamlConfig()

def python.CPBaseRunner.CPBaseRunner._readYamlConfig (   self)
private

Definition at line 79 of file CPBaseRunner.py.

79  def _readYamlConfig(self):
80  from ROOT import PathResolver
81  yamlconfig = PathResolver.find_file(
82  self.args.text_config, "CALIBPATH", PathResolver.RecursiveSearch)
83  if not yamlconfig:
84  raise FileNotFoundError(f'PathResolver failed to locate \"{self.args.text_config}\" config file!'
85  'Check if you have a typo in -t/--text-config argument or missing file in the analysis configuration sub-directory.')
86  self.logger.info("Setting up configuration based on YAML config:")
87  from AnalysisAlgorithmsConfig.ConfigText import TextConfig
88  config = TextConfig(yamlconfig)
89  return config
90 

◆ addCustomArguments()

def python.CPBaseRunner.CPBaseRunner.addCustomArguments (   self)

Definition at line 44 of file CPBaseRunner.py.

44  def addCustomArguments(self):
45  pass
46 

◆ args()

def python.CPBaseRunner.CPBaseRunner.args (   self)

Definition at line 16 of file CPBaseRunner.py.

16  def args(self):
17  if self._args is None:
18  self._args = self.parser.parse_args()
19  return self._args
20 

◆ inputList()

def python.CPBaseRunner.CPBaseRunner.inputList (   self)

Definition at line 22 of file CPBaseRunner.py.

22  def inputList(self):
23  if self._inputList is None:
24  if self.args.input_list.endswith('.txt'):
25  self._inputList = CPBaseRunner._parseInputFileList(self.args.input_list)
26  elif ".root" in self.args.input_list:
27  self._inputList = [self.args.input_list]
28  else:
29  raise FileNotFoundError(f'Input file list \"{self.args.input_list}\" is not supported!'
30  'Please provide a text file with a list of input files or a single root file.')
31  return self._inputList
32 

◆ makeAlgSequence()

def python.CPBaseRunner.CPBaseRunner.makeAlgSequence (   self)

Definition at line 48 of file CPBaseRunner.py.

48  def makeAlgSequence(self):
49  pass
50 

◆ printAvailableArguments()

def python.CPBaseRunner.CPBaseRunner.printAvailableArguments (   self)

Definition at line 108 of file CPBaseRunner.py.

108  def printAvailableArguments(self):
109  self.parser.description = 'CPRunScript available arguments'
110  self.parser.usage = argparse.SUPPRESS
111  self.parser.print_help()

◆ printFlags()

def python.CPBaseRunner.CPBaseRunner.printFlags (   self)

Definition at line 33 of file CPBaseRunner.py.

33  def printFlags(self):
34  self.logger.info("="*73)
35  self.logger.info("="*20 + "FLAG CONFIGURATION" + "="*20)
36  self.logger.info("="*73)
37  self.logger.info(" Input files: %s", self.flags.Input.isMC)
38  self.logger.info(" RunNumber: %s", self.flags.Input.RunNumbers)
39  self.logger.info(" MCCampaign: %s", self.flags.Input.MCCampaign)
40  self.logger.info(" GeneratorInfo: %s", self.flags.Input.GeneratorsInfo)
41  self.logger.info("="*73)
42 

◆ run()

def python.CPBaseRunner.CPBaseRunner.run (   self)

Definition at line 52 of file CPBaseRunner.py.

52  def run(self):
53  pass
54 

◆ setup()

def python.CPBaseRunner.CPBaseRunner.setup (   self)

Definition at line 103 of file CPBaseRunner.py.

103  def setup(self):
104  self.parser.parse_args()
105  self.config = self._readYamlConfig()
106  self.flags = self._defaultFlagsInitialization()
107 

Member Data Documentation

◆ _args

python.CPBaseRunner.CPBaseRunner._args
private

Definition at line 10 of file CPBaseRunner.py.

◆ _inputList

python.CPBaseRunner.CPBaseRunner._inputList
private

Definition at line 11 of file CPBaseRunner.py.

◆ config

python.CPBaseRunner.CPBaseRunner.config

Definition at line 105 of file CPBaseRunner.py.

◆ flags

python.CPBaseRunner.CPBaseRunner.flags

Definition at line 106 of file CPBaseRunner.py.

◆ logger

python.CPBaseRunner.CPBaseRunner.logger

Definition at line 9 of file CPBaseRunner.py.

◆ parser

python.CPBaseRunner.CPBaseRunner.parser

Definition at line 12 of file CPBaseRunner.py.


The documentation for this class was generated from the following file:
grepfile.info
info
Definition: grepfile.py:38
PathResolver::find_file
static std::string find_file(const std::string &logical_file_name, const std::string &search_path, SearchType search_type=LocalSearch)
Definition: PathResolver.cxx:251
python.CaloAddPedShiftConfig.args
args
Definition: CaloAddPedShiftConfig.py:45
run
int run(int argc, char *argv[])
Definition: ttree2hdf5.cxx:28
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
confTool.parse_args
def parse_args()
Definition: confTool.py:36
run_AODTCCLinking.inputList
list inputList
Definition: run_AODTCCLinking.py:93
python.setup
def setup()
Definition: Control/Hephaestus/python/__init__.py:9