1 |
def getLowerBins( hist, nEntries = 6, startAtBinCenter=-10**6 ):
|
2 |
list = []
|
3 |
list.append( hist.GetBinLowEdge( 1 ) )
|
4 |
ent = 0
|
5 |
for i in range( 2, hist.GetNbinsX() + 1 ):
|
6 |
|
7 |
if hist.GetBinCenter( i ) < startAtBinCenter :
|
8 |
list.append( hist.GetBinLowEdge( i ) )
|
9 |
else:
|
10 |
if hist.GetBinContent( i ) >= nEntries:
|
11 |
list.append( hist.GetBinLowEdge( i ) )
|
12 |
ent = 0
|
13 |
elif hist.GetBinContent( i ) > 0:
|
14 |
ent += hist.GetBinContent( i )
|
15 |
if ent > nEntries:
|
16 |
list.append( hist.GetBinLowEdge( i ) )
|
17 |
ent = 0
|
18 |
pass
|
19 |
pass
|
20 |
pass
|
21 |
pass
|
22 |
### if the last bins are empty:
|
23 |
if not hist.GetBinLowEdge( hist.GetNbinsX() + 1 ) in list:
|
24 |
#list.append( hist.GetBinLowEdge( hist.GetNbinsX() + 1 ) )
|
25 |
### remove last bin edge from list
|
26 |
del list[ -1 ]
|
27 |
### add last bin edge from histogram instead
|
28 |
list.append( hist.GetBinLowEdge( hist.GetNbinsX() + 1 ) )
|
29 |
pass
|
30 |
### if just one bin
|
31 |
if len( list ) == 1:
|
32 |
element = list[ 0 ]
|
33 |
list = [ hist.GetBinLowEdge( 1 ),element ]
|
34 |
pass
|
35 |
return list
|
36 |
|
37 |
def mergeList( listList ):
|
38 |
#print
|
39 |
#print
|
40 |
finalList = []
|
41 |
#for i in range( 0, len( listList ) ):
|
42 |
# print listList[ i ]
|
43 |
for l in listList[ 0 ]:
|
44 |
isInAll = True
|
45 |
for j in range( 1, len( listList ) ):
|
46 |
if l not in listList[ j ]:
|
47 |
isInAll = False
|
48 |
pass
|
49 |
pass
|
50 |
if isInAll:
|
51 |
finalList.append( l )
|
52 |
pass
|
53 |
pass
|
54 |
|
55 |
#print
|
56 |
#print
|
57 |
#print finalList
|
58 |
|
59 |
return finalList
|