8 _orig_argv = sys.argv[:]
9 sys.argv = [_orig_argv[0]]
14 if(
not ROOT.xAOD.Init().isSuccess()):
print "Failed xAOD.Init()"
20 import pyAMI.atlas.api
as atlas_api
25 print " voms-proxy-init -voms atlas"
26 print "before using this script"
27 logging.error(
"Unable to find pyAMI client. Please try this command first: lsetup pyAMI")
34 CLEAR_LINE =
"\33[2K\r"
37 results = atlas_api.get_dataset_info(ami_client, dataset)
39 print "WARNING: %d results returned from AMI, expected 1" % len(results)
41 return int(results[0][
"totalEvents"])
45 dataset = dataset.split(
":")[1]
47 parts = dataset.split(
".")
64 return ".".
join(xaod_parts)
67 tree = xAOD.MakeTransientMetaTree(root_file)
72 for cbk
in tree.CutBookkeepers:
73 if cbk.cycle() > max_cycle
and cbk.name() ==
"AllExecutedEvents" and cbk.inputStream() ==
"StreamAOD":
74 max_cycle = cbk.cycle()
77 return all_events_cbk.nAcceptedEvents()
80 num_files = len(files)
85 for i
in xrange(num_files):
86 sys.stdout.write(
"Reading local statistics, file %d/%d (%d events so far)..." % (i+1, num_files, daod_events))
89 rf = TFile.Open(files[i])
90 daod_events += rf.Get(
"CollectionTree").
GetEntries()
94 sys.stdout.write(term.CLEAR_LINE)
97 return daod_events, cbk_events
103 if ami_events == cbk_events:
104 print term.GREEN +
"CutBookkeepers good: %d events" % ami_events, term.ENDC
106 print term.RED +
"CutBookkeepers bad: %d events (local), %d events (AMI)" % (cbk_events, ami_events), term.ENDC
108 return ami_events == cbk_events
113 if ami_events == daod_events:
114 print term.GREEN +
"Derviation events good: %d events" % ami_events, term.ENDC
116 print term.RED +
"Derviation events bad: %d events (local), %d events (AMI)" % (daod_events, ami_events), term.ENDC
118 return ami_events == daod_events
121 infile =
open(opts.file_list,
"r")
126 if line ==
"" or line.startswith(
"#"):
136 parser = argparse.ArgumentParser()
137 parser.add_argument(
"dataset", help=
"Name of the dataset, something like mc15_13TeV.123456.SomeGenerator.DAOD_SUSY5.e1234_p4321")
138 parser.add_argument(
"file_list", help=
"List of files, belonging to the dataset")
140 opts = parser.parse_args()
149 print "Initializing PyAMI"
150 ami_client = pyAMI.client.Client(
"atlas")
153 print "Checking dataset %s with %d files" % (opts.dataset, len(files))
166 if __name__ ==
'__main__':