CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Functions
MergeOccDeadROC Namespace Reference

Functions

def dqm_get_dataset (server, match, run, type="offline_data")
 
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 main ()
 
def maskBPixROC (boxList, xsign, ysign, layer, lad, mod, roc)
 
def maskFPixROC (boxList, xsign, ysign, dsk, bld, pnl, roc)
 
def renderPluginBPIX (lineList, layer)
 
def renderPluginFPIX (lineList, ring)
 

Function Documentation

◆ dqm_get_dataset()

def MergeOccDeadROC.dqm_get_dataset (   server,
  match,
  run,
  type = "offline_data" 
)

Definition at line 178 of file MergeOccDeadROC.py.

References createfilelist.int, print(), and fileinputsource_cfi.read.

178 def dqm_get_dataset(server, match, run, type="offline_data"):
179  datareq = urllib2.Request(('%s/data/json/samples?match=%s') % (server, match))
180  datareq.add_header('User-agent', ident)
181  # Get data
182  data = eval(re.sub(r"\bnan\b", "0", urllib2.build_opener(X509CertOpen()).open(datareq).read()),
183  { "__builtins__": None }, {})
184  ret = ""
185  for l in data['samples']:
186  if l['type'] == type:
187  for x in l['items']:
188  if int(x['run']) == int(run):
189  ret=x['dataset']
190  break
191  print(ret)
192  return ret
193 
194 
195 
196 
void print(TMatrixD &m, const char *label=nullptr, bool mathematicaFormat=false)
Definition: Utilities.cc:47
def dqm_get_dataset(server, match, run, type="offline_data")

◆ draw_box()

def MergeOccDeadROC.draw_box (   boxList,
  xl,
  xr,
  yl,
  yr,
  opacity = 1,
  color = 1,
  style = 1001,
  lstyle = 1,
  lw = 3 
)

Definition at line 20 of file MergeOccDeadROC.py.

Referenced by main(), maskBPixROC(), and maskFPixROC().

20 def draw_box(boxList,xl,xr,yl,yr,opacity=1,color=1,style=1001,lstyle=1,lw=3):
21  from ROOT import TBox
22  b=TBox(xl,yl,xr,yr)
23  b.SetBit(ROOT.kCanDelete)
24  b.SetFillStyle(style)
25  b.SetFillColorAlpha(color, opacity)
26  b.SetLineColor(color)
27  b.SetLineWidth(lw)
28  b.SetLineStyle(lstyle)
29  b.Draw()
30  boxList.append(b)
31 
def draw_box(boxList, xl, xr, yl, yr, opacity=1, color=1, style=1001, lstyle=1, lw=3)

◆ draw_line()

def MergeOccDeadROC.draw_line (   lineList,
  x1,
  x2,
  y1,
  y2,
  width = 1,
  style = 1,
  color = 1 
)

Definition at line 10 of file MergeOccDeadROC.py.

Referenced by renderPluginBPIX(), and renderPluginFPIX().

10 def draw_line(lineList,x1,x2,y1,y2,width=1,style=1,color=1):
11  from ROOT import TLine
12  l=TLine(x1,y1,x2,y2)
13  l.SetBit(ROOT.kCanDelete)
14  l.SetLineWidth(width)
15  l.SetLineStyle(style)
16  l.SetLineColor(color)
17  l.Draw()
18  lineList.append(l)
19 
def draw_line(lineList, x1, x2, y1, y2, width=1, style=1, color=1)

◆ main()

def MergeOccDeadROC.main ( )

Definition at line 197 of file MergeOccDeadROC.py.

References draw_box(), createfilelist.int, print(), FastTimerService_cff.range, renderPluginBPIX(), renderPluginFPIX(), str, and ComparisonHelper.zip().

