3 Simple test application to read LHCb dst files
4 For reading other root files: change the data access
5 if '/Event/Rec/Header' is not present.
7 Requires: 'SetupProject LHCb'
9 Script inherited from T.Ruf
14 from Configurables
import ApplicationMgr, EventSelector, Gaudi__RootCnvSvc
16 from GaudiKernel
import *
18 input_file =
'castor://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/LHCb/Collision11/SEMILEPTONIC.DST/00012569/0000/00012569_00000004_1.semileptonic.dst?svcClass=lhcbdisk'
19 input_file =
'root://castorlhcb.cern.ch//castor/cern.ch/grid//lhcb/data/2010/BHADRON.DST/00008399/0000/00008399_00001052_1.bhadron.dst?svcClass=lhcbdisk'
23 from Configurables
import StoreExplorerAlg
32 input_file = sys.argv[1]
34 appConf = ApplicationMgr(OutputLevel = INFO)
35 appConf.HistogramPersistency =
"NONE";
36 appConf.ExtSvc.append(
'Gaudi::IODataManager/IODataManager')
37 appConf.ExtSvc.append(
'Gaudi::RootCnvSvc/RootCnvSvc')
40 EventDataSvc().RootCLID = 1
41 EventDataSvc().EnableFaultHandler =
True
42 root = Gaudi__RootCnvSvc(
'RootCnvSvc')
43 root.CacheBranches = []
44 root.VetoBranches = [
'*']
48 root.CacheBranches = [
54 '_Event_Rec_Header_R.*'
62 EventSelector().Input = [
"DATA='PFN:"+input_file+
"' SVC='Gaudi::RootEvtSelector'" ]
63 EventSelector().PrintFreq = 1000
68 test = open(
'/proc/self/io')
73 statistic[temp[0]]=int(temp[1])
74 statistic[
'time']=time.time()
79 if s==
'time':
print '%15s : %10.2F sec'%(s,(s1[s]-s0[s]))
80 else:
print '%15s : %10.2F MB'%(s,(s1[s]-s0[s])/1.E6)
96 if not evt[
'/Event/Rec/Header']:
97 print 'Failed to access /Event/Rec/Header'
102 print 'Read %d events'%N
m_CSS m_DCS EventPersistencySvc
Small algorith, which traverses the data store and prints generic information about all leaves...