124 ( ((serialObjects,serialHistos),(parallObjects, parallHistos)), (uniqueSerPaths,uniqueSerHistos), (uniqueParPaths,uniqueParHistos), mh ) = state
127 if t1[0] == ser : ds = t1[1] ; dp = t2[1]
128 elif t2[0] == ser : ds = t2[1] ; dp = t1[1]
129 else :
print 'Neither tuple is Serial Root file reference?' ;
return
132 hcp = 0 ; pHistos = []
133 hcs = 0 ; sHistos = []
135 omit = [
'/stat/Brunel/MemoryTool/Virtual mem, all entries',
136 '/stat/Brunel/MemoryTool/Virtual mem, downscaled']
142 if ds[k].__class__.__name__
in histos : hcs += 1 ; sHistos.append( k )
146 if dp[k].__class__.__name__
in histos : hcp += 1 ; pHistos.append( k )
149 cEntries = 0 ; xEntries = 0 ; diffEntries = []
150 cIntegrals = 0 ; xIntegrals = 0 ; diffIntegrals = []
151 passedKol = 0 ; failedKol = 0 ; diffKols = [] ; zeroIntegrals = 0
153 notfound = 0 ; integralMatch = 0 ; otherTest = 0 ; zeroIntegralMatch = 0
158 sh = ds[h] ; ph = dp[h]
160 if sh.GetEntries() != ph.GetEntries() : diffEntries.append(h) ; xEntries += 1 ;
continue
162 sBinError = 0.0 ; pBinError = 0.0
163 for i
in xrange(sh.GetNbinsX()) : sBinError += sh.GetBinError(i)
164 for i
in xrange(ph.GetNbinsX()) : pBinError += ph.GetBinError(i)
165 sint = sh.Integral() ; pint = ph.Integral()
166 if (bool(sint)
and bool(pint))
and ( sBinError>0
and pBinError>0 ) :
168 kTest = sh.KolmogorovTest(ph)
169 if int(kTest) : passedKol += 1
170 else : failedKol += 1 ; diffKols.append(h)
174 if all((sint, pint))
and (sint==pint) :
177 zeroIntegralMatch += 1
179 diffIntegrals.append( h )
182 notfound += 1 ;
print 'not found? ', h
186 print 'Summary of histos with different Entries'
190 for e
in diffEntries :
print '\t\t\t%s:\t%i != %i'%( e, int(ds[e].GetEntries()), int(dp[e].GetEntries()) )
195 print 'Summary of histos which failed Kolmogorov Test'
200 result = ds[e].KolmogorovTest(dp[e])
201 print '%s\t\t%s :\tK-Test Result :\t %5.16f'%(
type(ds[e]), e, result )
206 print 'Summary of histos which failed Integral Check'
210 for e
in diffIntegrals :
213 print '%s\t\t%s:\t Diff = %5.6f\tPercent Diff to Serial : %5.6f '%(
type(ds[e]), e, diff, pc )
218 print 'Comparison : Serial/Parallel ROOT Histo files'
219 print '\n\t\tSerial\tParall'
220 print '\tObjects : %i\t%i\t\t( p-s = %i )'%( serialObjects, parallObjects, parallObjects-serialObjects )
221 print '\tHistos : %i\t%i\t\t( p-s = %i )'%( serialHistos, parallHistos, parallHistos-serialHistos )
222 print '\t __________'
223 print '\tTotal : %i\t%i\n'%( serialHistos+serialObjects, parallHistos+parallObjects )
224 print 'Objects/Histos unique to Serial File : %i / %i'%( len(uniqueSerPaths)-uniqueSerHistos, uniqueSerHistos )
225 print 'Objects/Histos unique to Parall File : %i / %i'%( len(uniqueParPaths)-uniqueParHistos, uniqueParHistos )
226 print '\nMatching Histograms valid for Comparison : %i'%( mh )
227 print '\nOmissions : '
228 for entry
in omit :
print '\t%s'%( entry )
229 print '\nHistograms for Comparison (after Omissions) : %i'%( mh-len(omit) )
230 print '\n\tHISTOGRAM TESTS : '
231 print '\t\tKOLMOGOROV TEST : %i'%( kTested )
232 print '\t\tINTEGRAL TEST : %i'%( otherTest )
233 print '\t\tENTRIES TEST : %i'%( xEntries )
235 print '\t\tTested : %i'%( cEntries )
237 print '\n\tDISCREPANCIES : '
238 print '\t\tK-Test : %i'%( failedKol )
239 print '\t\tIntegrals : %i'%( xIntegrals )
240 print '\t\tEntries : %i'%( xEntries )