197 def main():
198  import sys
199  import os
200  import ROOT
201 
202  if len(sys.argv) != 2:
203  print("input file needed!")
204  return
205  else:
206  filename=sys.argv[1]
207  print(filename+" -- "+filename[19:25])
208  runNum=filename[19:25]
209 
210  dir="DQMData/Run " + runNum + "/PixelPhase1/Run summary/Pahse1_MechanicalView/"
211  dirFED="DQMData/Run " + runNum + "/PixelPhase1/Run summary/FED/"
212 
213 
214  dirBPix=dir + "PXBarrel/"
215  dirFPix=dir + "PXForward/"
216 
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_"
221 
222  ROOT.gROOT.SetBatch(1)
223  ROOT.gStyle.SetOptStat(0)
224  ROOT.gStyle.SetPalette(1) #104 kTemperatureMap // 55 kRainBow
225  ROOT.gStyle.SetNumberContours(128)
226  rootf=ROOT.TFile(filename)
227 
228 
229 
230  c=ROOT.TCanvas("c","c",1250,1000)
231  #BPIX
232  print("----> Build maps for BPix")
233  histOccList=[]
234  histDeadList=[]
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:
240  hist1.Draw("colz")
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))
245  boxList=[]
246  lineList=[]
247  renderPluginBPIX(lineList,lyr)
248  lineWd=3
249  if lyr==4 :
250  lineWd=2
251  if lyr==1:
252  tbmRoc=4
253  else:
254  tbmRoc=8
255  binTBM=[]
256  for biny in range(1,hist2.GetNbinsY()+1):
257  if len(binTBM)!=0:
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)
264  else:
265  draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
266  binTBM=[]
267  for binx in range(1,hist2.GetNbinsX()+1):
268  if hist2.GetBinContent(binx,biny)!=0:
269  if len(binTBM)==0:
270  binTBM.append(binx)
271  else:
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)
279  else:
280  draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
281  binTBM=[]
282  binTBM.append(binx)
283  else:
284  binTBM.append(binx)
285  else:
286  if len(binTBM)!=0:
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)
293  else:
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))
298  else :
299  print("Some Error in get the histograms for FPIX")
300  #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:
307  hist1.Draw("colz")
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))
312  boxList=[]
313  lineList=[]
314  renderPluginFPIX(lineList,ring)
315  lineWd=3
316  if ring==2 :
317  lineWd=2
318  tbmRoc=8
319  binTBM=[]
320  for biny in range(1,hist2.GetNbinsY()+1):
321  if len(binTBM)!=0:
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)
328  else:
329  draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
330  binTBM=[]
331  for binx in range(1,hist2.GetNbinsX()+1):
332  if hist2.GetBinContent(binx,biny)!=0:
333  if len(binTBM)==0:
334  binTBM.append(binx)
335  else:
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)
343  else:
344  draw_box(boxList,x1,x2,y1,y2,0.2,633,0,1,lineWd)
345  binTBM=[]
346  binTBM.append(binx)
347  else:
348  binTBM.append(binx)
349  else:
350  if len(binTBM)!=0:
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)
357  else:
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))
362 
363  else :
364  print("Some Error in get the histograms for FPIX")
365 
366 
367 
368 
def draw_box(boxList, xl, xr, yl, yr, opacity=1, color=1, style=1001, lstyle=1, lw=3)
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)
Definition: Utilities.cc:47
def renderPluginFPIX(lineList, ring)
def renderPluginBPIX(lineList, layer)
#define str(s)

◆ maskBPixROC()

def MergeOccDeadROC.maskBPixROC (   boxList,
  xsign,
  ysign,
  layer,
  lad,
  mod,
  roc 
)

Definition at line 90 of file MergeOccDeadROC.py.

References draw_box(), SiStripPI.max, and SiStripPI.min.

90 def maskBPixROC(boxList,xsign,ysign,layer,lad,mod,roc):
91  if roc<8 :
92  rocShiftX=roc*1./8
93  rocShiftY=0
94  else :
95  rocShiftX=(15-roc)*1./8
96  rocShiftY=1./2
97  if ysign==1:
98  flipped = not(lad%2==0)
99  else :
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)
114  draw_box(boxList,min(x1,x2),max(x1,x2),min(y1, y2),max(y1,y2),0.75)
115 
116 
117 
def draw_box(boxList, xl, xr, yl, yr, opacity=1, color=1, style=1001, lstyle=1, lw=3)
def maskBPixROC(boxList, xsign, ysign, layer, lad, mod, roc)

◆ maskFPixROC()

def MergeOccDeadROC.maskFPixROC (   boxList,
  xsign,
  ysign,
  dsk,
  bld,
  pnl,
  roc 
)

Definition at line 158 of file MergeOccDeadROC.py.

References draw_box(), SiStripPI.max, and SiStripPI.min.

158 def maskFPixROC(boxList,xsign,ysign,dsk,bld,pnl,roc) :
159  from ROOT import TCanvas,TLine
160  if roc<8 :
161  rocShiftX=roc*1./8
162  rocShiftY=0
163  else :
164  rocShiftX=(15-roc)*1./8
165  rocShiftY=1./4
166  sign=ysign
167  x1 = xsign * (0.5 + dsk - 1/8.-rocShiftX)
168  x2 = xsign * (0.5 + dsk-rocShiftX)
169  if pnl==1:
170  y1 = ysign * (bld + sign*0.25)-xsign*rocShiftY
171  y2 = ysign * (bld + sign*0.25 + xsign*ysign*0.25)-xsign*rocShiftY
172  else:
173  y1 = ysign * (bld - sign*0.25)+xsign*rocShiftY
174  y2 = ysign * (bld - sign*0.25 - xsign*ysign*0.25)+xsign*rocShiftY
175  draw_box(boxList,min(x1,x2),max(x1,x2),min(y1,y2),max(y1,y2),0.75)
176 
177 
def draw_box(boxList, xl, xr, yl, yr, opacity=1, color=1, style=1001, lstyle=1, lw=3)
def maskFPixROC(boxList, xsign, ysign, dsk, bld, pnl, roc)

