Gaudi Framework, version v22r0

Home   Generated: 9 Feb 2011

Test.py

Go to the documentation of this file.
00001 import math
00002 import sys
00003 #----------Patch to force loading .so with RTDL_GLOBAL
00004 if sys.platform == 'linux2' : sys.setdlopenflags(0x100|0x2)
00005 
00006 import gaudimodule as gaudi
00007 g = gaudi.AppMgr()
00008 g.JobOptionsType = 'NONE'
00009 g.EvtSel  = "NONE"
00010 
00011 g.config()
00012 print '**************GaudiPython Job has been configured*************'
00013 
00014 g.DLLs   =   ['GaudiAlg', 'GaudiIntrospection']
00015 g.ExtSvc =   ['IntrospectionSvc']
00016 
00017 g.service('IntrospectionSvc').Dictionaries = ['TestDict']
00018 
00019 g.DLLs   +=  ['Test']
00020 
00021 seq1 = g.algorithm('seq1')
00022 seq1.members = ['HelloWorld', 'WriteAlg' ]
00023 
00024 g.topAlg +=  ['Sequencer/seq1']
00025 
00026 g.initialize()
00027 print '**************GaudiPython Job has been initialized*************'
00028 g.run(2)
00029 print '**************GaudiPython Job has been run ********************'
00030 
00031 
00032 evt    = gaudi.DataSvc(g.service('EventDataSvc'))
00033 header = evt['/Event']
00034 print '***The event header is: ', header.values()
00035 tracks = evt['/Event/MyTracks']
00036 print '***I got ', len(tracks), ' tracks'
00037 
00038 his    = gaudi.HistoSvc(g.service('HistogramDataSvc'))
00039 h1 = his.book('h1', 'histogram title 1D', 10, 0, 10)
00040 print '***Created 1D histogram'
00041 print h1
00042 h2 = his.book('h2', 'histogram title 1D', 10, 0, 10, 20, 0, 10)
00043 print '***Created 2D histogram'
00044 print h2
00045 
00046 print '**************Histograms Tested ********************'
00047 
00048 
00049 #---------------User Algorithm----------------------------------------------
00050 class PhysAnalAlg(gaudi.PyAlgorithm):
00051   def initialize(self):
00052     self.evt = gaudi.DataSvc(g.service('EventDataSvc'))
00053     self.his = gaudi.HistoSvc(g.service('HistogramDataSvc'))
00054     print 'Initializing User Analysis...'
00055     self.h1 = self.his.book('myhisto1', 'Histogram 1D for tests', 20, 0., 40.) 
00056     self.h2 = self.his.book('myhisto2', 'Histogram 2D for test2', 20, 0., 40., 20, 0., 10.) 
00057     print '....User Analysis Initialized'
00058     return 1
00059   def execute(self):
00060     tks = self.evt.object('MyTracks')
00061     print 'MyTracks collection contains '  + `len(tks)` + ' Tracks'
00062     for t in tks :
00063       self.h1.fill( math.sqrt(t.px*t.px + t.py*t.py + t.pz*t.pz), 1)
00064       self.h2.fill( t.px, t.py )
00065     return 1 
00066   def finalize(self):
00067     print 'Finalizing User Analysis...'
00068     print self.h1
00069     print self.h1.entries()
00070     print self.h2
00071     print '....User Analysis Finalized'
00072     return 1 
00073 
00074 print '**************Testing Python Algorithms ********************'
00075 phyanalalg = PhysAnalAlg('PythonAlgorithm')
00076 g.topAlg = g.topAlg + [ 'PythonAlgorithm' ]
00077 g.run(100)
00078 g.exit()
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Wed Feb 9 16:24:59 2011 for Gaudi Framework, version v22r0 by Doxygen version 1.6.2 written by Dimitri van Heesch, © 1997-2004