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

# User Rev Content
1 bortigno 1.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()