◆ renderPluginBPIX()

def MergeOccDeadROC.renderPluginBPIX (   lineList,
  layer 
)

Definition at line 32 of file MergeOccDeadROC.py.

References draw_line(), and FastTimerService_cff.range.

Referenced by main().

32 def renderPluginBPIX(lineList,layer) :
33  from ROOT import TCanvas,TLine
34  nlad=[6,14,22,32]
35  coordSign=[(-1,-1),(-1,1),(1,-1),(1,1)]
36  for xsign,ysign in coordSign:
37  xlow = xsign*0.5
38  xhigh= xsign*(0.5+4)
39  ylow = ysign*0.5
40  yhigh= ysign*(0.5 + nlad[layer-1])
41  # Outside Box
42  draw_line(lineList,xlow, xhigh, ylow, ylow) # bottom
43  draw_line(lineList,xlow, xhigh, yhigh, yhigh) # top
44  draw_line(lineList,xlow, xlow, ylow, yhigh) # left
45  draw_line(lineList,xhigh, xhigh, ylow, yhigh) # right
46  # Inner Horizontal lines
47  for lad in range(nlad[layer-1]):
48  lad+=1
49  if lad != nlad[layer-1]:
50  y = ysign * (lad+0.5)
51  draw_line(lineList,xlow, xhigh, y, y)
52  y = ysign * (lad);
53  draw_line(lineList,xlow, xhigh, y, y, 1, 3);
54  # Inner Vertical lines
55  for mod in range(3) :
56  mod+=1
57  x = xsign * (mod + 0.5);
58  draw_line(lineList,x, x, ylow, yhigh);
59 
60  # Draw ROC0
61  for mod in range(4):
62  mod+=1
63  for lad in range(nlad[layer-1]):
64  lad+=1
65  if ysign==1:
66  flipped = not(lad%2==0)
67  else :
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);
75  y1 = ysign * (lad)
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)
80  y1 = ysign * (lad)
81  y2 = ysign * (lad - roc0_orientation*1./2)
82 
83  draw_line(lineList,x1, x2, y1, y1, 1)
84  draw_line(lineList,x2, x2, y1, y2, 1)
85 
86  else:
87  draw_line(lineList,x1, x2, y1, y1, 1)
88  draw_line(lineList,x2, x2, y1, y2, 1)
89 
def draw_line(lineList, x1, x2, y1, y2, width=1, style=1, color=1)
def renderPluginBPIX(lineList, layer)

◆ renderPluginFPIX()

def MergeOccDeadROC.renderPluginFPIX (   lineList,
  ring 
)

Definition at line 118 of file MergeOccDeadROC.py.

References draw_line(), and FastTimerService_cff.range.

Referenced by main().

118 def renderPluginFPIX(lineList,ring) :
119  from ROOT import TCanvas,TLine
120  coordSign=[(-1,-1),(-1,1),(1,-1),(1,1)]
121  for dsk in range(3) :
122  dsk+=1
123  for xsign,ysign in coordSign:
124  for bld in range(5+ring*6):
125  bld+=1
126  # Panel 2 has dashed mid-plane
127  x1 = xsign * (0.5 + dsk - 1)
128  x2 = xsign * (0.5 + dsk)
129  sign = ysign
130  y1 = ysign * (bld + sign*0.5)
131  y2 = ysign * (bld)
132  yp2_mid = ysign * (bld - sign*0.25)
133  y3 = ysign * (bld - sign*0.5)
134  draw_line(lineList,x1, x2, y1, y1)
135  draw_line(lineList,x1, x2, y2, y2)
136  draw_line(lineList,x1, x2, yp2_mid, yp2_mid,1,2)
137  draw_line(lineList,x1, x2, y3, y3)
138  # Vertical lines
139  x = xsign * (0.5 + dsk - 1)
140  draw_line(lineList,x, x, y1, y2)
141  draw_line(lineList,x, x, y2, y3)
142  if ring==2 :
143  x = xsign * (0.5 + dsk)
144  draw_line(lineList,x, x, y1, y2)
145  draw_line(lineList,x, x, y2, y3)
146  #Make a BOX around ROC 0
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)
155  draw_line(lineList,x1, x2, y1_p2, y1_p2)
156  draw_line(lineList,x1, x1, y1_p2, y2_p2)
157 
def draw_line(lineList, x1, x2, y1, y2, width=1, style=1, color=1)
def renderPluginFPIX(lineList, ring)