Belle II Software  light-2205-abys
__init__.py
1 
8 
9 import argparse
10 import basf2.utils as b2utils
11 
12 
13 class PythonVariableManager(object):
14  '''
15  Wrapper around the variable manager class.
16  This is necessary for avoiding to import ROOT globally when 'variables' is imported.
17  '''
18 
19  @classmethod
20  def _instance(self):
21  '''
22  Return an instance to the variable manager.
23  '''
24  import ROOT
25  instance = ROOT.Belle2.Variable.Manager.Instance()
26  return instance
27 
28  def getVariable(self, *args):
29  '''
30  Wrapper around Manager::getVariable(std::string name) and
31  Manager::getVariable(const std::string& functionName, const std::vector<std::string>& functionArguments).
32  '''
33  instance = PythonVariableManager._instance()
34  return instance.getVariable(*args)
35 
36  def getVariables(self, *args):
37  '''
38  Wrapper around Manager::getVariables(const std::vector<std::string>& variables) and
39  Manager::getVariables().
40  '''
41  instance = PythonVariableManager._instance()
42  return instance.getVariables(*args)
43 
44  def addAlias(self, alias, variable):
45  '''
46  Wrapper around Manager::addAlias(const std::string& alias, const std::string& variable).
47  '''
48  instance = PythonVariableManager._instance()
49  assert(instance.addAlias(alias, variable))
50 
51  def printAliases(self):
52  '''
53  Wrapper around Manager::printAliases().
54  '''
55  instance = PythonVariableManager._instance()
56  instance.printAliases()
57 
58  def clearAliases(self):
59  '''
60  Wrapper around Manager::clearAliases().
61  '''
62  instance = PythonVariableManager._instance()
63  instance.clearAliases()
64 
65  def addCollection(self, *args):
66  '''
67  Wrapper around Manager::addCollection(const std::string& collection, const std::vector<std::string>& variables)
68  '''
69  instance = PythonVariableManager._instance()
70  assert(instance.addCollection(*args))
71 
72  def getCollection(self, collection):
73  '''
74  Wrapper around Manager::getCollection(const std::string& collection).
75  '''
76  instance = PythonVariableManager._instance()
77  return instance.getCollection(collection)
78 
79  def resolveCollections(self, *args):
80  '''
81  Wrapper around Manager::resolveCollections(const std::vector<std::string>& variables).
82  '''
83  instance = PythonVariableManager._instance()
84  return instance.resolveCollections(*args)
85 
86  def checkDeprecatedVariable(self, variable):
87  '''
88  Wrapper around Manager::checkDeprecatedVariable(const std::string& name).
89  '''
90  instance = PythonVariableManager._instance()
91  instance.checkDeprecatedVariable(variable)
92 
93  def evaluate(self, variable, particle):
94  '''
95  Wrapper around Manager::evaluate(const std::string& varName, const Particle* p).
96  '''
97  instance = PythonVariableManager._instance()
98  return instance.evaluate(variable, particle)
99 
100  def getNames(self):
101  '''
102  Wrapper around Manager::getNames().
103  '''
104  instance = PythonVariableManager._instance()
105  return instance.getNames()
106 
107  def getAliasNames(self):
108  '''
109  Wrapper around Manager::getAliasNames().
110  '''
111  instance = PythonVariableManager._instance()
112  return instance.getAliasNames()
113 
114  def assertValidName(self, variable):
115  '''
116  Wrapper around Manager::assertValidName(const std::string& name).
117  '''
118  instance = PythonVariableManager._instance()
119  instance.assertValidName(variable)
120 
121 
122 
123 variables = PythonVariableManager()
124 
125 
126 def std_vector(*args):
127  """
128  Creates an std::vector which can be passed to pyROOT
129  """
130  import ROOT
131  v = ROOT.std.vector(type(args[0]))()
132  for x in args:
133  v.push_back(x)
134  return v
135 
136 
137 def getCommandLineOptions():
138  """ Parses the command line options and returns the corresponding arguments. """
139  parser = argparse.ArgumentParser()
140  parser.add_argument('--no-pager', dest='pager', default=True, action='store_false',
141  help='Use a pager to show output or print to terminal.')
142  args = parser.parse_args()
143  return args
144 
145 
146 def printVars(changedVariableNames=None):
147  """
148  Print list of all available variables.
149  """
150 
151  if changedVariableNames:
152  print(changedVariableNames)
153  print('Available variables in Variable::Manager:')
154  allVars = variables.getVariables()
155  vars = []
156  for v in allVars:
157  vars.append((v.group, v.name, v.description))
158 
159  rows = []
160  current_group = ''
161  for (group, name, description) in sorted(vars):
162  if current_group != group:
163  current_group = group
164  rows.append([group])
165  rows.append([name, description])
166  b2utils.pretty_print_description_list(rows)
167 
168 
169 def getAllTrgNames():
170  """
171  Return all PSNM trigger bit names
172  """
173  import ROOT
174  bits = ROOT.Belle2.PyDBObj('TRGGDLDBFTDLBits')
175  evt = ROOT.Belle2.EventMetaData()
176  ROOT.Belle2.DBStore.Instance().update(evt)
177  size = ROOT.Belle2.TRGSummary.c_ntrgWords * ROOT.Belle2.TRGSummary.c_trgWordSize
178  return [bits.getoutbitname(i) for i in range(size) if bits.getoutbitname(i) != '']
def evaluate(self, variable, particle)
Definition: __init__.py:93
def assertValidName(self, variable)
Definition: __init__.py:114
def addAlias(self, alias, variable)
Definition: __init__.py:44
def addCollection(self, *args)
Definition: __init__.py:65
def getCollection(self, collection)
Definition: __init__.py:72
def getVariables(self, *args)
Definition: __init__.py:36
def checkDeprecatedVariable(self, variable)
Definition: __init__.py:86
def getVariable(self, *args)
Definition: __init__.py:28
def resolveCollections(self, *args)
Definition: __init__.py:79