Definition at line 8 of file CPBaseRunner.py.
◆ __init__()
def python.CPBaseRunner.CPBaseRunner.__init__ |
( |
|
self | ) |
|
Definition at line 9 of file CPBaseRunner.py.
10 self.logger = logging.getLogger(
"CPBaseRunner")
12 self._inputList =
None
13 self.parser = self._defaultParseArguments()
◆ _defaultFlagsInitialization()
def python.CPBaseRunner.CPBaseRunner._defaultFlagsInitialization |
( |
|
self | ) |
|
|
private |
Definition at line 67 of file CPBaseRunner.py.
67 def _defaultFlagsInitialization(self):
68 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
70 flags.Input.Files = self.inputList
71 flags.Exec.MaxEvents = self.args.max_events
72 flags.Exec.SkipEvents = self.args.skip_n_events
◆ _defaultParseArguments()
def python.CPBaseRunner.CPBaseRunner._defaultParseArguments |
( |
|
self | ) |
|
|
private |
Definition at line 75 of file CPBaseRunner.py.
75 def _defaultParseArguments(self):
76 parser = argparse.ArgumentParser(
77 description=
'Runscript for CP Algorithm unit tests')
78 baseGroup = parser.add_argument_group(
'Base Script Options')
79 baseGroup.add_argument(
'-i',
'--input-list', dest=
'input_list',
80 help=
'path to text file containing list of input files, or a single root file')
81 baseGroup.add_argument(
'-o',
'--output-name', dest=
'output_name', default=
'output',
82 help=
'output name of the analysis root file')
83 baseGroup.add_argument(
'-e',
'--max-events', dest=
'max_events', type=int, default=-1,
84 help=
'Number of events to run')
85 baseGroup.add_argument(
'-t',
'--text-config', dest=
'text_config',
86 help=
'path to the YAML configuration file. Tips: use atlas_install_data(path/to/*.yaml) in CMakeLists.txt can help locating the config just by the config file name.')
87 baseGroup.add_argument(
'--no-systematics', dest=
'no_systematics',
88 action=
'store_true', help=
'Disable systematics')
89 baseGroup.add_argument(
'--skip-n-events', dest=
'skip_n_events', type=int, default=0,
90 help=
'Skip the first N events in the run, not first N events for each file. This is meant for debugging only. \nIn Eventloop, this option disable the cutbookkeeper algorithms due to technical reasons, and can only be ran in direct-driver.')
◆ _parseInputFileList()
def python.CPBaseRunner.CPBaseRunner._parseInputFileList |
( |
|
path | ) |
|
|
private |
Definition at line 104 of file CPBaseRunner.py.
104 def _parseInputFileList(path):
106 with open(path,
'r')
as inputText:
107 for line
in inputText.readlines():
110 if line.startswith(
'#')
or not line:
112 if os.path.isdir(line):
113 if not os.listdir(line):
114 raise FileNotFoundError(f
"The directory \"{path}\" is empty. Please provide a directory with .root files.")
115 for root_file
in os.listdir(line):
116 if '.root' in root_file:
117 files.append(os.path.join(line, root_file))
119 files += line.split(
',')
121 files = [file.strip()
for file
in files]
◆ _readYamlConfig()
def python.CPBaseRunner.CPBaseRunner._readYamlConfig |
( |
|
self | ) |
|
|
private |
Definition at line 93 of file CPBaseRunner.py.
93 def _readYamlConfig(self):
94 from AthenaCommon.Utils.unixtools
import find_datafile
97 raise FileNotFoundError(f
'Failed to locate \"{self.args.text_config}\" config file!'
98 'Check if you have a typo in -t/--text-config argument or missing file in the analysis configuration sub-directory.')
99 self.logger.
info(
"Setting up configuration based on YAML config:")
100 from AnalysisAlgorithmsConfig.ConfigText
import TextConfig
101 config = TextConfig(yamlconfig)
◆ addCustomArguments()
def python.CPBaseRunner.CPBaseRunner.addCustomArguments |
( |
|
self | ) |
|
◆ args()
def python.CPBaseRunner.CPBaseRunner.args |
( |
|
self | ) |
|
◆ inputList()
def python.CPBaseRunner.CPBaseRunner.inputList |
( |
|
self | ) |
|
Definition at line 23 of file CPBaseRunner.py.
24 if self._inputList
is None:
25 if self.args.input_list.endswith(
'.txt'):
26 self._inputList = CPBaseRunner._parseInputFileList(self.args.input_list)
27 elif ".root" in self.args.input_list:
28 self._inputList = [self.args.input_list]
30 raise FileNotFoundError(f
'Input file list \"{self.args.input_list}\" is not supported!'
31 'Please provide a text file with a list of input files or a single root file.')
32 self.logger.
info(
"Initialized input files: %s", self._inputList)
33 return self._inputList
◆ makeAlgSequence()
def python.CPBaseRunner.CPBaseRunner.makeAlgSequence |
( |
|
self | ) |
|
◆ outputName()
def python.CPBaseRunner.CPBaseRunner.outputName |
( |
|
self | ) |
|
Definition at line 36 of file CPBaseRunner.py.
37 if self.args.output_name.endswith(
'.root'):
38 return self.args.output_name[:-5]
40 return self.args.output_name
◆ printAvailableArguments()
def python.CPBaseRunner.CPBaseRunner.printAvailableArguments |
( |
|
self | ) |
|
Definition at line 129 of file CPBaseRunner.py.
129 def printAvailableArguments(self):
130 self.parser.description =
'CPRunScript available arguments'
131 self.parser.usage = argparse.SUPPRESS
132 self.parser.print_help()
◆ printFlags()
def python.CPBaseRunner.CPBaseRunner.printFlags |
( |
|
self | ) |
|
Definition at line 42 of file CPBaseRunner.py.
43 self.logger.
info(
"="*73)
44 self.logger.
info(
"="*20 +
"FLAG CONFIGURATION" +
"="*20)
45 self.logger.
info(
"="*73)
46 self.logger.
info(
" Input files: %s", self.flags.Input.isMC)
47 self.logger.
info(
" RunNumber: %s", self.flags.Input.RunNumbers)
48 self.logger.
info(
" MCCampaign: %s", self.flags.Input.MCCampaign)
49 self.logger.
info(
" GeneratorInfo: %s", self.flags.Input.GeneratorsInfo)
50 self.logger.
info(
" MaxEvents: %s", self.flags.Exec.MaxEvents)
51 self.logger.
info(
" SkipEvents: %s", self.flags.Exec.SkipEvents)
52 self.logger.
info(
"="*73)
◆ run()
def python.CPBaseRunner.CPBaseRunner.run |
( |
|
self | ) |
|
◆ setup()
def python.CPBaseRunner.CPBaseRunner.setup |
( |
|
self | ) |
|
Definition at line 124 of file CPBaseRunner.py.
126 self.config = self._readYamlConfig()
127 self.flags = self._defaultFlagsInitialization()
◆ _args
python.CPBaseRunner.CPBaseRunner._args |
|
private |
◆ _inputList
python.CPBaseRunner.CPBaseRunner._inputList |
|
private |
◆ config
python.CPBaseRunner.CPBaseRunner.config |
◆ flags
python.CPBaseRunner.CPBaseRunner.flags |
◆ logger
python.CPBaseRunner.CPBaseRunner.logger |
◆ parser
python.CPBaseRunner.CPBaseRunner.parser |
The documentation for this class was generated from the following file: