ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbb/python/check_for_duplicates.py
Revision: 1.1
Committed: Wed Mar 27 21:53:08 2013 UTC (12 years, 1 month ago) by bortigno
Content type: text/x-python
Branch: MAIN
CVS Tags: lhcp_UnblindFix, hcp_Unblind, lhcp_11April, LHCP_PreAppFixAfterFreeze, LHCP_PreAppFreeze, HEAD
Log Message:
@NEW script to check duplicates

File Contents

# Content
1 #!/usr/bin/env python
2 import ROOT
3 from optparse import OptionParser
4 import sys
5 import itertools
6 ROOT.gROOT.SetBatch(True)
7
8 argv = sys.argv
9 parser = OptionParser()
10 parser.add_option("-F", "--input-file", dest="input", default="",
11 help="input file")
12 parser.add_option("-T", "--test", dest="test", default=False,
13 help="run as test on 100 events")
14
15 (opts, args) = parser.parse_args(argv)
16 test=eval(opts.test)
17
18 def _is_already_there(list,event):
19 if event in list: return True
20 else: return False
21
22 def _fill_event(input):
23 f = ROOT.TFile.Open(input,'read')
24 f.ls()
25 t = f.Get('tree')
26
27 event = t.GetBranch('EVENT')
28 event_list=[]
29 duplicate_event=[]
30
31 for i in range(0,t.GetEntries()):
32 if i > 100 & test: continue
33 if not i%10000: print i
34
35 event.GetEntry(i)
36 Event = [t.event,t.run,t.lumi]
37 if(t.GetEntries() < 1000):
38 if(_is_already_there(event_list,Event)):
39 duplicate_event.append(Event)
40 event_list.append(Event)
41
42 print 'Duplicated events list: '
43 print duplicate_event
44 return event_list
45
46
47 def main():
48 input = opts.input
49 print input
50 eventlist = _fill_event(input)
51 eventlist.sort()
52 newlist = list(k for k,_ in itertools.groupby(eventlist))
53 print '| ---------------------------------------------- |'
54 print '| Results |'
55 print '| ---------------------------------------------- |'
56 print '| Number of tested events: ' + str( len(eventlist) )
57 print '| Number of duplicated events: ' + str( len(eventlist) - len(newlist) )
58 print '| ---------------------------------------------- |'
59
60 if __name__ == '__main__': main()