00001
00002 '''
00003 Usage:
00004 '''
00005 from GaudiPython import gbl
00006 from array import array
00007
00008 def PrintUserData(evt, dataPaths=[]):
00009 hdr = gbl.DayaBay.UserDataHeader()
00010 hdr.setInt('Int', 1)
00011 hdr.setFloat('Float', 1.0)
00012 hdr.setIntArray('IntArray', gbl.std.vector('int')())
00013 hdr.setFloatArray('FloatArray', gbl.std.vector('float')())
00014 userInt = hdr.get('Int').value()
00015 userIntArray = hdr.get('IntArray').value()
00016 userFloat = hdr.get('Float').value()
00017 userFloatArray = hdr.get('FloatArray').value()
00018
00019 for dataPath in dataPaths:
00020 print dataPath
00021 hdr = evt[dataPath]
00022 if not hdr:
00023 print "Error: path does not exist: %s" % (dataPath, )
00024 continue
00025 data = hdr.data()
00026 for i in range(data.size()):
00027 name = data[i].name()
00028 value = data[i].value()
00029 if value.__class__ == userInt.__class__:
00030 print "\t%s : %d" % (name, value)
00031 elif value.__class__ == userFloat.__class__:
00032 print "\t%s : %.3f" % (name, value)
00033 elif value.__class__ == userIntArray.__class__:
00034 size = value.size()
00035 print "\t", name
00036 for j in range(size):
00037 print "\t\t%d : %d" % (j, value[j])
00038 elif value.__class__ == userFloatArray.__class__:
00039 size = value.size()
00040 print "\t", name
00041 for j in range(size):
00042 print "\t\t%d : %.3f" % (j, value[j])
00043
00044