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 13 from __future__
import print_function
17 from Configurables
import ApplicationMgr, EventSelector, Gaudi__RootCnvSvc
19 from GaudiKernel
import *
21 input_file =
'castor://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/LHCb/Collision11/SEMILEPTONIC.DST/00012569/0000/00012569_00000004_1.semileptonic.dst?svcClass=lhcbdisk' 22 input_file =
'root://castorlhcb.cern.ch//castor/cern.ch/grid//lhcb/data/2010/BHADRON.DST/00008399/0000/00008399_00001052_1.bhadron.dst?svcClass=lhcbdisk' 28 from Configurables
import StoreExplorerAlg
38 input_file = sys.argv[1]
40 appConf = ApplicationMgr(OutputLevel=INFO)
41 appConf.HistogramPersistency =
"NONE" 42 appConf.ExtSvc.append(
'Gaudi::IODataManager/IODataManager')
43 appConf.ExtSvc.append(
'Gaudi::RootCnvSvc/RootCnvSvc')
46 EventDataSvc().RootCLID = 1
47 EventDataSvc().EnableFaultHandler =
True 48 root = Gaudi__RootCnvSvc(
'RootCnvSvc')
49 root.CacheBranches = []
50 root.VetoBranches = [
'*']
54 root.CacheBranches = [
55 '_Event.*',
'_Event_R.*',
'_Event_Rec.*',
'_Event_Rec_R.*',
57 '_Event_Rec_Header_R.*' 64 EventPersistencySvc().CnvServices.append(root)
65 EventSelector().Input = [
66 "DATA='PFN:" + input_file +
"' SVC='Gaudi::RootEvtSelector'" 68 EventSelector().PrintFreq = 1000
74 test = open(
'/proc/self/io')
79 statistic[temp[0]] = int(temp[1])
80 statistic[
'time'] = time.time()
87 print(
'%15s : %10.2F sec' % (s, (s1[s] - s0[s])))
89 print(
'%15s : %10.2F MB' % (s, (s1[s] - s0[s]) / 1.E6))
107 if not evt[
'/Event/Rec/Header']:
108 print(
'Failed to access /Event/Rec/Header')
114 print(
'Read %d events' % N)
def storeExplorer(load=1, freq=0.0001, name='StoreExplorerAlg')
Small algorith, which traverses the data store and prints generic information about all leaves,...