Belle II Software  light-2212-foldex
variables_python.py
1 #!/usr/bin/env python3
2 # -*- coding: utf-8 -*-
3 
4 
11 
12 from variables import printVars
13 from variables import std_vector
14 from variables import variables as v
15 # used in FEI
16 import ROOT
17 
18 # some variables should be there
19 assert len(v.getVariables()) > 0
20 
21 printVars()
22 
23 var = v.getVariable('M')
24 assert 'M' == var.name
25 print(var.description)
26 
27 v.addAlias('sigProb', 'extraInfo(SignalProbability)')
28 var = v.getVariable('sigProb')
29 assert 'extraInfo(SignalProbability)' == var.name
30 
31 assert (v.evaluate('constant(123)', ROOT.nullptr) - 123) < 0.001
32 
33 v.addAlias('anotherAlias', 'daughter(1, p)')
34 
35 for vn in v.getAliasNames():
36  assert (vn == 'sigProb' or vn == 'anotherAlias')
37 
38 v.addAlias('formulaAlias', 'abs(3**2)')
39 assert v.evaluate('formulaAlias', ROOT.nullptr) == 9.0
40 
41 
42 assert 'extraInfo__boSignalProbability__bc' == ROOT.Belle2.MakeROOTCompatible.makeROOTCompatible('extraInfo(SignalProbability)')
43 assert 'extraInfo(SignalProbability)' == ROOT.Belle2.MakeROOTCompatible.invertMakeROOTCompatible(
44  'extraInfo__boSignalProbability__bc')
45 
46 v.addCollection('kin', std_vector('p', 'px', 'py', 'pz'))
47 vec = v.getCollection('kin')
48 assert vec[0] == 'p'
49 assert vec[1] == 'px'
50 assert vec[2] == 'py'
51 assert vec[3] == 'pz'