13 Simple test application to read LHCb dst files
14 For reading other root files: change the data access
15 if '/Event/Rec/Header' is not present.
17 Requires: 'SetupProject LHCb'
19 Script inherited from T.Ruf
23 from __future__
import print_function
27 from Configurables
import ApplicationMgr, EventSelector, Gaudi__RootCnvSvc
29 from GaudiKernel
import *
31 input_file =
'castor://castorlhcb.cern.ch//castor/cern.ch/grid/lhcb/LHCb/Collision11/SEMILEPTONIC.DST/00012569/0000/00012569_00000004_1.semileptonic.dst?svcClass=lhcbdisk'
32 input_file =
'root://castorlhcb.cern.ch//castor/cern.ch/grid//lhcb/data/2010/BHADRON.DST/00008399/0000/00008399_00001052_1.bhadron.dst?svcClass=lhcbdisk'
38 from Configurables
import StoreExplorerAlg
48 input_file = sys.argv[1]
50 appConf = ApplicationMgr(OutputLevel=INFO)
51 appConf.HistogramPersistency =
"NONE"
52 appConf.ExtSvc.append(
'Gaudi::IODataManager/IODataManager')
53 appConf.ExtSvc.append(
'Gaudi::RootCnvSvc/RootCnvSvc')
56 EventDataSvc().RootCLID = 1
57 EventDataSvc().EnableFaultHandler =
True
58 root = Gaudi__RootCnvSvc(
'RootCnvSvc')
59 root.CacheBranches = []
60 root.VetoBranches = [
'*']
64 root.CacheBranches = [
65 '_Event.*',
'_Event_R.*',
'_Event_Rec.*',
'_Event_Rec_R.*',
67 '_Event_Rec_Header_R.*'
74 EventPersistencySvc().CnvServices.append(root)
75 EventSelector().Input = [
76 "DATA='PFN:" + input_file +
"' SVC='Gaudi::RootEvtSelector'"
78 EventSelector().PrintFreq = 1000
84 test = open(
'/proc/self/io')
89 statistic[temp[0]] = int(temp[1])
90 statistic[
'time'] = time.time()
97 print(
'%15s : %10.2F sec' % (s, (s1[s] - s0[s])))
99 print(
'%15s : %10.2F MB' % (s, (s1[s] - s0[s]) / 1.E6))
104 sel = appMgr.evtsel()
105 evt = appMgr.evtsvc()
117 if not evt[
'/Event/Rec/Header']:
118 print(
'Failed to access /Event/Rec/Header')
124 print(
'Read %d events' % N)