24def compare2Files(file1, file2, ignoredColumns=None):
25
26 res1,h1=extractData(file1)
27 res2,h2=extractData(file2)
28
29
30 if (h1 != h2):
31 print(
"ERROR, headers don't match")
34 return 1
35
36 runEvts = res1.keys()
37 if len(res2) < len(res1):
38 runEvts = res2.keys()
39
40 diffCounter=dict()
41 for h in h1[2:]:
42 diffCounter[h]=0
43
44
45 for runEvt in runEvts:
46 values1 = res1[runEvt]
47 values2 = res2[runEvt]
48 for i, name in enumerate(h1[2:]):
49
50 if values1[i] != values2[i]:
51 ignored = False
52 if ignoredColumns and name in ignoredColumns:
53 ignored = True
54 suffix = ' (ignored)' if ignored else ''
55 print ("Diff: Run {} Evt {} {} {} -> {}{}".format(runEvt[0],runEvt[1],name,values1[i],values2[i],suffix))
56 diffCounter[name]+=1
57 pass
58 pass
59 pass
60
61 print(
"Summary of differences:")
62 noChanges=""
63 nEvt=len(runEvts)
64 changed = False
65 for (name,count) in diffCounter.items():
66 if (count>0):
67
68 print ("{}: {} events (out of {})".format(name,count,nEvt))
69 if not ignoredColumns or name not in ignoredColumns:
70 changed = True
71 else:
72 noChanges+=" "+name
73 if not changed:
75 else:
76 print(
"No changes for:",noChanges)
77 return changed
78
79
void print(char *figname, TCanvas *c1)