本文整理汇总了Python中AbstractClasses.Helper.HistoGetter类的典型用法代码示例。如果您正苦于以下问题:Python HistoGetter类的具体用法?Python HistoGetter怎么用?Python HistoGetter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HistoGetter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0)
ROOT.gPad.SetLogy(0)
# TH2D
ChipNo = self.ParentObject.Attributes['ChipNo']
self.HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
if self.isDigitalROC:
ModuleTypes = ['Digital', 'Analog']
else:
ModuleTypes = ['Analog', 'Digital']
try:
histname = self.HistoDict.get(self.NameSingle, ModuleTypes[0])
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle,
histname, rocNo=ChipNo).Clone(
self.GetUniqueID())
except:
histname = self.HistoDict.get(self.NameSingle, ModuleTypes[1])
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle,
histname, rocNo=ChipNo).Clone(
self.GetUniqueID())
threshold = self.CheckBumpBondingProblems()
if self.ResultData['Plot']['ROOTObject']:
self.ResultData['Plot']['ROOTObject'].SetTitle("")
if not self.isDigitalROC:
self.ResultData['Plot']['ROOTObject'].GetZaxis().SetRangeUser(
self.TestResultEnvironmentObject.GradingParameters['minThrDiff'],
self.TestResultEnvironmentObject.GradingParameters['maxThrDiff'])
else:
# self.ResultData['Plot']['ROOTObject'].GetZaxis().SetRangeUser(0,255)
#minZ = self.ParentObject.ResultData['SubTestResults']['BumpBonding'].ResultData['Plot'][
# 'ROOTObject'].FindFirstBinAbove(.9)
#minZ = self.ParentObject.ResultData['SubTestResults']['BumpBonding'].ResultData['Plot'][
# 'ROOTObject'].GetXaxis().GetBinLowEdge(minZ)
#self.ResultData['Plot']['ROOTObject'].GetZaxis().SetRangeUser(minZ, threshold)
self.ResultData['Plot']['ROOTObject'].GetZaxis().SetRangeUser(-5, 5)
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Column No.")
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Row No.")
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5)
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].GetZaxis().SetTitle("#Delta Threshold [#sigma]")
self.ResultData['Plot']['ROOTObject'].GetZaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].Draw("colz")
self.ResultData['Plot']['ROOTObject2'] = self.ResultData['Plot']['ROOTObject'].Clone(self.GetUniqueID())
if self.Canvas:
self.Canvas.SetCanvasSize(500, 500)
self.ResultData['Plot']['Format'] = 'png'
self.SaveCanvas()
self.Title = 'Bump Bonding Problems: C{ChipNo}'.format(ChipNo=self.chipNo)
self.ResultData['KeyValueDictPairs']['DeadBumps']['Value'] = self.DeadBumpList
self.ResultData['KeyValueDictPairs']['NDeadBumps']['Value'] = len(self.DeadBumpList)
self.ResultData['KeyList'].append('NDeadBumps')
示例2: PopulateResultData
def PopulateResultData(self):
ChipNo = self.ParentObject.Attributes['ChipNo']
histogramName = self.ParentObject.ParentObject.ParentObject.ParentObject.HistoDict.get('HighRate', 'CalDelScan').format(ChipNo=self.ParentObject.Attributes['ChipNo'])
histogramName2 = self.ParentObject.ParentObject.ParentObject.ParentObject.HistoDict.get('HighRate2', 'CalDelScan').format(ChipNo=self.ParentObject.Attributes['ChipNo'])
self.Canvas.Clear()
if 'CalDelScan' in self.ParentObject.ParentObject.ParentObject.Attributes['ROOTFiles']:
rootFileHandle = self.ParentObject.ParentObject.ParentObject.Attributes['ROOTFiles']['CalDelScan']
try:
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(rootFileHandle, histogramName).Clone(self.GetUniqueID())
except:
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(rootFileHandle, histogramName2).Clone(self.GetUniqueID())
if self.ResultData['Plot']['ROOTObject']:
ROOT.gStyle.SetOptStat(0)
self.ResultData['Plot']['ROOTObject'].SetTitle("")
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("CalDel")
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Efficiency")
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5)
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].Draw()
self.Title = 'CalDel scan: C{ChipNo}'.format(ChipNo=self.ParentObject.Attributes['ChipNo'])
self.SaveCanvas()
示例3: PopulateResultData
def PopulateResultData(self):
ChipNo = self.ParentObject.Attributes['ChipNo']
rootFileHandle = self.ParentObject.ParentObject.ParentObject.Attributes['ROOTFiles']['HREfficiency_{Rate}'.format(Rate=self.Attributes['Rate'])]
try:
histogramName = self.ParentObject.ParentObject.ParentObject.ParentObject.HistoDict.get('HighRate', 'EfficiencyMap').format(ChipNo=self.ParentObject.Attributes['ChipNo'])
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(rootFileHandle, histogramName).Clone(self.GetUniqueID())
except:
histogramName = self.ParentObject.ParentObject.ParentObject.ParentObject.HistoDict.get('HighRate2', 'EfficiencyMap').format(ChipNo=self.ParentObject.Attributes['ChipNo'])
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(rootFileHandle, histogramName).Clone(self.GetUniqueID())
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(rootFileHandle, histogramName).Clone(self.GetUniqueID())
if self.ResultData['Plot']['ROOTObject']:
ROOT.gStyle.SetOptStat(0)
self.Canvas.Clear()
self.ResultData['Plot']['ROOTObject'].SetTitle("");
#self.ResultData['Plot']['ROOTObject'].GetXaxis().SetRangeUser(-50., 50.);
#self.ResultData['Plot']['ROOTObject'].GetYaxis().SetRangeUser(0.5, 5.0 * self.ResultData['Plot'][
# 'ROOTObject'].GetMaximum())
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Column");
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Row");
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5);
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].Draw('colz');
self.Title = 'Efficiency Map {Rate}: C{ChipNo}'.format(ChipNo=self.ParentObject.Attributes['ChipNo'],Rate=self.Attributes['Rate'])
if self.Canvas:
self.Canvas.SetCanvasSize(500, 500)
self.ResultData['Plot']['Format'] = 'png'
self.SaveCanvas()
示例4: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(1)
self.ResultData['Plot']['ROOTObject'] =ROOT.TH1D(self.GetUniqueID(), "", 100, 0., 600.) # hw
self.ResultData['Plot']['ROOTObject_hd'] =ROOT.TH1D(self.GetUniqueID(), "", 100, 0., 600.) #Noise in unbonded pixel (not displayed) # hd
self.ResultData['Plot']['ROOTObject_ht'] = ROOT.TH2D(self.GetUniqueID(), "", self.nCols, 0., self.nCols, self.nRows, 0., self.nRows) # ht
isDigitalROC = False
ChipNo = self.ParentObject.Attributes['ChipNo']
HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
self.ResultData['Plot']['ROOTObject_h2'] = None
if HistoDict.has_option(self.NameSingle,'Analog'):
histname = HistoDict.get(self.NameSingle,'Analog')
object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo)
if object != None:
self.ResultData['Plot']['ROOTObject_h2'] = object.Clone(self.GetUniqueID())
if not self.ResultData['Plot']['ROOTObject_h2']:
isDigitalROC = True
histname = HistoDict.get(self.NameSingle,'Digital')
object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo)
if object != None:
self.ResultData['Plot']['ROOTObject_h2'] = object.Clone(self.GetUniqueID())
if not self.ResultData['Plot']['ROOTObject_h2']:
self.ResultData['HiddenData']['NoDatFile'] = True
print 'Cannot find Histogram ',HistoDict.get(self.NameSingle,'Digital'),HistoDict.has_option(self.NameSingle,'Analog')
print[x.GetName() for x in self.ParentObject.ParentObject.FileHandle.GetListOfKeys()]
print 'NameSingle: ', self.NameSingle
示例5: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0)
# self.ResultData['Plot']['ROOTObject'] = ROOT.TH2D(self.GetUniqueID(), "", self.nCols, 0., self.nCols, self.nRows, 0., self.nRows ) # htm
# TH2D
ChipNo = self.ParentObject.Attributes['ChipNo']
HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
if HistoDict.has_option(self.NameSingle, 'TrimBits'):
histname = HistoDict.get(self.NameSingle, 'TrimBits')
root_object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo=ChipNo)
self.ResultData['Plot']['ROOTObject'] = root_object.Clone(self.GetUniqueID())
else:
histname = HistoDict.get(self.NameSingle, 'TrimBitMap')
root_object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo=ChipNo)
self.ResultData['Plot']['ROOTObject'] = ROOT.TH1F(self.GetUniqueID(), 'TrimBitDistribution', 17, -.5, 16.5)
for col in range(self.nCols): # Columns
for row in range(self.nRows): # Rows
entry = root_object.GetBinContent(col + 1, row + 1)
self.ResultData['Plot']['ROOTObject'].Fill(entry)
mean = 0
rms = 0
if self.ResultData['Plot']['ROOTObject']:
# for i in range(self.nCols): # Columns
# for j in range(self.nRows): # Rows
# self.ResultData['Plot']['ROOTObject'].SetBinContent(i+1, j+1, self.ResultData['Plot']['ROOTObject_TrimMap'].GetBinContent(i+1, j+1))
self.ResultData['Plot']['ROOTObject'].SetTitle("")
self.ResultData['Plot']['ROOTObject'].SetFillStyle(3002)
self.ResultData['Plot']['ROOTObject'].SetLineColor(ROOT.kBlack)
#self.ResultData['Plot']['ROOTObject'].GetZaxis().SetRangeUser(0., self.nTotalChips);
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Trim bits")
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetRangeUser(0, 15)
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("entries")
# self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Column No.");
# self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Row No.");
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5)
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].Draw('')
mean = self.ResultData['Plot']['ROOTObject'].GetMean()
rms = self.ResultData['Plot']['ROOTObject'].GetRMS()
self.ResultData['KeyValueDictPairs'] = {
'mu': {
'Value': '{0:1.2f}'.format(mean),
'Label': 'μ'
},
'sigma': {
'Value': '{0:1.2f}'.format(rms),
'Label': 'σ'
}
}
self.ResultData['KeyList'] = ['mu', 'sigma']
if self.SavePlotFile:
self.Canvas.SaveAs(self.GetPlotFileName())
self.ResultData['Plot']['Enabled'] = 1
self.Title = 'Trim Bits'
self.ResultData['Plot']['ImageFile'] = self.GetPlotFileName()
示例6: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0)
ROOT.gPad.SetLogy(1);
mean = -9999
rms = -9999
nBumpBondingProblems = 0;
nSigma = self.TestResultEnvironmentObject.GradingParameters['BumpBondingProblemsNSigma']
# TH1D
ChipNo = self.ParentObject.Attributes['ChipNo']
self.HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
try:
histname = self.ParentObject.ParentObject.ParentObject.HistoDict.get(self.NameSingle, 'Analog')
object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo=ChipNo)
self.ResultData['Plot']['ROOTObject'] = object.Clone(self.GetUniqueID())
except:
histname = self.ParentObject.ParentObject.ParentObject.HistoDict.get(self.NameSingle, 'Digital')
object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo=ChipNo)
self.ResultData['Plot']['ROOTObject'] = object.Clone(self.GetUniqueID())
if self.ResultData['Plot']['ROOTObject']:
self.Canvas.Clear()
self.ResultData['Plot']['ROOTObject'].SetTitle("");
if not self.Attributes['isDigitalROC']:
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetRangeUser(-50., 50.);
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetRangeUser(0.5, 5.0 * self.ResultData['Plot'][
'ROOTObject'].GetMaximum())
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Threshold difference");
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("No. of Entries");
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5);
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].Draw();
mean = self.ResultData['Plot']['ROOTObject'].GetMean()
rms = self.ResultData['Plot']['ROOTObject'].GetRMS()
startbin = self.ResultData['Plot']['ROOTObject'].FindBin(nSigma)
for bin in range(startbin, self.ResultData['Plot']['ROOTObject'].GetNbinsX() + 1):
nBumpBondingProblems += self.ResultData['Plot']['ROOTObject'].GetBinContent(bin)
self.Cut = ROOT.TCutG('bumpBondingThreshold', 2)
self.Cut.SetPoint(0, nSigma, -1e9)
self.Cut.SetPoint(1, nSigma, +1e9)
self.Cut.SetLineWidth(2)
self.Cut.SetLineStyle(2)
self.Cut.SetLineColor(ROOT.kRed)
self.Cut.Draw('PL')
self.Title = 'Bump Bonding: C{ChipNo}'.format(ChipNo=self.ParentObject.Attributes['ChipNo'])
self.SaveCanvas()
self.ResultData['KeyValueDictPairs']['Mean']['Value'] = round(mean, 2)
self.ResultData['KeyList'].append('Mean')
self.ResultData['KeyValueDictPairs']['RMS']['Value'] = round(rms, 2)
self.ResultData['KeyList'].append('RMS')
self.ResultData['KeyValueDictPairs']['Threshold']['Value'] = round(nSigma, 2)
self.ResultData['KeyList'].append('Threshold')
if self.Attributes['isDigitalROC']:
self.ResultData['KeyValueDictPairs']['nSigma']['Value'] = nSigma
self.ResultData['KeyValueDictPairs']['nBumpBondingProblems']['Value'] = round(nBumpBondingProblems, 0)
self.ResultData['KeyList'].append('nSigma')
self.ResultData['KeyList'].append('nBumpBondingProblems')
示例7: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0);
ROOT.gPad.SetLogy(1);
# TH1D
ChipNo=self.ParentObject.Attributes['ChipNo']
HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
histname = HistoDict.get(self.NameSingle,'TrimBit0')
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo).Clone(self.GetUniqueID())
# TH1D
histname = HistoDict.get(self.NameSingle,'TrimBit1')
self.ResultData['Plot']['ROOTObject_TrimBit13'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo).Clone(self.GetUniqueID())
# TH1D
histname = HistoDict.get(self.NameSingle,'TrimBit2')
self.ResultData['Plot']['ROOTObject_TrimBit11'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo).Clone(self.GetUniqueID())
# TH1D
histname = HistoDict.get(self.NameSingle,'TrimBit3')
self.ResultData['Plot']['ROOTObject_TrimBit7'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo).Clone(self.GetUniqueID())
if self.ResultData['Plot']['ROOTObject']:
self.ResultData['Plot']['ROOTObject'].SetTitle("");
self.ResultData['Plot']['ROOTObject'].SetAxisRange(0., 60.);
self.ResultData['Plot']['ROOTObject'].SetMinimum(0.5);
self.ResultData['Plot']['ROOTObject'].SetLineColor(ROOT.kBlack);
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Threshold difference");
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("No. of Entries");
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5);
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].Draw();
self.ResultData['Plot']['ROOTObject_TrimBit13'].SetLineColor(ROOT.kRed);
self.ResultData['Plot']['ROOTObject_TrimBit13'].Draw('same');
self.ResultData['Plot']['ROOTObject_TrimBit11'].SetLineColor(ROOT.kBlue);
self.ResultData['Plot']['ROOTObject_TrimBit11'].Draw('same');
self.ResultData['Plot']['ROOTObject_TrimBit7'].SetLineColor(ROOT.kGreen);
self.ResultData['Plot']['ROOTObject_TrimBit7'].Draw('same');
Legend = ROOT.TLegend(0.5, 0.67, 0.84, 0.89, '', 'brNDC')
Legend.AddEntry(self.ResultData['Plot']['ROOTObject'], 'Trim Value 14', 'l')
Legend.AddEntry(self.ResultData['Plot']['ROOTObject_TrimBit13'], 'Trim Value 13', 'l')
Legend.AddEntry(self.ResultData['Plot']['ROOTObject_TrimBit11'], 'Trim Value 11', 'l')
Legend.AddEntry(self.ResultData['Plot']['ROOTObject_TrimBit7'], 'Trim Value 7', 'l')
Legend.Draw()
if self.SavePlotFile:
self.Canvas.SaveAs(self.GetPlotFileName())
self.ResultData['Plot']['Enabled'] = 1
self.Title = 'Trim Bit Test'
self.ResultData['Plot']['ImageFile'] = self.GetPlotFileName()
示例8: PopulateResultData
def PopulateResultData(self):
try:
if self.ParentObject.ParentObject.ParentObject.nTrigPixelAlive:
if self.ParentObject.ParentObject.ParentObject.nTrigPixelAlive != self.PixelMapMaxValue:
print "PixelAliveMap: ntrig = %d from testParameters.dat is used instead of value from gradingParameters.cfg"%self.ParentObject.ParentObject.ParentObject.nTrigPixelAlive
self.PixelMapMaxValue = self.ParentObject.ParentObject.ParentObject.nTrigPixelAlive
except:
pass
ROOT.gStyle.SetOptStat(0)
ROOT.gPad.SetLogy(0)
# TH2D
self.HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
ChipNo=self.ParentObject.Attributes['ChipNo']
if self.HistoDict.has_option(self.NameSingle,'PixelMap'):
histname = self.HistoDict.get(self.NameSingle,'PixelMap')
object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo)
self.ResultData['Plot']['ROOTObject'] = object.Clone(self.GetUniqueID())
elif self.HistoDict.has_option(self.NameSingle,'Calibrate') and self.HistoDict.has_option(self.NameSingle,'Mask'):
# TO BE CHECKED
histname_Calibrate = self.HistoDict.get(self.NameSingle,'Calibrate')
self.ResultData['Plot']['ROOTObject_Calibrate'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname_Calibrate, rocNo = ChipNo).Clone(self.GetUniqueID())
histname_Mask = self.HistoDict.get(self.NameSingle,'Mask')
self.ResultData['Plot']['ROOTObject_Mask'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname_Mask, rocNo = ChipNo).Clone(self.GetUniqueID())
if not self.ResultData['Plot']['ROOTObject_Mask'] or not self.ResultData['Plot']['ROOTObject_Calibrate']:
raise Exception('Cannot create PixelMap because of not found histos Mask: %s, Calibrate: %s'%(
self.ResultData['Plot']['ROOTObject_Mask'],
self.ResultData['Plot']['ROOTObject_Calibrate'],
))
self.ResultData['Plot']['ROOTObject'] = self.ResultData['Plot']['ROOTObject_Calibrate'].Clone(self.GetUniqueID())
nXbins = self.ResultData['Plot']['ROOTObject'].GetNbinsX()
nYbins = self.ResultData['Plot']['ROOTObject'].GetNbinsY()
for xbin in range(1,nXbins+1):
for ybin in range(1,nYbins+1):
binContent = self.ResultData['Plot']['ROOTObject_Mask'].GetBinContent(xbin,ybin)
if (self.ParentObject.ParentObject.ParentObject.testSoftware == 'pxar' and binContent < -0.5) or (self.ParentObject.ParentObject.ParentObject.testSoftware != 'pxar' and binContent != 0):
if self.verbose: print 'MaskProblem with %d/%d'%(xbin,ybin)
self.ResultData['Plot']['ROOTObject'].SetBinContent(xbin,ybin,-1)
self.CheckPixelAlive()
if self.ResultData['Plot']['ROOTObject']:
self.ResultData['Plot']['ROOTObject'].SetTitle("");
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Column No.");
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Row No.");
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5);
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].GetZaxis().SetTitle("No. of Readouts");
self.ResultData['Plot']['ROOTObject'].GetZaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].Draw('colz');
self.Title = 'Pixel Map: C{ChipNo}'.format(ChipNo=self.ParentObject.Attributes['ChipNo'])
if self.Canvas:
self.Canvas.SetCanvasSize(500, 500)
self.ResultData['Plot']['Format'] = 'png'
self.SaveCanvas()
示例9: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0)
ChipNo = self.ParentObject.Attributes['ChipNo']
HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
# load trimbit distribution from .root file or create from trim bit map
if HistoDict.has_option(self.NameSingle, 'TrimBits'):
histname = HistoDict.get(self.NameSingle, 'TrimBits')
root_object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo=ChipNo)
else:
histname = HistoDict.get(self.NameSingle, 'TrimBitMap')
root_object2 = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo=ChipNo)
root_object = ROOT.TH1F(self.GetUniqueID(), 'TrimBitDistribution', 17, -.5, 16.5)
for col in range(self.nCols): # Columns
for row in range(self.nRows): # Rows
entry = root_object2.GetBinContent(col + 1, row + 1)
root_object.Fill(entry)
self.ResultData['Plot']['ROOTObject'] = ROOT.TH1F(self.GetUniqueID(), 'TrimBitDistribution', 17, -.5, 16.5)
for bin in range(0, root_object.GetNbinsX() + 1):
bin_content = root_object.GetBinContent(bin)
bin_center = int(root_object.GetXaxis().GetBinCenter(bin))
self.ResultData['Plot']['ROOTObject'].Fill(bin_center, bin_content)
mean = 0
rms = 0
if self.ResultData['Plot']['ROOTObject']:
self.ResultData['Plot']['ROOTObject'].SetTitle("")
self.ResultData['Plot']['ROOTObject'].SetFillStyle(3002)
self.ResultData['Plot']['ROOTObject'].SetLineColor(ROOT.kBlack)
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Trim bits")
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetRangeUser(0, 15)
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("entries")
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5)
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].Draw('hist')
mean = self.ResultData['Plot']['ROOTObject'].GetMean()
rms = self.ResultData['Plot']['ROOTObject'].GetRMS()
self.ResultData['KeyValueDictPairs'] = {
'mu': {
'Value': '{0:1.2f}'.format(mean),
'Label': 'μ'
},
'sigma': {
'Value': '{0:1.2f}'.format(rms),
'Label': 'RMS'
}
}
self.ResultData['KeyList'] = ['mu', 'sigma']
self.Title = 'Trim Bits'
self.SaveCanvas()
示例10: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0);
ROOT.gPad.SetLogy(0);
# TH2D
ChipNo = self.ParentObject.Attributes['ChipNo']
self.HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
print 'HistoDict BarePixelMap: ', self.HistoDict
if self.ParentObject.ParentObject.ParentObject.testSoftware=='pxar':
#blablabla = bla(self)
#self.ResultData['Plot']['ROOTObject']=bla.ResultData['Plot']['ROOTObject'];
histname = self.HistoDict.get(self.NameSingle,'Calibrate')
if self.HistoDict.has_option(self.NameSingle,'Calibrate'):
histname = self.HistoDict.get(self.NameSingle,'Calibrate')
object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo)
self.ResultData['Plot']['ROOTObject'] = object.Clone(self.GetUniqueID())
else:
histname = self.HistoDict.get(self.NameSingle,'BarePixelMap')
if self.HistoDict.has_option(self.NameSingle,'BarePixelMap'):
histname = self.HistoDict.get(self.NameSingle,'BarePixelMap')
object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo)
if not object:
print 'no Histogram for ChipNo',ChipNo
else:
self.ResultData['Plot']['ROOTObject'] = object.Clone(self.GetUniqueID())
# loop over the histogram and find list of dead pixels
nXbins = self.ResultData['Plot']['ROOTObject'].GetNbinsX()
nYbins = self.ResultData['Plot']['ROOTObject'].GetNbinsY()
for xbin in range(1,nXbins+1):
for ybin in range(1,nYbins+1):
binContent = self.ResultData['Plot']['ROOTObject'].GetBinContent(xbin,ybin)
if binContent ==0:
self.DeadPixelList.add((ChipNo,xbin-1,ybin-1))
if not object:
print 'Inside BarePixelMap ChipNo: ', ChipNo
else:
if self.ResultData['Plot']['ROOTObject']:
self.ResultData['Plot']['ROOTObject'].SetTitle("")
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Column No.")
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Row No.")
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5)
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].Draw('colz')
self.ResultData['KeyValueDictPairs']['DeadPixels'] = {'Value':self.DeadPixelList, 'Label':'Dead Pixels'}
self.ResultData['KeyValueDictPairs']['NDeadPixels'] = { 'Value':len(self.DeadPixelList), 'Label':'N Dead Pixels'}
self.Title = 'BarePixelMap: C{ChipNo}'.format(ChipNo=self.ParentObject.Attributes['ChipNo'])
self.SaveCanvas()
示例11: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0)
ChipNo = self.ParentObject.Attributes['ChipNo']
ROOTFile = self.ParentObject.ParentObject.FileHandle
HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
HistoNameAdcVsDac = HistoDict.get(self.NameSingle, 'AdcVsDac')
HistoNameCurrentVsDac = HistoDict.get(self.NameSingle, 'CurrentVsDac')
try:
HistogramAdcVsDac = HistoGetter.get_histo(ROOTFile, HistoNameAdcVsDac, rocNo=ChipNo).Clone(self.GetUniqueID())
HistogramCurrentVsDac = HistoGetter.get_histo(ROOTFile, HistoNameCurrentVsDac, rocNo=ChipNo).Clone(self.GetUniqueID())
except:
HistogramAdcVsDac = None
HistogramCurrentVsDac = None
if HistogramAdcVsDac and HistogramCurrentVsDac:
NBinsX = HistogramAdcVsDac.GetXaxis().GetNbins()
NBinsX2 = HistogramCurrentVsDac.GetXaxis().GetNbins()
#print "nbins:", NBinsX," ",NBinsX2
#print "ADC vs DAC: ",
#for i in range(NBinsX):
# print HistogramAdcVsDac.GetBinContent(i +1)," ",
#print ""
#print "current vs DAC: ",
#for i in range(NBinsX2):
# print HistogramCurrentVsDac.GetBinContent(i +1)," ",
#print ""
pointListADC = []
pointListCurrent = []
if NBinsX==NBinsX2:
for i in range(NBinsX):
if HistogramAdcVsDac.GetBinContent(i+1)!=0 or HistogramCurrentVsDac.GetBinContent(i+1)!=0:
pointListCurrent.append(HistogramCurrentVsDac.GetBinContent(i+1))
pointListADC.append(HistogramAdcVsDac.GetBinContent(i+1))
pointsADC = array.array('d', pointListADC)
pointsCurrent = array.array('d', pointListCurrent)
numPoints = len(pointsADC)
self.ResultData['Plot']['ROOTObject'] = ROOT.TGraph(numPoints, pointsADC, pointsCurrent)
if self.ResultData['Plot']['ROOTObject']:
self.ResultData['Plot']['ROOTObject'].Draw('AP*')
self.Title = 'Iana [ADC]/Iana [mA]'
if self.Canvas:
self.Canvas.SetCanvasSize(500, 500)
self.SaveCanvas()
#TODO: Axis label, punkte blau, fit pol 1. ordnung, Graph wegmachen, etc.
示例12: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0)
ROOT.gPad.SetLogy(0)
# TH2D
self.HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
ChipNo=self.ParentObject.Attributes['ChipNo']
if self.HistoDict.has_option(self.NameSingle,'PixelMap'):
histname = self.HistoDict.get(self.NameSingle,'PixelMap')
object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo)
self.ResultData['Plot']['ROOTObject'] = object.Clone(self.GetUniqueID())
elif self.HistoDict.has_option(self.NameSingle,'Calibrate') and self.HistoDict.has_option(self.NameSingle,'Mask'):
# TO BE CHECKED
histname_Calibrate = self.HistoDict.get(self.NameSingle,'Calibrate')
self.ResultData['Plot']['ROOTObject_Calibrate'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname_Calibrate, rocNo = ChipNo).Clone(self.GetUniqueID())
histname_Mask = self.HistoDict.get(self.NameSingle,'Mask')
self.ResultData['Plot']['ROOTObject_Mask'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname_Mask, rocNo = ChipNo).Clone(self.GetUniqueID())
if not self.ResultData['Plot']['ROOTObject_Mask'] or not self.ResultData['Plot']['ROOTObject_Calibrate']:
raise Exception('Cannot create PixelMap because of not found histos Mask: %s, Calibrate: %s'%(
self.ResultData['Plot']['ROOTObject_Mask'],
self.ResultData['Plot']['ROOTObject_Calibrate'],
))
self.ResultData['Plot']['ROOTObject'] = self.ResultData['Plot']['ROOTObject_Calibrate'].Clone(self.GetUniqueID())
nXbins = self.ResultData['Plot']['ROOTObject'].GetNbinsX()
nYbins = self.ResultData['Plot']['ROOTObject'].GetNbinsY()
if self.ParentObject.ParentObject.ParentObject.testSoftware=='pxar':
comperateTo =1
else:
comperateTo=0
for xbin in range(1,nXbins+1):
for ybin in range(1,nYbins+1):
binContent = self.ResultData['Plot']['ROOTObject_Mask'].GetBinContent(xbin,ybin)
if binContent != comperateTo:
if self.verbose: print 'MaskProblem with %d/%d'%(xbin,ybin)
self.ResultData['Plot']['ROOTObject'].SetBinContent(xbin,ybin,-1)
self.CheckPixelAlive()
if self.ResultData['Plot']['ROOTObject']:
self.ResultData['Plot']['ROOTObject'].SetTitle("");
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Column No.");
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Row No.");
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5);
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].GetZaxis().SetTitle("No. of Readouts");
self.ResultData['Plot']['ROOTObject'].GetZaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].Draw('colz');
if self.SavePlotFile:
self.Canvas.SaveAs(self.GetPlotFileName())
self.ResultData['Plot']['Enabled'] = 1
self.Title = 'Pixel Map: C{ChipNo}'.format(ChipNo=self.ParentObject.Attributes['ChipNo'])
self.ResultData['Plot']['ImageFile'] = self.GetPlotFileName()
示例13: PopulateResultData
def PopulateResultData(self):
ChipNo = self.ParentObject.Attributes['ChipNo']
rootFileHandle = self.ParentObject.ParentObject.ParentObject.Attributes['ROOTFiles']['HRData_{Rate}'.format(Rate=self.Attributes['Rate'])]
histogramName = self.ParentObject.ParentObject.ParentObject.ParentObject.HistoDict.get('HighRate', 'HitMap').format(ChipNo=self.ParentObject.Attributes['ChipNo'])
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(rootFileHandle, histogramName).Clone(self.GetUniqueID())
NumberOfDefectivePixels = 0
NumberOfHits = 0
if self.ResultData['Plot']['ROOTObject']:
for Row in range(self.nRows):
for Column in range(self.nCols):
PixelHits = self.ResultData['Plot']['ROOTObject'].GetBinContent(Column+1, Row+1)
if PixelHits > 0:
NumberOfHits += PixelHits
else:
NumberOfDefectivePixels += 1
self.ResultData['HiddenData']['ListOfDefectivePixels'].append((ChipNo, Column, Row))
self.ResultData['KeyValueDictPairs']['NHits']['Value'] = '{NHits:1.0f}'.format(NHits=NumberOfHits)
NTriggersROOTObject = (
HistoGetter.get_histo(
self.ParentObject.ParentObject.ParentObject.Attributes['ROOTFiles']['HRData_{Rate}'.format(Rate=self.Attributes['Rate'])],
"Xray.ntrig_Ag_V0"
)
)
TimeConstant = float(self.TestResultEnvironmentObject.XRayHRQualificationConfiguration['TimeConstant'])
Area = float(self.TestResultEnvironmentObject.XRayHRQualificationConfiguration['Area'])
NTriggers = float(NTriggersROOTObject.GetBinContent(1))
NHits = float(self.ResultData['KeyValueDictPairs']['NHits']['Value'])
RealHitrate = NHits / (NTriggers*TimeConstant*Area)*1e-6
ROOT.gStyle.SetOptStat(0)
self.Canvas.Clear()
self.ResultData['Plot']['ROOTObject'].SetTitle("")
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Column")
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Row")
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5)
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].Draw('colz')
if self.Canvas:
self.Canvas.SetCanvasSize(500, 500)
self.ResultData['Plot']['Format'] = 'png'
self.SaveCanvas()
self.ResultData['KeyValueDictPairs']['NumberOfDefectivePixels']['Value'] = '{NumberOfDefectivePixels:1.0f}'.format(NumberOfDefectivePixels=NumberOfDefectivePixels)
self.ResultData['KeyValueDictPairs']['RealHitrate']['Value'] = '{RealHitrate:1.2f}'.format(RealHitrate=RealHitrate)
self.ResultData['KeyValueDictPairs']['RealHitrate']['NumericValue'] = RealHitrate
self.Title = 'Hit Map {Rate}: C{ChipNo}'.format(ChipNo=self.ParentObject.Attributes['ChipNo'],Rate=self.Attributes['Rate'])
示例14: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0)
ROOT.gPad.SetLogy(0)
# TH2D
ChipNo=self.ParentObject.Attributes['ChipNo']
self.HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
try:
histname = self.HistoDict.get(self.NameSingle,'Analog')
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle,histname,rocNo=ChipNo).Clone(self.GetUniqueID())
except:
histname = self.HistoDict.get(self.NameSingle,'Digital')
self.ResultData['Plot']['ROOTObject'] = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle,histname,rocNo=ChipNo).Clone(self.GetUniqueID())
# if not isDigitalROC:
# print "ERROR Cannot find vcals_xtal_CXXX but is analog Module..."
# elif isDigitalROC:
# print "ERROR: FOound vcals_xtal_CXXX but is digital Module..."
threshold = self.CheckBumpBondingProblems()
if self.ResultData['Plot']['ROOTObject']:
self.ResultData['Plot']['ROOTObject'].SetTitle("");
if not self.isDigitalROC:
self.ResultData['Plot']['ROOTObject'].GetZaxis().SetRangeUser(self.TestResultEnvironmentObject.GradingParameters['minThrDiff'], self.TestResultEnvironmentObject.GradingParameters['maxThrDiff']);
else:
#self.ResultData['Plot']['ROOTObject'].GetZaxis().SetRangeUser(0,255)
minZ = self.ParentObject.ResultData['SubTestResults']['BumpBonding'].ResultData['Plot']['ROOTObject'].FindFirstBinAbove(.9)
minZ = self.ParentObject.ResultData['SubTestResults']['BumpBonding'].ResultData['Plot']['ROOTObject'].GetXaxis().GetBinLowEdge(minZ)
self.ResultData['Plot']['ROOTObject'].GetZaxis().SetRangeUser(minZ,threshold)
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Column No.");
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Row No.");
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5);
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].GetZaxis().SetTitle("#Delta Threshold [DAC]");
self.ResultData['Plot']['ROOTObject'].GetZaxis().CenterTitle();
self.ResultData['Plot']['ROOTObject'].Draw("colz");
self.ResultData['Plot']['ROOTObject'].SaveAs(self.GetPlotFileName()+'.cpp')
self.ResultData['Plot']['ROOTObject2'] = self.ResultData['Plot']['ROOTObject'].Clone(self.GetUniqueID())
if self.SavePlotFile:
self.Canvas.SaveAs(self.GetPlotFileName())
self.ResultData['Plot']['Enabled'] = 1
self.Title = 'Bump Bonding Problems: C{ChipNo}'.format(ChipNo=self.chipNo)
self.ResultData['Plot']['ImageFile'] = self.GetPlotFileName()
self.ResultData['KeyValueDictPairs']['DeadBumps'] = { 'Value':self.DeadBumpList, 'Label':'Dead Bumps'}
self.ResultData['KeyValueDictPairs']['NDeadBumps'] = { 'Value':len(self.DeadBumpList), 'Label':'N Dead Bumps'}
self.ResultData['KeyList'].append('NDeadBumps')
示例15: PopulateResultData
def PopulateResultData(self):
ROOT.gStyle.SetOptStat(0)
ROOT.gPad.SetLogy(0)
ROOT.gPad.SetLogx(0)
# TH2D
self.HistoDict = self.ParentObject.ParentObject.ParentObject.HistoDict
ChipNo = self.ParentObject.Attributes['ChipNo']
if self.HistoDict.has_option(self.NameSingle, self.Attributes['Map']):
histname = self.HistoDict.get(self.NameSingle, self.Attributes['Map'])
object = HistoGetter.get_histo(self.ParentObject.ParentObject.FileHandle, histname, rocNo = ChipNo)
self.ResultData['Plot']['ROOTObject'] = object.Clone(self.GetUniqueID())
if self.ResultData['Plot']['ROOTObject']:
self.ResultData['Plot']['ROOTObject'].GetXaxis().SetTitle("Column No.")
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitle("Row No.")
self.ResultData['Plot']['ROOTObject'].GetXaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].GetYaxis().SetTitleOffset(1.5)
self.ResultData['Plot']['ROOTObject'].GetYaxis().CenterTitle()
self.ResultData['Plot']['ROOTObject'].Draw("colz")
self.Title = 'PH Map: %s'%(self.Attributes['Map'] if 'Map' in self.Attributes else '?')
if self.Canvas:
self.Canvas.SetCanvasSize(500, 500)
self.ResultData['Plot']['Format'] = 'png'
self.SaveCanvas()