| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DataQuality::Tools::DiagnosticAlg Class Reference

List of all members.

Public Member Functions

def __init__
def initialize
def execute
def finalize

Public Attributes

 SaveHistograms
 figures

Detailed Description

Definition at line 761 of file Tools.py.


Member Function Documentation

def DataQuality::Tools::DiagnosticAlg::__init__ (   self,
  name 
)

Definition at line 763 of file Tools.py.

00763                            :
00764         DybPythonAlg.__init__(self,name)
00765         self.SaveHistograms = True
00766         return
00767 
    def initialize(self):

def DataQuality::Tools::DiagnosticAlg::initialize (   self  ) 

Definition at line 768 of file Tools.py.

00768                         :
00769         status = DybPythonAlg.initialize(self)
00770         if status.isFailure(): return status
00771         self.info("initialize")
00772 
00773         self.figures = [{"name"    :"genTime",
00774                          "title"   :"Generator Time",
00775                          "draw"    :"genTimeSec+(genTimeNanoSec*1e-9)",
00776                          "cut"     :"hasGen",
00777                          "options" :"",
00778                          "xaxis"   :"time [s]",
00779                          "yaxis"   :"Generated Events",
00780                          "filename":"genTime.png"
00781                          },
00782                         {"name"    :"nGenParticles",
00783                          "title"   :"Number of Generated Particles",
00784                          "draw"    :"nGenParticles>>htemp(20,0,20)",
00785                          "cut"     :"hasGen",
00786                          "options" :"",
00787                          "xaxis"   :"Number of particles",
00788                          "yaxis"   :"Generated Events",
00789                          "filename":"nGenParticles.png"
00790                          },
00791                         {"name"    :"genPdgid",
00792                          "title"   :"PDG ID",
00793                          "draw"    :"genPdgid",
00794                          "cut"     :"hasGen",
00795                          "options" :"",
00796                          "xaxis"   :"PDG ID",
00797                          "yaxis"   :"Generated Particles",
00798                          "filename":"genPdgid.png"
00799                          },
00800                         {"name"    :"genPosition",
00801                          "title"   :"Generated Position",
00802                          "draw"    :"genZ:genY:genX",
00803                          "cut"     :"hasGen",
00804                          "options" :"",
00805                          "xaxis"   :"x [mm]",
00806                          "yaxis"   :"y [mm]",
00807                          "zaxis"   :"z [mm]",
00808                          "filename":"genPosition.png"
00809                          },
00810                         {"name"    :"genE",
00811                          "title"   :"Generated Particle Energy",
00812                          "draw"    :"genE",
00813                          "cut"     :"hasGen",
00814                          "options" :"",
00815                          "xaxis"   :"Energy [MeV]",
00816                          "yaxis"   :"Generated Particles",
00817                          "filename":"genE.png"
00818                          },
00819                         {"name"    :"genT",
00820                          "title"   :"Generated Particle Time Offset",
00821                          "draw"    :"genT",
00822                          "cut"     :"hasGen",
00823                          "options" :"",
00824                          "xaxis"   :"Time Offset [ns]",
00825                          "yaxis"   :"Generated Particles",
00826                          "filename":"genT.png"
00827                          },
00828                         {"name"    :"nSimHits",
00829                          "title"   :"Number of Simulated Hits",
00830                          "draw"    :"nSimHits>>htemp(2000,0,2000)",
00831                          "cut"     :"hasSim",
00832                          "options" :"",
00833                          "xaxis"   :"Number of hits on detectors",
00834                          "yaxis"   :"Number of Simulated Events",
00835                          "filename":"nSimHits.png"
00836                          },
00837                         {"name"    :"simHitTime",
00838                          "title"   :"Simulated Hit Time",
00839                          "draw"    :"simHitTime>>htemp(1000,0,500)",
00840                          "cut"     :"hasSim",
00841                          "options" :"",
00842                          "xaxis"   :"time [ns]",
00843                          "yaxis"   :"Number of hits",
00844                          "filename":"simHitTime.png"
00845                          },
00846                         {"name"    :"simHitPosition",
00847                          "title"   :"Simulated Hit Position on PMT",
00848                          "draw"    :"simHitZ:simHitY:simHitX>>htemp(100,-100,100,100,-100,100,150,0,150)",
00849                          "cut"     :"hasSim",
00850                          "options" :"",
00851                          "xaxis"   :"x [mm]",
00852                          "yaxis"   :"y [mm]",
00853                          "zaxis"   :"z [mm]",
00854                          "filename":"simHitPosition.png"
00855                          },
00856                         {"name"    :"simHitPmt",
00857                          "title"   :"Simulated Hits on AD PMTs",
00858                          "draw"    :"simHitRing:simHitColumn>>htemp(25,0,25,9,0,9)",
00859                          "cut"     :"hasSim",
00860                          "options" :"colz",
00861                          "xaxis"   :"PMT column",
00862                          "yaxis"   :"PMT ring",
00863                          "filename":"simHitPmt.png"
00864                          },
00865                         {"name"    :"simQuenchedEnergyGdLS",
00866                          "title"   :"Quenched energy deposition in GdLS",
00867                          "draw"    :"simUnobs_QEDepInGdLS_sum>>htemp(2000,0,20)",
00868                          "cut"     :"",
00869                          "options" :"",
00870                          "xaxis"   :"Quenched Energy [MeV]",
00871                          "yaxis"   :"Number of Simulated Events",
00872                          "filename":"simQuenchedEnergyGdLS.png"
00873                          },
00874                         {"name"    :"simQuenchedEnergyLS",
00875                          "title"   :"Quenched energy deposition in LS",
00876                          "draw"    :"simUnobs_QEDepInLS_sum>>htemp(2000,0,20)",
00877                          "cut"     :"",
00878                          "options" :"",
00879                          "xaxis"   :"Quenched Energy [MeV]",
00880                          "yaxis"   :"Number of Simulated Events",
00881                          "filename":"simQuenchedEnergyLS.png"
00882                          },
00883                         {"name"    :"simQuenchedEnergyOil",
00884                          "title"   :"Quenched energy deposition in Buffer Oil",
00885                          "draw"    :"simUnobs_QEDepInOIL_sum>>htemp(2000,0,20)",
00886                          "cut"     :"",
00887                          "options" :"",
00888                          "xaxis"   :"Quenched Energy [MeV]",
00889                          "yaxis"   :"Number of Simulated Events",
00890                          "filename":"simQuenchedEnergyOil.png"
00891                          },
00892                         {"name"    :"hasReadout",
00893                          "title"   :"Detector Triggered?",
00894                          "draw"    :"hasReadout>>htemp(2,0,2)",
00895                          "cut"     :"hasRo",
00896                          "options" :"",
00897                          "xaxis"   :"False=0, True=1",
00898                          "yaxis"   :"Number of Events",
00899                          "filename":"hasReadout.png"
00900                          },
00901                         {"name"    :"readoutDetector",
00902                          "title"   :"Triggered Detector",
00903                          "draw"    :"roSite:roDetector>>htemp(10,0,10,10,0,10)",
00904                          "cut"     :"hasReadout",
00905                          "options" :"colz",
00906                          "xaxis"   :"Detector ID",
00907                          "yaxis"   :"Site ID",
00908                          "filename":"readoutDetector.png"
00909                          },
00910                         {"name"    :"readoutTime",
00911                          "title"   :"Trigger Time",
00912                          "draw"    :"roTriggerTimeSec+(roTriggerTimeNanoSec*1e-9)",
00913                          "cut"     :"hasReadout",
00914                          "options" :"",
00915                          "xaxis"   :"Time [s]",
00916                          "yaxis"   :"Number of Readouts",
00917                          "filename":"readoutTime.png"
00918                          },
00919                         {"name"    :"nRoChannels",
00920                          "title"   :"Number of Channels in Readout",
00921                          "draw"    :"nRoChannels>>htemp(300,0,300)",
00922                          "cut"     :"hasReadout",
00923                          "options" :"",
00924                          "xaxis"   :"Number of Channels",
00925                          "yaxis"   :"Number of Readouts",
00926                          "filename":"nRoChannels.png"
00927                          },
00928                         {"name"    :"roChannel",
00929                          "title"   :"Readout Channels in Crate",
00930                          "draw"    :"roConnector:roBoard>>htemp(17,0,17,17,0,17)",
00931                          "cut"     :"hasReadout",
00932                          "options" :"colz",
00933                          "xaxis"   :"FEE Board",
00934                          "yaxis"   :"FEE Connector",
00935                          "filename":"roChannel.png"
00936                          },
00937                         {"name"    :"tdc",
00938                          "title"   :"Readout TDC Spectrum",
00939                          "draw"    :"roTdc>>htemp(400,0,400)",
00940                          "cut"     :"hasReadout",
00941                          "options" :"",
00942                          "xaxis"   :"TDC value",
00943                          "yaxis"   :"Number of TDCs",
00944                          "filename":"tdc.png"
00945                          },
00946                         {"name"    :"adc",
00947                          "title"   :"Readout ADC Spectrum",
00948                          "draw"    :"roAdc>>htemp(1000,0,1000)",
00949                          "cut"     :"hasReadout",
00950                          "options" :"",
00951                          "xaxis"   :"ADC value",
00952                          "yaxis"   :"Number of ADCs",
00953                          "filename":"adc.png"
00954                          },
00955                         {"name"    :"adcClock",
00956                          "title"   :"Clock Offset of ADC value",
00957                          "draw"    :"roAdcClock>>htemp(16,0,16)",
00958                          "cut"     :"hasReadout",
00959                          "options" :"",
00960                          "xaxis"   :"ADC clock (40 MHz)",
00961                          "yaxis"   :"Number of ADCs",
00962                          "filename":"adcClock.png"
00963                          },
00964                         {"name"    :"calibTdc",
00965                          "title"   :"Calibrated TDC values",
00966                          "draw"    :"croTdc>>htemp(500,-500,0)",
00967                          "cut"     :"hasCro && hasCalibReadout",
00968                          "options" :"",
00969                          "xaxis"   :"Calibrated TDC value [ns]",
00970                          "yaxis"   :"Number of TDC values",
00971                          "filename":"calibTdc.png"
00972                          },
00973                         {"name"    :"calibAdc",
00974                          "title"   :"Calibrated ADC values",
00975                          "draw"    :"croAdc>>htemp(500,0,50)",
00976                          "cut"     :"hasCro && hasCalibReadout",
00977                          "options" :"",
00978                          "xaxis"   :"Calibrated ADC values [Number of Photoelectrons]",
00979                          "yaxis"   :"Number of ADC values",
00980                          "filename":"calibAdc.png"
00981                          },
00982                         {"name"    :"calibAdcSum",
00983                          "title"   :"Sum of Calibrated ADC values in Readout",
00984                          "draw"    :"Sum$(croAdc)>>htemp(1000,0,2000)",
00985                          "cut"     :"hasCro && hasCalibReadout",
00986                          "options" :"",
00987                          "xaxis"   :"ADC Sum [Number of Photoelectrons]",
00988                          "yaxis"   :"Number of Readouts",
00989                          "filename":"calibAdcSum.png"
00990                          },
00991                         {"name"    :"reconEnergy",
00992                          "title"   :"Reconstucted Energy",
00993                          "draw"    :"rec_AdSimple_energy>>htemp(1000,0,20)",
00994                          "cut"     :"hasRecTrigger && rec_AdSimple_energyStatus==1",
00995                          "options" :"",
00996                          "xaxis"   :"Visible Energy [MeV]",
00997                          "yaxis"   :"Number of Readouts",
00998                          "fit"     :"gaus",
00999                          "filename":"reconEnergy.png"
01000                          },
01001                         {"name"    :"reconEnergyStatus",
01002                          "title"   :"Reconstucted Energy Status",
01003                          "draw"    :"rec_AdSimple_energyStatus>>htemp(10,0,10)",
01004                          "cut"     :"hasRecTrigger",
01005                          "options" :"",
01006                          "xaxis"   :"Status: Unknown=0, Good=1, Bad>1",
01007                          "yaxis"   :"Number of Readouts",
01008                          "filename":"reconEnergyStatus.png"
01009                          },
01010                         {"name"    :"reconEnergyQuality",
01011                          "title"   :"Reconstucted Energy Quality",
01012                          "draw"    :"rec_AdSimple_energyQuality>>htemp(200,0,10)",
01013                          "cut"     :"hasRecTrigger && rec_AdSimple_energyStatus==1",
01014                          "options" :"",
01015                          "xaxis"   :"Quality Measure",
01016                          "yaxis"   :"Number of Readouts",
01017                          "filename":"reconEnergyQuality.png"
01018                          },
01019                         {"name"    :"reconPosition",
01020                          "title"   :"Reconstucted Position",
01021                          "draw"    :"rec_AdSimple_position[2]:sqrt(rec_AdSimple_position[0]*rec_AdSimple_position[0]+rec_AdSimple_position[1]*rec_AdSimple_position[1])>>htemp(100,0,3000.,1000,-3000.,3000.)",
01022                          "cut"     :"hasRecTrigger && rec_AdSimple_positionStatus==1",
01023                          "options" :"colz",
01024                          "xaxis"   :"#rho [mm]",
01025                          "yaxis"   :"z [mm]",
01026                          "filename":"reconPosition.png"
01027                          },
01028                         {"name"    :"reconPositionX",
01029                          "title"   :"Reconstucted X Position",
01030                          "draw"    :"rec_AdSimple_position[0]>>htemp(1000,-3000.,3000.)",
01031                          "cut"     :"hasRecTrigger && rec_AdSimple_positionStatus==1",
01032                          "options" :"colz",
01033                          "xaxis"   :"x [mm]",
01034                          "yaxis"   :"Entries",
01035                          "fit"     :"gaus",
01036                          "filename":"reconPositionX.png"
01037                          },
01038                         {"name"    :"reconPositionY",
01039                          "title"   :"Reconstucted Y Position",
01040                          "draw"    :"rec_AdSimple_position[1]>>htemp(1000,-3000.,3000.)",
01041                          "cut"     :"hasRecTrigger && rec_AdSimple_positionStatus==1",
01042                          "options" :"colz",
01043                          "xaxis"   :"y [mm]",
01044                          "yaxis"   :"Entries",
01045                          "fit"     :"gaus",
01046                          "filename":"reconPositionY.png"
01047                          },
01048                         {"name"    :"reconPositionZ",
01049                          "title"   :"Reconstucted Z Position",
01050                          "draw"    :"rec_AdSimple_position[2]>>htemp(1000,-3000.,3000.)",
01051                          "cut"     :"hasRecTrigger && rec_AdSimple_positionStatus==1",
01052                          "options" :"colz",
01053                          "xaxis"   :"z [mm]",
01054                          "yaxis"   :"Entries",
01055                          "fit"     :"gaus",
01056                          "filename":"reconPositionZ.png"
01057                          },
01058                         {"name"    :"reconPositionStatus",
01059                          "title"   :"Reconstucted Position Status",
01060                          "draw"    :"rec_AdSimple_positionStatus>>htemp(10,0,10)",
01061                          "cut"     :"hasRecTrigger",
01062                          "options" :"",
01063                          "xaxis"   :"Status: Unknown=0, Good=1, Bad>1",
01064                          "yaxis"   :"Number of Readouts",
01065                          "filename":"reconPositionStatus.png"
01066                          },
01067                         {"name"    :"reconPositionQuality",
01068                          "title"   :"Reconstucted Position Quality",
01069                          "draw"    :"rec_AdSimple_positionQuality>>htemp(200,0,5000)",
01070                          "cut"     :"hasRecTrigger && rec_AdSimple_positionStatus==1",
01071                          "options" :"",
01072                          "xaxis"   :"Quality measure",
01073                          "yaxis"   :"Number of Readouts",
01074                          "filename":"reconPositionQuality.png"
01075                          }
01076                         #{"title"   :"",
01077                         # "draw"    :"",
01078                         # "cut"     :"",
01079                         # "options" :"",
01080                         # "xaxis"   :"",
01081                         # "yaxis"   :"",
01082                         # "zaxis"   :"",
01083                         # "filename":""
01084                         # },
01085                         ]
01086         return SUCCESS
01087 
    def execute(self):

