CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes | Private Attributes
matplotRender.matplotRender Class Reference

Public Member Functions

def __init__
 
def drawHTTPstring
 
def drawInteractive
 
def drawPNG
 
def plotInst_RunLS
 
def plotPeakPerday_Time
 
def plotPerdayX_Time
 
def plotSumX_Fill
 
def plotSumX_Run
 
def plotSumX_Time
 

Public Attributes

 colormap
 

Private Attributes

 __canvas
 
 __fig
 

Detailed Description

Definition at line 94 of file matplotRender.py.

Constructor & Destructor Documentation

def matplotRender.matplotRender.__init__ (   self,
  fig 
)

Definition at line 95 of file matplotRender.py.

95 
96  def __init__(self,fig):
97  self.__fig=fig
98  self.__canvas=''
99  self.colormap={}
100  self.colormap['Delivered']='r'
101  self.colormap['Recorded']='b'
102  self.colormap['Effective']='g'
103  self.colormap['Max Inst']='r'

Member Function Documentation

def matplotRender.matplotRender.drawHTTPstring (   self)

Definition at line 796 of file matplotRender.py.

References matplotRender.matplotRender.__canvas, and matplotRender.matplotRender.__fig.

797  def drawHTTPstring(self):
798  self.__canvas=CanvasBackend(self.__fig)
799  cherrypy.response.headers['Content-Type']='image/png'
800  buf=StringIO()
801  self.__canvas.print_png(buf)
802  return buf.getvalue()
def matplotRender.matplotRender.drawInteractive (   self)

Definition at line 807 of file matplotRender.py.

References matplotRender.matplotRender.__fig.

808  def drawInteractive(self):
809  if batchonly:
810  print 'interactive mode is not available for your setup, exit'
811  sys.exit()
813  aw.show()
814  aw.destroy()
def matplotRender.matplotRender.drawPNG (   self,
  filename 
)

Definition at line 803 of file matplotRender.py.

References matplotRender.matplotRender.__canvas, and matplotRender.matplotRender.__fig.

804  def drawPNG(self,filename):
805  self.__canvas=CanvasBackend(self.__fig)
806  self.__canvas.print_figure(filename)
def matplotRender.matplotRender.plotInst_RunLS (   self,
  rawxdata,
  rawydata,
  nticks = 6,
  textoutput = None 
)
Input: rawxdata [run,fill,starttime,stoptime,totalls,ncmsls]
       rawydata {label:[lumi]}

Definition at line 719 of file matplotRender.py.

References matplotRender.matplotRender.colormap, python.multivaluedict.dict, matplotRender.guessLumiUnit(), and max().

