3 from __future__
import print_function
5 from ROOT
import TBufferFile, TH1F, TProfile, TProfile2D, TH2F, TFile, TH1D, TH2D
10 def draw_line(lineList,x1,x2,y1,y2,width=1,style=1,color=1):
11 from ROOT
import TLine
13 l.SetBit(ROOT.kCanDelete)
20 def draw_box(boxList,xl,xr,yl,yr,opacity=1,color=1,style=1001,lstyle=1,lw=3):
23 b.SetBit(ROOT.kCanDelete)
25 b.SetFillColorAlpha(color, opacity)
28 b.SetLineStyle(lstyle)
33 from ROOT
import TCanvas,TLine
35 coordSign=[(-1,-1),(-1,1),(1,-1),(1,1)]
36 for xsign,ysign
in coordSign:
40 yhigh= ysign*(0.5 + nlad[layer-1])
42 draw_line(lineList,xlow, xhigh, ylow, ylow)
43 draw_line(lineList,xlow, xhigh, yhigh, yhigh)
44 draw_line(lineList,xlow, xlow, ylow, yhigh)
45 draw_line(lineList,xhigh, xhigh, ylow, yhigh)
47 for lad
in range(nlad[layer-1]):
49 if lad != nlad[layer-1]:
53 draw_line(lineList,xlow, xhigh, y, y, 1, 3);
57 x = xsign * (mod + 0.5);
63 for lad
in range(nlad[layer-1]):
66 flipped = not(lad%2==0)
68 flipped = not(lad%2==1)
69 if flipped : roc0_orientation = -1
70 else : roc0_orientation = 1
71 if xsign==-1 : roc0_orientation *= -1
72 if ysign==-1 : roc0_orientation *= -1
73 x1 = xsign * (mod+0.5)
74 x2 = xsign * (mod+0.5 - 1./8);
76 y2 = ysign * (lad + roc0_orientation*1./2)
77 if layer == 1
and xsign == -1 :
78 x1 = xsign * (mod-0.5)
79 x2 = xsign * (mod-0.5 + 1./8)
81 y2 = ysign * (lad - roc0_orientation*1./2)
95 rocShiftX=(15-roc)*1./8
98 flipped = not(lad%2==0)
100 flipped = not(lad%2==1)
101 if flipped : roc0_orientation = -1
102 else : roc0_orientation = 1
103 if xsign==-1 : roc0_orientation *= -1
104 if ysign==-1 : roc0_orientation *= -1
105 x1 = xsign * (mod+0.5-rocShiftX)
106 x2 = xsign * (mod+0.5 - 1./8-rocShiftX);
107 y1 = ysign * (lad-roc0_orientation*rocShiftY)
108 y2 = ysign * (lad + roc0_orientation*1./2-roc0_orientation*rocShiftY)
109 if layer == 1
and xsign == -1 :
110 x1 = xsign * (mod-0.5)-rocShiftX
111 x2 = xsign * (mod-0.5 + 1./8)-rocShiftX
112 y1 = ysign * (lad +rocShiftY)
113 y2 = ysign * (lad - roc0_orientation*1./2+rocShiftY)
119 from ROOT
import TCanvas,TLine
120 coordSign=[(-1,-1),(-1,1),(1,-1),(1,1)]
121 for dsk
in range(3) :
123 for xsign,ysign
in coordSign:
124 for bld
in range(5+ring*6):
127 x1 = xsign * (0.5 + dsk - 1)
128 x2 = xsign * (0.5 + dsk)
130 y1 = ysign * (bld + sign*0.5)
132 yp2_mid = ysign * (bld - sign*0.25)
133 y3 = ysign * (bld - sign*0.5)
136 draw_line(lineList,x1, x2, yp2_mid, yp2_mid,1,2)
139 x = xsign * (0.5 + dsk - 1)
143 x = xsign * (0.5 + dsk)
147 x1 = xsign * (0.5 + dsk - 1/8.)
148 x2 = xsign * (0.5 + dsk)
149 y1_p1 = ysign * (bld + sign*0.25)
150 y2_p1 = ysign * (bld + sign*0.25 + xsign*ysign*0.25)
151 draw_line(lineList,x1, x2, y1_p1, y1_p1, 1)
152 draw_line(lineList,x1, x1, y1_p1, y2_p1, 1)
153 y1_p2 = ysign * (bld - sign*0.25)
154 y2_p2 = ysign * (bld - sign*0.25 - xsign*ysign*0.25)
159 from ROOT
import TCanvas,TLine
164 rocShiftX=(15-roc)*1./8
167 x1 = xsign * (0.5 + dsk - 1/8.-rocShiftX)
168 x2 = xsign * (0.5 + dsk-rocShiftX)
170 y1 = ysign * (bld + sign*0.25)-xsign*rocShiftY
171 y2 = ysign * (bld + sign*0.25 + xsign*ysign*0.25)-xsign*rocShiftY
173 y1 = ysign * (bld - sign*0.25)+xsign*rocShiftY
174 y2 = ysign * (bld - sign*0.25 - xsign*ysign*0.25)+xsign*rocShiftY
179 datareq = urllib2.Request((
'%s/data/json/samples?match=%s') % (server, match))
180 datareq.add_header(
'User-agent', ident)
182 data = eval(re.sub(
r"\bnan\b",
"0", urllib2.build_opener(X509CertOpen()).open(datareq).read()),
183 {
"__builtins__":
None }, {})
185 for l
in data[
'samples']:
186 if l[
'type'] == type:
188 if int(x[
'run']) ==
int(run):
202 if len(sys.argv) != 2:
203 print(
"input file needed!")
207 print(filename+
" -- "+filename[19:25])
208 runNum=filename[19:25]
210 dir=
"DQMData/Run " + runNum +
"/PixelPhase1/Run summary/Pahse1_MechanicalView/" 211 dirFED=
"DQMData/Run " + runNum +
"/PixelPhase1/Run summary/FED/" 214 dirBPix=dir +
"PXBarrel/" 215 dirFPix=dir +
"PXForward/" 217 hoccB=
"digi_occupancy_per_SignedModuleCoord_per_SignedLadderCoord_PXLayer_" 218 hoccF=
"digi_occupancy_per_SignedDiskCoord_per_SignedBladePanelCoord_PXRing_" 219 hdeadB=
"Dead Channels per ROC_per_SignedModuleCoord_per_SignedLadderCoord_PXLayer_" 220 hdeadF=
"Dead Channels per ROC_per_SignedDiskCoord_per_SignedBladePanelCoord_PXRing_" 222 ROOT.gROOT.SetBatch(1)
223 ROOT.gStyle.SetOptStat(0)
224 ROOT.gStyle.SetPalette(1)
225 ROOT.gStyle.SetNumberContours(128)
226 rootf=ROOT.TFile(filename)
230 c=ROOT.TCanvas(
"c",
"c",1250,1000)
232 print(
"----> Build maps for BPix")
235 for lyr
in range(1,5):
236 histOccList.append(rootf.FindObjectAny(hoccB+
str(lyr)))
237 histDeadList.append(rootf.FindObjectAny(hdeadB+
str(lyr)))
238 for hist1, hist2
in zip(histOccList, histDeadList):
239 if hist1 !=
None or hist2 !=
None:
241 match=re.search(
'(?<=PXLayer_)[0-9]',hist1.GetName())
242 if match !=
None and "per_SignedModuleCoord_per_SignedLadderCoord" in hist1.GetName():
243 lyr=
int(match.group(0))
244 hist1.SetTitle(
"Digi Occupancy Layer {0}".
format(lyr))
256 for biny
in range(1,hist2.GetNbinsY()+1):
258 x1=hist2.GetXaxis().GetBinLowEdge(binTBM[0])
259 x2=hist2.GetXaxis().GetBinUpEdge(binTBM[len(binTBM)-1])
260 y1=hist2.GetYaxis().GetBinLowEdge(biny-1)
261 y2=hist2.GetYaxis().GetBinUpEdge(biny-1)
262 if hist2.GetBinContent(binTBM[0],biny-1) >= 0.97*hist2.GetMaximum():
263 draw_box(boxList,x1,x2,y1,y2,0.2,1,0,1,lineWd)
265 draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
267 for binx
in range(1,hist2.GetNbinsX()+1):
268 if hist2.GetBinContent(binx,biny)!=0:
272 if len(binTBM)==tbmRoc:
273 x1=hist2.GetXaxis().GetBinLowEdge(binTBM[0])
274 x2=hist2.GetXaxis().GetBinUpEdge(binTBM[len(binTBM)-1])
275 y1=hist2.GetYaxis().GetBinLowEdge(biny)
276 y2=hist2.GetYaxis().GetBinUpEdge(biny)
277 if hist2.GetBinContent(binTBM[0],biny) >= 0.97*hist2.GetMaximum():
278 draw_box(boxList,x1,x2,y1,y2,0.2,1,0,1,lineWd)
280 draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
287 x1=hist2.GetXaxis().GetBinLowEdge(binTBM[0])
288 x2=hist2.GetXaxis().GetBinUpEdge(binTBM[len(binTBM)-1])
289 y1=hist2.GetYaxis().GetBinLowEdge(biny)
290 y2=hist2.GetYaxis().GetBinUpEdge(biny)
291 if hist2.GetBinContent(binTBM[0],biny) >= 0.97*hist2.GetMaximum():
292 draw_box(boxList,x1,x2,y1,y2,0.2,1,0,1,lineWd)
294 draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
295 c.SaveAs(
'MergedOccupancyDeadROC_BPix_Layer{0}_TBM.pdf'.
format(lyr))
296 os.system(
'gs -dBATCH -dNOPAUSE -sDEVICE=png16m -dUseCropBox -sOutputFile=MergedOccupancyDeadROC_BPix_Layer{0}_TBM.png -r144 -q MergedOccupancyDeadROC_BPix_Layer{0}_TBM.pdf'.
format(lyr))
297 os.system(
'rm -f MergedOccupancyDeadROC_BPix_Layer{0}_TBM.pdf'.
format(lyr))
299 print(
"Some Error in get the histograms for FPIX")
301 print(
"----> Build maps for FPix")
302 for rng
in range(1,3):
303 histOccList.append(rootf.FindObjectAny(hoccF+
str(rng)))
304 histDeadList.append(rootf.FindObjectAny(hdeadF+
str(rng)))
305 for hist1, hist2
in zip(histOccList, histDeadList):
306 if hist1 !=
None or hist2 !=
None:
308 match=re.search(
'(?<=PXRing_)[0-9]',hist1.GetName())
309 if match !=
None and "per_SignedDiskCoord_per_SignedBladePanelCoord" in hist1.GetName():
310 ring=
int(match.group(0))
311 hist1.SetTitle(
"Digi Occupancy Ring {0}".
format(ring))
320 for biny
in range(1,hist2.GetNbinsY()+1):
322 x1=hist2.GetXaxis().GetBinLowEdge(binTBM[0])
323 x2=hist2.GetXaxis().GetBinUpEdge(binTBM[len(binTBM)-1])
324 y1=hist2.GetYaxis().GetBinLowEdge(biny-1)
325 y2=hist2.GetYaxis().GetBinUpEdge(biny-1)
326 if hist2.GetBinContent(binTBM[0],biny-1) >= 0.97*hist2.GetMaximum():
327 draw_box(boxList,x1,x2,y1,y2,0.2,1,0,1,lineWd)
329 draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
331 for binx
in range(1,hist2.GetNbinsX()+1):
332 if hist2.GetBinContent(binx,biny)!=0:
336 if len(binTBM)==tbmRoc:
337 x1=hist2.GetXaxis().GetBinLowEdge(binTBM[0])
338 x2=hist2.GetXaxis().GetBinUpEdge(binTBM[len(binTBM)-1])
339 y1=hist2.GetYaxis().GetBinLowEdge(biny)
340 y2=hist2.GetYaxis().GetBinUpEdge(biny)
341 if hist2.GetBinContent(binTBM[0],biny) >= 0.97*hist2.GetMaximum():
342 draw_box(boxList,x1,x2,y1,y2,0.2,1,0,1,lineWd)
344 draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
351 x1=hist2.GetXaxis().GetBinLowEdge(binTBM[0])
352 x2=hist2.GetXaxis().GetBinUpEdge(binTBM[len(binTBM)-1])
353 y1=hist2.GetYaxis().GetBinLowEdge(biny)
354 y2=hist2.GetYaxis().GetBinUpEdge(biny)
355 if hist2.GetBinContent(binTBM[0],biny) >= 0.97*hist2.GetMaximum():
356 draw_box(boxList,x1,x2,y1,y2,0.2,1,0,1,lineWd)
358 draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
359 c.SaveAs(
'MergedOccupancyDeadROC_FPix_Ring{0}_TBM.pdf'.
format(ring))
360 os.system(
'gs -dBATCH -dNOPAUSE -sDEVICE=png16m -dUseCropBox -sOutputFile=MergedOccupancyDeadROC_FPix_Ring{0}_TBM.png -r144 -q MergedOccupancyDeadROC_FPix_Ring{0}_TBM.pdf'.
format(ring))
361 os.system(
'rm -f MergedOccupancyDeadROC_FPix_Ring{0}_TBM.pdf'.
format(ring))
364 print(
"Some Error in get the histograms for FPIX")
369 if __name__ ==
'__main__':
def draw_box(boxList, xl, xr, yl, yr, opacity=1, color=1, style=1001, lstyle=1, lw=3)
def draw_line(lineList, x1, x2, y1, y2, width=1, style=1, color=1)
S & print(S &os, JobReport::InputFile const &f)
def maskFPixROC(boxList, xsign, ysign, dsk, bld, pnl, roc)
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
def maskBPixROC(boxList, xsign, ysign, layer, lad, mod, roc)
def dqm_get_dataset(server, match, run, type="offline_data")
def renderPluginFPIX(lineList, ring)
def renderPluginBPIX(lineList, layer)