9def PeekFiles(inputfiles):
10
11 bsfiles=[]
12 poolfiles=[]
13 for inputfile in inputfiles:
14 if not os.access(inputfile,os.R_OK):
15 print ("ERROR: Failed input file",inputfile,"not accessible")
16 return None
17 if "pool.root" in inputfile:
18 poolfiles.append(inputfile)
19 else:
20 bsfiles.append(inputfile)
21
22
23 retval=""
24 if len(bsfiles)>0:
25 retval=check_output(["BSFilePeeker","-k"]+bsfiles).decode('utf-8')
26
27 if len(poolfiles)>0:
28 retval+=check_output(["PoolFilePeeker","-k"]+poolfiles).decode('utf-8')
29
30
31 fullResult=dict()
32 for line in retval.split(os.linesep):
33 linesplit=line.split(":")
34 if len(linesplit)!=2: continue
35 k=linesplit[0].
strip()
36 v=linesplit[1].
strip()
37 if len(v)==0: continue
38 if (k=="File"):
39 result=dict()
40 fullResult[v]=result
41
42
43 elif (k=="RunNumber" or k=="LBNumber"):
44 result[k]=
set(int(rn)
for rn
in v.split())
45 elif (k=="BeamEnergy"):
46 result[k]=int(v)
47
48 elif (k=="SGkeys"):
49 result[k]=
set(sgk
for sgk
in v.split())
50
51 elif (k=="isMC"):
52 result[k]=bool(int(v))
53 else:
54 result[k]=v
55
56 return fullResult
57
58
59