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)
def maskFPixROC(boxList, xsign, ysign, dsk, bld, pnl, roc)
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
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)