The Gaudi Framework  v36r1 (3e2fb5a8)
Properties.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
13 """
14 *******************************************************************************
15 * *
16 * Simple example (identical to C++ Properties.opts) which illustrated *
17 * the basic job-properties and theinr C++/Python intercommunication *
18 * *
19 *******************************************************************************
20 """
21 from __future__ import print_function
22 # =============================================================================
23 __author__ = 'Vanya BELYAEV ibelyaev@physics.syr.edu'
24 # =============================================================================
25 # @file
26 # Simple example (identical to C++ Properties.opts) which illustrated
27 # the basic job-properties and theinr C++/Python intercommunication
28 # @author Vanya BELYAEV ibelyaev@physics.syr.edu
29 # @date 2007-02-13
30 # =============================================================================
31 
32 import gaudimodule
33 
34 SUCCESS = gaudimodule.SUCCESS
35 
36 # =============================================================================
37 # the configurtaion of the job
38 
39 
40 def configure(gaudi=None):
41  """ the configurtaion of the job """
42 
43  # create applictaion manager if not done yet
44  if not gaudi:
45  gaudi = gaudimodule.AppMgr()
46 
47  # read main configuration files
48  gaudi.config(files=['../options/Common.opts'])
49 
50  # private algorithm configuration options
51 
52  gaudi.TopAlg = ['PropertyAlg']
53 
54  # test for the multiple inclusion of the same alg
55  gaudi.TopAlg += ["PropertyAlg", "PropertyProxy"]
56 
57  # test for the removal of an algorithm
58  gaudi.TopAlg.remove("PropertyAlg")
59 
60  # Set output level threshold
61  # (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
62  msgSvc = gaudi.service('MessageSvc')
63  msgSvc.OutputLevel = 3
64 
65  # event related parameters
66  gaudi.EvtSel = 'NONE'
67  gaudi.HistogramPersistency = 'NONE'
68 
69  # Algorithms Private Options
70 
71  alg = gaudi.algorithm('PropertyAlg')
72 
73  alg.OutputLevel = 3
74 
75  alg.Int = 101
76  alg.Double = 101.1e+10
77  alg.String = "hundred one"
78  alg.Bool = False
79 
80  alg.IntArray = [1, 2, 3, 5]
81  alg.DoubleArray = [-11.0, 2., 3.3, 0.4e-03]
82  alg.StringArray = ["one", "two", "four"]
83  alg.BoolArray = [False, True, False]
84  alg.EmptyArray = []
85 
86  alg.PInt = 101
87  alg.PDouble = 101.E5
88  alg.PString = "hundred one"
89  alg.PBool = True
90 
91  alg.PIntArray = [1, 2, 3, 5]
92  alg.PDoubleArray = [1.1, 2., 3.3]
93  alg.PStringArray = ["one", "two", "four"]
94  alg.PBoolArray = [True, False, True, False]
95 
96  proxy = gaudi.algorithm("PropertyProxy")
97  proxy.String = "This is set by the proxy"
98 
99  msgSvc.setDebug = ["EventLoopMgr"]
100  msgSvc.setVerbose = ["MsgTest"]
101 
102  return SUCCESS
103 
104 
105 # =============================================================================
106 
107 # =============================================================================
108 # The actual job excution
109 # =============================================================================
110 if '__main__' == __name__:
111 
112  print(__doc__, __author__)
113 
115  configure(gaudi)
116  gaudi.run(1)
117 
118  alg = gaudi.algorithm('PropertyAlg')
119 
120  props = alg.properties()
121  print('Properties of %s ' % alg.name())
122  for p in props:
123  v = props[p].value()
124  print("Python: Name/Value: '%s' / '%s' " % (p, v))
125 
126 # =============================================================================
127 # The END
128 # =============================================================================
GaudiPython.Bindings.AppMgr
Definition: Bindings.py:842
Properties.configure
def configure(gaudi=None)
Definition: Properties.py:40