00001
00002 '''
00003 Make some user tags (and data)
00004
00005 nuwa.py --no-history -n 10 -o foo.root -m 'RootIOTest.TestUserTagging'
00006 '''
00007
00008 from GaudiPython.GaudiAlgs import GaudiAlgo
00009 from GaudiPython import SUCCESS, FAILURE, Bindings, gbl
00010 import ROOT
00011
00012 from UserTagging.UserTaggingAlg import UserTaggingAlg
00013 class MissingLink(UserTaggingAlg):
00014
00015 def initTagList(self):
00016 'Init UserTag and UserData'
00017 tag = self.addTag('TUT', '/Event/UserTag/Testing/TUT')
00018 data = tag.addData('TestUserTagging', '/Event/UserData/TUT/TestUserTagging')
00019 data.addInt('count','anInt')
00020 data.addFloat('aFloat')
00021
00022
00023
00024 self.tag = tag
00025 self.data = data
00026 return
00027
00028 def check(self,evt):
00029 'Check the current state of affairs and maybe record some values'
00030
00031 if self.execNumber%3 == 1:
00032 self.tag.isTagged = False
00033 return
00034
00035
00036 self.tag.isTagged = True
00037 print 'Tagged exec #%d as %s'%(self.execNumber,self.tag.isTagged)
00038
00039 self.data.set('count',self.execNumber)
00040 self.data.set('anInt',self.execNumber*self.execNumber)
00041 self.data.set('aFloat',6.9*self.execNumber)
00042 return
00043
00044 def config(self,evt):
00045 'Override base class to avoid needing a baseHeader'
00046 if not self.tag.isTagged: return
00047
00048
00049 self.tag.header.setExecNumber(self.execNumber)
00050 self.data.header.setExecNumber(self.execNumber)
00051
00052 now = gbl.TimeStamp(self.execNumber*3600,self.execNumber)
00053 self.tag.header.setTimeStamp(now)
00054 self.data.header.setTimeStamp(now)
00055
00056 now = gbl.TimeStamp(self.execNumber*3600,self.execNumber+1)
00057 self.tag.header.setEarliest(now)
00058 self.data.header.setEarliest(now)
00059
00060 now = gbl.TimeStamp(self.execNumber*3600,self.execNumber+2)
00061 self.tag.header.setLatest(now)
00062 self.data.header.setLatest(now)
00063
00064 return
00065
00066 def run(app):
00067 alg = MissingLink('MissingLink')
00068 app.addAlgorithm(alg)
00069 pass
00070