def DataQuality::Tools::DiagnosticAlg::execute (   self  ) 

Definition at line 1088 of file Tools.py.

01088                      :
01089         return SUCCESS
01090         
    def finalize(self):        

def DataQuality::Tools::DiagnosticAlg::finalize (   self  ) 

Definition at line 1091 of file Tools.py.

01091                       :        
01092         self.info("finalize")
01093         tesTree = self.stats['/file0/tes/tesTree']
01094         if tesTree == None:
01095             self.error("Failed to retrieve tree of TES data")
01096             return FAILURE
01097         # Make figures
01098         canvas = TCanvas()
01099         failedFigs = []
01100         for figure in self.figures:
01101             self.info("Making figure "+figure["title"])
01102             nEntries = tesTree.Draw(figure["draw"], figure["cut"], figure["options"])
01103             hist = canvas.FindObject("htemp")
01104             if nEntries < 1 or hist == None:
01105                 self.warning("Failed to generate figure: "+figure["title"])
01106                 failedFigs.append( figure["name"] )
01107                 continue
01108             hist.SetTitle(figure["title"])
01109             hist.SetLineColor(4)
01110             if figure.has_key("xaxis"):
01111                 hist.GetXaxis().SetTitle(figure["xaxis"])
01112             if figure.has_key("yaxis"):
01113                 hist.GetYaxis().SetTitle(figure["yaxis"])
01114             if figure.has_key("zaxis"):
01115                 hist.GetZaxis().SetTitle(figure["zaxis"])
01116             if figure.has_key("fit"):
01117                 hist.Fit(figure["fit"])
01118             canvas.SaveAs(figure["filename"])
01119             if self.SaveHistograms:
01120                 hist.SetName(figure["name"])
01121                 self.stats["/file1/diagnostics/"+figure["name"]] = hist.Clone()
01122         # Generate html page
01123         htmlList = []
01124         htmlList.append("<HTML>")
01125         htmlList.append("<HEAD>")
01126         htmlList.append("<TITLE>")
01127         htmlList.append(" Diagnostics Figures")
01128         htmlList.append("</TITLE>")
01129         htmlList.append("</HEAD>")
01130         htmlList.append("<BODY>")
01131         htmlList.append(" <H1>Diagnostics Figures</H1>")
01132         htmlList.append(' <P>Histogram file: <A HREF="diagnostics.root">diagnostics.root</A></P>')
01133         htmlList.append(' <P>Diagnostics <A HREF="log/">logs</A></P>')
01134         htmlList.append(" <TABLE>")
01135         for figureIdx in range(len(self.figures)):
01136             figure = self.figures[figureIdx]
01137             if figureIdx % 2 == 0:
01138                 htmlList.append("  <TR>")
01139             figString ="     <TD><H3>"+figure["title"]+"</H3>"
01140             if figure["name"] in failedFigs:
01141                 figString += "<P>No Data for this figure</P>"
01142             else:
01143                 figString += "<IMG SRC=\""+figure["filename"]+"\" WIDTH=70%>"
01144             figString += "</TD>"
01145             htmlList.append(figString)
01146             if figureIdx % 2 != 0:
01147                 htmlList.append("  </TR>")
01148             elif figureIdx == len(self.figures):
01149                 htmlList.append("    <TD></TD>")
01150                 htmlList.append("  </TR>")
01151         htmlList.append(" </TABLE>")
01152         htmlList.append("</BODY>")
01153         htmlList.append("</HTML>")
01154         htmlFile = open("index.html","w")
01155         htmlFile.write("\n".join(htmlList))
01156         htmlFile.close()
01157         status = DybPythonAlg.finalize(self)
01158         return status
01159 
01160 
01161 


Member Data Documentation

DataQuality::Tools::DiagnosticAlg::SaveHistograms

Definition at line 765 of file Tools.py.

DataQuality::Tools::DiagnosticAlg::figures

Definition at line 773 of file Tools.py.


The documentation for this class was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:33:31 2011 for DataQuality by doxygen 1.4.7