15 Wrapper around the variable manager class.
16 This is necessary for avoiding to import ROOT globally when 'variables' is imported.
22 Return an instance to the variable manager.
26 instance = ROOT.Belle2.Variable.Manager.Instance()
31 Wrapper around Manager::getVariable(std::string name) and
32 Manager::getVariable(const std::string& functionName, const std::vector<std::string>& functionArguments).
34 instance = PythonVariableManager._instance()
35 return instance.getVariable(*args)
39 Wrapper around Manager::getVariables(const std::vector<std::string>& variables) and
40 Manager::getVariables().
42 instance = PythonVariableManager._instance()
43 return instance.getVariables(*args)
47 Wrapper around Manager::addAlias(const std::string& alias, const std::string& variable).
49 instance = PythonVariableManager._instance()
50 if not instance.addAlias(alias, variable):
51 raise RuntimeError(f
"Failed to add alias '{alias}' for variable '{variable}'")
56 Wrapper around Manager::printAliases().
58 instance = PythonVariableManager._instance()
59 instance.printAliases()
63 Wrapper around Manager::clearAliases().
65 instance = PythonVariableManager._instance()
66 instance.clearAliases()
70 Wrapper around Manager::resolveAlias(const std::string& alias).
72 instance = PythonVariableManager._instance()
73 return instance.resolveAlias(alias)
77 Wrapper around Manager::addCollection(const std::string& collection, const std::vector<std::string>& variables)
79 instance = PythonVariableManager._instance()
80 if not instance.addCollection(*args):
81 raise RuntimeError(f
"Failed to add collection with args: {args}")
85 Wrapper around Manager::getCollection(const std::string& collection).
87 instance = PythonVariableManager._instance()
88 return instance.getCollection(collection)
92 Wrapper around Manager::resolveCollections(const std::vector<std::string>& variables).
94 instance = PythonVariableManager._instance()
95 return instance.resolveCollections(*args)
99 Wrapper around Manager::checkDeprecatedVariable(const std::string& name).
101 instance = PythonVariableManager._instance()
102 instance.checkDeprecatedVariable(variable)
106 Wrapper around Manager::evaluate(const std::string& varName, const Particle* p).
108 instance = PythonVariableManager._instance()
109 return instance.evaluate(variable, particle)
113 Wrapper around Manager::evaluateVariables(const std::vector<std::string>& varNames, const ParticleList* plist).
115 instance = PythonVariableManager._instance()
116 return instance.evaluateVariables(variables, plist.obj())
120 Wrapper around Manager::getNames().
122 instance = PythonVariableManager._instance()
123 return instance.getNames()
127 Wrapper around Manager::getAliasNames().
129 instance = PythonVariableManager._instance()
130 return instance.getAliasNames()
134 Wrapper around Manager::assertValidName(const std::string& name).
136 instance = PythonVariableManager._instance()
137 instance.assertValidName(variable)
144def std_vector(*args):
146 Creates an std::vector which can be passed to pyROOT
150 v = ROOT.std.vector(type(args[0]))()
156def getCommandLineOptions():
157 """ Parses the command line options and returns the corresponding arguments. """
158 parser = argparse.ArgumentParser()
159 parser.add_argument(
'--no-pager', dest=
'pager', default=
True, action=
'store_false',
160 help=
'Use a pager to show output or print to terminal.')
161 args = parser.parse_args()
165def printVars(changedVariableNames=None, listVars=None):
167 Print list of all available variables.
170 if changedVariableNames:
171 print(changedVariableNames)
172 print(
'Available variables in Variable::Manager:')
175 listVars = variables.getVariables()
177 listVars = [variables.getVariable(name)
for name
in listVars]
179 dict_VariableDataType = {0:
'double', 1:
'int', 2:
'bool'}
183 vars.append((v.group, v.name, v.description,
184 dict_VariableDataType[v.variabletype]))
188 for (group, name, description, vartype)
in sorted(vars):
189 if current_group != group:
190 current_group = group
192 rows.append([name, description, vartype])
193 b2utils.pretty_print_description_list(rows)
196def printVariableType(listVars=None):
198 if isinstance(listVars, str):
199 listVars = [listVars]
201 dict_VariableDataType = {0:
'double', 1:
'int', 2:
'bool'}
203 for var_name
in listVars:
204 var = variables.getVariable(var_name)
205 print(f
"{var_name}: {dict_VariableDataType[var.variabletype]}")
210 Return all PSNM trigger bit names
214 bits = ROOT.Belle2.PyDBObj(
'TRGGDLDBFTDLBits')
215 evt = ROOT.Belle2.EventMetaData()
216 ROOT.Belle2.DBStore.Instance().update(evt)
217 size = ROOT.Belle2.TRGSummary.c_ntrgWords * ROOT.Belle2.TRGSummary.c_trgWordSize
218 return [bits.getoutbitname(i)
for i
in range(size)
if bits.getoutbitname(i) !=
'']
checkDeprecatedVariable(self, variable)
addAlias(self, alias, variable)
getCollection(self, collection)
assertValidName(self, variable)
evaluate(self, variable, particle)
evaluateVariables(self, variables, plist)
getVariables(self, *args)
resolveAlias(self, alias)
addCollection(self, *args)
resolveCollections(self, *args)