720  def plotInst_RunLS(self,rawxdata,rawydata,nticks=6,textoutput=None):
721  '''
722  Input: rawxdata [run,fill,starttime,stoptime,totalls,ncmsls]
723  rawydata {label:[lumi]}
724  '''
725  lslength=23.357
726  lut=lumiTime.lumiTime()
727  runnum=rawxdata[0]
728  fill=rawxdata[1]
729  starttime=lut.DatetimeToStr(rawxdata[2],customfm='%m/%d/%y %H:%M:%S')
730  stoptime=lut.DatetimeToStr(rawxdata[3],customfm='%m/%d/%y %H:%M:%S')
731  totalls=rawxdata[-2]
732  ncmsls=rawxdata[-1]
733  peakinst=max(rawydata['Delivered'])/lslength
734  totaldelivered=sum(rawydata['Delivered'])
735  totalrecorded=sum(rawydata['Recorded'])
736  xpoints=range(1,totalls+1)
737  #print len(xpoints)
738  ypoints={}
739  ymax={}
740  for ylabel,yvalue in rawydata.items():
741  ypoints[ylabel]=[y/lslength for y in yvalue]
742  ymax[ylabel]=max(yvalue)/lslength
743  left=0.15
744  width=0.7
745  bottom=0.1
746  height=0.65
747  bottom_h=bottom+height
748  rect_scatter=[left,bottom,width,height]
749  rect_table=[left,bottom_h,width,0.25]
750 
751  nullfmt=matplotlib.ticker.NullFormatter()
752  nullloc=matplotlib.ticker.NullLocator()
753  axtab=self.__fig.add_axes(rect_table,frameon=False)
754  axtab.set_axis_off()
755  axtab.xaxis.set_major_formatter(nullfmt)
756  axtab.yaxis.set_major_formatter(nullfmt)
757  axtab.xaxis.set_major_locator(nullloc)
758  axtab.yaxis.set_major_locator(nullloc)
759 
760  ax=self.__fig.add_axes(rect_scatter)
761 
762  majorLoc=matplotlib.ticker.LinearLocator(numticks=nticks)
763  minorLoc=matplotlib.ticker.LinearLocator(numticks=nticks*4)
764  ax.set_xlabel(r'LS',position=(0.96,0))
765  ax.set_ylabel(r'L $\mu$b$^{-1}$s$^{-1}$',position=(0,0.9))
766  ax.xaxis.set_major_locator(majorLoc)
767  ax.xaxis.set_minor_locator(minorLoc)
768  ax.set_xbound(lower=xpoints[0],upper=xpoints[-1])
769  xticklabels=ax.get_xticklabels()
770  for tx in xticklabels:
771  tx.set_horizontalalignment('right')
772  ax.grid(True)
773  keylist=ypoints.keys()
774  keylist.sort()
775  legendlist=[]
776 
777  for ylabel in keylist:
778  cl='k'
779  if self.colormap.has_key(ylabel):
780  cl=self.colormap[ylabel]
781  ax.plot(xpoints,ypoints[ylabel],'.',label=ylabel,color=cl)
782  legendlist.append(ylabel)
783  #ax.axhline(0,color='green',linewidth=0.2)
784  ax.axvline(xpoints[ncmsls-1],color='green',linewidth=0.2)
785  (unitstring,denomitor)=guessLumiUnit(totaldelivered)
786  colLabels=('run','fill','max inst(/$\mu$b/s)','delivered('+unitstring+')','recorded('+unitstring+')')
787  cellText=[[str(runnum),str(fill),'%.3f'%(peakinst),'%.3f'%(totaldelivered/denomitor),'%.3f'%(totalrecorded/denomitor)]]
788 
789  sumtable=axtab.table(cellText=cellText,colLabels=colLabels,colWidths=[0.12,0.1,0.27,0.27,0.27],cellLoc='center',loc='center')
790  trans=matplotlib.transforms.BlendedGenericTransform(ax.transData,ax.transAxes)
791  axtab.add_table(sumtable)
792 
793  ax.text(xpoints[0],1.02,starttime[0:17],transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
794  ax.text(xpoints[ncmsls-1],1.02,stoptime[0:17],transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
795  ax.legend(tuple(legendlist),loc='upper right',numpoints=1)
const T & max(const T &a, const T &b)
def matplotRender.matplotRender.plotPeakPerday_Time (   self,
  rawdata = {},
  resultlines = [],
  minTime = None,
  maxTime = None,
  nticks = 6,
  withannotation = False,
  yscale = 'linear',
  referenceLabel = 'Delivered',
  labels = ['Delivered'],
  textoutput = None 
)
THIS PLOT IS DELIVERED ONLY
Input:
rawdata={'Delivered':[(day,run,ls,instlumi)]}
resultlines=[[day,run,ls,maxinstlum],[]]
minTime (python DateTime) : min *begin* time to draw: format %m/%d/%y %H:%M:%S
maxTime (python DateTime): max *begin* time to draw %m/%d/%y %H:%M:%S
withannotation: wheather the boundary points should be annotated
referenceLabel: the one variable that decides the total unit and the plot x-axis range
labels: labels of the variables to plot

Definition at line 575 of file matplotRender.py.

References python.multivaluedict.append(), matplotRender.matplotRender.colormap, python.multivaluedict.dict, matplotRender.guessInstLumiUnit(), list(), max(), bookConverter.min, and split.

576  def plotPeakPerday_Time(self,rawdata={},resultlines=[],minTime=None,maxTime=None,nticks=6,withannotation=False,yscale='linear',referenceLabel='Delivered',labels=['Delivered'],textoutput=None):
577  '''
578  THIS PLOT IS DELIVERED ONLY
579  Input:
580  rawdata={'Delivered':[(day,run,ls,instlumi)]}
581  resultlines=[[day,run,ls,maxinstlum],[]]
582  minTime (python DateTime) : min *begin* time to draw: format %m/%d/%y %H:%M:%S
583  maxTime (python DateTime): max *begin* time to draw %m/%d/%y %H:%M:%S
584  withannotation: wheather the boundary points should be annotated
585  referenceLabel: the one variable that decides the total unit and the plot x-axis range
586  labels: labels of the variables to plot
587  '''
588  xpoints=[]
589  ypoints={}
590  legendlist=[]
591  maxinfo=''
592  ymax={}
593  lut=lumiTime.lumiTime()
594  if not minTime:
595  minTime='03/01/10 00:00:00'
596  minTime=lut.StrToDatetime(minTime,customfm='%m/%d/%y %H:%M:%S')
597  if not maxTime:
598  maxTime=datetime.datetime.utcnow()
599  else:
600  maxTime=lut.StrToDatetime(maxTime,customfm='%m/%d/%y %H:%M:%S')
601  for r in resultlines:
602  day=int(r[0])
603  runnumber=int(r[1])
604  lsnum=int(r[2].split('.')[0])
605  if rawdata and day in [int(t[0]) for t in rawdata[referenceLabel]]:continue
606  if day < minTime.date().toordinal():continue
607  if day > maxTime.date().toordinal():continue
608  for i,lab in enumerate(labels):
609  v=float(r[-(len(labels)-i)-1])
610  rawdata.setdefault(lab,[]).append((day,runnumber,lsnum,v))
611  if not rawdata:
612  print '[WARNING]: no data, do nothing'
613  return
614  maxlum=max([t[3] for t in rawdata[referenceLabel]])
615  minlum=min([t[3] for t in rawdata[referenceLabel] if t[3]>0]) #used only for log scale, fin the non-zero bottom
616  (unitstring,denomitor)=guessInstLumiUnit(maxlum)
617 
618  csvreport=None
619  rows=[]
620  flat=[]
621  MinDay=minTime.date().toordinal()
622  MaxDay=maxTime.date().toordinal()
623  fulldays=range(MinDay,MaxDay+1)
624  for label in rawdata.keys():
625  yvalues=rawdata[label]
626  yvalues.sort()#sort by day
627  alldays=[t[0] for t in yvalues]
628  alldates=[str(datetime.date.fromordinal(t)) for t in alldays]
629  ypoints[label]=[]
630  lumivals=[t[3] for t in yvalues]
631  flat.append(lumivals)
632  for d in fulldays:
633  if not d in alldays:
634  ypoints[label].append(0.0)
635  else:
636  thisdaylumi=[t[3] for t in yvalues if t[0]==d][0]
637  if yscale=='log':
638  if thisdaylumi<minlum:
639  thisdaylumi=minlum/denomitor
640  else:
641  thisdaylumi=thisdaylumi/denomitor
642  else:
643  thisdaylumi=thisdaylumi/denomitor
644  ypoints[label].append(thisdaylumi)
645  ymax[label]=max(lumivals)/denomitor
646  'ymax ',max(lumivals)
647  xpoints=fulldays
648  if textoutput:
649  csvreport=csvReporter.csvReporter(textoutput)
650  head=['#day','run','lsnum','maxinstlumi','date']
651  csvreport.writeRow(head)
652  flat.insert(0,alldays)
653  allruns=[ t[1] for t in rawdata[referenceLabel]]
654  allls=[ t[2] for t in rawdata[referenceLabel]]
655  flat.insert(1,allruns)
656  flat.insert(2,allls)
657  flat.append(alldates)
658  rows=zip(*flat)
659  csvreport.writeRows([list(t) for t in rows])
660 
661  yearStrMin=minTime.strftime('%Y')
662  yearStrMax=maxTime.strftime('%Y')
663  if yearStrMin==yearStrMax:
664  dateFmt=matplotlib.dates.DateFormatter('%d/%m')
665  else:
666  dateFmt=matplotlib.dates.DateFormatter('%d/%m/%y')
667  ax=self.__fig.add_subplot(111)
668  if yscale=='linear':
669  ax.set_yscale('linear')
670  elif yscale=='log':
671  ax.set_yscale('log')
672  else:
673  raise 'unsupported yscale ',yscale
674  majorLoc=matplotlib.ticker.LinearLocator(numticks=nticks)
675  minorLoc=matplotlib.ticker.LinearLocator(numticks=nticks*4)
676  ax.xaxis.set_major_formatter(dateFmt)
677  ax.set_xlabel(r'Date',position=(0.84,0))
678  ax.set_ylabel(r'L '+unitstring,position=(0,0.9))
679  ax.xaxis.set_major_locator(majorLoc)
680  ax.xaxis.set_minor_locator(minorLoc)
681  xticklabels=ax.get_xticklabels()
682  for tx in xticklabels:
683  tx.set_horizontalalignment('right')
684  ax.grid(True)
685  cl=self.colormap['Max Inst']
686  textsummaryhead=['#TotalRunningDays']
687  textsummaryline=['#'+str(len(alldays))]
688  for ylabel in labels:
689  cl='k'
690  if self.colormap.has_key(ylabel):
691  cl=self.colormap[ylabel]
692  ax.plot(xpoints,ypoints[ylabel],label='Max Inst',color=cl,drawstyle='steps')
693  legendlist.append('Max Inst %.3f'%(ymax[ylabel])+' '+unitstring)
694  textsummaryhead.append('Max Inst'+ylabel)
695  textsummaryline.append('%.3f'%(ymax[ylabel])+' '+unitstring)
696  if textoutput:
697  csvreport.writeRow(textsummaryhead)
698  csvreport.writeRow(textsummaryline)
699  ax.legend(tuple(legendlist),loc='upper left')
700  ax.set_xbound(lower=matplotlib.dates.date2num(minTime),upper=matplotlib.dates.date2num(maxTime))
701  if withannotation:
702  #annotations
703  trans=matplotlib.transforms.BlendedGenericTransform(ax.transData,ax.transAxes)
704  ax.text(xpoints[0],1.025,beginfo,transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
705  ax.text(xpoints[-1],1.025,endinfo,transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
706  ax.annotate(maxinfo,xy=(xmax,ymax),xycoords='data',xytext=(0,13),textcoords='offset points',arrowprops=dict(facecolor='green',shrink=0.05),size='x-small',horizontalalignment='center',color='green',bbox=dict(facecolor='white'))
707 
708  firstday=datetime.date.fromordinal(rawdata[referenceLabel][0][0])
709  lastday=datetime.date.fromordinal(rawdata[referenceLabel][-1][0])
710  firstdayStr=firstday.strftime('%Y %b %d')
711  lastdayStr=lastday.strftime('%Y %b %d')
712  ax.set_title('CMS Peak Luminosity/Day ('+firstdayStr+' - '+lastdayStr+')',size='small')
713 
714  #ax.autoscale(tight=True)
715  ax.autoscale_view(tight=True,scalex=True,scaley=False)
716  #ax.set_xmargin(0.015)
717  self.__fig.autofmt_xdate(bottom=0.18,rotation=15,ha='right')
718  self.__fig.subplots_adjust(bottom=0.2,left=0.15)
const T & max(const T &a, const T &b)
double split
Definition: MVATrainer.cc:139
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def matplotRender.matplotRender.plotPerdayX_Time (   self,
  rawdata = {},
  resultlines = [],
  minTime = None,
  maxTime = None,
  nticks = 6,
  yscale = 'linear',
  withannotation = False,
  referenceLabel = 'Delivered',
  labels = ['Delivered',
  Recorded,
  textoutput = None 
)
Input:
rawdata={'Delivered':[(day,begrun:ls,endrun:ls,lumi)],'Recorded':[(dayofyear,begrun:ls,endrun:ls,lumi)]}
resultlines=[[day,begrun:ls,endrun:ls,deliveredperday,recordedperday],[]]
minTime (python DateTime) : min *begin* time to draw: format %m/%d/%y %H:%M:%S
maxTime (python DateTime): max *begin* time to draw %m/%d/%y %H:%M:%S
withannotation: wheather the boundary points should be annotated
referenceLabel: the one variable that decides the total unit and the plot x-axis range
labels: labels of the variables to plot

Definition at line 432 of file matplotRender.py.

References python.multivaluedict.append(), matplotRender.matplotRender.colormap, matplotRender.guessLumiUnit(), list(), max(), and bookConverter.min.

433  def plotPerdayX_Time(self,rawdata={},resultlines=[],minTime=None,maxTime=None,nticks=6,yscale='linear',withannotation=False,referenceLabel='Delivered',labels=['Delivered','Recorded'],textoutput=None):
434  '''
435  Input:
436  rawdata={'Delivered':[(day,begrun:ls,endrun:ls,lumi)],'Recorded':[(dayofyear,begrun:ls,endrun:ls,lumi)]}
437  resultlines=[[day,begrun:ls,endrun:ls,deliveredperday,recordedperday],[]]
438  minTime (python DateTime) : min *begin* time to draw: format %m/%d/%y %H:%M:%S
439  maxTime (python DateTime): max *begin* time to draw %m/%d/%y %H:%M:%S
440  withannotation: wheather the boundary points should be annotated
441  referenceLabel: the one variable that decides the total unit and the plot x-axis range
442  labels: labels of the variables to plot
443  '''
444  xpoints=[]
445  ypoints={}
446  ymax={}
447  lut=lumiTime.lumiTime()
448  if not minTime:
449  minTime='03/01/10 00:00:00'
450  minTime=lut.StrToDatetime(minTime,customfm='%m/%d/%y %H:%M:%S')
451  if not maxTime:
452  maxTime=datetime.datetime.utcnow()
453  else:
454  maxTime=lut.StrToDatetime(maxTime,customfm='%m/%d/%y %H:%M:%S')
455  for r in resultlines:
456  day=int(r[0])
457  begrunls=r[1]
458  endrunls=r[2]
459  #[begrun,begls]=[int(s) for s in r[1].split(':')]
460  if rawdata and day in [t[0] for t in rawdata[referenceLabel]]:continue
461  if day < minTime.date().toordinal():continue
462  if day > maxTime.date().toordinal():continue
463  for i,lab in enumerate(labels):
464  v=float(r[-(len(labels)-i)-1])
465  rawdata.setdefault(lab,[]).append((day,begrunls,endrunls,v))
466  if not rawdata:
467  print '[WARNING]: no data, do nothing'
468  return
469  maxlum=max([t[3] for t in rawdata[referenceLabel]])
470  minlum=min([t[3] for t in rawdata[referenceLabel] if t[3]>0]) #used only for log scale, fin the non-zero bottom
471  (unitstring,denomitor)=guessLumiUnit(maxlum)
472  csvreport=None
473  rows=[]
474  flat=[]
475  MinDay=minTime.date().toordinal()
476  MaxDay=maxTime.date().toordinal()
477  fulldays=range(MinDay,MaxDay+1)
478  allstarts=[]
479  allstops=[]
480  for label,yvalues in rawdata.items():
481  yvalues.sort()
482  flat.append([t[3] for t in yvalues])
483  alldays=[t[0] for t in yvalues]
484  alldates=[str(datetime.date.fromordinal(t)) for t in alldays]
485  ypoints[label]=[]
486  lumivals=[t[3] for t in yvalues]
487  for d in fulldays:
488  if not d in alldays:
489  ypoints[label].append(0.0)
490  else:
491  thisdaylumi=[t[3] for t in yvalues if t[0]==d][0]
492  if yscale=='log':
493  if thisdaylumi<minlum:
494  thisdaylumi=minlum/denomitor
495  else:
496  thisdaylumi=thisdaylumi/denomitor
497  else:
498  thisdaylumi=thisdaylumi/denomitor
499  ypoints[label].append(thisdaylumi)
500  ymax[label]=max(lumivals)/denomitor
501  xpoints=fulldays
502  if textoutput:
503  csvreport=csvReporter.csvReporter(textoutput)
504  head=['#day','begrunls','endrunls','delivered','recorded','date']
505  csvreport.writeRow(head)
506  flat.insert(0,alldays)
507  allstarts=[ t[1] for t in rawdata[referenceLabel]]
508  allstops=[ t[2] for t in rawdata[referenceLabel]]
509  #print 'allstarts ',allstarts
510  flat.insert(1,allstarts)
511  flat.insert(2,allstops)
512  flat.append(alldates)
513  rows=zip(*flat)
514  csvreport.writeRows([list(t) for t in rows])
515  yearStrMin=minTime.strftime('%Y')
516  yearStrMax=maxTime.strftime('%Y')
517  if yearStrMin==yearStrMax:
518  dateFmt=matplotlib.dates.DateFormatter('%d/%m')
519  else:
520  dateFmt=matplotlib.dates.DateFormatter('%d/%m/%y')
521  ax=self.__fig.add_subplot(111)
522  if yscale=='linear':
523  ax.set_yscale('linear')
524  elif yscale=='log':
525  ax.set_yscale('log')
526  else:
527  raise 'unsupported yscale ',yscale
528  majorLoc=matplotlib.ticker.LinearLocator(numticks=nticks)
529  minorLoc=matplotlib.ticker.LinearLocator(numticks=nticks*4)
530  ax.xaxis.set_major_formatter(dateFmt)
531  ax.set_xlabel(r'Date',position=(0.84,0))
532  ax.xaxis.set_major_locator(majorLoc)
533  ax.xaxis.set_minor_locator(minorLoc)
534  xticklabels=ax.get_xticklabels()
535  for tx in xticklabels:
536  tx.set_horizontalalignment('right')
537  ax.grid(True)
538  legendlist=[]
539  ax.set_ylabel(r'L '+unitstring,position=(0,0.9))
540  textsummaryhead=['#TotalRunningDays']
541  textsummaryline=['#'+str(len(alldays))]
542  for ylabel in labels:
543  cl='k'
544  if self.colormap.has_key(ylabel):
545  cl=self.colormap[ylabel]
546  ax.plot(xpoints,ypoints[ylabel],label=ylabel,color=cl,drawstyle='steps')
547  legendlist.append(ylabel+' Max '+'%.3f'%(ymax[ylabel])+' '+unitstring)
548  textsummaryhead.append('Max'+ylabel)
549  textsummaryline.append('%.3f'%(ymax[ylabel])+' '+unitstring)
550  if textoutput:
551  csvreport.writeRow(textsummaryhead)
552  csvreport.writeRow(textsummaryline)
553  ax.legend(tuple(legendlist),loc='upper left')
554  ax.set_xbound(lower=matplotlib.dates.date2num(minTime),upper=matplotlib.dates.date2num(maxTime))
555  #if withannotation:
556  # begtime=boundaryInfo[0][0]
557  # beginfo=boundaryInfo[0][1]
558  # endtime=boundaryInfo[1][0]
559  # endinfo=boundaryInfo[1][1]
560  # #annotations
561  # trans=matplotlib.transforms.BlendedGenericTransform(ax.transData,ax.transAxes)
562  # ax.text(matplotlib.dates.date2num(begtime),1.025,beginfo,transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
563  # ax.text(matplotlib.dates.date2num(endtime),1.025,endinfo,transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
564 
565  firstday=datetime.date.fromordinal(rawdata[referenceLabel][0][0])
566  lastday=datetime.date.fromordinal(rawdata[referenceLabel][-1][0])
567  firstdayStr=firstday.strftime('%Y %b %d')
568  lastdayStr=lastday.strftime('%Y %b %d')
569  ax.set_title('CMS Integrated Luminosity/Day ('+firstdayStr+' - '+lastdayStr+')',size='small')
570  #ax.autoscale(tight=True)
571  ax.autoscale_view(tight=True,scalex=True,scaley=False)
572  #ax.set_xmargin(0.015)
573  self.__fig.autofmt_xdate(bottom=0.18,rotation=15,ha='right')
574  self.__fig.subplots_adjust(bottom=0.2,left=0.15)
const T & max(const T &a, const T &b)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def matplotRender.matplotRender.plotSumX_Fill (   self,
  rawdata = {},
  resultlines = [],
  minFill = None,
  maxFill = None,
  nticks = 6,
  yscale = 'linear',
  withannotation = False,
  referenceLabel = 'Delivered',
  labels = ['Delivered',
  Recorded,
  textoutput = None 
)
input:
rawdata = {'Delivered':[(fill,runnumber,lumiperrun)],'Recorded':[(fill,runnumber,lumiperrun)]}
resultlines = [[fillnumber,runnumber,dellumiperrun,reclumiperrun],[fillnumber,runnumber,dellumiperrun,reclumiperrun],]
minFill : min fill to draw
maxFill : max fill to draw
yscale: linear,log or both
withannotation: wheather the boundary points should be annotated
textoutput: text output file name. 

Definition at line 203 of file matplotRender.py.

References python.multivaluedict.append(), matplotRender.matplotRender.colormap, python.multivaluedict.dict, matplotRender.guessLumiUnit(), and list().

204  def plotSumX_Fill(self,rawdata={},resultlines=[],minFill=None,maxFill=None,nticks=6,yscale='linear',withannotation=False,referenceLabel='Delivered',labels=['Delivered','Recorded'],textoutput=None):
205  '''
206  input:
207  rawdata = {'Delivered':[(fill,runnumber,lumiperrun)],'Recorded':[(fill,runnumber,lumiperrun)]}
208  resultlines = [[fillnumber,runnumber,dellumiperrun,reclumiperrun],[fillnumber,runnumber,dellumiperrun,reclumiperrun],]
209  minFill : min fill to draw
210  maxFill : max fill to draw
211  yscale: linear,log or both
212  withannotation: wheather the boundary points should be annotated
213  textoutput: text output file name.
214  '''
215  ytotal={}
216  ypoints={}
217  for r in resultlines: #parse old text data
218  fillnum=int(r[0])
219  runnum=int(r[1])
220  if rawdata and (fillnum,runnum) in [(t[0],t[1]) for t in rawdata[referenceLabel]]:continue
221  if minFill and fillnum<minFill:continue
222  if maxFill and fillnum>maxFill:continue
223  for i,lab in enumerate(labels) :
224  v=float(r[-(len(labels)-i)])#the values to plot are always the last n fields
225  rawdata.setdefault(lab,[]).append((fillnum,runnum,v))
226  #print 'fillrunDict ',fillrunDict
227  if not rawdata:
228  print '[WARNING]: no data, do nothing'
229  return
230  tot=sum([t[2] for t in rawdata[referenceLabel]])
231  beginfo=''
232  endinfo=''
233  (unitstring,denomitor)=guessLumiUnit(tot)
234  csvreport=None
235  rows=[]
236  flat=[]
237  for label,yvalues in rawdata.items():
238  yvalues.sort()
239  flat.append([t[2] for t in yvalues])
240  ypoints[label]=[]
241  ytotal[label]=0.0
242  lumivals=[t[2] for t in yvalues]
243  for i,val in enumerate(lumivals):
244  ypoints[label].append(sum(lumivals[0:i+1])/denomitor)
245  ytotal[label]=sum(lumivals)/denomitor
246  xpoints=[t[0] for t in rawdata[referenceLabel]]#after sort
247  ax=self.__fig.add_subplot(111)
248  ax.set_xlabel(r'LHC Fill Number',position=(0.84,0))
249  ax.set_ylabel(r'L '+unitstring,position=(0,0.9))
250  ax.set_xbound(lower=xpoints[0],upper=xpoints[-1])
251  if yscale=='linear':
252  ax.set_yscale('linear')
253  elif yscale=='log':
254  ax.set_yscale('log')
255  else:
256  raise 'unsupported yscale ',yscale
257  xticklabels=ax.get_xticklabels()
258  majorLocator=matplotlib.ticker.LinearLocator( nticks )
259  majorFormatter=matplotlib.ticker.FormatStrFormatter('%d')
260  #minorLocator=matplotlib.ticker.MultipleLocator(sampleinterval)
261  ax.xaxis.set_major_locator(majorLocator)
262  ax.xaxis.set_major_formatter(majorFormatter)
263  #ax.xaxis.set_minor_locator(minorLocator)
264  ax.grid(True)
265  keylist=ypoints.keys()
266  keylist.sort()
267  keylist.insert(0,keylist.pop(keylist.index(referenceLabel)))#move refereceLabel to front from now on
268  legendlist=[]
269  head=['#fill','run']
270  textsummaryhead=['#TotalFill']
271  textsummaryline=['#'+str(len(xpoints))]
272  for ylabel in keylist:
273  cl='k'
274  if self.colormap.has_key(ylabel):
275  cl=self.colormap[ylabel]
276  ax.plot(xpoints,ypoints[ylabel],label=ylabel,color=cl,drawstyle='steps')
277  legendlist.append(ylabel+' '+'%.3f'%(ytotal[ylabel])+' '+unitstring)
278  textsummaryhead.append('Total'+ylabel)
279  textsummaryline.append('%.3f'%(ytotal[ylabel])+' '+unitstring)
280  head.append(ylabel)
281  if textoutput:
282  csvreport=csvReporter.csvReporter(textoutput)
283  allfills=[int(t[0]) for t in rawdata[referenceLabel]]
284  allruns=[int(t[1]) for t in rawdata[referenceLabel]]
285  flat.insert(0,allfills)
286  flat.insert(1,allruns)
287  rows=zip(*flat)
288  csvreport.writeRow(head)
289  csvreport.writeRows([list(t) for t in rows])
290  csvreport.writeRow(textsummaryhead)
291  csvreport.writeRow(textsummaryline)
292  #font=FontProperties(size='medium',weight='demibold')
293  #annotations
294  if withannotation:
295  trans=matplotlib.transforms.BlendedGenericTransform(ax.transData,ax.transAxes)
296  ax.text(xpoints[0],1.025,beginfo,transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
297  ax.text(xpoints[-1],1.025,endinfo,transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
298  #legend
299  ax.legend(tuple(legendlist),loc='upper left')
300  #adjust
301  self.__fig.subplots_adjust(bottom=0.1,left=0.1)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def matplotRender.matplotRender.plotSumX_Run (   self,
  rawdata = {},
  resultlines = [],
  minRun = None,
  maxRun = None,
  nticks = 6,
  yscale = 'linear',
  withannotation = False,
  referenceLabel = 'Delivered',
  labels = ['Delivered',
  Recorded,
  textoutput = None 
)
input:
  rawdata = {'Delivered':[(runnumber,lumiperrun),..],'Recorded':[(runnumber,lumiperrun),..]}
  resultlines = [[runnumber,dellumiperrun,reclumiperrun],[runnumber,dellumiperrun,reclumiperrun],]
  minRun : minimal runnumber required
  maxRun : max runnumber required
  yscale: linear,log or both
  withannotation: wheather the boundary points should be annotated
  referenceLabel: the one variable that decides the total unit and the plot x-axis range
  labels: labels of the variables to plot
  textoutput: text output file name. 

Definition at line 104 of file matplotRender.py.

References python.multivaluedict.append(), matplotRender.matplotRender.colormap, python.multivaluedict.dict, matplotRender.guessLumiUnit(), and list().

105  def plotSumX_Run(self,rawdata={},resultlines=[],minRun=None,maxRun=None,nticks=6,yscale='linear',withannotation=False,referenceLabel='Delivered',labels=['Delivered','Recorded'],textoutput=None):
106  '''
107  input:
108  rawdata = {'Delivered':[(runnumber,lumiperrun),..],'Recorded':[(runnumber,lumiperrun),..]}
109  resultlines = [[runnumber,dellumiperrun,reclumiperrun],[runnumber,dellumiperrun,reclumiperrun],]
110  minRun : minimal runnumber required
111  maxRun : max runnumber required
112  yscale: linear,log or both
113  withannotation: wheather the boundary points should be annotated
114  referenceLabel: the one variable that decides the total unit and the plot x-axis range
115  labels: labels of the variables to plot
116  textoutput: text output file name.
117  '''
118  ypoints={}
119  ytotal={}
120  for r in resultlines:#parse old text data
121  runnumber=int(r[0])
122  if rawdata and runnumber in [t[0] for t in rawdata[referenceLabel]]:continue#use text input only if not in selected data
123  if minRun and runnumber<minRun: continue
124  if maxRun and runnumber>maxRun: continue
125  for i,lab in enumerate(labels) :
126  v=float(r[-(len(labels)-i)-1])#the values to plot are always the last n fields
127  rawdata.setdefault(lab,[]).append((runnumber,v))
128  if not rawdata:
129  print '[WARNING]: no data to plot , exit'
130  return
131 
132  tot=sum([t[1] for t in rawdata[referenceLabel]])
133  (unitstring,denomitor)=guessLumiUnit(tot)
134  csvreport=None
135  rows=[]
136  flat=[]
137  for label,yvalues in rawdata.items():
138  yvalues.sort()
139  flat.append([t[1] for t in yvalues])
140  ypoints[label]=[]
141  ytotal[label]=0.0
142  lumivals=[t[1] for t in yvalues]
143  for i,val in enumerate(lumivals):
144  ypoints[label].append(sum(lumivals[0:i+1])/denomitor)#integrated lumi
145  ytotal[label]=sum(lumivals)/denomitor
146  xpoints=[t[0] for t in rawdata[referenceLabel]]
147  ax=self.__fig.add_subplot(111)
148  if yscale=='linear':
149  ax.set_yscale('linear')
150  elif yscale=='log':
151  ax.set_yscale('log')
152  else:
153  raise 'unsupported yscale ',yscale
154  ax.set_xlabel(r'Run',position=(0.95,0))
155  ax.set_ylabel(r'L '+unitstring,position=(0,0.9))
156  xticklabels=ax.get_xticklabels()
157  for tx in xticklabels:
158  tx.set_rotation(30)
159  majorLocator=matplotlib.ticker.LinearLocator( nticks )
160  majorFormatter=matplotlib.ticker.FormatStrFormatter('%d')
161  minorLocator=matplotlib.ticker.LinearLocator(numticks=4*nticks)
162  ax.xaxis.set_major_locator(majorLocator)
163  ax.xaxis.set_major_formatter(majorFormatter)
164  ax.xaxis.set_minor_locator(minorLocator)
165  ax.set_xbound(lower=xpoints[0],upper=xpoints[-1])
166  ax.grid(True)
167  keylist=ypoints.keys()
168  keylist.sort()
169  keylist.insert(0,keylist.pop(keylist.index(referenceLabel)))#move refereceLabel to front from now on
170  legendlist=[]
171  head=['#Run']
172  textsummaryhead=['#TotalRun']
173  textsummaryline=['#'+str(len(xpoints))]
174  for ylabel in keylist:
175  cl='k'
176  if self.colormap.has_key(ylabel):
177  cl=self.colormap[ylabel]
178  ax.plot(xpoints,ypoints[ylabel],label=ylabel,color=cl,drawstyle='steps')
179  legendlist.append(ylabel+' '+'%.3f'%(ytotal[ylabel])+' '+unitstring)
180  textsummaryhead.append('Total'+ylabel)
181  textsummaryline.append('%.3f'%(ytotal[ylabel])+' '+unitstring)
182  head.append(ylabel)
183  if textoutput:
184  csvreport=csvReporter.csvReporter(textoutput)
185  csvreport.writeRow(head)
186  allruns=[int(t[0]) for t in rawdata[referenceLabel]]
187  flat.insert(0,allruns)
188  rows=zip(*flat)
189  csvreport.writeRows([list(t) for t in rows])
190  csvreport.writeRow(textsummaryhead)
191  csvreport.writeRow(textsummaryline)
192  #font=FontProperties(size='medium',weight='demibold')
193  #legend
194  ax.legend(tuple(legendlist),loc='upper left')
195  #adjust
196  self.__fig.subplots_adjust(bottom=0.18,left=0.1)
197  #annotations
198  if withannotation:
199  trans=matplotlib.transforms.BlendedGenericTransform(ax.transData,ax.transAxes)
200  ax.text(xpoints[0],1.025,str(xpoints[0]),transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
201  ax.text(xpoints[-1],1.025,str(xpoints[-1]),transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
202 
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
def matplotRender.matplotRender.plotSumX_Time (   self,
  rawdata = {},
  resultlines = [],
  minTime = None,
  maxTime = None,
  nticks = 6,
  yscale = 'linear',
  withannotation = False,
  referenceLabel = 'Delivered',
  labels = ['Delivered',
  Recorded,
  textoutput = None 
)
input:
rawdata = {'Delivered':[(runnumber,starttimestamp,stoptimestamp,lumiperrun)],'Recorded':[(runnumber,starttimestamp,stoptimestamp,lumiperrun)]}
resultlines = [[runnumber,starttimestampStr,stoptimestampStr,dellumiperrun,reclumiperrun],[runnumber,starttimestampStr,stoptimestampStr,dellumiperrun,reclumiperrun],]
minTime (python DateTime) : min *begin* time to draw: format %m/%d/%y %H:%M:%S
maxTime (python DateTime): max *begin* time to draw %m/%d/%y %H:%M:%S
yscale: linear,log or both
withannotation: wheather the boundary points should be annotated
referenceLabel: the one variable that decides the total unit and the plot x-axis range
labels: labels of the variables to plot

Definition at line 302 of file matplotRender.py.

References python.multivaluedict.append(), matplotRender.matplotRender.colormap, python.multivaluedict.dict, matplotRender.guessLumiUnit(), list(), and split.

303  def plotSumX_Time(self,rawdata={},resultlines=[],minTime=None,maxTime=None,nticks=6,yscale='linear',withannotation=False,referenceLabel='Delivered',labels=['Delivered','Recorded'],textoutput=None):
304  '''
305  input:
306  rawdata = {'Delivered':[(runnumber,starttimestamp,stoptimestamp,lumiperrun)],'Recorded':[(runnumber,starttimestamp,stoptimestamp,lumiperrun)]}
307  resultlines = [[runnumber,starttimestampStr,stoptimestampStr,dellumiperrun,reclumiperrun],[runnumber,starttimestampStr,stoptimestampStr,dellumiperrun,reclumiperrun],]
308  minTime (python DateTime) : min *begin* time to draw: format %m/%d/%y %H:%M:%S
309  maxTime (python DateTime): max *begin* time to draw %m/%d/%y %H:%M:%S
310  yscale: linear,log or both
311  withannotation: wheather the boundary points should be annotated
312  referenceLabel: the one variable that decides the total unit and the plot x-axis range
313  labels: labels of the variables to plot
314  '''
315  xpoints=[]
316  ypoints={}
317  ytotal={}
318  lut=lumiTime.lumiTime()
319  if not minTime:
320  minTime='03/01/10 00:00:00'
321  minTime=lut.StrToDatetime(minTime,customfm='%m/%d/%y %H:%M:%S')
322  if not maxTime:
323  maxTime=datetime.datetime.utcnow()
324  else:
325  maxTime=lut.StrToDatetime(maxTime,customfm='%m/%d/%y %H:%M:%S')
326  for r in resultlines:
327  runnumber=int(r[0])
328  starttimeStr=r[1].split('.')[0]
329  starttime=lut.StrToDatetime(starttimeStr,customfm='%Y-%m-%d %H:%M:%S')
330  stoptimeStr=r[2].split('.')[0]
331  stoptime=lut.StrToDatetime(stoptimeStr,customfm='%Y-%m-%d %H:%M:%S')
332  if rawdata and runnumber in [t[0] for t in rawdata[referenceLabel]]:continue
333  if starttime<minTime:continue
334  if starttime>maxTime:continue
335 
336  for i,lab in enumerate(labels):
337  v=float(r[-(len(labels)-i)])
338  rawdata.setdefault(lab,[]).append((runnumber,starttime,stoptime,v))
339  if not rawdata:
340  print '[WARNING]: no data, do nothing'
341  return
342  tot=sum([t[3] for t in rawdata[referenceLabel]])
343  (unitstring,denomitor)=guessLumiUnit(tot)
344  csvreport=None
345  rows=[]
346  flat=[]
347  for label,yvalues in rawdata.items():
348  yvalues.sort()
349  flat.append([t[3] for t in yvalues])
350  if label==referenceLabel:
351  minTime=yvalues[0][1]
352  maxTime=yvalues[-1][1]
353  ypoints[label]=[]
354  lumivals=[t[3] for t in yvalues]
355  for i,val in enumerate(lumivals):
356  ypoints[label].append(sum(lumivals[0:i+1])/denomitor)
357  ytotal[label]=sum(lumivals)/denomitor
358  xpoints=[matplotlib.dates.date2num(t[1]) for t in rawdata[referenceLabel]]
359  ax=self.__fig.add_subplot(111)
360  ax.set_yscale(yscale)
361  yearStrMin=minTime.strftime('%Y')
362  yearStrMax=maxTime.strftime('%Y')
363  if yearStrMin==yearStrMax:
364  dateFmt=matplotlib.dates.DateFormatter('%d/%m')
365  else:
366  dateFmt=matplotlib.dates.DateFormatter('%d/%m/%y')
367  majorLoc=matplotlib.ticker.LinearLocator(numticks=nticks)
368  ax.xaxis.set_major_locator(majorLoc)
369  minorLoc=matplotlib.ticker.LinearLocator(numticks=nticks*4)
370  ax.xaxis.set_major_formatter(dateFmt)
371  ax.set_xlabel(r'Date',position=(0.84,0))
372  ax.set_ylabel(r'L '+unitstring,position=(0,0.9))
373  ax.xaxis.set_minor_locator(minorLoc)
374  ax.set_xbound(lower=xpoints[0],upper=xpoints[-1])
375  xticklabels=ax.get_xticklabels()
376  for tx in xticklabels:
377  tx.set_horizontalalignment('left')
378  ax.grid(True)
379  keylist=ypoints.keys()
380  keylist.sort()
381  keylist.insert(0,keylist.pop(keylist.index(referenceLabel)))#move refereceLabel to front from now on
382  legendlist=[]
383  head=['#Run','StartTime','StopTime']
384  textsummaryhead=['#TotalRun']
385  textsummaryline=['#'+str(len(xpoints))]
386  for ylabel in keylist:
387  cl='k'
388  if self.colormap.has_key(ylabel):
389  cl=self.colormap[ylabel]
390  ax.plot(xpoints,ypoints[ylabel],label=ylabel,color=cl,drawstyle='steps')
391  legendlist.append(ylabel+' '+'%.3f'%(ytotal[ylabel])+' '+unitstring)
392  textsummaryhead.append('Total'+ylabel)
393  textsummaryline.append('%.3f'%(ytotal[ylabel])+' '+unitstring)
394  head.append(ylabel)
395  if textoutput:
396  csvreport=csvReporter.csvReporter(textoutput)
397  csvreport.writeRow(head)
398  allruns=[int(t[0]) for t in rawdata[referenceLabel]]
399  allstarts=[ lut.DatetimeToStr(t[1],customfm='%Y-%m-%d %H:%M:%S') for t in rawdata[referenceLabel] ]
400  allstops=[ lut.DatetimeToStr(t[2],customfm='%Y-%m-%d %H:%M:%S') for t in rawdata[referenceLabel] ]
401  flat.insert(0,allruns)
402  flat.insert(1,allstarts)
403  flat.insert(2,allstops)
404  rows=zip(*flat)
405  csvreport.writeRows([list(t) for t in rows])
406  csvreport.writeRow(textsummaryhead)
407  csvreport.writeRow(textsummaryline)
408  #annotations
409  trans=matplotlib.transforms.BlendedGenericTransform(ax.transData,ax.transAxes)
410  #print 'run boundary ',runs[0],runs[-1]
411  #print 'xpoints boundary ',xpoints[0],xpoints[-1]
412  #annotation
413  if withannotation:
414  runs=[t[0] for t in rawdata[referenceLabel]]
415  ax.text(xpoints[0],1.025,str(runs[0]),transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
416  ax.text(xpoints[-1],1.025,str(runs[-1]),transform=trans,horizontalalignment='left',size='x-small',color='green',bbox=dict(facecolor='white'))
417 
418  if yearStrMin==yearStrMax:
419  firsttimeStr=rawdata[referenceLabel][1][1].strftime('%b %d %H:%M') #time range(start) in the title is the first run beg time
420  lasttimeStr=rawdata[referenceLabel][-1][2].strftime('%b %d %H:%M') #time range(stop) in the tile is the last run stop time
421  #firstimeStr=minTime.strftime('%b %d %H:%M')
422  #lasttimeStr=maxTime.strftime('%b %d %H:%M')
423  #ax.set_title('CMS Total Integrated Luminosity '+yearStrMin+' ('+firstimeStr+' - '+lasttimeStr+' UTC)',size='small',family='fantasy')
424  ax.set_title('CMS Total Integrated Luminosity '+yearStrMin+' ('+firsttimeStr+' - '+lasttimeStr+' UTC)',size='small')
425  else:
426  #ax.set_title('CMS Total Integrated Luminosity '+yearStrMin+'-'+yearStrMax,size='small',family='fantasy')
427  ax.set_title('CMS Total Integrated Luminosity '+yearStrMin+'-'+yearStrMax,size='small')
428  ax.legend(tuple(legendlist),loc='upper left')
429  ax.autoscale_view(tight=True,scalex=True,scaley=False)
430  self.__fig.autofmt_xdate(bottom=0.18,rotation=15,ha='right')
431  self.__fig.subplots_adjust(bottom=0.2,left=0.15)
double split
Definition: MVATrainer.cc:139
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run

Member Data Documentation

matplotRender.matplotRender.__canvas
private

Definition at line 97 of file matplotRender.py.

Referenced by matplotRender.matplotRender.drawHTTPstring(), and matplotRender.matplotRender.drawPNG().

matplotRender.matplotRender.__fig
private

Definition at line 96 of file matplotRender.py.

Referenced by matplotRender.matplotRender.drawHTTPstring(), matplotRender.matplotRender.drawInteractive(), and matplotRender.matplotRender.drawPNG().

matplotRender.matplotRender.colormap

Definition at line 98 of file matplotRender.py.

Referenced by matplotRender.matplotRender.plotInst_RunLS(), matplotRender.matplotRender.plotPeakPerday_Time(), matplotRender.matplotRender.plotPerdayX_Time(), matplotRender.matplotRender.plotSumX_Fill(), matplotRender.matplotRender.plotSumX_Run(), and matplotRender.matplotRender.plotSumX_Time().