131 |
|
def groupErr(group): |
132 |
|
Data,MC = [float(sum(hist.GetBinContent(i) for i in group)) for hist in [dataHist,mcHist]] |
133 |
|
dataErr2,mcErr2 = [sum(hist.GetBinError(i)**2 for i in group) for hist in [dataHist,mcHist]] |
134 |
< |
return abs(math.sqrt( (dataErr2+mcErr2)/(Data-MC)**2 + mcErr2/MC**2 ) * (Data-MC)/MC) if Data and MC else 0 |
134 |
> |
if Data > 0 and MC > 0 and Data != MC: |
135 |
> |
return abs(math.sqrt( (dataErr2+mcErr2)/(Data-MC)**2 + mcErr2/MC**2 ) * (Data-MC)/MC) |
136 |
> |
else: |
137 |
> |
return 0 |
138 |
|
|
139 |
|
def regroup(groups): |
140 |
|
err,iG = max( (groupErr(g),groups.index(g)) for g in groups ) |