CMS 3D CMS Logo

Classes | Functions | Variables

plotscripts Namespace Reference

Classes

class  SawTeethFunction

Functions

def addToTestResults
def availableCellsCSC
def availableCellsDT
def bellcurves
def clearDDT
def curvatureDTsummary
def curvatureplot
def DBdiff
def DBdiffVersus
def DBMC
def DBMCVersus
def doTests
def doTestsForMapPlots
def doTestsForReport
def getname
def idToPostalAddress
def loadTestResultsMap
def mapNameToId
def mapplot
def mean
def nameToId
def phiedges2c
def philines
def plotmedians
def polynomials
def postalAddressToId
def printDeltaTs
def rlines
def rms
def saveTestResultsMap
def segdiff
def segdiffvsphi
def set_palette
def setTDRStyle
def stationIndex
def stdev
def testDeltaWithin5Sigma
def testEntry
def testZeroWithin5Sigma
def wheel0only
def wheelLetter
def wheelm1only
def wheelm2only
 Convenience functions.
def wheelNumber
def wheelp1only
def wheelp2only
def wmean
def writeDQMReport
def zlines

Variables

 CPP_LOADED = False
list DQM_SEVERITY
dictionary MAP_RESULTS_BINS = {}
dictionary MAP_RESULTS_FITSIN = {}
dictionary MAP_RESULTS_SAWTOOTH = {}
list phiedges
 sector phi edges in: me11 me12 me13 me14 me21 me22 me31 me32 me41 me42 mb1 mb2 mb3 mb4 index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13
 tdrStyle = None
dictionary TEST_RESULTS = {}

Function Documentation

def plotscripts::addToTestResults (   c,
  res 
)

Definition at line 959 of file plotscripts.py.

00960                            :
00961   if len(res)>0:
00962     if TEST_RESULTS.has_key(c): TEST_RESULTS[c].extend(res)
00963     else: TEST_RESULTS[c] = res
00964 

def plotscripts::availableCellsCSC (   reports)

Definition at line 903 of file plotscripts.py.

00904                               :
00905   cscs = []
00906   # CSC station & ring 
00907   for endcap in CSC_TYPES:
00908     for station in endcap[2]:
00909       for ring in station[2]:
00910         if ring[1]=="ALL": continue
00911         #label = "CSCvsphi_me%s%s%s" % (endcap[1], station[1], ring[1])
00912         cscs.append("%s%s/%s" % (endcap[0], station[1],ring[1]))
00913   # CSC station and chamber
00914   for endcap in CSC_TYPES:
00915     for station in endcap[2]:
00916       for ring in station[2]:
00917         if ring[1]!="ALL": continue
00918         for chamber in range(1,ring[2]+1):
00919           #label = "CSCvsr_me%s%sch%02d" % (endcap[1], station[1], chamber)
00920           cscs.append("%s%s/ALL/%02d" % (endcap[0], station[1],chamber))
00921   # CSC chambers
00922   for endcap in CSC_TYPES:
00923     for station in endcap[2]:
00924       for ring in station[2]:
00925         if ring[1]=="ALL": continue
00926         for chamber in range(1,ring[2]+1):
00927           # exclude non instrumented ME4/2 
00928           if station[1]=="4" and ring[1]=="2":
00929             if endcap[1]=="m": continue
00930             if chamber<9 or chamber>13: continue
00931           schamber = "%02d" % chamber
00932           label = "ME%s%s%s_%s" % (endcap[1], station[1], ring[1], schamber)
00933           if len(reports)==0:
00934             # no reports case: do not include chambers 
00935             #cscs.append(endcap[0]+station[1]+'/'+ring[1]+'/'+schamber)
00936             continue
00937           found = False
00938           for r in reports:
00939             if r.name == label:
00940               found = True
00941               break
00942           if not found: continue
00943           if r.status == "TOOFEWHITS" and r.posNum+r.negNum==0: continue
00944           if r.status == "NOFIT": continue
00945           cscs.append(endcap[0]+station[1]+'/'+ring[1]+'/'+schamber)
00946   return cscs
00947 

def plotscripts::availableCellsDT (   reports)

Definition at line 862 of file plotscripts.py.

00863                              :
00864   dts = []
00865   # DT wheels
00866   for iwheel in DT_TYPES:
00867     if iwheel[1]=="ALL": continue
00868     dts.append(iwheel[0])
00869   # DT wheel & station
00870   for wheel in DT_TYPES:
00871     if wheel[1]=="ALL": continue
00872     for station in wheel[2]:
00873       dts.append(wheel[0]+'/'+station[1])
00874   # DT station & sector 
00875   for wheel in DT_TYPES:
00876     if wheel[1]!="ALL": continue
00877     for station in wheel[2]:
00878       for sector in range(1,station[2]+1):
00879         ssector = "%02d" % sector
00880         dts.append(wheel[0]+'/'+station[1]+'/'+ssector)
00881   # DT chambers
00882   for wheel in DT_TYPES:
00883     if wheel[1]=="ALL": continue
00884     for station in wheel[2]:
00885       for sector in range(1,station[2]+1):
00886         ssector = "%02d" % sector
00887         label = "MBwh%sst%ssec%s" % (wheelLetter(int(wheel[1])),station[1],ssector)
00888         if len(reports)==0:
00889           # no reports case: do not include chambers 
00890           #dts.append(wheel[0]+'/'+station[1]+'/'+ssector)
00891           continue
00892         found = False
00893         for r in reports:
00894           if r.name == label:
00895             found = True
00896             break
00897         if not found: continue
00898         if r.status == "TOOFEWHITS" and r.posNum+r.negNum==0: continue
00899         if r.status == "NOFIT": continue
00900         dts.append(wheel[0]+'/'+station[1]+'/'+ssector)
00901   return dts
00902 

def plotscripts::bellcurves (   tfile,
  reports,
  name,
  twobin = True,
  suppressblue = False 
)

Definition at line 1852 of file plotscripts.py.

01853                                                                      :
01854     t1 = time.time()
01855     ddt[0] += 1
01856     tdrStyle.SetOptTitle(1)
01857     tdrStyle.SetTitleBorderSize(1)
01858     tdrStyle.SetTitleFontSize(0.1)
01859     tdrStyle.SetOptStat(0)
01860     tdrStyle.SetHistMinimumZero()
01861 
01862     c1.Clear()
01863     c1.ResetAttPad()
01864 
01865     found = False
01866     for r in reports:
01867         if r.name == name:
01868             found = True
01869             break
01870     if not found: raise Exception, "Not a valid name"
01871     if r.status == "FAIL":
01872         #raise Exception, "Fit failed"
01873         print "Fit failed"
01874         c1.Clear()
01875         return
01876     
01877     Pos = "Pos"; Neg = "Neg"
01878     if not twobin:
01879         Pos = ""; Neg = ""
01880 
01881     pdirPos = "MuonAlignmentFromReference/%s%s" % (name, Pos)
01882     pdirNeg = "MuonAlignmentFromReference/%s%s" % (name, Neg)
01883 
01884     t2 = time.time()
01885     ddt[1] = 1./ddt[0]*((ddt[0]-1)*ddt[1] + t2-t1)
01886 
01887     chamber_x = tfile.Get(pdirPos+"_x")
01888     chamber_x_fit = tfile.Get(pdirPos+"_x_fit")
01889     chamber_y = tfile.Get(pdirPos+"_y")
01890     chamber_y_fit = tfile.Get(pdirPos+"_y_fit")
01891     chamber_dxdz = tfile.Get(pdirPos+"_dxdz")
01892     chamber_dxdz_fit = tfile.Get(pdirPos+"_dxdz_fit")
01893     chamber_dydz = tfile.Get(pdirPos+"_dydz")
01894     chamber_dydz_fit = tfile.Get(pdirPos+"_dydz_fit")
01895     chamber_alphax = tfile.Get(pdirPos+"_alphax")
01896     chamber_alphax_fit = tfile.Get(pdirPos+"_alphax_fit")
01897     chamber_alphay = tfile.Get(pdirPos+"_alphay")
01898     chamber_alphay_fit = tfile.Get(pdirPos+"_alphay_fit")
01899     chamber_x_fit2 = tfile.Get(pdirNeg+"_x_fit")
01900     chamber_y_fit2 = tfile.Get(pdirNeg+"_y_fit")
01901     chamber_dxdz_fit2 = tfile.Get(pdirNeg+"_dxdz_fit")
01902     chamber_dydz_fit2 = tfile.Get(pdirNeg+"_dydz_fit")
01903     chamber_alphax_fit2 = tfile.Get(pdirNeg+"_alphax_fit")
01904     chamber_alphay_fit2 = tfile.Get(pdirNeg+"_alphay_fit")
01905 
01906     if not chamber_x:
01907         chamber_x = tfile.Get(pdirPos+"_residual")
01908         chamber_x_fit = tfile.Get(pdirPos+"_residual_fit")
01909         chamber_dxdz = tfile.Get(pdirPos+"_resslope")
01910         chamber_dxdz_fit = tfile.Get(pdirPos+"_resslope_fit")
01911         chamber_alphax = tfile.Get(pdirPos+"_alpha")
01912         chamber_alphax_fit = tfile.Get(pdirPos+"_alpha_fit")
01913         chamber_x_fit2 = tfile.Get(pdirNeg+"_residual_fit")
01914         chamber_dxdz_fit2 = tfile.Get(pdirNeg+"_resslope_fit")
01915         chamber_alphax_fit2 = tfile.Get(pdirNeg+"_alpha_fit")
01916 
01917     if not chamber_x:
01918         print "Can't find neither "+pdirPos+"_x  nor "+pdirPos+"_residual"
01919         return
01920 
01921     t3 = time.time()
01922     ddt[2] = 1./ddt[0]*((ddt[0]-1)*ddt[2] + t3-t2)
01923 
01924     ####
01925     chamber_x.SetAxisRange(-30., 30., "X")
01926     chamber_dxdz.SetAxisRange(-50., 50., "X")
01927     if not not chamber_y:
01928         chamber_y.SetAxisRange(-150., 150., "X")
01929         chamber_dydz.SetAxisRange(-200., 200., "X")
01930     ####
01931 
01932     chamber_x.SetXTitle("Local x residual (mm)")
01933     chamber_dxdz.SetXTitle("Local dx/dz residual (mrad)")
01934     chamber_alphax.SetXTitle("Local dx/dz residual (mrad)")
01935     chamber_alphax.SetYTitle("Local x residual (mm)")
01936     if not not chamber_y:
01937         chamber_y.SetXTitle("Local y residual (mm)")
01938         chamber_dydz.SetXTitle("Local dy/dz residual (mrad)")
01939         chamber_alphay.SetXTitle("Local dy/dz residual (mrad)")
01940         chamber_alphay.SetYTitle("Local y residual (mm)")
01941     if name[0:2] == "ME":
01942         chamber_x.SetXTitle("Local r#phi residual (mm)")
01943         chamber_dxdz.SetXTitle("Local d(r#phi)/dz residual (mrad)")
01944         chamber_alphax.SetXTitle("Local d(r#phi)/dz residual (mrad)")
01945         chamber_alphax.SetYTitle("Local r#phi residual (mm)")
01946 
01947     t4 = time.time()
01948     ddt[3] = 1./ddt[0]*((ddt[0]-1)*ddt[3] + t4-t3)
01949 
01950     for h in chamber_x, chamber_dxdz, chamber_alphax, chamber_alphax, \
01951              chamber_y, chamber_dydz, chamber_alphay, chamber_alphay:
01952         if not not h:
01953             h.GetXaxis().CenterTitle()
01954             h.GetYaxis().CenterTitle()
01955             h.GetXaxis().SetLabelSize(0.05)
01956             h.GetYaxis().SetLabelSize(0.05)
01957             h.GetXaxis().SetTitleSize(0.07)
01958             h.GetYaxis().SetTitleSize(0.07)
01959             h.GetXaxis().SetTitleOffset(0.9)
01960             h.GetYaxis().SetTitleOffset(0.9)
01961 
01962     for f in chamber_x_fit2, chamber_y_fit2, chamber_dxdz_fit2, chamber_dydz_fit2, \
01963              chamber_alphax_fit2, chamber_alphay_fit2:
01964         if not not f:
01965             f.SetLineColor(4)
01966 
01967     t5 = time.time()
01968     ddt[4] = 1./ddt[0]*((ddt[0]-1)*ddt[4] + t5-t4)
01969 
01970     if not not chamber_y:
01971         c1.Clear()
01972         c1.Divide(3, 2)
01973         chamber_x.SetTitle(getname(r))
01974 
01975         c1.GetPad(1).cd()
01976         chamber_x.Draw()
01977         if not suppressblue: chamber_x_fit2.Draw("same")
01978         chamber_x_fit.Draw("same")
01979         
01980         c1.GetPad(2).cd()
01981         chamber_dxdz.Draw()
01982         if not suppressblue: chamber_dxdz_fit2.Draw("same")
01983         chamber_dxdz_fit.Draw("same")
01984         
01985         c1.GetPad(3).cd()
01986         chamber_alphax.Draw()
01987         if not suppressblue: chamber_alphax_fit2.Draw("same")
01988         chamber_alphax_fit.Draw("same")
01989         
01990         c1.GetPad(4).cd()
01991         chamber_y.Draw()
01992         if not suppressblue: chamber_y_fit2.Draw("same")
01993         chamber_y_fit.Draw("same")
01994         
01995         c1.GetPad(5).cd()
01996         chamber_dydz.Draw()
01997         if not suppressblue: chamber_dydz_fit2.Draw("same")
01998         chamber_dydz_fit.Draw("same")
01999         
02000         c1.GetPad(6).cd()
02001         chamber_alphay.Draw()
02002         if not suppressblue: chamber_alphay_fit2.Draw("same")
02003         chamber_alphay_fit.Draw("same")
02004 
02005     else:
02006         c1.Clear()
02007         c1.Divide(3, 1)
02008         chamber_x.SetTitle(getname(r))
02009 
02010         c1.GetPad(1).cd()
02011         chamber_x.Draw()
02012         if not suppressblue: chamber_x_fit2.Draw("same")
02013         chamber_x_fit.Draw("same")
02014         
02015         c1.GetPad(2).cd()
02016         chamber_dxdz.Draw()
02017         if not suppressblue: chamber_dxdz_fit2.Draw("same")
02018         chamber_dxdz_fit.Draw("same")
02019         
02020         c1.GetPad(3).cd()
02021         chamber_alphax.Draw()
02022         if not suppressblue: chamber_alphax_fit2.Draw("same")
02023         chamber_alphax_fit.Draw("same")
02024 
02025     t6 = time.time()
02026     ddt[5] = 1./ddt[0]*((ddt[0]-1)*ddt[5] + t6-t5)
02027     ddt[6] = 1./ddt[0]*((ddt[0]-1)*ddt[6] + t6-t1)
02028 

def plotscripts::clearDDT ( )

Definition at line 1841 of file plotscripts.py.

01842               :
01843     for i in range(0,15):
01844         ddt[i]=0.

def plotscripts::curvatureDTsummary (   tfiles,
  window = 15.,
  pdgSfactor = False 
)

Definition at line 1770 of file plotscripts.py.

01771                                                             :
01772     global h, gm2, gm1, gz, gp1, gp2, tlegend
01773 
01774     set_palette("blues")
01775     phis = {-2: [], -1: [], 0: [], 1: [], 2: []}
01776     diffs = {-2: [], -1: [], 0: [], 1: [], 2: []}
01777     differrs = {-2: [], -1: [], 0: [], 1: [], 2: []}
01778     for wheelstr, wheel in ("m2", "-2"), ("m1", "-1"), ("z", "0"), ("p1", "+1"), ("p2", "+2"):
01779         for sector in "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12":
01780             curvatureplot(tfiles, "wheel%s_sector%s" % (wheelstr, sector), "deltax", 
01781                     title="Wheel %s, sector %s" % (wheel, sector), fitgauss=True, reset_palette=False)
01782             if fitgauss_diff[1] < window:
01783                 uncertainty = fitgauss_diff[1]
01784                 if pdgSfactor and (fitgauss_chi2/fitgauss_ndf) > 1.: uncertainty *= sqrt(fitgauss_chi2/fitgauss_ndf)
01785 
01786                 phis[int(wheel)].append(signConventions["DT", int(wheel), 1, int(sector)][4])
01787                 diffs[int(wheel)].append(fitgauss_diff[0])
01788                 differrs[int(wheel)].append(uncertainty)
01789 
01790     h = ROOT.TH1F("h", "", 1, -pi, pi)
01791     h.SetAxisRange(-window, window, "Y")
01792     h.SetXTitle("#phi (rad)")
01793     h.SetYTitle("#Deltax(p_{T} #rightarrow #infty) - #Deltax(p_{T} #rightarrow 0) (mm)")
01794     h.GetXaxis().CenterTitle()
01795     h.GetYaxis().CenterTitle()
01796 
01797     gm2 = ROOT.TGraphErrors(len(phis[-2]), array.array("d", phis[-2]), array.array("d", diffs[-2]), 
01798             array.array("d", [0.]*len(phis[-2])), array.array("d", differrs[-2]))
01799     gm1 = ROOT.TGraphErrors(len(phis[-1]), array.array("d", phis[-1]), array.array("d", diffs[-1]), 
01800             array.array("d", [0.]*len(phis[-1])), array.array("d", differrs[-1]))
01801     gz = ROOT.TGraphErrors(len(phis[0]), array.array("d", phis[0]), array.array("d", diffs[0]), 
01802             array.array("d", [0.]*len(phis[0])), array.array("d", differrs[0]))
01803     gp1 = ROOT.TGraphErrors(len(phis[1]), array.array("d", phis[1]), array.array("d", diffs[1]), 
01804             array.array("d", [0.]*len(phis[1])), array.array("d", differrs[1]))
01805     gp2 = ROOT.TGraphErrors(len(phis[2]), array.array("d", phis[2]), array.array("d", diffs[2]), 
01806             array.array("d", [0.]*len(phis[2])), array.array("d", differrs[2]))
01807 
01808     gm2.SetMarkerStyle(21); gm2.SetMarkerColor(ROOT.kRed); gm2.SetLineColor(ROOT.kRed)
01809     gm1.SetMarkerStyle(22); gm1.SetMarkerColor(ROOT.kBlue); gm1.SetLineColor(ROOT.kBlue)
01810     gz.SetMarkerStyle(3); gz.SetMarkerColor(ROOT.kBlack); gz.SetLineColor(ROOT.kBlack)
01811     gp1.SetMarkerStyle(26); gp1.SetMarkerColor(ROOT.kBlue); gp1.SetLineColor(ROOT.kBlue)
01812     gp2.SetMarkerStyle(25); gp2.SetMarkerColor(ROOT.kRed); gp2.SetLineColor(ROOT.kRed)
01813 
01814     h.Draw()
01815     tlegend = ROOT.TLegend(0.25, 0.2, 0.85, 0.5)
01816     tlegend.SetFillColor(ROOT.kWhite)
01817     tlegend.SetBorderSize(0)
01818     tlegend.AddEntry(gm2, "Wheel -2", "p")
01819     tlegend.AddEntry(gm1, "Wheel -1", "p")
01820     tlegend.AddEntry(gz, "Wheel 0", "p")
01821     tlegend.AddEntry(gp1, "Wheel +1", "p")
01822     tlegend.AddEntry(gp2, "Wheel +2", "p")
01823     tlegend.Draw()
01824 
01825     gm2.Draw("p")
01826     gm1.Draw("p")
01827     gz.Draw("p")
01828     gp1.Draw("p")
01829     gp2.Draw("p")
01830 

def plotscripts::curvatureplot (   tfiles,
  name,
  param,
  mode = "from2d",
  window = 15.,
  widebins = False,
  title = "",
  fitgauss = False,
  fitconst = False,
  fitline = False,
  reset_palette = False 
)

Definition at line 1620 of file plotscripts.py.

01621                                                                                                                                                                :
01622 # "param" may be one of "deltax" (Delta x position residuals), "deltadxdz" (Delta (dx/dz) angular residuals), "curverr" (Delta x * d(Delta q/pT)/d(Delta x) = Delta q/pT in the absence of misalignment)
01623     tdrStyle.SetOptTitle(1)
01624     tdrStyle.SetTitleBorderSize(0)
01625     tdrStyle.SetOptStat(0)
01626     tdrStyle.SetOptFit(0)
01627     tdrStyle.SetTitleFontSize(0.05)
01628 
01629     c1.Clear()
01630     if reset_palette: set_palette("blues")
01631     global hist, histCOPY, hist2d, tline1, tline2, tline3, tline4, tline5
01632 
01633     hdir = "AlignmentMonitorMuonVsCurvature/iter1/"
01634 
01635     if name not in ("all", "top", "bottom"):
01636         hsuffix = "_%s_%s" % (name, param)
01637         prof = tfiles[0].Get(hdir+"tprofile"+hsuffix).Clone("tprofile_"+hsuffix)
01638         hist2d = tfiles[0].Get(hdir+"th2f"+hsuffix).Clone("th2f_"+hsuffix)
01639         for tfile in tfiles[1:]:
01640             prof.Add(tfile.Get(hdir+"tprofile"+hsuffix))
01641             hist2d.Add(tfile.Get(hdir+"th2f"+hsuffix))
01642     else:
01643         prof = None
01644         hist2d = None
01645         for wheel in "m2", "m1", "z", "p1", "p2":
01646             if name == "all": sectors = "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"
01647             elif name == "top": sectors = "01", "02", "03", "04", "05", "06"
01648             elif name == "bottom": sectors = "07", "08", "09", "10", "11", "12"
01649             else: raise Exception
01650 
01651             for sector in sectors:
01652                 hsuffix = "_%s_%s" % ("wheel%s_sector%s" % (wheel, sector), param)
01653                 for tfile in tfiles:
01654                     if prof is None:
01655                         prof = tfiles[0].Get(hdir+"tprofile"+hsuffix).Clone("tprofile_"+hsuffix)
01656                         hist2d = tfiles[0].Get(hdir+"th2f"+hsuffix).Clone("tprofile_"+hsuffix)
01657                     else:
01658                         prof.Add(tfile.Get(hdir+"tprofile"+hsuffix))
01659                         hist2d.Add(tfile.Get(hdir+"th2f"+hsuffix))
01660 
01661     hist = ROOT.TH1F("hist", "", prof.GetNbinsX(), prof.GetBinLowEdge(1), -prof.GetBinLowEdge(1))
01662     for i in xrange(1, prof.GetNbinsX()+1):
01663         hist.SetBinContent(i, prof.GetBinContent(i))
01664         hist.SetBinError(i, prof.GetBinError(i))
01665 
01666     if mode == "plain":
01667         hist = prof
01668     elif mode == "from2d":
01669         skip = 1
01670         if widebins:
01671             hist.Rebin(5)
01672             skip = 5
01673         for i in xrange(0, int(prof.GetNbinsX()), skip):
01674             tmp = hist2d.ProjectionY("tmp", i+1, i + skip)
01675             if tmp.GetEntries() > 1:
01676                 hist.SetBinContent(i/skip+1, tmp.GetMean())
01677                 hist.SetBinError(i/skip+1, ROOT.TMath.StudentQuantile(0.841345,tmp.GetEntries()) * tmp.GetRMS() / sqrt(tmp.GetEntries()))
01678                 #hist.SetBinError(i/skip+1, tmp.GetRMS() / sqrt(tmp.GetEntries()))
01679             else:
01680                 #hist.SetBinContent(i/skip+1, 2000.)
01681                 #hist.SetBinError(i/skip+1, 1000.)
01682                 hist.SetBinContent(i/skip+1, 0.)
01683                 hist.SetBinError(i/skip+1, 0.)
01684     else:
01685         raise Exception
01686 
01687 
01688     if fitgauss:
01689         f = ROOT.TF1("f", "[0] + [1]*exp(-x**2/2/0.01**2)", hist.GetBinLowEdge(1), -hist.GetBinLowEdge(1))
01690         f.SetParameters(0, 0., 0.01)
01691         hist.Fit(f, "q")
01692         f.SetLineColor(ROOT.kRed)
01693         global fitgauss_diff, fitgauss_chi2, fitgauss_ndf
01694 #         fitter = ROOT.TVirtualFitter.GetFitter()
01695 #         fitgauss_diff = f.GetParameter(0) - f.GetParameter(1), \
01696 #                         sqrt(f.GetParError(0)**2 + f.GetParError(1)**2 + 2.*fitter.GetCovarianceMatrixElement(0, 1))
01697         fitgauss_diff = f.GetParameter(1), f.GetParError(1)
01698         fitgauss_chi2 = f.GetChisquare()
01699         fitgauss_ndf = f.GetNDF()
01700 
01701     global fitline_intercept, fitline_slope
01702     if fitconst:
01703         f = ROOT.TF1("f", "[0]", hist.GetBinLowEdge(1), -hist.GetBinLowEdge(1))
01704         hist.Fit(f, "q")
01705         f.SetLineColor(ROOT.kRed)
01706         fitline_intercept = f.GetParameter(0), f.GetParError(0)
01707 
01708     if fitline:
01709         f = ROOT.TF1("f", "[0] + [1]*x", hist.GetBinLowEdge(1), -hist.GetBinLowEdge(1))
01710         hist.Fit(f, "qNE")
01711         f.SetLineColor(ROOT.kRed)
01712         global f2, f3
01713         f2 = ROOT.TF1("2", "[0] + [1]*x", hist.GetBinLowEdge(1), -hist.GetBinLowEdge(1))
01714         f3 = ROOT.TF1("2", "[0] + [1]*x", hist.GetBinLowEdge(1), -hist.GetBinLowEdge(1))
01715         f2.SetParameters(f.GetParameter(0), f.GetParameter(1) + f.GetParError(1))
01716         f3.SetParameters(f.GetParameter(0), f.GetParameter(1) - f.GetParError(1))
01717         f2.SetLineColor(ROOT.kRed)
01718         f3.SetLineColor(ROOT.kRed)
01719         f2.SetLineStyle(2)
01720         f3.SetLineStyle(2)
01721         fitline_intercept = f.GetParameter(0), f.GetParError(0)
01722         fitline_slope = f.GetParameter(1), f.GetParError(1)
01723 
01724     hist.SetAxisRange(-window, window, "Y")
01725     hist.SetMarkerStyle(20)
01726     hist.SetMarkerSize(0.75)
01727     hist.GetXaxis().CenterTitle()
01728     hist.GetYaxis().CenterTitle()
01729     if param == "curverr":
01730         hist.GetYaxis().SetTitleOffset(1.35)
01731     else:
01732         hist.GetYaxis().SetTitleOffset(0.75)
01733     hist.GetXaxis().SetTitleOffset(1.2)
01734     hist.GetXaxis().SetTitleSize(0.05)
01735     hist.GetYaxis().SetTitleSize(0.05)
01736     hist.SetTitle(title)
01737     if param == "pterr": hist.SetXTitle("qp_{T} (GeV/c)")
01738     else: hist.SetXTitle("q/p_{T} (c/GeV)")
01739     if param == "deltax": hist.SetYTitle("#Deltax' (mm)")
01740     if param == "deltadxdz": hist.SetYTitle("#Deltadx'/dz (mrad)")
01741     if param == "pterr": hist.SetYTitle("#Deltap_{T}/p_{T} (%)")
01742     if param == "curverr": hist.SetYTitle("#Deltaq/p_{T} (c/GeV)")
01743     hist.SetMarkerColor(ROOT.kBlack)
01744     hist.SetLineColor(ROOT.kBlack)
01745     hist.Draw()
01746     hist2d.Draw("colzsame")
01747     histCOPY = hist.Clone()
01748     histCOPY.SetXTitle("")
01749     histCOPY.SetYTitle("")
01750 
01751     if widebins:
01752         histCOPY.Draw("samee1")
01753         histCOPY.Draw("sameaxis")
01754     else:
01755         histCOPY.Draw("same")
01756         histCOPY.Draw("sameaxis")
01757 
01758     if fitline:
01759         f.Draw("same")
01760         #f2.Draw("same")
01761         #f3.Draw("same")
01762 
01763     tline1 = ROOT.TLine(hist.GetBinLowEdge(1), -window, hist.GetBinLowEdge(1), window)
01764     tline2 = ROOT.TLine(hist.GetBinLowEdge(1), window, -hist.GetBinLowEdge(1), window)
01765     tline3 = ROOT.TLine(-hist.GetBinLowEdge(1), window, -hist.GetBinLowEdge(1), -window)
01766     tline4 = ROOT.TLine(-hist.GetBinLowEdge(1), -window, hist.GetBinLowEdge(1), -window)
01767     tline5 = ROOT.TLine(-hist.GetBinLowEdge(1), 0., hist.GetBinLowEdge(1), 0.)
01768     for t in tline1, tline2, tline3, tline4, tline5: t.Draw()
01769 

def plotscripts::DBdiff (   database1,
  database2,
  reports1,
  reports2,
  window = 10.,
  selection = None,
  phi = False,
  color = ROOT.kBlue-8,
  style = 1,
  bins = 50,
  normalized = False,
  getvalues = False,
  name = "tmp" 
)

Definition at line 486 of file plotscripts.py.

00488                                                                            :
00489     tdrStyle.SetOptStat("emrou")
00490     tdrStyle.SetStatW(0.40)
00491 
00492     if phi:
00493         hx = ROOT.TH1F("%s_phi" % name, "", bins, -window, window)
00494     else:
00495         hx = ROOT.TH1F("%s_x" % name, "", bins, -window, window)
00496     hy = ROOT.TH1F("%s_y" % name, "", bins, -window, window)
00497     hz = ROOT.TH1F("%s_z" % name, "", bins, -window, window)
00498     hphix = ROOT.TH1F("%s_phix" % name, "", bins, -window, window)
00499     hphiy = ROOT.TH1F("%s_phiy" % name, "", bins, -window, window)
00500     hphiz = ROOT.TH1F("%s_phiz" % name, "", bins, -window, window)
00501         
00502     for r1 in reports1:
00503         if selection is None or (selection.func_code.co_argcount == len(r1.postal_address) and selection(*r1.postal_address)):
00504             if reports2 is None:
00505                 r2 = Report(r1.chamberId, r1.postal_address, r1.name)
00506                 r2.add_parameters(ValErr(0., 0., 0.), ValErr(0., 0., 0.), ValErr(0., 0., 0.), 
00507                     ValErr(0., 0., 0.), ValErr(0., 0., 0.), ValErr(0., 0., 0.), 0., 0., 0., 0.)
00508             else:
00509                 found = False
00510                 for r2 in reports2:
00511                     if r1.postal_address == r2.postal_address:
00512                         found = True
00513                         break
00514                 if not found: continue
00515 
00516             found = False
00517             if r1.postal_address[0] == "DT":
00518                 if r1.postal_address[1:] in database1.dt:
00519                     found = True
00520                     db1 = database1.dt[r1.postal_address[1:]]
00521                     if database2 is None:
00522                         db2 = DTAlignable()
00523                         db2.x = db2.y = db2.z = db2.phix = db2.phiy = db2.phiz = 0.
00524                         db2.xx = db2.xy = db2.xz = db2.yx = db2.yy = db2.yz = db2.zx = db2.zy = db2.zz = 0.
00525                     else:
00526                         db2 = database2.dt[r1.postal_address[1:]]
00527             else:
00528                 if r1.postal_address[1:] in database1.csc:
00529                     found = True
00530                     db1 = database1.csc[r1.postal_address[1:]]
00531                     if database2 is None:
00532                         db2 = CSCAlignable()
00533                         db2.x = db2.y = db2.z = db2.phix = db2.phiy = db2.phiz = 0.
00534                         db2.xx = db2.xy = db2.xz = db2.yx = db2.yy = db2.yz = db2.zx = db2.zy = db2.zz = 0.
00535                     else:
00536                         db2 = database2.csc[r1.postal_address[1:]]
00537 
00538             if found and r1.status == "PASS" and r2.status == "PASS":
00539                 if r1.deltax is not None and r2.deltax is not None and r1.deltax.error is not None and \
00540                    r2.deltax.error is not None and (r1.deltax.error**2 + r2.deltax.error**2) > 0.:
00541                     if normalized:
00542                         fill = (db1.x - db2.x)/sqrt(r1.deltax.error**2 + r2.deltax.error**2) * signConventions[r1.postal_address][0]
00543                     else:
00544                         if phi:
00545                             fill = (db1.x - db2.x)/signConventions[r1.postal_address][3] * 1000. * signConventions[r1.postal_address][0]
00546                         else:
00547                             fill = (db1.x - db2.x) * 10. * signConventions[r1.postal_address][0]
00548                     hx.Fill(fill)
00549                     if getvalues not in (False, None):
00550                         getvalues["x"].append((fill, 10. * sqrt(r1.deltax.error**2 + r2.deltax.error**2)))
00551 
00552                 if r1.deltay is not None and r2.deltay is not None and r1.deltay.error is not None and \
00553                    r2.deltay.error is not None and (r1.deltay.error**2 + r2.deltay.error**2) > 0.:
00554                     if normalized:
00555                         fill = (db1.y - db2.y)/sqrt(r1.deltay.error**2 + r2.deltay.error**2) * signConventions[r1.postal_address][1]
00556                     else:
00557                         fill = (db1.y - db2.y) * 10. * signConventions[r1.postal_address][1]
00558                     hy.Fill(fill)
00559                     if getvalues not in (False, None):
00560                         getvalues["y"].append((fill, 10. * sqrt(r1.deltay.error**2 + r2.deltay.error**2)))
00561 
00562                 if r1.deltaz is not None and r2.deltaz is not None and r1.deltaz.error is not None and \
00563                    r2.deltaz.error is not None and (r1.deltaz.error**2 + r2.deltaz.error**2) > 0.:
00564                     if normalized:
00565                         fill = (db1.z - db2.z)/sqrt(r1.deltaz.error**2 + r2.deltaz.error**2) * signConventions[r1.postal_address][2]
00566                     else:
00567                         fill = (db1.z - db2.z) * 10. * signConventions[r1.postal_address][2]
00568                     hz.Fill(fill)
00569                     if getvalues not in (False, None):
00570                         getvalues["z"].append((fill, 10. * sqrt(r1.deltaz.error**2 + r2.deltaz.error**2)))
00571 
00572                 if r1.deltaphix is not None and r2.deltaphix is not None and r1.deltaphix.error is not None and \
00573                    r2.deltaphix.error is not None and (r1.deltaphix.error**2 + r2.deltaphix.error**2) > 0.:
00574                     if normalized:
00575                         fill = (db1.phix - db2.phix)/sqrt(r1.deltaphix.error**2 + r2.deltaphix.error**2)
00576                     else:
00577                         fill = (db1.phix - db2.phix) * 1000.
00578                     hphix.Fill(fill)
00579                     if getvalues not in (False, None):
00580                         getvalues["phix"].append((fill, 10. * sqrt(r1.deltaphix.error**2 + r2.deltaphix.error**2)))
00581 
00582                 if r1.deltaphiy is not None and r2.deltaphiy is not None and r1.deltaphiy.error is not None and \
00583                    r2.deltaphiy.error is not None and (r1.deltaphiy.error**2 + r2.deltaphiy.error**2) > 0.:
00584                     if normalized:
00585                         fill = (db1.phiy - db2.phiy)/sqrt(r1.deltaphiy.error**2 + r2.deltaphiy.error**2)
00586                     else:
00587                         fill = (db1.phiy - db2.phiy) * 1000.
00588                     hphiy.Fill(fill)
00589                     if getvalues not in (False, None):
00590                         getvalues["phiy"].append((fill, 10. * sqrt(r1.deltaphiy.error**2 + r2.deltaphiy.error**2)))
00591 
00592                 if r1.deltaphiz is not None and r2.deltaphiz is not None and r1.deltaphiz.error is not None and \
00593                    r2.deltaphiz.error is not None and (r1.deltaphiz.error**2 + r2.deltaphiz.error**2) > 0.:
00594                     if normalized:
00595                         fill = (db1.phiz - db2.phiz)/sqrt(r1.deltaphiz.error**2 + r2.deltaphiz.error**2)
00596                     else:
00597                         fill = (db1.phiz - db2.phiz) * 1000.
00598                     hphiz.Fill(fill)
00599                     if getvalues not in (False, None):
00600                         getvalues["phiz"].append((fill, 10. * sqrt(r1.deltaphiz.error**2 + r2.deltaphiz.error**2)))
00601 
00602     if not normalized:
00603         if phi:
00604             hx.SetXTitle("#delta_{#phi} position (mrad)")
00605         else:
00606             hx.SetXTitle("#delta_{x'} (mm)")
00607         hy.SetXTitle("#delta_{y'} (mm)")
00608         hz.SetXTitle("#delta_{z'} (mm)")
00609         hphix.SetXTitle("#delta_{#phi_{x}} (mrad)")
00610         hphiy.SetXTitle("#delta_{#phi_{y}} (mrad)")
00611         hphiz.SetXTitle("#delta_{#phi_{z}} (mrad)")
00612     else:
00613         if phi:
00614             hx.SetXTitle("#delta_{#phi}/#sigma_{#phi} position")
00615         else:
00616             hx.SetXTitle("#delta_{x'}/#sigma_{x'}")
00617         hy.SetXTitle("#delta_{y'}/#sigma_{y'}")
00618         hz.SetXTitle("#delta_{z'}/#sigma_{z'}")
00619         hphix.SetXTitle("#delta_{#phi_{x}}/#sigma_{#phi_{x}}")
00620         hphiy.SetXTitle("#delta_{#phi_{y}}/#sigma_{#phi_{y}}")
00621         hphiz.SetXTitle("#delta_{#phi_{z}}/#sigma_{#phi_{z}}")
00622 
00623     for h in hx, hy, hz, hphix, hphiy, hphiz:
00624         h.GetXaxis().CenterTitle()
00625         h.GetYaxis().CenterTitle()
00626         h.SetFillColor(color)
00627         h.SetLineStyle(style)
00628 
00629     if normalized:
00630         fx = ROOT.TF1("fx", "%g * exp(-x**2/2.)/sqrt(2.*3.1415926)" % (hx.GetEntries()*2.*window/bins), -window, window)
00631         fy = ROOT.TF1("fy", "%g * exp(-x**2/2.)/sqrt(2.*3.1415926)" % (hy.GetEntries()*2.*window/bins), -window, window)
00632         fz = ROOT.TF1("fz", "%g * exp(-x**2/2.)/sqrt(2.*3.1415926)" % (hz.GetEntries()*2.*window/bins), -window, window)
00633         fphix = ROOT.TF1("fphix", "%g * exp(-x**2/2.)/sqrt(2.*3.1415926)" % (hphix.GetEntries()*2.*window/bins), -window, window)
00634         fphiy = ROOT.TF1("fphiy", "%g * exp(-x**2/2.)/sqrt(2.*3.1415926)" % (hphiy.GetEntries()*2.*window/bins), -window, window)
00635         fphiz = ROOT.TF1("fphiz", "%g * exp(-x**2/2.)/sqrt(2.*3.1415926)" % (hphiz.GetEntries()*2.*window/bins), -window, window)
00636         for f in fx, fy, fz, fphix, fphiy, fphiz:
00637             f.SetLineWidth(2)
00638             f.SetLineColor(ROOT.kBlue)
00639         for h, f in (hx, fx), (hy, fy), (hz, fz), (hphix, fphix), (hphiy, fphiy), (hphiz, fphiz):
00640             h.SetAxisRange(0, 1.1*max(h.GetMaximum(), f.GetMaximum()), "Y")
00641         c1.Clear()
00642         c1.Divide(3, 2)
00643         c1.GetPad(1).cd(); hx.Draw(); fx.Draw("same")
00644         c1.GetPad(2).cd(); hy.Draw(); fy.Draw("same")
00645         c1.GetPad(3).cd(); hz.Draw(); fz.Draw("same")
00646         c1.GetPad(4).cd(); hphix.Draw(); fphix.Draw("same")
00647         c1.GetPad(5).cd(); hphiy.Draw(); fphiy.Draw("same")
00648         c1.GetPad(6).cd(); hphiz.Draw(); fphiz.Draw("same")
00649         return hx, hy, hz, hphix, hphiy, hphiz, fx, fy, fz, fphix, fphiy, fphiz
00650     else:
00651         c1.Clear()
00652         c1.Divide(3, 2)
00653         c1.GetPad(1).cd(); hx.Draw()
00654         c1.GetPad(2).cd(); hy.Draw()
00655         c1.GetPad(3).cd(); hz.Draw()
00656         c1.GetPad(4).cd(); hphix.Draw()
00657         c1.GetPad(5).cd(); hphiy.Draw()
00658         c1.GetPad(6).cd(); hphiz.Draw()
00659         return hx, hy, hz, hphix, hphiy, hphiz

def plotscripts::DBdiffVersus (   quantity,
  versus,
  database1,
  database2,
  reports1,
  reports2,
  windwselection = None,
  color = ROOT.kBlack 
)

Definition at line 663 of file plotscripts.py.

00664                                                                                                                     :
00665     tdrStyle.SetOptStat("")
00666 
00667     domain = []
00668     values = []
00669     errors = []
00670         
00671     for r1 in reports1:
00672         if selection is None or (selection.func_code.co_argcount == len(r1.postal_address) and selection(*r1.postal_address)):
00673             if reports2 is None:
00674                 r2 = Report(r1.chamberId, r1.postal_address, r1.name)
00675                 r2.add_parameters(ValErr(0., 0., 0.), ValErr(0., 0., 0.), ValErr(0., 0., 0.), 
00676                                   ValErr(0., 0., 0.), ValErr(0., 0., 0.), ValErr(0., 0., 0.), 0., 0., 0.)
00677             else:
00678                 found = False
00679                 for r2 in reports2:
00680                     if r1.postal_address == r2.postal_address:
00681                         found = True
00682                         break
00683                 if not found: continue
00684 
00685             found = False
00686             if r1.postal_address[0] == "DT":
00687                 if r1.postal_address[1:] in database1.dt:
00688                     found = True
00689                     db1 = database1.dt[r1.postal_address[1:]]
00690                     if database2 is None:
00691                         db2 = DTAlignable()
00692                         db2.x = db2.y = db2.z = db2.phix = db2.phiy = db2.phiz = 0.
00693                         db2.xx = db2.xy = db2.xz = db2.yx = db2.yy = db2.yz = db2.zx = db2.zy = db2.zz = 0.
00694                     else:
00695                         db2 = database2.dt[r1.postal_address[1:]]
00696             else:
00697                 if r1.postal_address[1:] in database1.csc:
00698                     found = True
00699                     db1 = database1.csc[r1.postal_address[1:]]
00700                     if database2 is None:
00701                         db2 = CSCAlignable()
00702                         db2.x = db2.y = db2.z = db2.phix = db2.phiy = db2.phiz = 0.
00703                         db2.xx = db2.xy = db2.xz = db2.yx = db2.yy = db2.yz = db2.zx = db2.zy = db2.zz = 0.
00704                     else:
00705                         db2 = database2.csc[r1.postal_address[1:]]
00706 
00707             if found and r1.status == "PASS" and r2.status == "PASS":
00708                 okay = False
00709 
00710                 if quantity == "phi":
00711                     if r1.deltax is not None and r2.deltax is not None and r1.deltax.error is not None and \
00712                        r2.deltax.error is not None and (r1.deltax.error**2 + r2.deltax.error**2) > 0.:
00713                         okay = True
00714                         values.append((db1.x - db2.x)/
00715                                       signConventions[r1.postal_address][3] * 1000. * signConventions[r1.postal_address][0])
00716                         errors.append((r1.deltax.error**2 + r2.deltax.error**2)/
00717                                       signConventions[r1.postal_address][3] * 1000. * signConventions[r1.postal_address][0])
00718 
00719                 elif quantity == "x":
00720                     if r1.deltax is not None and r2.deltax is not None and r1.deltax.error is not None and \
00721                        r2.deltax.error is not None and (r1.deltax.error**2 + r2.deltax.error**2) > 0.:
00722                         okay = True
00723                         values.append((db1.x - db2.x) * 10. * signConventions[r1.postal_address][0])
00724                         errors.append((r1.deltax.error**2 + r2.deltax.error**2) * 10. * signConventions[r1.postal_address][0])
00725 
00726                 elif quantity == "y":
00727                     if r1.deltay is not None and r2.deltay is not None and r1.deltay.error is not None and \
00728                        r2.deltay.error is not None and (r1.deltay.error**2 + r2.deltay.error**2) > 0.:
00729                         okay = True
00730                         values.append((db1.y - db2.y) * 10. * signConventions[r1.postal_address][1])
00731                         errors.append((r1.deltay.error**2 + r2.deltay.error**2) * 10. * signConventions[r1.postal_address][1])
00732 
00733                 elif quantity == "z":
00734                     if r1.deltaz is not None and r2.deltaz is not None and r1.deltaz.error is not None and \
00735                        r2.deltaz.error is not None and (r1.deltaz.error**2 + r2.deltaz.error**2) > 0.:
00736                         okay = True
00737                         values.append((db1.z - db2.z) * 10. * signConventions[r1.postal_address][2])
00738                         errors.append((r1.deltaz.error**2 + r2.deltaz.error**2) * 10. * signConventions[r1.postal_address][2])
00739 
00740                 elif quantity == "phix":
00741                     if r1.deltaphix is not None and r2.deltaphix is not None and r1.deltaphix.error is not None and \
00742                        r2.deltaphix.error is not None and (r1.deltaphix.error**2 + r2.deltaphix.error**2) > 0.:
00743                         okay = True
00744                         values.append((db1.phix - db2.phix) * 1000.)
00745                         errors.append((r1.deltaphix.error**2 + r2.deltaphix.error**2) * 1000.)
00746 
00747                 elif quantity == "phiy":
00748                     if r1.deltaphiy is not None and r2.deltaphiy is not None and r1.deltaphiy.error is not None and \
00749                        r2.deltaphiy.error is not None and (r1.deltaphiy.error**2 + r2.deltaphiy.error**2) > 0.:
00750                         okay = True
00751                         values.append((db1.phiy - db2.phiy) * 1000.)
00752                         errors.append((r1.deltaphiy.error**2 + r2.deltaphiy.error**2) * 1000.)
00753 
00754                 elif quantity == "phiz":
00755                     if r1.deltaphiz is not None and r2.deltaphiz is not None and r1.deltaphiz.error is not None and \
00756                        r2.deltaphiz.error is not None and (r1.deltaphiz.error**2 + r2.deltaphiz.error**2) > 0.:
00757                         okay = True
00758                         values.append((db1.phiz - db2.phiz) * 1000.)
00759                         errors.append((r1.deltaphiz.error**2 + r2.deltaphiz.error**2) * 1000.)
00760 
00761                 else: raise Exception
00762 
00763                 if okay:
00764                     if versus == "r": domain.append(signConventions[r1.postal_address][3])
00765                     elif versus == "phi": domain.append(signConventions[r1.postal_address][4])
00766                     elif versus == "z": domain.append(signConventions[r1.postal_address][5])
00767                     else: raise Exception
00768 
00769     if versus == "r":
00770         bkgndhist = ROOT.TH1F("bkgndhist", "", 100, 0., 800.)
00771         bkgndhist.SetXTitle("R (cm)")
00772     elif versus == "phi":
00773         bkgndhist = ROOT.TH1F("bkgndhist", "", 100, -pi, pi)
00774         bkgndhist.SetXTitle("#phi (rad)")
00775     elif versus == "z":
00776         bkgndhist = ROOT.TH1F("bkgndhist", "", 100, -1100., 1100.)
00777         bkgndhist.SetXTitle("z (cm)")
00778     bkgndhist.GetXaxis().CenterTitle()
00779 
00780     bkgndhist.SetAxisRange(-window, window, "Y")
00781     if quantity == "phi": bkgndhist.SetYTitle("#delta_{#phi} position (mrad)")
00782     elif quantity == "x": bkgndhist.SetYTitle("#delta_{x'} (mm)")
00783     elif quantity == "y": bkgndhist.SetYTitle("#delta_{y'} (mm)")
00784     elif quantity == "z": bkgndhist.SetYTitle("#delta_{z'} (mm)")
00785     elif quantity == "phix": bkgndhist.SetYTitle("#delta_{#phi_{x}} (mrad)")
00786     elif quantity == "phiy": bkgndhist.SetYTitle("#delta_{#phi_{y}} (mrad)")
00787     elif quantity == "phiz": bkgndhist.SetYTitle("#delta_{#phi_{z}} (mrad)")
00788     else: raise Exception
00789     bkgndhist.GetYaxis().CenterTitle()
00790 
00791     if len(domain) == 0:
00792         tgraph = ROOT.TGraphErrors(0)
00793     else:
00794         tgraph = ROOT.TGraphErrors(len(domain), array.array("d", domain), array.array("d", values), 
00795                                                 array.array("d", [0.]*len(domain)), array.array("d", errors))
00796     tgraph.SetMarkerColor(color)
00797     tgraph.SetLineColor(color)
00798 
00799     bkgndhist.Draw()
00800     if tgraph.GetN() > 0: tgraph.Draw("p")
00801     return bkgndhist, tgraph, domain, values, errors

def plotscripts::DBMC (   database,
  reports,
  window = 10.,
  selection = None,
  phi = False,
  color = ROOT.kBlue-8,
  style = 1,
  bins = 50,
  normalized = False,
  getvalues = False,
  name = "" 
)

Definition at line 482 of file plotscripts.py.

00484                                                                                           :
00485     return DBdiff(database, None, reports, None, window, selection, phi, color, style, bins, normalized, getvalues, name)

def plotscripts::DBMCVersus (   quantity,
  versus,
  database,
  reports,
  window = 10.,
  selection = None,
  color = ROOT.kBlack 
)

Definition at line 660 of file plotscripts.py.

00661                                                                                                   :
00662     return DBdiffVersus(quantity, versus, database, None, reports, None, window, selection, color)

def plotscripts::doTests (   reports,
  fname_base,
  fname_dqm,
  run_name 
)

Definition at line 1142 of file plotscripts.py.

01143                                                     :
01144   # find available baseline
01145   dts = availableCellsDT(reports)
01146   cscs = availableCellsCSC(reports)
01147   mulist = ['Run: '+run_name,['ALL',['MU']],['DT',dts],['CSC',cscs]]
01148   ff = open(fname_base,mode="w")
01149   print >>ff, "var MU_LIST = ["
01150   json.dump(mulist,ff)
01151   print >>ff, "];"
01152   ff.close()
01153   
01154   doTestsForReport(dts,reports)
01155   doTestsForReport(cscs,reports)
01156   
01157   loadTestResultsMap(run_name)
01158   doTestsForMapPlots(dts)
01159   doTestsForMapPlots(cscs)
01160   
01161   writeDQMReport(fname_dqm, run_name)
01162 

def plotscripts::doTestsForMapPlots (   cells)

Definition at line 1069 of file plotscripts.py.

01070                              :
01071   for c in cells:
01072     res = []
01073     
01074     scope = "zzz"
01075     if c[0:2]=="MB": scope = "DT"
01076     if c[0:2]=="ME": scope = "CSC"
01077     if scope == "zzz":
01078       print "strange cell ID: ", c
01079       return None
01080     
01081     if MAP_RESULTS_FITSIN.has_key(c):
01082       t = MAP_RESULTS_FITSIN[c]
01083       t_a = testZeroWithin5Sigma(t['a'])
01084       t_s = testZeroWithin5Sigma(t['sin'])
01085       t_c = testZeroWithin5Sigma(t['cos'])
01086       if t_a+t_s+t_c >0:
01087         descr = "map fitsin 5 sigma away from 0; pulls : a=%.2f sin=%.2f, cos=%.2f" % (t_a,t_s,t_c)
01088         res.append(testEntry("MAP_FITSIN",scope,descr,"SEVERE"))
01089     
01090     if MAP_RESULTS_SAWTOOTH.has_key(c):
01091       t = MAP_RESULTS_SAWTOOTH[c]
01092       
01093       t_a = testDeltaWithin5Sigma(t['a'],t['da'])
01094       if len(t_a)>0:
01095         descr = "map discontinuities: %s" % ",".join(map(str,t_a))
01096         res.append(testEntry("MAP_DISCONTIN",scope,descr,"SEVERE"))
01097 
01098       t_b = map(testZeroWithin5Sigma, t['b'])
01099       t_bi = []
01100       for i in range(0,len(t_b)):
01101         if t_b[i]>0: t_bi.append(i+1)
01102       if len(t_bi)>0:
01103         descr = "map sawteeth: %s" % ",".join(map(str,t_bi))
01104         res.append(testEntry("MAP_SAWTEETH",scope,descr,"TOLERABLE"))
01105 
01106     addToTestResults(c,res)
01107 

def plotscripts::doTestsForReport (   cells,
  reports 
)

Definition at line 1005 of file plotscripts.py.

01006                                    :
01007   for c in cells:
01008     # can a cell be converted to a chamber postal address?
01009     postal_address = idToPostalAddress(c)
01010     if not postal_address: continue
01011     
01012     # is this chamber in _report?
01013     found = False
01014     for r in reports:
01015       if r.postal_address == postal_address:
01016         found = True
01017         break
01018     if not found: continue
01019 
01020     # chamber's tests result
01021     res = []
01022     scope = postal_address[0]
01023     
01024     # noting could be done if fitting fails
01025     if r.status == "FAIL" or r.status == "MINUITFAIL":
01026       res.append(testEntry("FAILURE",scope,r.status+" failure","CRITICAL"))
01027       addToTestResults(c,res)
01028       continue
01029 
01030     # noting could be done if TOOFEWHITS
01031     nseg = r.posNum + r.negNum
01032     if r.status == "TOOFEWHITS" and nseg>0:
01033       res.append(testEntry("LOW_STAT",scope,"low stat, #segments=%d"%nseg,"LOWSTAT"))
01034       addToTestResults(c,res)
01035       continue
01036 
01037     # set shades of light green according to sidma(dx)
01038     sdx = 10.*r.deltax.error
01039     if sdx>0.5:
01040       if sdx<0.75: res.append(testEntry("LOW_STAT_DDX05",scope,"low stat, delta(dx)=%f #segments=%d" % (sdx,nseg),"LOWSTAT05"))
01041       elif sdx<1.: res.append(testEntry("LOW_STAT_DDX075",scope,"low stat, delta(dx)=%f #segments=%d" % (sdx,nseg),"LOWSTAT075"))
01042       else: res.append(testEntry("LOW_STAT_DDX1",scope,"low stat, delta(dx)=%f #segments=%d" % (sdx,nseg),"LOWSTAT1"))
01043 
01044     # check chi2
01045     if r.redchi2 > 2.5:
01046       res.append(testEntry("BIG_CHI2",scope,"chi2=%f>2.5" % r.redchi2,"TOLERABLE"))
01047 
01048     # check medians
01049     medx, meddx = 10.*r.median_x, 1000.*r.median_dxdz
01050     #medy, meddy = 10.*r.median_y, 1000.*r.median_dydz
01051     if medx>2:  res.append(testEntry("BIG_MED_X",scope,"median dx=%f>2 mm"%medx,"SEVERE"))
01052     #if medy>3: res.append(testEntry("BIG_MED_Y",scope,"median dy=%f>3 mm"%medy,"SEVERE"))
01053     if meddx>2: res.append(testEntry("BIG_MED_DXDZ",scope,"median d(dx/dz)=%f>2 mrad"%meddx,"SEVERE"))
01054     #if meddy>3: res.append(testEntry("BIG_MED_DYDZ",scope,"median d(dy/dz)=%f>3 mrad"%meddy,"SEVERE"))
01055 
01056     # check residuals far from zero
01057     isDTst4 = False
01058     if postal_address[0] == "DT" and postal_address[2]==4: isDTst4 = True
01059     dx, dy, dpy, dpz = 10.*r.deltax.value, 0., 1000.*r.deltaphiy.value, 1000.*r.deltaphiz.value
01060     if not isDTst4: dy = 10.*r.deltay.value
01061     if dx>0.2:   res.append(testEntry("BIG_LAST_ITR_DX",scope,"dx=%f>0.2 mm"%dx,"CRITICAL"))
01062     if dy>0.2:   res.append(testEntry("BIG_LAST_ITR_DY",scope,"dy=%f>0.2 mm"%dy,"CRITICAL"))
01063     if dpy>0.2:   res.append(testEntry("BIG_LAST_ITR_DPHIY",scope,"dphiy=%f>0.2 mrad"%dpy,"CRITICAL"))
01064     if dpz>0.2:   res.append(testEntry("BIG_LAST_ITR_DPHIZ",scope,"dphiz=%f>0.2 mrad"%dpz,"CRITICAL"))
01065     #if ddx>0.03: res.append(testEntry("BIG_DX",scope,"dphix=%f>0.03 mrad"%ddx,"CRITICAL"))
01066 
01067     addToTestResults(c,res)
01068 

def plotscripts::getname (   r)

Definition at line 1831 of file plotscripts.py.

01832               :
01833     if r.postal_address[0] == "DT":
01834         wheel, station, sector = r.postal_address[1:]
01835         return "DT wheel %d, station %d, sector %d" % (wheel, station, sector)
01836     elif r.postal_address[0] == "CSC":
01837         endcap, station, ring, chamber = r.postal_address[1:]
01838         if endcap != 1: station = -1 * abs(station)
01839         return "CSC ME%d/%d chamber %d" % (station, ring, chamber)
01840 
ddt=[0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.]
def plotscripts::idToPostalAddress (   id)

Definition at line 804 of file plotscripts.py.

00805                          :
00806   # only len==9 ids can correspond to valid postal address
00807   if len(id)!=9: return None
00808   if id[0:2]=="MB":
00809     #print id
00810     pa = ("DT", int(id[2:4]), int(id[5]), int(id[7:9]))
00811     #print pa
00812     if pa[1]<-2 or pa[1]>2: return None
00813     if pa[2]>4: return None
00814     if pa[3]<1 or pa[3]>14 or (pa[3]==4 and pa[3]>12): return None
00815     return pa
00816   elif id[0:2]=="ME":
00817     if id[2]=="+": ec=1
00818     elif id[2]=="-": ec=2
00819     else: return None
00820     pa = ("CSC", ec, int(id[3]), int(id[5]), int(id[7:9]))
00821     if pa[2]<1 or pa[2]>4: return None
00822     if pa[3]<1 or pa[3]>4 or (pa[2]>1 and pa[3]>2): return None
00823     if pa[4]<1 or pa[4]>36 or (pa[2]>1 and pa[3]==1 and pa[4]>18): return None
00824     return pa
00825   else: return None
00826 

def plotscripts::loadTestResultsMap (   run_name)

Definition at line 1116 of file plotscripts.py.

01117                                 :
01118   print "tmp_test_results_map__%s.pkl" % run_name, os.access("tmp_test_results_map__%s.pkl" % run_name,os.F_OK)
01119   if not os.access("tmp_test_results_map__%s.pkl" % run_name,os.F_OK): return None
01120   global MAP_RESULTS_FITSIN, MAP_RESULTS_SAWTOOTH
01121   ff = open("tmp_test_results_map__%s.pkl" % run_name, "rb")
01122   MAP_RESULTS_SAWTOOTH = pickle.load(ff)
01123   MAP_RESULTS_FITSIN = pickle.load(ff)
01124   ff.close()
01125   #execfile("tmp_test_results_map__%s.py" % run_name)
01126   #print 'asasas', MAP_RESULTS_FITSIN
01127   return True

def plotscripts::mapNameToId (   name)

Definition at line 1582 of file plotscripts.py.

01583                      :
01584   if "DT" in name:
01585     wh = "-ALL"
01586     if name.find('wh')>1: wh = name[name.find('wh')+2]
01587     if   wh == "A": w = "-2"
01588     elif wh == "B": w = "-1"
01589     elif wh == "C": w = "-0"
01590     elif wh == "D": w = "+1"
01591     elif wh == "E": w = "+2"
01592     elif wh == "-ALL": w = "-ALL"
01593     else: return None
01594     station=''
01595     if wh == "-ALL": 
01596         if name.find('sec')<0: return None
01597         station = name[name.find('sec')-1]
01598         sector = ''
01599         sector = name[name.find('sec')+3:name.find('sec')+5]
01600         return "MB%s/%s/%s" % (w, station, sector)
01601     if name.find('st')>1: station = name[name.find('st')+2]
01602     else: return None
01603     return "MB%s/%s" % (w, station)
01604   elif "CSC" in name:
01605     p = name.find('me')
01606     if p<0: return None
01607     if name[p+2]=="p": endcap = "+"
01608     elif name[p+2]=="m": endcap = "-"
01609     else: return None
01610     station = name[p+3]
01611     pch = name.find('ch')
01612     if pch<0:
01613         ring = name[p+4]
01614         return "ME%s%s/%s" % (endcap, station, ring)
01615     ring = 'ALL'
01616     chamber = name[pch+2:pch+4]
01617     return "ME%s%s/%s/%s" % (endcap, station, ring, chamber)
01618   return None
01619 

def plotscripts::mapplot (   tfiles,
  name,
  param,
  mode = "from2d",
  window = 40.,
  abscissa = None,
  title = "",
  widebins = False,
  fitsine = False,
  fitline = False,
  reset_palette = False,
  fitsawteeth = False 
)

Definition at line 1332 of file plotscripts.py.

01334                                                                                                  :
01335     tdrStyle.SetOptTitle(1)
01336     tdrStyle.SetTitleBorderSize(0)
01337     tdrStyle.SetOptStat(0)
01338     #tdrStyle.SetOptStat("emrou")
01339     tdrStyle.SetOptFit(0)
01340     tdrStyle.SetTitleFontSize(0.05)
01341     tdrStyle.SetPadRightMargin(0.1) # to see the pallete labels on the left
01342     
01343     c1.Clear()
01344     c1.ResetAttPad()
01345     
01346     if reset_palette: set_palette("blues")
01347     global hist, hist2d, hist2dweight, tline1, tline2, tline3
01348     
01349     if fitsine or fitsawteeth:
01350         id = mapNameToId(name)
01351         if not id:
01352             print "bad id for ", name
01353             raise Exception
01354     
01355     hdir = "AlignmentMonitorMuonSystemMap1D/iter1/"
01356     hpref= "%s_%s" % (name, param)
01357     hhh  = hdir+hpref
01358 
01359     prof = tfiles[0].Get(hhh+"_prof").Clone(hpref+"_prof_")
01360     profPos = tfiles[0].Get(hhh+"_profPos").Clone(hpref+"_profPos_")
01361     profNeg = tfiles[0].Get(hhh+"_profNeg").Clone(hpref+"_profNeg_")
01362     weights = tfiles[0].Get(hhh+"_weights").Clone(hpref+"_weights_")
01363     valweights = tfiles[0].Get(hhh+"_valweights").Clone(hpref+"_valweights_")
01364     hist2d = tfiles[0].Get(hhh+"_2d").Clone(hpref+"_2d_")
01365     hist2dweight = tfiles[0].Get(hhh+"_2dweight").Clone(hpref+"_2dweight_")
01366     
01367     for tfile in tfiles[1:]:
01368         prof.Add(tfile.Get(hhh+"_prof"))
01369         profPos.Add(tfile.Get(hhh+"_profPos"))
01370         profNeg.Add(tfile.Get(hhh+"_profNeg"))
01371         weights.Add(tfile.Get(hhh+"_weights"))
01372         valweights.Add(tfile.Get(hhh+"_valweights"))
01373         hist2d.Add(tfile.Get(hhh+"_2d"))
01374         hist2dweight.Add(tfile.Get(hhh+"_2dweight"))
01375 
01376     if mode == "plain":
01377         hist = prof
01378 
01379     elif mode in ("from2d", "from2dweight"):
01380         if mode == "from2d": the2d = hist2d
01381         else: the2d = hist2dweight
01382 
01383         hist = weights.Clone()
01384         hist.Reset()
01385         skip = 1
01386         if widebins:
01387             hist.Rebin(10)
01388             skip = 10
01389 
01390         #f = ROOT.TF1("g", "gaus", -40., 40)
01391         for i in xrange(0, int(weights.GetNbinsX()), skip):
01392             tmp = the2d.ProjectionY("tmp", i+1, i + skip)
01393             if tmp.GetEntries() > 1:
01394                 #tmp.Fit("g","LNq")
01395                 hist.SetBinContent(i/skip+1, tmp.GetMean())
01396                 hist.SetBinError(i/skip+1, ROOT.TMath.StudentQuantile(0.841345,tmp.GetEntries()) * tmp.GetRMS() / sqrt(tmp.GetEntries()))
01397                 #hist.SetBinError(i/skip+1, tmp.GetRMS() / sqrt(tmp.GetEntries()))
01398                 #hist.SetBinError(i/skip+1, f.GetParameter(2))
01399             else:
01400                 #hist.SetBinContent(i/skip+1, 2000.)
01401                 #hist.SetBinError(i/skip+1, 1000.)
01402                 hist.SetBinContent(i/skip+1, 0.)
01403                 hist.SetBinError(i/skip+1, 0.)
01404         
01405     elif mode == "weighted":
01406         if weights.GetEntries() == 0:
01407             averageweight = 0.
01408         else:
01409             sumofweights = 0.
01410             for i in xrange(0, int(weights.GetNbinsX())+2):
01411                 sumofweights += weights.GetBinContent(i)
01412             averageweight = sumofweights / weights.GetEntries()
01413         hist = weights.Clone()
01414         for i in xrange(1, int(weights.GetNbinsX())+1):
01415             if weights.GetBinContent(i) > 0:
01416                 thisweight = weights.GetBinContent(i) / averageweight
01417                 hist.SetBinContent(i, valweights.GetBinContent(i) / thisweight)
01418                 hist.SetBinError(i, sqrt(1. / thisweight))
01419             else:
01420                 hist.SetBinContent(i, 2000.)
01421                 hist.SetBinError(i, 1000.)
01422 
01423     else:
01424         raise Exception
01425 
01426     hist.SetAxisRange(-window, window, "Y")
01427     if abscissa is not None: hist.SetAxisRange(abscissa[0], abscissa[1], "X")
01428     hist.SetMarkerStyle(20)
01429     hist.SetMarkerSize(0.75)
01430     hist.GetXaxis().CenterTitle()
01431     hist.GetYaxis().CenterTitle()
01432     hist.GetYaxis().SetTitleOffset(0.75)
01433     hist.GetXaxis().SetTitleSize(0.05)
01434     hist.GetYaxis().SetTitleSize(0.05)
01435     hist.SetTitle(title)
01436     if "vsphi" in name: hist.SetXTitle("Global #phi position (rad)")
01437     elif "vsz" in name: hist.SetXTitle("Global z position (cm)")
01438     elif "vsr" in name: hist.SetXTitle("Global R position (cm)")
01439     if "DT" in name:
01440         if param == "x": hist.SetYTitle("x' residual (mm)")
01441         if param == "dxdz": hist.SetYTitle("dx'/dz residual (mrad)")
01442         if param == "y": hist.SetYTitle("y' residual (mm)")
01443         if param == "dydz": hist.SetYTitle("dy'/dz residual (mm)")
01444     if "CSC" in name:
01445         if param == "x": hist.SetYTitle("r#phi residual (mm)")
01446         if param == "dxdz": hist.SetYTitle("d(r#phi)/dz residual (mrad)")
01447     hist.SetMarkerColor(ROOT.kBlack)
01448     hist.SetLineColor(ROOT.kBlack)
01449     hist.Draw()
01450     hist2d.Draw("colzsame")
01451     if widebins: hist.Draw("samee1")
01452     else: hist.Draw("same")
01453 
01454     if fitsine and "vsphi" in name:
01455         global fitsine_const, fitsine_sin, fitsine_cos, fitsine_chi2, fitsine_ndf
01456         f = ROOT.TF1("f", "[0] + [1]*sin(x) + [2]*cos(x)", -pi, pi)
01457         #hist.Fit(f,"N")
01458         hist.Fit(f,"NE")
01459         f.SetLineColor(ROOT.kRed)
01460         fitsine_const = f.GetParameter(0), f.GetParError(0)
01461         fitsine_sin = f.GetParameter(1), f.GetParError(1)
01462         fitsine_cos = f.GetParameter(2), f.GetParError(2)
01463         fitsine_chi2 = f.GetChisquare()
01464         fitsine_ndf = f.GetNDF()
01465         global MAP_RESULTS_FITSIN
01466         MAP_RESULTS_FITSIN[id] = {'a':fitsine_const, 'sin': fitsine_sin, 'cos': fitsine_cos, 'chi2': fitsine_chi2, 'ndf': fitsine_ndf}
01467         f.Draw("same")
01468         global fitsine_ttext
01469         fitsine_ttext = ROOT.TLatex(-1., 0.8*window, 
01470                 "%.3g %+.3g sin(#phi) %+.3g cos(#phi)" % (fitsine_const[0], fitsine_sin[0], fitsine_cos[0]))
01471         fitsine_ttext.SetTextColor(ROOT.kRed)
01472         fitsine_ttext.Draw()
01473 
01474     if fitline:
01475         f = ROOT.TF1("f", "[0] + [1]*x", -1000., 1000.)
01476         hist2d.Fit(f, "q")
01477         hist2d.GetFunction("f").SetLineColor(ROOT.kRed)
01478         global fitline_const, fitline_linear, fitline_chi2, fitline_ndf
01479         fitline_const = hist2d.GetFunction("f").GetParameter(0), hist2d.GetFunction("f").GetParError(0)
01480         fitline_linear = hist2d.GetFunction("f").GetParameter(1), hist2d.GetFunction("f").GetParError(1)
01481         fitline_chi2 = hist2d.GetFunction("f").GetChisquare()
01482         fitline_ndf = hist2d.GetFunction("f").GetNDF()
01483         hist2d.GetFunction("f").Draw("same")
01484         global fitline_ttext
01485         if "vsz" in name: which = "Z"
01486         elif "vsr" in name: which = "R"
01487         fitline_ttext = ROOT.TText(hist.GetBinCenter(hist.GetNbinsX()/4), 
01488                 0.8*window, "%.3g %+.3g %s" % (fitline_const[0], fitline_linear[0], which))
01489         fitline_ttext.SetTextColor(ROOT.kRed)
01490         fitline_ttext.Draw()
01491 
01492     ROOT.gPad.RedrawAxis()
01493 
01494     if "vsphi" in name: 
01495         if not widebins: philines(name, window, abscissa)
01496         if abscissa is None:
01497             tline1 = ROOT.TLine(-pi, 0, pi, 0); tline1.Draw()
01498             tline2 = ROOT.TLine(-pi, -window, pi, -window); tline2.SetLineWidth(2); tline2.Draw()
01499             tline3 = ROOT.TLine(-pi, window, pi, window); tline3.Draw()
01500         else:
01501             tline1 = ROOT.TLine(abscissa[0], 0, abscissa[1], 0); tline1.Draw()
01502             tline2 = ROOT.TLine(abscissa[0], -window, abscissa[1], -window); tline2.SetLineWidth(2); tline2.Draw()
01503             tline3 = ROOT.TLine(abscissa[0], window, abscissa[1], window); tline3.Draw()
01504     elif "vsz" in name:
01505         if not widebins: zlines(window, abscissa)
01506         if abscissa is None:
01507             tline1 = ROOT.TLine(-660, 0, 660, 0); tline1.Draw()
01508             tline2 = ROOT.TLine(-660, -window, 660, -window); tline2.SetLineWidth(2); tline2.Draw()
01509             tline3 = ROOT.TLine(-660, window, 660, window); tline3.Draw()
01510         else:
01511             tline1 = ROOT.TLine(abscissa[0], 0, abscissa[1], 0); tline1.Draw()
01512             tline2 = ROOT.TLine(abscissa[0], -window, abscissa[1], -window); tline2.SetLineWidth(2); tline2.Draw()
01513             tline3 = ROOT.TLine(abscissa[0], window, abscissa[1], window); tline3.Draw()
01514     elif "vsr" in name:
01515         if "mem1" in name or "mep1" in name and not widebins: rlines(1, window, abscissa)
01516         if "mem2" in name or "mep2" in name and not widebins: rlines(2, window, abscissa)
01517         if "mem3" in name or "mep3" in name and not widebins: rlines(3, window, abscissa)
01518         if "mem4" in name or "mep4" in name and not widebins: rlines(4, window, abscissa)
01519         if abscissa is None:
01520             tline1 = ROOT.TLine(100, 0, 700, 0); tline1.Draw()
01521             tline2 = ROOT.TLine(100, -window, 700, -window); tline2.SetLineWidth(2); tline2.Draw()
01522             tline3 = ROOT.TLine(100, window, 700, window); tline3.Draw()
01523         else:
01524             tline1 = ROOT.TLine(abscissa[0], 0, abscissa[1], 0); tline1.Draw()
01525             tline2 = ROOT.TLine(abscissa[0], -window, abscissa[1], -window); tline2.SetLineWidth(2); tline2.Draw()
01526             tline3 = ROOT.TLine(abscissa[0], window, abscissa[1], window); tline3.Draw()
01527 
01528     if "vsphi" in name and fitsawteeth:
01529         global CPP_LOADED
01530         if not CPP_LOADED:
01531             phiedges2c()
01532             ROOT.gROOT.ProcessLine(".L phiedges_fitfunctions.C++")
01533             CPP_LOADED = True
01534         fn={0: ROOT.fitf0,
01535             1: ROOT.fitf2,
01536             2: ROOT.fitf2,
01537             3: ROOT.fitf3,
01538             4: ROOT.fitf4,
01539             5: ROOT.fitf5,
01540             6: ROOT.fitf6,
01541             7: ROOT.fitf7,
01542             8: ROOT.fitf8,
01543             9: ROOT.fitf9,
01544             10: ROOT.fitf10,
01545             11: ROOT.fitf11,
01546             12: ROOT.fitf12,
01547             13: ROOT.fitf13
01548         } [stationIndex(name)]
01549         fn.SetNpx(5000)
01550         fn.SetLineColor(ROOT.kYellow)
01551         hist.Fit(fn,"N")
01552         fn.Draw("same")
01553 
01554         # get properly arranged phi edges
01555         edges = (phiedges[stationIndex(name)])[:]
01556         ed = sorted(edges)
01557         # add some padding to the end
01558         ed.append(pi+abs(ed[0]))
01559 
01560         global sawtooth_a, sawtooth_b
01561         sawtooth_a = []
01562         sawtooth_da = []
01563         sawtooth_b = []
01564         for pr in range(0,fn.GetNpar(),2):
01565             sawtooth_a.append( (fn.GetParameter(pr), fn.GetParError(pr)) )
01566             sawtooth_b.append( (fn.GetParameter(pr+1), fn.GetParError(pr+1)) )
01567             sawtooth_da.append( (fn.Eval(ed[pr/2]+0.01), fn.Eval(ed[pr/2+1]-0.01)) )
01568         global MAP_RESULTS_SAWTOOTH
01569         MAP_RESULTS_SAWTOOTH[id] = {'a': sawtooth_a, 'da': sawtooth_da, 'b': sawtooth_b, 'chi2': fn.GetChisquare(), 'ndf': fn.GetNDF()}
01570 
01571     # fill number of contributiong bins
01572     
01573     
01574     #ROOT.SetOwnership(hist,False)
01575     ROOT.SetOwnership(hist2d,False)
01576     ROOT.SetOwnership(hist2dweight,False)
01577     ROOT.SetOwnership(tline1,False)
01578     ROOT.SetOwnership(tline2,False)
01579     ROOT.SetOwnership(tline3,False)
01580     return hist
01581 

def plotscripts::mean (   xlist)

Definition at line 50 of file plotscripts.py.

00051                :
00052   s, n = 0., 0.
00053   for x in xlist:
00054     s += x
00055     n += 1.
00056   return s/n

def plotscripts::nameToId (   name)

Definition at line 839 of file plotscripts.py.

00840                   :
00841   if name[0:2] == "MB":
00842     wh = name[4]
00843     if   wh == "A": w = "-2"
00844     elif wh == "B": w = "-1"
00845     elif wh == "C": w = "-0"
00846     elif wh == "D": w = "+1"
00847     elif wh == "E": w = "+2"
00848     else: return ""
00849     station = name[7]
00850     sector = name[11:13]
00851     return "MB%s/%s/%s" % (w, station, sector)
00852   elif name[0:2] == "ME":
00853     if name[2]=="p": endcap = "+"
00854     elif name[2]=="m": endcap = "-"
00855     else: return ""
00856     station = name[3]
00857     ring = name[4]
00858     chamber = name[6:8]
00859     return "ME%s%s/%s/%s" % (endcap, station, ring, chamber)
00860   return None
00861 

def plotscripts::phiedges2c ( )

Definition at line 349 of file plotscripts.py.

00350                 :
00351   lines = []
00352   for ed in phiedges[:]:
00353     ed.sort()
00354     #print ed
00355     ed.extend([999 for n in range(0,37-len(ed))])
00356     lines.append('{' + ', '.join(map(str, ed)) + '}')
00357   #print lines
00358   res = ', '.join(lines)
00359   ff = open("phiedges_export.h",mode="w")
00360   print>>ff,'double phiedges[14][37] = {' + res + '};'
00361   ff.close()

def plotscripts::philines (   name,
  window,
  abscissa 
)

Definition at line 425 of file plotscripts.py.

00426                                     :
00427     global philine_tlines, philine_labels
00428     philine_tlines = []
00429     edges = phiedges[stationIndex(name)]
00430     #print name, len(edges)
00431     for phi in edges:
00432         if abscissa is None or abscissa[0] < phi < abscissa[1]:
00433             philine_tlines.append(ROOT.TLine(phi, -window, phi, window))
00434             philine_tlines[-1].SetLineStyle(2)
00435             philine_tlines[-1].Draw()
00436     if "st" in name: # DT labels
00437         philine_labels = []
00438         edges = edges[:]
00439         edges.sort()
00440         if "st4" in name:
00441             labels = [" 7", " 8", " 9", "14", "10", "11", "12", " 1", " 2", " 3", "13", " 4", " 5", " 6"]
00442         else: 
00443             labels = [" 8", " 9", "10", "11", "12", " 1", " 2", " 3", " 4", " 5", " 6"]
00444             edges = edges[1:]
00445         for phi, label in zip(edges, labels):
00446             littlebit = 0.
00447             if label in (" 7", " 9", "14", "10", "11"): littlebit = 0.05
00448             philine_labels.append(ROOT.TText(phi-0.35+littlebit, -0.9*window, label))
00449             philine_labels[-1].Draw()
00450         philine_labels.append(ROOT.TText(-2.9, -0.75*window, "Sector:"))
00451         philine_labels[-1].Draw()

def plotscripts::plotmedians (   reports1,
  reports2,
  selection = None,
  binsx = 50,
  windowx = 3.,
  ceilingx = None,
  binsy = 50,
  windowy = 3.,
  ceilingy = None,
  binsdxdz = 50,
  windowdxdz = 3.,
  ceilingdxdz = None,
  binsdydz = 50,
  windowdydz = 3.,
  ceilingdydz = None,
  r1text = " before",
  r2text = " after",
  which = "median" 
)

Definition at line 1165 of file plotscripts.py.

01168                                                                   :
01169     tdrStyle.SetOptStat("emrou")
01170     tdrStyle.SetStatW(0.40)
01171     tdrStyle.SetStatFontSize(0.05)
01172 
01173     global hmediandxdz_after, hmediandxdz_aftercopy, hmediandxdz_before, hmediandxdz_beforecopy, \
01174            hmediandydz_after, hmediandydz_aftercopy, hmediandydz_before, hmediandydz_beforecopy, \
01175            hmedianx_after, hmedianx_aftercopy, hmedianx_before, hmedianx_beforecopy, \
01176            hmediany_after, hmediany_aftercopy, hmediany_before, hmediany_beforecopy, tlegend 
01177 
01178     hmedianx_before = ROOT.TH1F("hmedianx_before", "", binsx, -windowx, windowx)
01179     hmediany_before = ROOT.TH1F("hmediany_before", "", binsy, -windowy, windowy)
01180     hmediandxdz_before = ROOT.TH1F("hmediandxdz_before", "", binsdxdz, -windowdxdz, windowdxdz)
01181     hmediandydz_before = ROOT.TH1F("hmediandydz_before", "", binsdydz, -windowdydz, windowdydz)
01182     hmedianx_after = ROOT.TH1F("hmedianx_after", "", binsx, -windowx, windowx)
01183     hmediany_after = ROOT.TH1F("hmediany_after", "", binsy, -windowy, windowy)
01184     hmediandxdz_after = ROOT.TH1F("hmediandxdz_after", "", binsdxdz, -windowdxdz, windowdxdz)
01185     hmediandydz_after = ROOT.TH1F("hmediandydz_after", "", binsdydz, -windowdydz, windowdydz)
01186 
01187     if which == "median":
01188         whichx = whichy = whichdxdz = whichdydz = "median"
01189     elif which == "bigmean":
01190         whichx = "mean30"
01191         whichy = "mean30"
01192         whichdxdz = "mean20"
01193         whichdydz = "mean50"
01194     elif which == "mean":
01195         whichx = "mean15"
01196         whichy = "mean15"
01197         whichdxdz = "mean10"
01198         whichdydz = "mean25"
01199     elif which == "bigwmean":
01200         whichx = "wmean30"
01201         whichy = "wmean30"
01202         whichdxdz = "wmean20"
01203         whichdydz = "wmean50"
01204     elif which == "wmean":
01205         whichx = "wmean15"
01206         whichy = "wmean15"
01207         whichdxdz = "wmean10"
01208         whichdydz = "wmean25"
01209     elif which == "bigstdev":
01210         whichx = "stdev30"
01211         whichy = "stdev30"
01212         whichdxdz = "stdev20"
01213         whichdydz = "stdev50"
01214     elif which == "stdev":
01215         whichx = "stdev15"
01216         whichy = "stdev15"
01217         whichdxdz = "stdev10"
01218         whichdydz = "stdev25"
01219     else:
01220         raise Exception, which + " not recognized"
01221 
01222     for r1 in reports1:
01223         if selection is None or (selection.func_code.co_argcount == len(r1.postal_address) and selection(*r1.postal_address)):
01224             found = False
01225             for r2 in reports2:
01226                 if r1.postal_address == r2.postal_address:
01227                     found = True
01228                     break
01229             if not found: continue
01230 
01231             if r1.status == "PASS" and r2.status == "PASS":
01232                 hmedianx_before.Fill(10.*eval("r1.%s_x" % whichx))
01233                 hmediandxdz_before.Fill(1000.*eval("r1.%s_dxdz" % whichdxdz))
01234                 hmedianx_after.Fill(10.*eval("r2.%s_x" % whichx))
01235                 hmediandxdz_after.Fill(1000.*eval("r2.%s_dxdz" % whichdxdz))
01236 
01237                 if r1.median_y is not None:
01238                     hmediany_before.Fill(10.*eval("r1.%s_y" % whichy))
01239                     hmediandydz_before.Fill(1000.*eval("r1.%s_dydz" % whichdydz))
01240                     hmediany_after.Fill(10.*eval("r2.%s_y" % whichy))
01241                     hmediandydz_after.Fill(1000.*eval("r2.%s_dydz" % whichdydz))
01242 
01243     hmedianx_beforecopy = hmedianx_before.Clone()
01244     hmediany_beforecopy = hmediany_before.Clone()
01245     hmediandxdz_beforecopy = hmediandxdz_before.Clone()
01246     hmediandydz_beforecopy = hmediandydz_before.Clone()
01247     hmedianx_beforecopy.SetLineStyle(2)
01248     hmediany_beforecopy.SetLineStyle(2)
01249     hmediandxdz_beforecopy.SetLineStyle(2)
01250     hmediandydz_beforecopy.SetLineStyle(2)
01251 
01252     hmedianx_before.SetFillColor(ROOT.kMagenta+2)
01253     hmediany_before.SetFillColor(ROOT.kMagenta+2)
01254     hmediandxdz_before.SetFillColor(ROOT.kMagenta+2)
01255     hmediandydz_before.SetFillColor(ROOT.kMagenta+2)
01256     hmedianx_after.SetFillColor(ROOT.kYellow)
01257     hmediany_after.SetFillColor(ROOT.kYellow)
01258     hmediandxdz_after.SetFillColor(ROOT.kYellow)
01259     hmediandydz_after.SetFillColor(ROOT.kYellow)
01260 
01261     hmedianx_aftercopy = hmedianx_after.Clone()
01262     hmediany_aftercopy = hmediany_after.Clone()
01263     hmediandxdz_aftercopy = hmediandxdz_after.Clone()
01264     hmediandydz_aftercopy = hmediandydz_after.Clone()
01265     hmedianx_aftercopy.GetXaxis().SetLabelColor(ROOT.kWhite)
01266     hmediany_aftercopy.GetXaxis().SetLabelColor(ROOT.kWhite)
01267     hmediandxdz_aftercopy.GetXaxis().SetLabelColor(ROOT.kWhite)
01268     hmediandydz_aftercopy.GetXaxis().SetLabelColor(ROOT.kWhite)
01269     hmedianx_aftercopy.GetYaxis().SetLabelColor(ROOT.kWhite)
01270     hmediany_aftercopy.GetYaxis().SetLabelColor(ROOT.kWhite)
01271     hmediandxdz_aftercopy.GetYaxis().SetLabelColor(ROOT.kWhite)
01272     hmediandydz_aftercopy.GetYaxis().SetLabelColor(ROOT.kWhite)
01273 
01274     hmedianx_after.SetXTitle("median(#Deltax) (mm)")
01275     hmediany_after.SetXTitle("median(#Deltay) (mm)")
01276     hmediandxdz_after.SetXTitle("median(#Deltadx/dz) (mrad)")
01277     hmediandydz_after.SetXTitle("median(#Deltadydz) (mrad)")
01278     hmedianx_after.GetXaxis().CenterTitle()
01279     hmediany_after.GetXaxis().CenterTitle()
01280     hmediandxdz_after.GetXaxis().CenterTitle()
01281     hmediandydz_after.GetXaxis().CenterTitle()
01282 
01283     if ceilingx is not None: hmedianx_aftercopy.SetAxisRange(0., ceilingx, "Y")
01284     if ceilingy is not None: hmediany_aftercopy.SetAxisRange(0., ceilingy, "Y")
01285     if ceilingdxdz is not None: hmediandxdz_aftercopy.SetAxisRange(0., ceilingdxdz, "Y")
01286     if ceilingdydz is not None: hmediandydz_aftercopy.SetAxisRange(0., ceilingdydz, "Y")
01287 
01288     c1.Clear()
01289     c1.Divide(2, 2)
01290 
01291     c1.GetPad(1).cd()
01292     hmedianx_aftercopy.Draw()
01293     hmedianx_before.Draw("same")
01294     hmedianx_after.Draw("same")
01295     hmedianx_beforecopy.Draw("same")
01296     hmedianx_after.Draw("axissame")
01297 
01298     tlegend = ROOT.TLegend(0.17, 0.75-0.05, 0.45+0.05, 0.9)
01299     tlegend.SetFillColor(ROOT.kWhite)
01300     tlegend.SetBorderSize(0)
01301     tlegend.AddEntry(hmedianx_after, r2text, "f")
01302     tlegend.AddEntry(hmedianx_before, r1text, "f")
01303     tlegend.Draw()
01304 
01305     c1.GetPad(2).cd()
01306     hmediandxdz_aftercopy.Draw()
01307     hmediandxdz_before.Draw("same")
01308     hmediandxdz_after.Draw("same")
01309     hmediandxdz_beforecopy.Draw("same")
01310     hmediandxdz_after.Draw("axissame")
01311 
01312     c1.GetPad(3).cd()
01313     hmediany_aftercopy.Draw()
01314     hmediany_before.Draw("same")
01315     hmediany_after.Draw("same")
01316     hmediany_beforecopy.Draw("same")
01317     hmediany_after.Draw("axissame")
01318 
01319     c1.GetPad(4).cd()
01320     hmediandydz_aftercopy.Draw()
01321     hmediandydz_before.Draw("same")
01322     hmediandydz_after.Draw("same")
01323     hmediandydz_beforecopy.Draw("same")
01324     hmediandydz_after.Draw("axissame")
01325 
01326     return hmediandxdz_after, hmediandxdz_aftercopy, hmediandxdz_before, hmediandxdz_beforecopy, \
01327            hmediandydz_after, hmediandydz_aftercopy, hmediandydz_before, hmediandydz_beforecopy, \
01328            hmedianx_after, hmedianx_aftercopy, hmedianx_before, hmedianx_beforecopy, \
01329            hmediany_after, hmediany_aftercopy, hmediany_before, hmediany_beforecopy, tlegend 

def plotscripts::polynomials (   tfile,
  reports,
  name,
  twobin = True,
  suppressblue = False 
)

Definition at line 2029 of file plotscripts.py.

02030                                                                       :
02031     t1 = time.time()
02032     ddt[7] += 1
02033     global label1, label2, label3, label4, label5, label6, label7, label8, label9
02034     plotDirectory = "MuonAlignmentFromReference"
02035     tdrStyle.SetOptTitle(1)
02036     tdrStyle.SetTitleBorderSize(1)
02037     tdrStyle.SetTitleFontSize(0.1)
02038     tdrStyle.SetOptStat(0)
02039 
02040     c1.Clear()
02041     c1.ResetAttPad()
02042 
02043     found = False
02044     for r in reports:
02045         if r.name == name:
02046             found = True
02047             break
02048     if not found: raise Exception, "Not a valid name"
02049 
02050     if r.status == "FAIL":
02051         #raise Exception, "Fit failed"
02052         print "Fit failed"
02053         c1.Clear()
02054         return
02055 
02056     Pos = "Pos"; Neg = "Neg"
02057     if not twobin:
02058         Pos = ""; Neg = ""
02059 
02060     pdirPos = "MuonAlignmentFromReference/%s%s" % (name, Pos)
02061     pdirNeg = "MuonAlignmentFromReference/%s%s" % (name, Neg)
02062 
02063     global chamber_x_trackx, chamber_x_trackx_fit, chamber_y_trackx, chamber_y_trackx_fit, \
02064         chamber_dxdz_trackx, chamber_dxdz_trackx_fit, chamber_dydz_trackx, chamber_dydz_trackx_fit, \
02065         chamber_x_trackx_fit2, chamber_y_trackx_fit2, chamber_dxdz_trackx_fit2, chamber_dydz_trackx_fit2
02066     global chamber_x_tracky, chamber_x_tracky_fit, chamber_y_tracky, chamber_y_tracky_fit, \
02067         chamber_dxdz_tracky, chamber_dxdz_tracky_fit, chamber_dydz_tracky, chamber_dydz_tracky_fit, \
02068         chamber_x_tracky_fit2, chamber_y_tracky_fit2, chamber_dxdz_tracky_fit2, chamber_dydz_tracky_fit2
02069     global chamber_x_trackdxdz, chamber_x_trackdxdz_fit, chamber_y_trackdxdz, chamber_y_trackdxdz_fit, \
02070         chamber_dxdz_trackdxdz, chamber_dxdz_trackdxdz_fit, chamber_dydz_trackdxdz, chamber_dydz_trackdxdz_fit, \
02071         chamber_x_trackdxdz_fit2, chamber_y_trackdxdz_fit2, chamber_dxdz_trackdxdz_fit2, chamber_dydz_trackdxdz_fit2
02072     global chamber_x_trackdydz, chamber_x_trackdydz_fit, chamber_y_trackdydz, chamber_y_trackdydz_fit, \
02073         chamber_dxdz_trackdydz, chamber_dxdz_trackdydz_fit, chamber_dydz_trackdydz, chamber_dydz_trackdydz_fit, \
02074         chamber_x_trackdydz_fit2, chamber_y_trackdydz_fit2, chamber_dxdz_trackdydz_fit2, chamber_dydz_trackdydz_fit2
02075 
02076     chamber_x_trackx = tfile.Get(pdirPos+"_x_trackx")
02077     chamber_x_trackx_fit = tfile.Get(pdirPos+"_x_trackx_fitline")
02078     chamber_y_trackx = tfile.Get(pdirPos+"_y_trackx")
02079     chamber_y_trackx_fit = tfile.Get(pdirPos+"_y_trackx_fitline")
02080     chamber_dxdz_trackx = tfile.Get(pdirPos+"_dxdz_trackx")
02081     chamber_dxdz_trackx_fit = tfile.Get(pdirPos+"_dxdz_trackx_fitline")
02082     chamber_dydz_trackx = tfile.Get(pdirPos+"_dydz_trackx")
02083     chamber_dydz_trackx_fit = tfile.Get(pdirPos+"_dydz_trackx_fitline")
02084     chamber_x_trackx_fit2 = tfile.Get(pdirNeg+"_x_trackx_fitline")
02085     chamber_y_trackx_fit2 = tfile.Get(pdirNeg+"_y_trackx_fitline")
02086     chamber_dxdz_trackx_fit2 = tfile.Get(pdirNeg+"_dxdz_trackx_fitline")
02087     chamber_dydz_trackx_fit2 = tfile.Get(pdirNeg+"_dydz_trackx_fitline")
02088 
02089     chamber_x_tracky = tfile.Get(pdirPos+"_x_tracky")
02090     chamber_x_tracky_fit = tfile.Get(pdirPos+"_x_tracky_fitline")
02091     chamber_y_tracky = tfile.Get(pdirPos+"_y_tracky")
02092     chamber_y_tracky_fit = tfile.Get(pdirPos+"_y_tracky_fitline")
02093     chamber_dxdz_tracky = tfile.Get(pdirPos+"_dxdz_tracky")
02094     chamber_dxdz_tracky_fit = tfile.Get(pdirPos+"_dxdz_tracky_fitline")
02095     chamber_dydz_tracky = tfile.Get(pdirPos+"_dydz_tracky")
02096     chamber_dydz_tracky_fit = tfile.Get(pdirPos+"_dydz_tracky_fitline")
02097     chamber_x_tracky_fit2 = tfile.Get(pdirNeg+"_x_tracky_fitline")
02098     chamber_y_tracky_fit2 = tfile.Get(pdirNeg+"_y_tracky_fitline")
02099     chamber_dxdz_tracky_fit2 = tfile.Get(pdirNeg+"_dxdz_tracky_fitline")
02100     chamber_dydz_tracky_fit2 = tfile.Get(pdirNeg+"_dydz_tracky_fitline")
02101 
02102     chamber_x_trackdxdz = tfile.Get(pdirPos+"_x_trackdxdz")
02103     chamber_x_trackdxdz_fit = tfile.Get(pdirPos+"_x_trackdxdz_fitline")
02104     chamber_y_trackdxdz = tfile.Get(pdirPos+"_y_trackdxdz")
02105     chamber_y_trackdxdz_fit = tfile.Get(pdirPos+"_y_trackdxdz_fitline")
02106     chamber_dxdz_trackdxdz = tfile.Get(pdirPos+"_dxdz_trackdxdz")
02107     chamber_dxdz_trackdxdz_fit = tfile.Get(pdirPos+"_dxdz_trackdxdz_fitline")
02108     chamber_dydz_trackdxdz = tfile.Get(pdirPos+"_dydz_trackdxdz")
02109     chamber_dydz_trackdxdz_fit = tfile.Get(pdirPos+"_dydz_trackdxdz_fitline")
02110     chamber_x_trackdxdz_fit2 = tfile.Get(pdirNeg+"_x_trackdxdz_fitline")
02111     chamber_y_trackdxdz_fit2 = tfile.Get(pdirNeg+"_y_trackdxdz_fitline")
02112     chamber_dxdz_trackdxdz_fit2 = tfile.Get(pdirNeg+"_dxdz_trackdxdz_fitline")
02113     chamber_dydz_trackdxdz_fit2 = tfile.Get(pdirNeg+"_dydz_trackdxdz_fitline")
02114 
02115     chamber_x_trackdydz = tfile.Get(pdirPos+"_x_trackdydz")
02116     chamber_x_trackdydz_fit = tfile.Get(pdirPos+"_x_trackdydz_fitline")
02117     chamber_y_trackdydz = tfile.Get(pdirPos+"_y_trackdydz")
02118     chamber_y_trackdydz_fit = tfile.Get(pdirPos+"_y_trackdydz_fitline")
02119     chamber_dxdz_trackdydz = tfile.Get(pdirPos+"_dxdz_trackdydz")
02120     chamber_dxdz_trackdydz_fit = tfile.Get(pdirPos+"_dxdz_trackdydz_fitline")
02121     chamber_dydz_trackdydz = tfile.Get(pdirPos+"_dydz_trackdydz")
02122     chamber_dydz_trackdydz_fit = tfile.Get(pdirPos+"_dydz_trackdydz_fitline")
02123     chamber_x_trackdydz_fit2 = tfile.Get(pdirNeg+"_x_trackdydz_fitline")
02124     chamber_y_trackdydz_fit2 = tfile.Get(pdirNeg+"_y_trackdydz_fitline")
02125     chamber_dxdz_trackdydz_fit2 = tfile.Get(pdirNeg+"_dxdz_trackdydz_fitline")
02126     chamber_dydz_trackdydz_fit2 = tfile.Get(pdirNeg+"_dydz_trackdydz_fitline")
02127 
02128     if not chamber_x_trackx:
02129         chamber_x_trackx = tfile.Get(pdirPos+"_residual_trackx")
02130         chamber_x_trackx_fit = tfile.Get(pdirPos+"_residual_trackx_fitline")
02131         chamber_dxdz_trackx = tfile.Get(pdirPos+"_resslope_trackx")
02132         chamber_dxdz_trackx_fit = tfile.Get(pdirPos+"_resslope_trackx_fitline")
02133         chamber_x_trackx_fit2 = tfile.Get(pdirNeg+"_residual_trackx_fitline")
02134         chamber_dxdz_trackx_fit2 = tfile.Get(pdirNeg+"_resslope_trackx_fitline")
02135 
02136         chamber_x_tracky = tfile.Get(pdirPos+"_residual_tracky")
02137         chamber_x_tracky_fit = tfile.Get(pdirPos+"_residual_tracky_fitline")
02138         chamber_dxdz_tracky = tfile.Get(pdirPos+"_resslope_tracky")
02139         chamber_dxdz_tracky_fit = tfile.Get(pdirPos+"_resslope_tracky_fitline")
02140         chamber_x_tracky_fit2 = tfile.Get(pdirNeg+"_residual_tracky_fitline")
02141         chamber_dxdz_tracky_fit2 = tfile.Get(pdirNeg+"_resslope_tracky_fitline")
02142 
02143         chamber_x_trackdxdz = tfile.Get(pdirPos+"_residual_trackdxdz")
02144         chamber_x_trackdxdz_fit = tfile.Get(pdirPos+"_residual_trackdxdz_fitline")
02145         chamber_dxdz_trackdxdz = tfile.Get(pdirPos+"_resslope_trackdxdz")
02146         chamber_dxdz_trackdxdz_fit = tfile.Get(pdirPos+"_resslope_trackdxdz_fitline")
02147         chamber_x_trackdxdz_fit2 = tfile.Get(pdirNeg+"_residual_trackdxdz_fitline")
02148         chamber_dxdz_trackdxdz_fit2 = tfile.Get(pdirNeg+"_resslope_trackdxdz_fitline")
02149 
02150         chamber_x_trackdydz = tfile.Get(pdirPos+"_residual_trackdydz")
02151         chamber_x_trackdydz_fit = tfile.Get(pdirPos+"_residual_trackdydz_fitline")
02152         chamber_dxdz_trackdydz = tfile.Get(pdirPos+"_resslope_trackdydz")
02153         chamber_dxdz_trackdydz_fit = tfile.Get(pdirPos+"_resslope_trackdydz_fitline")
02154         chamber_x_trackdydz_fit2 = tfile.Get(pdirNeg+"_residual_trackdydz_fitline")
02155         chamber_dxdz_trackdydz_fit2 = tfile.Get(pdirNeg+"_resslope_trackdydz_fitline")
02156 
02157     if not chamber_x_trackx:
02158         print "Can't find neither "+pdirPos+"_residual  nor "+pdirPos+"_residual_trackx"
02159         return
02160 
02161     chamber_x_trackx = chamber_x_trackx.Clone()
02162     chamber_dxdz_trackx = chamber_dxdz_trackx.Clone()
02163     chamber_x_tracky = chamber_x_tracky.Clone()
02164     chamber_dxdz_tracky = chamber_dxdz_tracky.Clone()
02165     chamber_x_trackdxdz = chamber_x_trackdxdz.Clone()
02166     chamber_dxdz_trackdxdz = chamber_dxdz_trackdxdz.Clone()
02167     chamber_x_trackdydz = chamber_x_trackdydz.Clone()
02168     chamber_dxdz_trackdydz = chamber_dxdz_trackdydz.Clone()
02169 
02170     if not not chamber_y_trackx:
02171         chamber_y_trackx = chamber_y_trackx.Clone()
02172         chamber_dydz_trackx = chamber_dydz_trackx.Clone()
02173         chamber_y_tracky = chamber_y_tracky.Clone()
02174         chamber_dydz_tracky = chamber_dydz_tracky.Clone()
02175         chamber_y_trackdxdz = chamber_y_trackdxdz.Clone()
02176         chamber_dydz_trackdxdz = chamber_dydz_trackdxdz.Clone()
02177         chamber_y_trackdydz = chamber_y_trackdydz.Clone()
02178         chamber_dydz_trackdydz = chamber_dydz_trackdydz.Clone()
02179 
02180     if not not chamber_y_trackx:
02181         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_x_trackx")); chamber_x_trackx.Merge(tlist)
02182         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_dxdz_trackx")); chamber_dxdz_trackx.Merge(tlist)
02183         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_x_tracky")); chamber_x_tracky.Merge(tlist)
02184         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_dxdz_tracky")); chamber_dxdz_tracky.Merge(tlist)
02185         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_x_trackdxdz")); chamber_x_trackdxdz.Merge(tlist)
02186         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_dxdz_trackdxdz")); chamber_dxdz_trackdxdz.Merge(tlist)
02187         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_x_trackdydz")); chamber_x_trackdydz.Merge(tlist)
02188         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_dxdz_trackdydz")); chamber_dxdz_trackdydz.Merge(tlist)
02189         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_y_trackx")); chamber_y_trackx.Merge(tlist)
02190         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_dydz_trackx")); chamber_dydz_trackx.Merge(tlist)
02191         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_y_tracky")); chamber_y_tracky.Merge(tlist)
02192         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_dydz_tracky")); chamber_dydz_tracky.Merge(tlist)
02193         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_y_trackdxdz")); chamber_y_trackdxdz.Merge(tlist)
02194         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_dydz_trackdxdz")); chamber_dydz_trackdxdz.Merge(tlist)
02195         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_y_trackdydz")); chamber_y_trackdydz.Merge(tlist)
02196         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_dydz_trackdydz")); chamber_dydz_trackdydz.Merge(tlist)
02197     else:
02198         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_residual_trackx")); chamber_x_trackx.Merge(tlist)
02199         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_resslope_trackx")); chamber_dxdz_trackx.Merge(tlist)
02200         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_residual_tracky")); chamber_x_tracky.Merge(tlist)
02201         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_resslope_tracky")); chamber_dxdz_tracky.Merge(tlist)
02202         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_residual_trackdxdz")); chamber_x_trackdxdz.Merge(tlist)
02203         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_resslope_trackdxdz")); chamber_dxdz_trackdxdz.Merge(tlist)
02204         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_residual_trackdydz")); chamber_x_trackdydz.Merge(tlist)
02205         tlist = ROOT.TList(); tlist.Add(tfile.Get(pdirNeg+"_resslope_trackdydz")); chamber_dxdz_trackdydz.Merge(tlist)
02206 
02207     rr1=19.99
02208     rr2=9.99
02209     chamber_x_trackx.SetAxisRange(-rr1, rr1, "Y")
02210     chamber_dxdz_trackx.SetAxisRange(-rr2, rr2, "Y")
02211     chamber_x_tracky.SetAxisRange(-rr1, rr1, "Y")
02212     chamber_dxdz_tracky.SetAxisRange(-rr2, rr2, "Y")
02213     chamber_x_trackdxdz.SetAxisRange(-rr1, rr1, "Y")
02214     chamber_dxdz_trackdxdz.SetAxisRange(-rr2, rr2, "Y")
02215     chamber_x_trackdydz.SetAxisRange(-rr1, rr1, "Y")
02216     chamber_dxdz_trackdydz.SetAxisRange(-rr2, rr2, "Y")
02217 
02218     rr3=49.99
02219     if not not chamber_y_trackx:
02220         chamber_y_trackx.SetAxisRange(-rr3, rr3, "Y")
02221         chamber_dydz_trackx.SetAxisRange(-rr3, rr3, "Y")
02222         chamber_y_tracky.SetAxisRange(-rr3, rr3, "Y")
02223         chamber_dydz_tracky.SetAxisRange(-rr3, rr3, "Y")
02224         chamber_y_trackdxdz.SetAxisRange(-rr3, rr3, "Y")
02225         chamber_dydz_trackdxdz.SetAxisRange(-rr3, rr3, "Y")
02226         chamber_y_trackdydz.SetAxisRange(-rr3, rr3, "Y")
02227         chamber_dydz_trackdydz.SetAxisRange(-rr3, rr3, "Y")
02228 
02229     for h in chamber_x_trackx, chamber_y_trackx, chamber_dxdz_trackx, chamber_dydz_trackx, \
02230              chamber_x_tracky, chamber_y_tracky, chamber_dxdz_tracky, chamber_dydz_tracky, \
02231              chamber_x_trackdxdz, chamber_y_trackdxdz, chamber_dxdz_trackdxdz, chamber_dydz_trackdxdz, \
02232              chamber_x_trackdydz, chamber_y_trackdydz, chamber_dxdz_trackdydz, chamber_dydz_trackdydz:
02233         if not not h:
02234             h.SetMarkerStyle(20)
02235             h.SetMarkerSize(0.5)
02236             h.GetXaxis().SetLabelSize(0.12)
02237             h.GetYaxis().SetLabelSize(0.12)
02238             h.GetXaxis().SetNdivisions(505)
02239             h.GetYaxis().SetNdivisions(505)
02240             h.GetXaxis().SetLabelOffset(0.03)
02241             h.GetYaxis().SetLabelOffset(0.03)
02242 
02243     trackdxdz_minimum, trackdxdz_maximum = None, None
02244     for h in chamber_x_trackdxdz, chamber_y_trackdxdz, chamber_dxdz_trackdxdz, chamber_dydz_trackdxdz:
02245         if not not h:
02246             for i in xrange(1, h.GetNbinsX()+1):
02247                 if h.GetBinError(i) > 0.01 and h.GetBinContent(i) - h.GetBinError(i) < 10. and \
02248                    h.GetBinContent(i) + h.GetBinError(i) > -10.:
02249                     if not trackdxdz_minimum or trackdxdz_minimum > h.GetBinCenter(i): 
02250                         trackdxdz_minimum = h.GetBinCenter(i)
02251                     if trackdxdz_maximum < h.GetBinCenter(i): 
02252                         trackdxdz_maximum = h.GetBinCenter(i)
02253     if not not trackdxdz_minimum and not not trackdxdz_maximum:
02254         for h in chamber_x_trackdxdz, chamber_y_trackdxdz, chamber_dxdz_trackdxdz, chamber_dydz_trackdxdz:
02255             if not not h:
02256                 h.SetAxisRange(trackdxdz_minimum, trackdxdz_maximum, "X")
02257 
02258     trackdydz_minimum, trackdydz_maximum = None, None
02259     for h in chamber_x_trackdydz, chamber_y_trackdydz, chamber_dxdz_trackdydz, chamber_dydz_trackdydz:
02260         if not not h:
02261             for i in xrange(1, h.GetNbinsX()+1):
02262                 if h.GetBinError(i) > 0.01 and h.GetBinContent(i) - h.GetBinError(i) < 10. and \
02263                    h.GetBinContent(i) + h.GetBinError(i) > -10.:
02264                     if not trackdydz_minimum or trackdydz_minimum > h.GetBinCenter(i): 
02265                         trackdydz_minimum = h.GetBinCenter(i)
02266                     if trackdydz_maximum < h.GetBinCenter(i): 
02267                         trackdydz_maximum = h.GetBinCenter(i)
02268     if not not trackdydz_minimum and not not trackdydz_maximum:
02269         for h in chamber_x_trackdydz, chamber_y_trackdydz, chamber_dxdz_trackdydz, chamber_dydz_trackdydz:
02270             if not not h:
02271                 h.SetAxisRange(trackdydz_minimum, trackdydz_maximum, "X")
02272 
02273     for f in chamber_x_trackx_fit2, chamber_y_trackx_fit2, chamber_dxdz_trackx_fit2, chamber_dydz_trackx_fit2, \
02274              chamber_x_tracky_fit2, chamber_y_tracky_fit2, chamber_dxdz_tracky_fit2, chamber_dydz_tracky_fit2, \
02275              chamber_x_trackdxdz_fit2, chamber_y_trackdxdz_fit2, chamber_dxdz_trackdxdz_fit2, chamber_dydz_trackdxdz_fit2, \
02276              chamber_x_trackdydz_fit2, chamber_y_trackdydz_fit2, chamber_dxdz_trackdydz_fit2, chamber_dydz_trackdydz_fit2:
02277         if not not f:
02278             f.SetLineColor(4)
02279 
02280     if not not chamber_y_trackx:
02281         c1.Clear()
02282         #c1.Divide(5, 5, 1e-5, 1e-5)
02283         pads = [None]
02284         pads.append(ROOT.TPad("p1" ,"",0.00,0.78,0.07,1.00,0,0,0))
02285         pads.append(ROOT.TPad("p2" ,"",0.07,0.78,0.34,1.00,0,0,0))
02286         pads.append(ROOT.TPad("p3" ,"",0.34,0.78,0.56,1.00,0,0,0))
02287         pads.append(ROOT.TPad("p4" ,"",0.56,0.78,0.78,1.00,0,0,0))
02288         pads.append(ROOT.TPad("p5" ,"",0.78,0.78,1.00,1.00,0,0,0))
02289         pads.append(ROOT.TPad("p6" ,"",0.00,0.56,0.07,0.78,0,0,0))
02290         pads.append(ROOT.TPad("p7" ,"",0.07,0.56,0.34,0.78,0,0,0))
02291         pads.append(ROOT.TPad("p8" ,"",0.34,0.56,0.56,0.78,0,0,0))
02292         pads.append(ROOT.TPad("p9" ,"",0.56,0.56,0.78,0.78,0,0,0))
02293         pads.append(ROOT.TPad("p10","",0.78,0.56,1.00,0.78,0,0,0))
02294         pads.append(ROOT.TPad("p11","",0.00,0.34,0.07,0.56,0,0,0))
02295         pads.append(ROOT.TPad("p12","",0.07,0.34,0.34,0.56,0,0,0))
02296         pads.append(ROOT.TPad("p13","",0.34,0.34,0.56,0.56,0,0,0))
02297         pads.append(ROOT.TPad("p14","",0.56,0.34,0.78,0.56,0,0,0))
02298         pads.append(ROOT.TPad("p15","",0.78,0.34,1.00,0.56,0,0,0))
02299         pads.append(ROOT.TPad("p16","",0.00,0.07,0.07,0.34,0,0,0))
02300         pads.append(ROOT.TPad("p17","",0.07,0.07,0.34,0.34,0,0,0))
02301         pads.append(ROOT.TPad("p18","",0.34,0.07,0.56,0.34,0,0,0))
02302         pads.append(ROOT.TPad("p19","",0.56,0.07,0.78,0.34,0,0,0))
02303         pads.append(ROOT.TPad("p20","",0.78,0.07,1.00,0.34,0,0,0))
02304         pads.append(ROOT.TPad("p21","",0.00,0.00,0.07,0.07,0,0,0))
02305         pads.append(ROOT.TPad("p22","",0.07,0.00,0.34,0.07,0,0,0))
02306         pads.append(ROOT.TPad("p23","",0.34,0.00,0.56,0.07,0,0,0))
02307         pads.append(ROOT.TPad("p24","",0.56,0.00,0.78,0.07,0,0,0))
02308         pads.append(ROOT.TPad("p25","",0.78,0.00,1.00,0.07,0,0,0))
02309         for p in pads:
02310           if not not p:
02311             p.Draw()
02312             ROOT.SetOwnership(p,False)
02313 
02314         label1 = ROOT.TPaveLabel(0, 0, 1, 1, "x residuals (mm)","")
02315         label2 = ROOT.TPaveLabel(0, 0, 1, 1, "y residuals (mm)","")
02316         label3 = ROOT.TPaveLabel(0, 0, 1, 1, "dx/dz residuals (mrad)","")
02317         label4 = ROOT.TPaveLabel(0, 0, 1, 1, "dy/dz residuals (mrad)","")
02318         label5 = ROOT.TPaveLabel(0, 0, 1, 1, "x position (cm)","")
02319         label6 = ROOT.TPaveLabel(0, 0, 1, 1, "y position (cm)","")
02320         label7 = ROOT.TPaveLabel(0, 0, 1, 1, "dx/dz angle (rad)","")
02321         label8 = ROOT.TPaveLabel(0, 0, 1, 1, "dy/dz angle (rad)","")
02322         label9 = ROOT.TPaveLabel(0, 0.85, 1, 1, getname(r),"NDC")
02323 
02324         for l in label1, label2, label3, label4, label5, label6, label7, label8, label9:
02325             l.SetBorderSize(0)
02326             l.SetFillColor(ROOT.kWhite)
02327 
02328         for l in label1, label2, label3, label4:
02329             l.SetTextAngle(90)
02330             l.SetTextSize(0.09)
02331         
02332         #label9.SetTextAngle(30)
02333         label9.SetTextSize(0.59)
02334 
02335         pads[1].cd(); label1.Draw()
02336         pads[6].cd(); label2.Draw()
02337         pads[11].cd(); label3.Draw()
02338         pads[16].cd(); label4.Draw()
02339         pads[22].cd(); label5.Draw()
02340         pads[23].cd(); label6.Draw()
02341         pads[24].cd(); label7.Draw()
02342         pads[25].cd(); label8.Draw()
02343 
02344         pads[2].SetRightMargin(1e-5)
02345         pads[2].SetBottomMargin(1e-5)
02346         pads[2].SetLeftMargin(0.17)
02347         pads[3].SetLeftMargin(1e-5)
02348         pads[3].SetRightMargin(1e-5)
02349         pads[3].SetBottomMargin(1e-5)
02350         pads[4].SetLeftMargin(1e-5)
02351         pads[4].SetRightMargin(1e-5)
02352         pads[4].SetBottomMargin(1e-5)
02353         pads[5].SetLeftMargin(1e-5)
02354         pads[5].SetBottomMargin(1e-5)
02355 
02356         pads[7].SetRightMargin(1e-5)
02357         pads[7].SetBottomMargin(1e-5)
02358         pads[7].SetTopMargin(1e-5)
02359         pads[7].SetLeftMargin(0.17)
02360         pads[8].SetLeftMargin(1e-5)
02361         pads[8].SetRightMargin(1e-5)
02362         pads[8].SetBottomMargin(1e-5)
02363         pads[8].SetTopMargin(1e-5)
02364         pads[9].SetLeftMargin(1e-5)
02365         pads[9].SetRightMargin(1e-5)
02366         pads[9].SetBottomMargin(1e-5)
02367         pads[9].SetTopMargin(1e-5)
02368         pads[10].SetLeftMargin(1e-5)
02369         pads[10].SetBottomMargin(1e-5)
02370         pads[10].SetTopMargin(1e-5)
02371 
02372         pads[12].SetRightMargin(1e-5)
02373         pads[12].SetBottomMargin(1e-5)
02374         pads[12].SetTopMargin(1e-5)
02375         pads[12].SetLeftMargin(0.17)
02376         pads[13].SetLeftMargin(1e-5)
02377         pads[13].SetRightMargin(1e-5)
02378         pads[13].SetBottomMargin(1e-5)
02379         pads[13].SetTopMargin(1e-5)
02380         pads[14].SetLeftMargin(1e-5)
02381         pads[14].SetRightMargin(1e-5)
02382         pads[14].SetBottomMargin(1e-5)
02383         pads[14].SetTopMargin(1e-5)
02384         pads[15].SetLeftMargin(1e-5)
02385         pads[15].SetBottomMargin(1e-5)
02386         pads[15].SetTopMargin(1e-5)
02387 
02388         pads[17].SetRightMargin(1e-5)
02389         pads[17].SetTopMargin(1e-5)
02390         pads[17].SetLeftMargin(0.17)
02391         pads[18].SetLeftMargin(1e-5)
02392         pads[18].SetRightMargin(1e-5)
02393         pads[18].SetTopMargin(1e-5)
02394         pads[19].SetLeftMargin(1e-5)
02395         pads[19].SetRightMargin(1e-5)
02396         pads[19].SetTopMargin(1e-5)
02397         pads[20].SetLeftMargin(1e-5)
02398         pads[20].SetTopMargin(1e-5)
02399         
02400         chamber_x_trackx.GetXaxis().SetLabelColor(ROOT.kWhite)
02401         chamber_x_tracky.GetXaxis().SetLabelColor(ROOT.kWhite)
02402         chamber_x_tracky.GetYaxis().SetLabelColor(ROOT.kWhite)
02403         chamber_x_trackdxdz.GetXaxis().SetLabelColor(ROOT.kWhite)
02404         chamber_x_trackdxdz.GetYaxis().SetLabelColor(ROOT.kWhite)
02405         chamber_x_trackdydz.GetXaxis().SetLabelColor(ROOT.kWhite)
02406         chamber_x_trackdydz.GetYaxis().SetLabelColor(ROOT.kWhite)
02407         chamber_y_trackx.GetXaxis().SetLabelColor(ROOT.kWhite)
02408         chamber_y_tracky.GetXaxis().SetLabelColor(ROOT.kWhite)
02409         chamber_y_tracky.GetYaxis().SetLabelColor(ROOT.kWhite)
02410         chamber_y_trackdxdz.GetXaxis().SetLabelColor(ROOT.kWhite)
02411         chamber_y_trackdxdz.GetYaxis().SetLabelColor(ROOT.kWhite)
02412         chamber_y_trackdydz.GetXaxis().SetLabelColor(ROOT.kWhite)
02413         chamber_y_trackdydz.GetYaxis().SetLabelColor(ROOT.kWhite)
02414         chamber_dxdz_trackx.GetXaxis().SetLabelColor(ROOT.kWhite)
02415         chamber_dxdz_tracky.GetXaxis().SetLabelColor(ROOT.kWhite)
02416         chamber_dxdz_tracky.GetYaxis().SetLabelColor(ROOT.kWhite)
02417         chamber_dxdz_trackdxdz.GetXaxis().SetLabelColor(ROOT.kWhite)
02418         chamber_dxdz_trackdxdz.GetYaxis().SetLabelColor(ROOT.kWhite)
02419         chamber_dxdz_trackdydz.GetXaxis().SetLabelColor(ROOT.kWhite)
02420         chamber_dxdz_trackdydz.GetYaxis().SetLabelColor(ROOT.kWhite)
02421         
02422         # chamber_dydz_trackx
02423         chamber_dydz_tracky.GetYaxis().SetLabelColor(ROOT.kWhite)
02424         chamber_dydz_trackdxdz.GetYaxis().SetLabelColor(ROOT.kWhite)
02425         chamber_dydz_trackdydz.GetYaxis().SetLabelColor(ROOT.kWhite)
02426 
02427         pads[2].cd()
02428         chamber_x_trackx.Draw("e1")
02429         if not suppressblue: chamber_x_trackx_fit2.Draw("samel")
02430         chamber_x_trackx_fit.Draw("samel")
02431         #label99 = ROOT.TPaveLabel(0, 0.8, 1, 1, getname(r),"NDC")
02432         print getname(r)
02433         #label99 = ROOT.TPaveLabel(0, 0.8, 1, 1, "aaa","NDC")
02434         label9.Draw()
02435         #pads[2].Modified()
02436         
02437         pads[3].cd()
02438         chamber_x_tracky.Draw("e1")
02439         if not suppressblue: chamber_x_tracky_fit2.Draw("samel")
02440         chamber_x_tracky_fit.Draw("samel")
02441         
02442         pads[4].cd()
02443         chamber_x_trackdxdz.Draw("e1")
02444         if not suppressblue: chamber_x_trackdxdz_fit2.Draw("samel")
02445         chamber_x_trackdxdz_fit.Draw("samel")
02446         
02447         pads[5].cd()
02448         chamber_x_trackdydz.Draw("e1")
02449         if not suppressblue: chamber_x_trackdydz_fit2.Draw("samel")
02450         chamber_x_trackdydz_fit.Draw("samel")
02451         
02452         pads[7].cd()
02453         chamber_y_trackx.Draw("e1")
02454         if not suppressblue: chamber_y_trackx_fit2.Draw("samel")
02455         chamber_y_trackx_fit.Draw("samel")
02456         
02457         pads[8].cd()
02458         chamber_y_tracky.Draw("e1")
02459         if not suppressblue: chamber_y_tracky_fit2.Draw("samel")
02460         chamber_y_tracky_fit.Draw("samel")
02461         
02462         pads[9].cd()
02463         chamber_y_trackdxdz.Draw("e1")
02464         if not suppressblue: chamber_y_trackdxdz_fit2.Draw("samel")
02465         chamber_y_trackdxdz_fit.Draw("samel")
02466         
02467         pads[10].cd()
02468         chamber_y_trackdydz.Draw("e1")
02469         if not suppressblue: chamber_y_trackdydz_fit2.Draw("samel")
02470         chamber_y_trackdydz_fit.Draw("samel")
02471         
02472         pads[12].cd()
02473         chamber_dxdz_trackx.Draw("e1")
02474         if not suppressblue: chamber_dxdz_trackx_fit2.Draw("samel")
02475         chamber_dxdz_trackx_fit.Draw("samel")
02476         
02477         pads[13].cd()
02478         chamber_dxdz_tracky.Draw("e1")
02479         if not suppressblue: chamber_dxdz_tracky_fit2.Draw("samel")
02480         chamber_dxdz_tracky_fit.Draw("samel")
02481         
02482         pads[14].cd()
02483         chamber_dxdz_trackdxdz.Draw("e1")
02484         if not suppressblue: chamber_dxdz_trackdxdz_fit2.Draw("samel")
02485         chamber_dxdz_trackdxdz_fit.Draw("samel")
02486         
02487         pads[15].cd()
02488         chamber_dxdz_trackdydz.Draw("e1")
02489         if not suppressblue: chamber_dxdz_trackdydz_fit2.Draw("samel")
02490         chamber_dxdz_trackdydz_fit.Draw("samel")
02491         
02492         pads[17].cd()
02493         chamber_dydz_trackx.Draw("e1")
02494         if not suppressblue: chamber_dydz_trackx_fit2.Draw("samel")
02495         chamber_dydz_trackx_fit.Draw("samel")
02496         
02497         pads[18].cd()
02498         chamber_dydz_tracky.Draw("e1")
02499         if not suppressblue: chamber_dydz_tracky_fit2.Draw("samel")
02500         chamber_dydz_tracky_fit.Draw("samel")
02501         
02502         pads[19].cd()
02503         chamber_dydz_trackdxdz.Draw("e1")
02504         if not suppressblue: chamber_dydz_trackdxdz_fit2.Draw("samel")
02505         chamber_dydz_trackdxdz_fit.Draw("samel")
02506         
02507         pads[20].cd()
02508         chamber_dydz_trackdydz.Draw("e1")
02509         if not suppressblue: chamber_dydz_trackdydz_fit2.Draw("samel")
02510         chamber_dydz_trackdydz_fit.Draw("samel")
02511 
02512     else:
02513         c1.Clear()
02514         #c1.Divide(5, 3, 1e-5, 1e-5)
02515         pads = [None]
02516         pads.append(ROOT.TPad("p1" ,"",0.00,0.55,0.07,1.00,0,0,0))
02517         pads.append(ROOT.TPad("p2" ,"",0.07,0.55,0.34,1.00,0,0,0))
02518         pads.append(ROOT.TPad("p3" ,"",0.34,0.55,0.56,1.00,0,0,0))
02519         pads.append(ROOT.TPad("p4" ,"",0.56,0.55,0.78,1.00,0,0,0))
02520         pads.append(ROOT.TPad("p5" ,"",0.78,0.55,1.00,1.00,0,0,0))
02521         pads.append(ROOT.TPad("p6" ,"",0.00,0.1,0.07,0.55,0,0,0))
02522         pads.append(ROOT.TPad("p7" ,"",0.07,0.1,0.34,0.55,0,0,0))
02523         pads.append(ROOT.TPad("p8" ,"",0.34,0.1,0.56,0.55,0,0,0))
02524         pads.append(ROOT.TPad("p9" ,"",0.56,0.1,0.78,0.55,0,0,0))
02525         pads.append(ROOT.TPad("p10","",0.78,0.1,1.00,0.55,0,0,0))
02526         pads.append(ROOT.TPad("p11","",0.00,0.,0.07,0.1,0,0,0))
02527         pads.append(ROOT.TPad("p12","",0.07,0.,0.34,0.1,0,0,0))
02528         pads.append(ROOT.TPad("p13","",0.34,0.,0.56,0.1,0,0,0))
02529         pads.append(ROOT.TPad("p14","",0.56,0.,0.78,0.1,0,0,0))
02530         pads.append(ROOT.TPad("p15","",0.78,0.,1.00,0.1,0,0,0))
02531         for p in pads:
02532           if not not p:
02533             p.Draw()
02534             ROOT.SetOwnership(p,False)
02535 
02536         label1 = ROOT.TPaveLabel(0, 0, 1, 1, "x residuals (mm)")
02537         label2 = ROOT.TPaveLabel(0, 0, 1, 1, "dx/dz residuals (mrad)")
02538         label3 = ROOT.TPaveLabel(0, 0.3, 1, 1, "x position (cm)")
02539         label4 = ROOT.TPaveLabel(0, 0.3, 1, 1, "y position (cm)")
02540         label5 = ROOT.TPaveLabel(0, 0.3, 1, 1, "dx/dz angle (rad)")
02541         label6 = ROOT.TPaveLabel(0, 0.3, 1, 1, "dy/dz angle (rad)")
02542         label9 = ROOT.TPaveLabel(0, 0.85, 1, 1, getname(r),"NDC")
02543 
02544         if name[0:2] == "ME":
02545             label1 = ROOT.TPaveLabel(0, 0, 1, 1, "r#phi residuals (mm)")
02546             label2 = ROOT.TPaveLabel(0, 0, 1, 1, "d(r#phi)/dz residuals (mrad)")
02547 
02548         for l in label1, label2, label3, label4, label5, label6, label9:
02549             l.SetBorderSize(0)
02550             l.SetFillColor(ROOT.kWhite)
02551 
02552         for l in label1, label2:
02553             l.SetTextAngle(90)
02554             l.SetTextSize(0.09)
02555 
02556         #label9.SetTextAngle(30)
02557         label9.SetTextSize(0.29)
02558 
02559         pads[1].cd(); label1.Draw()
02560         pads[6].cd(); label2.Draw()
02561         pads[12].cd(); label3.Draw()
02562         pads[13].cd(); label4.Draw()
02563         pads[14].cd(); label5.Draw()
02564         pads[15].cd(); label6.Draw()
02565         #pads[11].cd(); label9.Draw()
02566 
02567         pads[2].SetRightMargin(1e-5)
02568         pads[2].SetBottomMargin(1e-5)
02569         pads[3].SetLeftMargin(1e-5)
02570         pads[3].SetRightMargin(1e-5)
02571         pads[3].SetBottomMargin(1e-5)
02572         pads[4].SetLeftMargin(1e-5)
02573         pads[4].SetRightMargin(1e-5)
02574         pads[4].SetBottomMargin(1e-5)
02575         pads[5].SetLeftMargin(1e-5)
02576         pads[5].SetBottomMargin(1e-5)
02577 
02578         pads[7].SetRightMargin(1e-5)
02579         pads[7].SetTopMargin(1e-5)
02580         pads[8].SetLeftMargin(1e-5)
02581         pads[8].SetRightMargin(1e-5)
02582         pads[8].SetTopMargin(1e-5)
02583         pads[9].SetLeftMargin(1e-5)
02584         pads[9].SetRightMargin(1e-5)
02585         pads[9].SetTopMargin(1e-5)
02586         pads[10].SetLeftMargin(1e-5)
02587         pads[10].SetTopMargin(1e-5)
02588 
02589         chamber_x_trackx.GetXaxis().SetLabelColor(ROOT.kWhite)
02590         chamber_x_tracky.GetXaxis().SetLabelColor(ROOT.kWhite)
02591         chamber_x_tracky.GetYaxis().SetLabelColor(ROOT.kWhite)
02592         chamber_x_trackdxdz.GetXaxis().SetLabelColor(ROOT.kWhite)
02593         chamber_x_trackdxdz.GetYaxis().SetLabelColor(ROOT.kWhite)
02594         chamber_x_trackdydz.GetXaxis().SetLabelColor(ROOT.kWhite)
02595         chamber_x_trackdydz.GetYaxis().SetLabelColor(ROOT.kWhite)
02596         # chamber_dxdz_trackx
02597         chamber_dxdz_tracky.GetYaxis().SetLabelColor(ROOT.kWhite)
02598         chamber_dxdz_trackdxdz.GetYaxis().SetLabelColor(ROOT.kWhite)
02599         chamber_dxdz_trackdydz.GetYaxis().SetLabelColor(ROOT.kWhite)
02600 
02601         pads[2].cd()
02602         chamber_x_trackx.Draw("e1")
02603         if not suppressblue: chamber_x_trackx_fit2.Draw("samel")
02604         chamber_x_trackx_fit.Draw("samel")
02605         label9.Draw()
02606         
02607         pads[3].cd()
02608         chamber_x_tracky.Draw("e1")
02609         if not suppressblue: chamber_x_tracky_fit2.Draw("samel")
02610         chamber_x_tracky_fit.Draw("samel")
02611         
02612         pads[4].cd()
02613         chamber_x_trackdxdz.Draw("e1")
02614         if not suppressblue: chamber_x_trackdxdz_fit2.Draw("samel")
02615         chamber_x_trackdxdz_fit.Draw("samel")
02616         
02617         pads[5].cd()
02618         chamber_x_trackdydz.Draw("e1")
02619         if not suppressblue: chamber_x_trackdydz_fit2.Draw("samel")
02620         chamber_x_trackdydz_fit.Draw("samel")
02621         
02622         pads[7].cd()
02623         chamber_dxdz_trackx.Draw("e1")
02624         if not suppressblue: chamber_dxdz_trackx_fit2.Draw("samel")
02625         chamber_dxdz_trackx_fit.Draw("samel")
02626         
02627         pads[8].cd()
02628         chamber_dxdz_tracky.Draw("e1")
02629         if not suppressblue: chamber_dxdz_tracky_fit2.Draw("samel")
02630         chamber_dxdz_tracky_fit.Draw("samel")
02631         
02632         pads[9].cd()
02633         chamber_dxdz_trackdxdz.Draw("e1")
02634         if not suppressblue: chamber_dxdz_trackdxdz_fit2.Draw("samel")
02635         chamber_dxdz_trackdxdz_fit.Draw("samel")
02636         
02637         pads[10].cd()
02638         chamber_dxdz_trackdydz.Draw("e1")
02639         if not suppressblue: chamber_dxdz_trackdydz_fit2.Draw("samel")
02640         chamber_dxdz_trackdydz_fit.Draw("samel")
02641 
02642     tn = time.time()
02643     ddt[8] = 1./ddt[7]*((ddt[7]-1)*ddt[8] + tn-t1)

def plotscripts::postalAddressToId (   postal_address)

Definition at line 827 of file plotscripts.py.

00828                                      :
00829   if postal_address[0] == "DT":
00830     wheel, station, sector = postal_address[1:]
00831     w = "%+d"%wheel
00832     if w=="+0": w = "-0"
00833     return "MB%s/%d/%02d" % (w, station, sector)
00834   elif postal_address[0] == "CSC":
00835     endcap, station, ring, chamber = postal_address[1:]
00836     if endcap != 1: station = -1 * abs(station)
00837     return "ME%+d/%d/%02d" % (station, ring, chamber)
00838 

def plotscripts::printDeltaTs ( )

Definition at line 1845 of file plotscripts.py.

01846                   :
01847     n = 0
01848     for t in ddt:
01849         if n==0 or n==7 or n==15: print "%d calls" % t
01850         else: print "%d : %0.3f ms" % (n,t*1000.0)
01851         n += 1

def plotscripts::rlines (   disk,
  window,
  abscissa 
)

Definition at line 469 of file plotscripts.py.

00470                                   :
00471     global rline_tlines
00472     rline_tlines = []
00473     if disk == 1: rl = [150., 270., 480.]
00474     else: rl = [350.]
00475     for r in rl:
00476         if abscissa is None or abscissa[0] < r < abscissa[1]:
00477             rline_tlines.append(ROOT.TLine(r, -window, r, window))
00478             rline_tlines[-1].SetLineStyle(2)
00479             rline_tlines[-1].Draw()

def plotscripts::rms (   xlist)

Definition at line 57 of file plotscripts.py.

Referenced by EESummaryClient::analyze(), EBSummaryClient::analyze(), HcalDetDiagLEDMonitor::CheckStatus(), HcalDetDiagPedestalMonitor::CheckStatus(), PFClient::createResolutionPlots(), HcalHitCorrection::delay(), HcalTimeSlewSim::delay(), DQMChannel::DQMChannel(), DTTPAnalyzer::endJob(), HFLightCalRand::endJob(), HOCalibAnalyzer::endJob(), SiStripCMMonitorPlugin::endJob(), DTTTrigCorrectionFirst::endJob(), HFLightCal::endJob(), ZeeCalibration::endOfJob(), RPCBxTest::endRun(), EcalZmassClient::endRun(), PedsFullNoiseSummaryFactory::extract(), RPCLinkSynchroHistoMaker::fill(), HcalDetDiagLEDMonitor::fillHistos(), HcalDetDiagPedestalMonitor::fillHistos(), HcalDetDiagLaserMonitor::fillHistos(), HcalDetDiagLaserMonitor::fillProblems(), LA_Filler_Fitter::find_rebin(), HcalDetDiagLaserMonitor::get_ave_rbx(), HcalDetDiagLaserMonitor::get_ave_subdet(), GetMPV(), DTMtimeHandler::getNewObjects(), DTTtrigHandler::getNewObjects(), TMom::getRMS(), EcalEndcapRecHitsMaker::init(), EcalBarrelRecHitsMaker::init(), TMom::init(), HcalDetDiagLaserMonitor::LoadDataset(), HcalDetDiagPedestalMonitor::LoadDataset(), HcalDetDiagLEDMonitor::LoadReference(), HcalDetDiagLaserMonitor::LoadReference(), HcalDetDiagPedestalMonitor::LoadReference(), TPedValues::makePlots(), reco::tau::RecoTauDiscriminantInvariantWidth::operator()(), DQMClientExample::performClient(), PhiBorderFinder::PhiBorderFinder(), cond::PayLoadInspector< DataT >::plot(), SiStripDetSummary::print(), SiPixelDetSummary::print(), RPCLinkSynchroStat::SynchroCounts::print(), SiStripNoises::printSummary(), TH2Analyzer::ProcessSlice(), TH2Analyzer::ProcessSlices(), RBorderFinder::RBorderFinder(), DTSurvey::ReadChambers(), LA_Filler_Fitter::rms_profile(), DTTriggerLutTest::runClientDiagnostic(), DTOccupancyTest::runOccupancyTest(), ContentsWithinExpected::runTest(), HcalDetDiagPedestalMonitor::SaveReference(), HcalDetDiagLEDMonitor::SaveReference(), HcalDetDiagLaserMonitor::SaveReference(), HcalDetDiagPedestalData::set_data(), HcalDetDiagLaserData::set_data(), HcalDetDiagPedestalData::set_reference(), HcalDetDiagLEDData::set_reference(), HcalDetDiagLaserData::set_reference(), MonTestPulseDat::setADCRMSG1(), MonTestPulseDat::setADCRMSG12(), MonPedestalsOnlineDat::setADCRMSG12(), MonTestPulseDat::setADCRMSG6(), MonLaserRedDat::setAPDOverPNRMS(), MonLaserBlueDat::setAPDOverPNRMS(), MonLaserGreenDat::setAPDOverPNRMS(), MonLaserIRedDat::setAPDOverPNRMS(), MonLaserIRedDat::setAPDRMS(), MonLaserRedDat::setAPDRMS(), MonLaserBlueDat::setAPDRMS(), MonLaserGreenDat::setAPDRMS(), DCUCapsuleTempRawDat::setCapsuleTempRMS(), MonDelaysTTDat::setDelayRMS(), MonPedestalsDat::setPedRMSG1(), MonPedestalsDat::setPedRMSG12(), MonPedestalsDat::setPedRMSG6(), ITimingDat::setTimingRMS(), MonLed2Dat::setVPTOverPNRMS(), MonLed1Dat::setVPTOverPNRMS(), MonLed1Dat::setVPTRMS(), and MonLed2Dat::setVPTRMS().

00058               :
00059   s2, n = 0., 0.
00060   for x in xlist:
00061     s2 += x**2
00062     n += 1.
00063   return sqrt(s2/n)

def plotscripts::saveTestResultsMap (   run_name)

Definition at line 1108 of file plotscripts.py.

01109                                 :
01110   if len(MAP_RESULTS_SAWTOOTH)+len(MAP_RESULTS_FITSIN)==0: return None
01111   ff = open("tmp_test_results_map__%s.pkl" % run_name, "wb")
01112   pickle.dump(MAP_RESULTS_SAWTOOTH, ff)
01113   pickle.dump(MAP_RESULTS_FITSIN, ff)
01114   ff.close()
01115 

def plotscripts::segdiff (   tfiles,
  component,
  pair,
  args 
)

Definition at line 2646 of file plotscripts.py.

02647                                             :
02648     tdrStyle.SetOptFit(1)
02649     tdrStyle.SetOptTitle(1)
02650     tdrStyle.SetTitleBorderSize(1)
02651     tdrStyle.SetTitleFontSize(0.05)
02652     tdrStyle.SetStatW(0.2)
02653     tdrStyle.SetStatY(0.9)
02654     tdrStyle.SetStatFontSize(0.06)
02655 
02656     if component[0:2] == "dt":
02657         wheel = args["wheel"]
02658         wheelletter = wheelLetter(wheel)
02659         sector = args["sector"]
02660         profname = "%s_%s_%02d_%s" % (component, wheelletter, sector, str(pair))
02661         posname = "pos" + profname
02662         negname = "neg" + profname
02663         #print profname
02664 
02665         station1 = int(str(pair)[0])
02666         station2 = int(str(pair)[1])
02667         phi1 = signConventions["DT", wheel, station1, sector][4]
02668         phi2 = signConventions["DT", wheel, station2, sector][4]
02669         if abs(phi1 - phi2) > 1.:
02670             if phi1 > phi2: phi1 -= 2.*pi
02671             else: phi1 += 2.*pi
02672         phi = (phi1 + phi2) / 2.
02673         while (phi < -pi): phi += 2.*pi
02674         while (phi > pi): phi -= 2.*pi
02675 
02676     elif component[0:3] == "csc":
02677         endcap = args["endcap"]
02678         if endcap=="m":
02679             endcapnum=2
02680             endcapsign="-"
02681         elif endcap=="p":
02682             endcapnum=1
02683             endcapsign="+"
02684         else: raise Exception
02685         
02686         ring = args["ring"]
02687         if ring>2 or ring<1: raise Exception
02688         station1 = int(str(pair)[0])
02689         station2 = int(str(pair)[1])
02690         if   ring==1: ringname="inner"
02691         elif ring==2: ringname="outer"
02692         else: raise Exception
02693         
02694         chamber = args["chamber"]
02695         if (ring==1 and chamber>18) or (ring==2 and chamber>36): raise Exception
02696         
02697         profname = "csc%s_%s_%s_%02d_%s" % (ringname,component[4:], endcap, chamber, str(pair))
02698         posname = "pos" + profname
02699         negname = "neg" + profname
02700         #print profname
02701 
02702         station1 = int(str(pair)[0])
02703         station2 = int(str(pair)[1])
02704         phi1 = signConventions["CSC", endcapnum, station1, ring, chamber][4]
02705         phi2 = signConventions["CSC", endcapnum, station1, ring, chamber][4]
02706         if abs(phi1 - phi2) > 1.:
02707             if phi1 > phi2: phi1 -= 2.*pi
02708             else: phi1 += 2.*pi
02709         phi = (phi1 + phi2) / 2.
02710         while (phi < -pi): phi += 2.*pi
02711         while (phi > pi): phi -= 2.*pi
02712 
02713     else: raise Exception
02714 
02715     if "window" in args: window = args["window"]
02716     else: window = 5.
02717 
02718     global tmpprof, tmppos, tmpneg
02719     pdir = "AlignmentMonitorSegmentDifferences/iter1/"
02720     tmpprof = tfiles[0].Get(pdir + profname).Clone()
02721     tmpprof.SetMarkerStyle(8)
02722     tmppos = tfiles[0].Get(pdir + posname).Clone()
02723     tmpneg = tfiles[0].Get(pdir + negname).Clone()
02724     for tfile in tfiles[1:]:
02725         tmpprof.Add(tfile.Get(pdir + profname))
02726         tmppos.Add(tfile.Get(pdir + posname))
02727         tmpneg.Add(tfile.Get(pdir + negname))
02728 
02729     for i in xrange(1, tmpprof.GetNbinsX()+1):
02730         if tmpprof.GetBinError(i) < 1e-5:
02731             tmpprof.SetBinError(i, 100.)
02732     tmpprof.SetAxisRange(-window, window, "Y")
02733 
02734     f = ROOT.TF1("p1", "[0] + [1]*x", tmpprof.GetBinLowEdge(1), -tmpprof.GetBinLowEdge(1))
02735     f.SetParameters((tmppos.GetMean() + tmpneg.GetMean())/2., 0.)
02736 
02737     tmpprof.SetXTitle("q/p_{T} (c/GeV)")
02738     if component == "dt13_resid":
02739         tmpprof.SetYTitle("#Deltax^{local} (mm)")
02740         tmppos.SetXTitle("#Deltax^{local} (mm)")
02741         tmpneg.SetXTitle("#Deltax^{local} (mm)")
02742         f.SetParNames("#Deltax^{local}_{0}", "Slope")
02743     if component == "dt13_slope":
02744         tmpprof.SetYTitle("#Deltadx/dz^{local} (mrad)")
02745         tmppos.SetXTitle("#Deltadx/dz^{local} (mrad)")
02746         tmpneg.SetXTitle("#Deltadx/dz^{local} (mrad)")
02747         f.SetParNames("#Deltadx/dz^{local}_{0}", "Slope")
02748     if component == "dt2_resid":
02749         tmpprof.SetYTitle("#Deltay^{local} (mm)")
02750         tmppos.SetXTitle("#Deltay^{local} (mm)")
02751         tmpneg.SetXTitle("#Deltay^{local} (mm)")
02752         f.SetParNames("#Deltay^{local}_{0}", "Slope")
02753     if component == "dt2_slope":
02754         tmpprof.SetYTitle("#Deltady/dz^{local} (mrad)")
02755         tmppos.SetXTitle("#Deltady/dz^{local} (mrad)")
02756         tmpneg.SetXTitle("#Deltady/dz^{local} (mrad)")
02757         f.SetParNames("#Deltady/dz^{local}_{0}", "Slope")
02758     if component == "csc_resid":
02759         tmpprof.SetYTitle("#Delta(r#phi)^{local} (mm)")
02760         tmppos.SetXTitle("#Delta(r#phi)^{local} (mm)")
02761         tmpneg.SetXTitle("#Delta(r#phi)^{local} (mm)")
02762         f.SetParNames("#Delta(r#phi)^{local}_{0}", "Slope")
02763     if component == "csc_slope":
02764         tmpprof.SetYTitle("#Deltad(r#phi)/dz^{local} (mrad)")
02765         tmppos.SetXTitle("#Deltad(r#phi)/dz^{local} (mrad)")
02766         tmpneg.SetXTitle("#Deltad(r#phi)/dz^{local} (mrad)")
02767         f.SetParNames("#Deltad(r#phi)/dz^{local}_{0}", "Slope")
02768     
02769     tmpprof.GetXaxis().CenterTitle()
02770     tmpprof.GetYaxis().CenterTitle()
02771     tmppos.GetXaxis().CenterTitle()
02772     tmpneg.GetXaxis().CenterTitle()
02773     if component[0:2] == "dt":
02774         tmpprof.SetTitle("MB%d - MB%d, wheel %d, sector %02d" % (station1, station2, int(wheel), int(sector)))
02775     elif component[0:3] == "csc":
02776         tmpprof.SetTitle("ME%d - ME%d, for ME%s%d/%d/%d" % (station1, station2, endcapsign, station2, ring, chamber))
02777     else: raise Exception
02778 
02779     tmppos.SetTitle("Positive muons")
02780     tmpneg.SetTitle("Negative muons")
02781 
02782     c1.Clear()
02783     c1.Divide(2, 1)
02784     c1.GetPad(1).cd()
02785     fit1 = tmpprof.Fit("p1", "q")
02786     tmpprof.Draw("e1")
02787     c1.GetPad(2).cd()
02788     c1.GetPad(2).Divide(1, 2)
02789     c1.GetPad(2).GetPad(1).cd()
02790     tmppos.Draw()
02791     f = ROOT.TF1("gausR", "[0]*exp(-(x - [1])**2 / 2. / [2]**2) / sqrt(2.*3.1415926) / [2]", 
02792                  tmppos.GetMean() - tmppos.GetRMS(), tmppos.GetMean() + tmppos.GetRMS())
02793     f.SetParameters(tmppos.GetEntries() * ((10. - -10.)/100.), tmppos.GetMean(), tmppos.GetRMS())
02794     f.SetParNames("Constant", "Mean", "Sigma")
02795     fit2 = tmppos.Fit("gausR", "qR")
02796     c1.GetPad(2).GetPad(2).cd()
02797     tmpneg.Draw()
02798     f = ROOT.TF1("gausR", "[0]*exp(-(x - [1])**2 / 2. / [2]**2) / sqrt(2.*3.1415926) / [2]", 
02799                  tmpneg.GetMean() - tmpneg.GetRMS(), tmpneg.GetMean() + tmpneg.GetRMS())
02800     f.SetParameters(tmpneg.GetEntries() * ((10. - -10.)/100.), tmpneg.GetMean(), tmpneg.GetRMS())
02801     f.SetParNames("Constant", "Mean", "Sigma")
02802     fit3 = tmpneg.Fit("gausR", "qR")
02803 
02804     fitresult1 = None, None
02805     if fit1 == 0:
02806         fitresult1 = tmpprof.GetFunction("p1").GetParameter(0), tmpprof.GetFunction("p1").GetParError(0)
02807     fitresult2 = None, None
02808     if fit2 == 0 and fit3 == 0:
02809         fitresult2 = (tmppos.GetFunction("gausR").GetParameter(1) + tmpneg.GetFunction("gausR").GetParameter(1)) / 2., \
02810                      sqrt(tmppos.GetFunction("gausR").GetParError(1)**2 + tmpneg.GetFunction("gausR").GetParError(1)**2) / 2.
02811     return phi, fitresult1[0], fitresult1[1], fitresult2[0], fitresult2[1], fit1, fit2, fit3

def plotscripts::segdiffvsphi (   tfiles,
  reports,
  component,
  wheel,
  window = 5.,
  excludesectors = () 
)

Definition at line 2812 of file plotscripts.py.

02813                                                                                  :
02814     tdrStyle.SetOptTitle(1)
02815     tdrStyle.SetTitleBorderSize(1)
02816     tdrStyle.SetTitleFontSize(0.05)
02817 
02818     global htemp, gtemp_12, gtemp2_12, gtemp_23, gtemp2_23, gtemp_34, gtemp2_34, tlegend
02819     htemp = ROOT.TH1F("htemp", "", 1, -pi, pi)
02820     gtemp_12_phi, gtemp_12_val, gtemp_12_err, gtemp_12_val2, gtemp_12_err2 = [], [], [], [], []
02821     gtemp_23_phi, gtemp_23_val, gtemp_23_err, gtemp_23_val2, gtemp_23_err2 = [], [], [], [], []
02822     gtemp_34_phi, gtemp_34_val, gtemp_34_err, gtemp_34_val2, gtemp_34_err2 = [], [], [], [], []
02823     for sector in xrange(1, 12+1):
02824         #print sector
02825         r1_found, r2_found, r3_found, r4_found = False, False, False, False
02826         for r1 in reports:
02827             if r1.postal_address == ("DT", wheel, 1, sector):
02828                 r1_found = True
02829                 break
02830         for r2 in reports:
02831             if r2.postal_address == ("DT", wheel, 2, sector):
02832                 r2_found = True
02833                 break
02834         for r3 in reports:
02835             if r3.postal_address == ("DT", wheel, 3, sector):
02836                 r3_found = True
02837                 break
02838         for r4 in reports:
02839             if r4.postal_address == ("DT", wheel, 4, sector):
02840                 r4_found = True
02841                 break
02842         #print "rfounds: ", r1_found, r2_found, r3_found, r4_found
02843         
02844         if sector not in excludesectors:
02845             if r1_found and r2_found and r1.status == "PASS" and r2.status == "PASS":
02846                 phi, val, err, val2, err2, fit1, fit2, fit3 = segdiff(tfiles, component, 12, wheel=wheel, sector=sector)
02847                 #print "segdif 12", phi, val, err, val2, err2, fit1, fit2, fit3
02848                 if fit1 == 0 and fit2 == 0 and fit3 == 0:
02849                 #if fit1 == 0 and fit2 == 0:
02850                     gtemp_12_phi.append(phi)
02851                     gtemp_12_val.append(val)
02852                     gtemp_12_err.append(err)
02853                     gtemp_12_val2.append(val2)
02854                     gtemp_12_err2.append(err2)
02855             if r2_found and r3_found and r2.status == "PASS" and r3.status == "PASS":
02856                 phi, val, err, val2, err2, fit1, fit2, fit3 = segdiff(tfiles, component, 23, wheel=wheel, sector=sector)
02857                 #print "segdif 23", phi, val, err, val2, err2, fit1, fit2, fit3
02858                 if fit1 == 0 and fit2 == 0 and fit3 == 0:
02859                 #if fit1 == 0 and fit2 == 0:
02860                     gtemp_23_phi.append(phi)
02861                     gtemp_23_val.append(val)
02862                     gtemp_23_err.append(err)
02863                     gtemp_23_val2.append(val2)
02864                     gtemp_23_err2.append(err2)
02865             if component[:4] == "dt13":
02866                 if r3_found and r4_found and r3.status == "PASS" and r4.status == "PASS":
02867                     phi, val, err, val2, err2, fit1, fit2, fit3 = segdiff(tfiles, component, 34, wheel=wheel, sector=sector)
02868                     #print "segdif 34", phi, val, err, val2, err2, fit1, fit2, fit3
02869                     if fit1 == 0 and fit2 == 0 and fit3 == 0:
02870                     #if fit1 == 0 and fit2 == 0:
02871                         gtemp_34_phi.append(phi)
02872                         gtemp_34_val.append(val)
02873                         gtemp_34_err.append(err)
02874                         gtemp_34_val2.append(val2)
02875                         gtemp_34_err2.append(err2)
02876 
02877     #print "len(gtemp_12_phi) ", len(gtemp_12_phi)
02878     #print "len(gtemp_23_phi) ",len(gtemp_23_phi)
02879     #print "len(gtemp_34_phi) ",len(gtemp_34_phi)
02880     if len(gtemp_12_phi) > 0:
02881         gtemp_12 = ROOT.TGraphErrors(len(gtemp_12_phi), array.array("d", gtemp_12_phi), array.array("d", gtemp_12_val), 
02882                                      array.array("d", [0.] * len(gtemp_12_phi)), array.array("d", gtemp_12_err))
02883         gtemp2_12 = ROOT.TGraphErrors(len(gtemp_12_phi), array.array("d", gtemp_12_phi), array.array("d", gtemp_12_val2), 
02884                                       array.array("d", [0.] * len(gtemp_12_phi)), array.array("d", gtemp_12_err2))
02885     if len(gtemp_23_phi) > 0:
02886         gtemp_23 = ROOT.TGraphErrors(len(gtemp_23_phi), array.array("d", gtemp_23_phi), array.array("d", gtemp_23_val), 
02887                                      array.array("d", [0.] * len(gtemp_23_phi)), array.array("d", gtemp_23_err))
02888         gtemp2_23 = ROOT.TGraphErrors(len(gtemp_23_phi), array.array("d", gtemp_23_phi), array.array("d", gtemp_23_val2), 
02889                                       array.array("d", [0.] * len(gtemp_23_phi)), array.array("d", gtemp_23_err2))
02890     if len(gtemp_34_phi) > 0:
02891         gtemp_34 = ROOT.TGraphErrors(len(gtemp_34_phi), array.array("d", gtemp_34_phi), array.array("d", gtemp_34_val), 
02892                                      array.array("d", [0.] * len(gtemp_34_phi)), array.array("d", gtemp_34_err))
02893         gtemp2_34 = ROOT.TGraphErrors(len(gtemp_34_phi), array.array("d", gtemp_34_phi), array.array("d", gtemp_34_val2), 
02894                                       array.array("d", [0.] * len(gtemp_34_phi)), array.array("d", gtemp_34_err2))
02895 
02896     if len(gtemp_12_phi) > 0:
02897         gtemp_12.SetMarkerStyle(20);  gtemp_12.SetMarkerSize(1.);  
02898         gtemp_12.SetMarkerColor(ROOT.kBlue);  gtemp_12.SetLineColor(ROOT.kBlue)
02899         gtemp2_12.SetMarkerStyle(24); gtemp2_12.SetMarkerSize(1.); 
02900         gtemp2_12.SetMarkerColor(ROOT.kBlue); gtemp2_12.SetLineColor(ROOT.kBlue)
02901     if len(gtemp_23_phi) > 0:
02902         gtemp_23.SetMarkerStyle(21);  gtemp_23.SetMarkerSize(1.);  
02903         gtemp_23.SetMarkerColor(ROOT.kRed);   gtemp_23.SetLineColor(ROOT.kRed)
02904         gtemp2_23.SetMarkerStyle(25); gtemp2_23.SetMarkerSize(1.); 
02905         gtemp2_23.SetMarkerColor(ROOT.kRed);  gtemp2_23.SetLineColor(ROOT.kRed)
02906     if len(gtemp_34_phi) > 0 and component[:4] == "dt13":
02907         gtemp_34.SetMarkerStyle(22);  gtemp_34.SetMarkerSize(1.25);  
02908         gtemp_34.SetMarkerColor(ROOT.kGreen+2);  gtemp_34.SetLineColor(ROOT.kGreen+2)
02909         gtemp2_34.SetMarkerStyle(26); gtemp2_34.SetMarkerSize(1.25); 
02910         gtemp2_34.SetMarkerColor(ROOT.kGreen+2); gtemp2_34.SetLineColor(ROOT.kGreen+2)
02911 
02912     if wheel == 0: htemp.SetTitle("Wheel %d" % wheel)
02913     else: htemp.SetTitle("Wheel %+d" % wheel)
02914     htemp.SetAxisRange(-window, window, "Y")
02915     htemp.SetXTitle("Average #phi of pair (rad)")
02916     if component == "dt13_resid": htemp.SetYTitle("#Deltax^{local} (mm)")
02917     if component == "dt13_slope": htemp.SetYTitle("#Deltadx/dz^{local} (mrad)")
02918     if component == "dt2_resid": htemp.SetYTitle("#Deltay^{local} (mm)")
02919     if component == "dt2_slope": htemp.SetYTitle("#Deltady/dz^{local} (mrad)")
02920     htemp.GetXaxis().CenterTitle()
02921     htemp.GetYaxis().CenterTitle()
02922     htemp.GetYaxis().SetTitleOffset(0.75)
02923 
02924     c1.Clear()
02925     htemp.Draw()
02926     if len(gtemp_12_phi) > 0:
02927         gtemp_12.Draw("p")
02928         gtemp2_12.Draw("p")
02929     if len(gtemp_23_phi) > 0:
02930         gtemp_23.Draw("p")
02931         gtemp2_23.Draw("p")
02932     if len(gtemp_34_phi) > 0:
02933         gtemp_34.Draw("p")
02934         gtemp2_34.Draw("p")
02935 
02936     tlegend = ROOT.TLegend(0.5, 0.72, 0.9, 0.92)
02937     tlegend.SetBorderSize(0)
02938     tlegend.SetFillColor(ROOT.kWhite)
02939     if len(gtemp_12_phi) > 0:
02940         tlegend.AddEntry(gtemp_12, "MB1 - MB2 (mean: %4.2f, RMS: %4.2f)" % (mean(gtemp_12_val), stdev(gtemp_12_val)), "pl")
02941     if len(gtemp_23_phi) > 0:
02942         tlegend.AddEntry(gtemp_23, "MB2 - MB3 (mean: %4.2f, RMS: %4.2f)" % (mean(gtemp_23_val), stdev(gtemp_23_val)), "pl")
02943     if len(gtemp_34_phi) > 0:
02944         tlegend.AddEntry(gtemp_34, "MB3 - MB4 (mean: %4.2f, RMS: %4.2f)" % (mean(gtemp_34_val), stdev(gtemp_34_val)), "pl")
02945     if len(gtemp_12_phi) > 0:
02946         tlegend.AddEntry(gtemp_12, "total mean: %4.2f, total RMS: %4.2f" % \
02947                                    (mean(gtemp_12_val + gtemp_23_val + gtemp_34_val), 
02948                                    stdev(gtemp_12_val + gtemp_23_val + gtemp_34_val)), "")
02949     tlegend.Draw()
02950 
02951 
def plotscripts::set_palette (   name = None,
  ncontours = 999 
)
Set a color palette from a given RGB list
stops, red, green and blue should all be lists of the same length
see set_decent_colors for an example

Definition at line 223 of file plotscripts.py.

00224                                          :
00225     """Set a color palette from a given RGB list
00226     stops, red, green and blue should all be lists of the same length
00227     see set_decent_colors for an example"""
00228 
00229     if name == "halfgray":
00230         stops = [0.00, 0.34, 0.61, 0.84, 1.00]
00231         red   = map(lambda x: 1. - (1.-x)/2., [1.00, 0.84, 0.61, 0.34, 0.00])
00232         green = map(lambda x: 1. - (1.-x)/2., [1.00, 0.84, 0.61, 0.34, 0.00])
00233         blue  = map(lambda x: 1. - (1.-x)/2., [1.00, 0.84, 0.61, 0.34, 0.00])
00234     elif name == "gray":
00235         stops = [0.00, 0.34, 0.61, 0.84, 1.00]
00236         red   = [1.00, 0.84, 0.61, 0.34, 0.00]
00237         green = [1.00, 0.84, 0.61, 0.34, 0.00]
00238         blue  = [1.00, 0.84, 0.61, 0.34, 0.00]
00239     elif name == "blues":
00240         stops = [0.00, 0.34, 0.61, 0.84, 1.00]
00241         red   = [1.00, 0.84, 0.61, 0.34, 0.00]
00242         green = [1.00, 0.84, 0.61, 0.34, 0.00]
00243         blue  = [1.00, 1.00, 1.00, 1.00, 1.00]
00244     elif name == "reds":
00245         stops = [0.00, 0.34, 0.61, 0.84, 1.00]
00246         red   = [1.00, 1.00, 1.00, 1.00, 1.00]
00247         green = [1.00, 0.84, 0.61, 0.34, 0.00]
00248         blue  = [1.00, 0.84, 0.61, 0.34, 0.00]
00249     elif name == "antigray":
00250         stops = [0.00, 0.34, 0.61, 0.84, 1.00]
00251         red   = [1.00, 0.84, 0.61, 0.34, 0.00]
00252         green = [1.00, 0.84, 0.61, 0.34, 0.00]
00253         blue  = [1.00, 0.84, 0.61, 0.34, 0.00]
00254         red.reverse()
00255         green.reverse()
00256         blue.reverse()
00257     elif name == "fire":
00258         stops = [0.00, 0.20, 0.80, 1.00]
00259         red   = [1.00, 1.00, 1.00, 0.50]
00260         green = [1.00, 1.00, 0.00, 0.00]
00261         blue  = [0.20, 0.00, 0.00, 0.00]
00262     elif name == "antifire":
00263         stops = [0.00, 0.20, 0.80, 1.00]
00264         red   = [0.50, 1.00, 1.00, 1.00]
00265         green = [0.00, 0.00, 1.00, 1.00]
00266         blue  = [0.00, 0.00, 0.00, 0.20]
00267     else:
00268         # default palette, looks cool
00269         stops = [0.00, 0.34, 0.61, 0.84, 1.00]
00270         red   = [0.00, 0.00, 0.87, 1.00, 0.51]
00271         green = [0.00, 0.81, 1.00, 0.20, 0.00]
00272         blue  = [0.51, 1.00, 0.12, 0.00, 0.00]
00273 
00274     s = array.array('d', stops)
00275     r = array.array('d', red)
00276     g = array.array('d', green)
00277     b = array.array('d', blue)
00278 
00279     npoints = len(s)
00280     ROOT.TColor.CreateGradientColorTable(npoints, s, r, g, b, ncontours)
00281     ROOT.gStyle.SetNumberContours(ncontours)
00282 
00283 set_palette()

def plotscripts::setTDRStyle ( )

Definition at line 84 of file plotscripts.py.

References tdrStyle.

Referenced by BTagPerformanceAnalyzerOnData::bookHistos(), BTagPerformanceAnalyzerMC::endJob(), BTagPerformanceAnalyzerOnData::endRun(), LRHelpFunctions::LRHelpFunctions(), FlavourHistograms< T >::plot(), EffPurFromHistos::plot(), SoftLeptonTagPlotter::psPlot(), JetTagPlotter::psPlot(), TrackCountingTagPlotter::psPlot(), TrackIPTagPlotter::psPlot(), TrackProbabilityTagPlotter::psPlot(), and RecoBTag::tdrGrid().

00085                  :
00086   global tdrStyle
00087   tdrStyle = ROOT.TStyle("tdrStyle","Style for P-TDR")
00088 # For the canvas:
00089   tdrStyle.SetCanvasBorderMode(0)
00090   tdrStyle.SetCanvasColor(ROOT.kWhite)
00091   tdrStyle.SetCanvasDefH(600) #Height of canvas
00092   tdrStyle.SetCanvasDefW(600) #Width of canvas
00093   tdrStyle.SetCanvasDefX(0)   #POsition on screen
00094   tdrStyle.SetCanvasDefY(0)
00095 
00096 # For the Pad:
00097   tdrStyle.SetPadBorderMode(0)
00098   # tdrStyle.SetPadBorderSize(Width_t size = 1)
00099   tdrStyle.SetPadColor(ROOT.kWhite)
00100   tdrStyle.SetPadGridX(False)
00101   tdrStyle.SetPadGridY(False)
00102   tdrStyle.SetGridColor(0)
00103   tdrStyle.SetGridStyle(3)
00104   tdrStyle.SetGridWidth(1)
00105 
00106 # For the frame:
00107   tdrStyle.SetFrameBorderMode(0)
00108   tdrStyle.SetFrameBorderSize(1)
00109   tdrStyle.SetFrameFillColor(0)
00110   tdrStyle.SetFrameFillStyle(0)
00111   tdrStyle.SetFrameLineColor(1)
00112   tdrStyle.SetFrameLineStyle(1)
00113   tdrStyle.SetFrameLineWidth(1)
00114 
00115 # For the histo:
00116   # tdrStyle.SetHistFillColor(1)
00117   # tdrStyle.SetHistFillStyle(0)
00118   tdrStyle.SetHistLineColor(1)
00119   tdrStyle.SetHistLineStyle(0)
00120   tdrStyle.SetHistLineWidth(1)
00121   # tdrStyle.SetLegoInnerR(Float_t rad = 0.5)
00122   # tdrStyle.SetNumberContours(Int_t number = 20)
00123 
00124   tdrStyle.SetEndErrorSize(2)
00125 #  tdrStyle.SetErrorMarker(20)
00126   tdrStyle.SetErrorX(0.)
00127 
00128   tdrStyle.SetMarkerStyle(20)
00129 
00130 #For the fit/function:
00131   tdrStyle.SetOptFit(1)
00132   tdrStyle.SetFitFormat("5.4g")
00133   tdrStyle.SetFuncColor(2)
00134   tdrStyle.SetFuncStyle(1)
00135   tdrStyle.SetFuncWidth(1)
00136 
00137 #For the date:
00138   tdrStyle.SetOptDate(0)
00139   # tdrStyle.SetDateX(Float_t x = 0.01)
00140   # tdrStyle.SetDateY(Float_t y = 0.01)
00141 
00142 # For the statistics box:
00143   tdrStyle.SetOptFile(0)
00144   tdrStyle.SetOptStat(0) # To display the mean and RMS:   SetOptStat("mr")
00145   tdrStyle.SetStatColor(ROOT.kWhite)
00146   tdrStyle.SetStatFont(42)
00147   tdrStyle.SetStatFontSize(0.025)
00148   tdrStyle.SetStatTextColor(1)
00149   tdrStyle.SetStatFormat("6.4g")
00150   tdrStyle.SetStatBorderSize(1)
00151   tdrStyle.SetStatH(0.1)
00152   tdrStyle.SetStatW(0.15)
00153   # tdrStyle.SetStatStyle(Style_t style = 1001)
00154   # tdrStyle.SetStatX(Float_t x = 0)
00155   # tdrStyle.SetStatY(Float_t y = 0)
00156 
00157 # Margins:
00158   tdrStyle.SetPadTopMargin(0.05)
00159   tdrStyle.SetPadBottomMargin(0.13)
00160   tdrStyle.SetPadLeftMargin(0.13)
00161   tdrStyle.SetPadRightMargin(0.05)
00162 
00163 # For the Global title:
00164   tdrStyle.SetOptTitle(0)
00165   tdrStyle.SetTitleFont(42)
00166   tdrStyle.SetTitleColor(1)
00167   tdrStyle.SetTitleTextColor(1)
00168   tdrStyle.SetTitleFillColor(10)
00169   tdrStyle.SetTitleFontSize(0.05)
00170   # tdrStyle.SetTitleH(0) # Set the height of the title box
00171   # tdrStyle.SetTitleW(0) # Set the width of the title box
00172   # tdrStyle.SetTitleX(0) # Set the position of the title box
00173   # tdrStyle.SetTitleY(0.985) # Set the position of the title box
00174   # tdrStyle.SetTitleStyle(Style_t style = 1001)
00175   # tdrStyle.SetTitleBorderSize(2)
00176 
00177 # For the axis titles:
00178   tdrStyle.SetTitleColor(1, "XYZ")
00179   tdrStyle.SetTitleFont(42, "XYZ")
00180   tdrStyle.SetTitleSize(0.06, "XYZ")
00181   # tdrStyle.SetTitleXSize(Float_t size = 0.02) # Another way to set the size?
00182   # tdrStyle.SetTitleYSize(Float_t size = 0.02)
00183   tdrStyle.SetTitleXOffset(0.9)
00184   tdrStyle.SetTitleYOffset(1.05)
00185   # tdrStyle.SetTitleOffset(1.1, "Y") # Another way to set the Offset
00186 
00187 # For the axis labels:
00188   tdrStyle.SetLabelColor(1, "XYZ")
00189   tdrStyle.SetLabelFont(42, "XYZ")
00190   tdrStyle.SetLabelOffset(0.007, "XYZ")
00191   tdrStyle.SetLabelSize(0.05, "XYZ")
00192 
00193 # For the axis:
00194   tdrStyle.SetAxisColor(1, "XYZ")
00195   tdrStyle.SetStripDecimals(True)
00196   tdrStyle.SetTickLength(0.03, "XYZ")
00197   tdrStyle.SetNdivisions(510, "XYZ")
00198   tdrStyle.SetPadTickX(1)  # To get tick marks on the opposite side of the frame
00199   tdrStyle.SetPadTickY(1)
00200 
00201 # Change for log plots:
00202   tdrStyle.SetOptLogx(0)
00203   tdrStyle.SetOptLogy(0)
00204   tdrStyle.SetOptLogz(0)
00205 
00206 # Postscript options:
00207   tdrStyle.SetPaperSize(20.,20.)
00208   # tdrStyle.SetLineScalePS(Float_t scale = 3)
00209   # tdrStyle.SetLineStyleString(Int_t i, const char* text)
00210   # tdrStyle.SetHeaderPS(const char* header)
00211   # tdrStyle.SetTitlePS(const char* pstitle)
00212 
00213   # tdrStyle.SetBarOffset(Float_t baroff = 0.5)
00214   # tdrStyle.SetBarWidth(Float_t barwidth = 0.5)
00215   # tdrStyle.SetPaintTextFormat(const char* format = "g")
00216   # tdrStyle.SetPalette(Int_t ncolors = 0, Int_t* colors = 0)
00217   # tdrStyle.SetTimeOffset(Double_t toffset)
00218   # tdrStyle.SetHistMinimumZero(True)
00219 
00220   tdrStyle.cd()
00221 
00222 setTDRStyle()

def plotscripts::stationIndex (   name)

Definition at line 386 of file plotscripts.py.

Referenced by MuonIdProducer::fillArbitrationInfo(), reco::Muon::stationGapMaskDistance(), and reco::Muon::stationGapMaskPull().

00387                       :
00388   if ("MB" in name or "ME" in name):
00389     # assume the name is ID
00390     pa = idToPostalAddress(name)
00391     if pa is None: return None
00392     if pa[0]=="CSC":
00393       if pa[2]==1 and pa[3]==1: return 0
00394       if pa[2]==1 and pa[3]==1: return 1
00395       if pa[2]==1 and pa[3]==1: return 2
00396       if pa[2]==1 and pa[3]==1: return 3
00397       if pa[2]==1 and pa[3]==1: return 4
00398       if pa[2]==1 and pa[3]==1: return 5
00399       if pa[2]==1 and pa[3]==1: return 6
00400       if pa[2]==1 and pa[3]==1: return 7
00401       if pa[2]==1 and pa[3]==1: return 8
00402       if pa[2]==1 and pa[3]==1: return 9
00403     if pa[0]=="DT":
00404       if pa[2]==1: return 10
00405       if pa[2]==2: return 11
00406       if pa[2]==3: return 12
00407       if pa[2]==2: return 13
00408   else:
00409     if ("mem11" in name or "mep11" in name): return 0
00410     if ("mem12" in name or "mep12" in name): return 1
00411     if ("mem13" in name or "mep13" in name): return 2
00412     if ("mem14" in name or "mep14" in name): return 3
00413     if ("mem21" in name or "mep21" in name): return 4
00414     if ("mem22" in name or "mep22" in name): return 5
00415     if ("mem31" in name or "mep31" in name): return 6
00416     if ("mem32" in name or "mep32" in name): return 7
00417     if ("mem41" in name or "mep41" in name): return 8
00418     if ("mem42" in name or "mep42" in name): return 9
00419     if ("st1" in name): return 10
00420     if ("st2" in name): return 11
00421     if ("st3" in name): return 12
00422     if ("st4" in name): return 13
00423 
00424 

def plotscripts::stdev (   xlist)

Definition at line 64 of file plotscripts.py.

Referenced by MuonResidualsPositionFitter::fit(), MuonResidualsBfieldAngleFitter::fit(), and MuonResidualsAngleFitter::fit().

00065                 :
00066   s, s2, n = 0., 0., 0.
00067   for x in xlist:
00068     s += x
00069     s2 += x**2
00070     n += 1.
00071   return sqrt(s2/n - (s/n)**2)

def plotscripts::testDeltaWithin5Sigma (   x,
  sx 
)

Definition at line 979 of file plotscripts.py.

00980                                :
00981   n = len(x)
00982   res = []
00983   dr = []
00984   #print x
00985   #print sx
00986   for i in range(1,n+1):
00987     x1 = x[i-1]
00988     sx1 = sx[i-1]
00989     x2 = x[0]
00990     sx2 = sx[0]
00991     if i<n: 
00992       x2 = x[i]
00993       sx2 = sx[i]
00994     sig1 = sqrt( (sx1[0]-sx1[1])**2 + x1[1]**2 )
00995     sig2 = sqrt( (sx2[0]-sx2[1])**2 + x2[1]**2 )
00996     df = abs(x1[0]-x2[0]) - 3*( sig1 + sig2 )
00997     #df = abs(sx1[1]-sx2[0]) - 5*(abs(x1[1]) + abs(x2[1]))
00998     #print i, df, '= abs(',sx1[1],'-',sx2[0],')-5*(abs(',x1[1],')+abs(',x2[1],'))'
00999     dr.append(df)
01000     if df > 0: res.append(i)
01001   #print dr
01002   #print res
01003   return res
01004 

def plotscripts::testEntry (   testID,
  scope,
  descr,
  severity 
)

Definition at line 965 of file plotscripts.py.

00966                                           :
00967   s = 0
00968   for sev in DQM_SEVERITY:
00969     if sev["name"]==severity: s = sev["idx"]
00970   return {"testID":testID,"scope":scope,"descr":descr,"severity":s}
00971 

def plotscripts::testZeroWithin5Sigma (   x)

Definition at line 972 of file plotscripts.py.

00973                            :
00974   if abs(x[1])==0.: return 0.
00975   pull = abs(x[0])/abs(x[1])
00976   if pull <= 5: return 0.
00977   else: return pull
00978 

def plotscripts::wheel0only (   dt,
  wheel,
  station,
  sector 
)

Definition at line 30 of file plotscripts.py.

00030 : return dt == "DT" and wheel == 0
def plotscripts::wheelLetter (   wheel)

Definition at line 34 of file plotscripts.py.

00035                       :
00036   if   wheel == -2: return "A"
00037   elif wheel == -1: return "B"
00038   elif wheel ==  0: return "C"
00039   elif wheel == +1: return "D"
00040   elif wheel == +2: return "E"
00041   else: raise Exception

def plotscripts::wheelm1only (   dt,
  wheel,
  station,
  sector 
)

Definition at line 29 of file plotscripts.py.

00029 : return dt == "DT" and wheel == -1
def plotscripts::wheelm2only (   dt,
  wheel,
  station,
  sector 
)

Convenience functions.

Definition at line 28 of file plotscripts.py.

00028 : return dt == "DT" and wheel == -2
def plotscripts::wheelNumber (   wheell)

Definition at line 42 of file plotscripts.py.

Referenced by DTDataIntegrityTest::endLuminosityBlock().

00043                        :
00044   if   wheell == "A": return -2
00045   elif wheell == "B": return -1
00046   elif wheell == "C": return 0
00047   elif wheell == "D": return 1
00048   elif wheell == "E": return 2
00049   else: raise Exception

def plotscripts::wheelp1only (   dt,
  wheel,
  station,
  sector 
)

Definition at line 31 of file plotscripts.py.

00031 : return dt == "DT" and wheel == 1
def plotscripts::wheelp2only (   dt,
  wheel,
  station,
  sector 
)

Definition at line 32 of file plotscripts.py.

00032                                            : return dt == "DT" and wheel == 2
00033 
def plotscripts::wmean (   xlist)

Definition at line 72 of file plotscripts.py.

00073                 :
00074   s, w = 0., 0.
00075   for x, e in xlist:
00076     if e > 0.:
00077       wi = 1./e**2
00078       s += x*wi
00079       w += wi
00080   return s/w, sqrt(1./w)

def plotscripts::writeDQMReport (   fname_dqm,
  run_name 
)

Definition at line 1128 of file plotscripts.py.

01129                                        :
01130   tests = []
01131   for c in TEST_RESULTS:
01132     tests.append({"objID":c, "name":c, "list":TEST_RESULTS[c]})
01133   lt = time.localtime(time.time())
01134   lts = "%04d-%02d-%02d %02d:%02d:%02d %s" % (lt[0], lt[1], lt[2], lt[3], lt[4], lt[5], time.tzname[1])
01135   dqm_report = {"run":run_name, "genDate": lts, "report":tests}
01136   ff = open(fname_dqm,mode="w")
01137   print >>ff, "var DQM_REPORT = "
01138   json.dump(dqm_report,ff)
01139   #print >>ff, "];"
01140   ff.close()
01141 

def plotscripts::zlines (   window,
  abscissa 
)

Definition at line 452 of file plotscripts.py.

00453                             :
00454     global zline_tlines
00455     zline_tlines = []
00456     for z in -401.625, -133.875, 133.875, 401.625:
00457         if abscissa is None or abscissa[0] < z < abscissa[1]:
00458             zline_tlines.append(ROOT.TLine(z, -window, z, window))
00459             zline_tlines[-1].SetLineStyle(2)
00460             zline_tlines[-1].Draw()
00461     zline_labels = []
00462     zline_labels.append(ROOT.TText(-550, -0.9*window, "-2"))
00463     zline_labels.append(ROOT.TText(-300, -0.9*window, "-1"))
00464     zline_labels.append(ROOT.TText(-10, -0.9*window, "0"))
00465     zline_labels.append(ROOT.TText(250, -0.9*window, "+1"))
00466     zline_labels.append(ROOT.TText(500, -0.9*window, "+2"))
00467     for z in zline_labels: z.Draw()
00468     zline_labels.append(ROOT.TText(-600, -0.75*window, "Wheel:")); zline_labels[-1].Draw()


Variable Documentation

Definition at line 15 of file plotscripts.py.

Initial value:
00001 [
00002   {"idx":0, "name": "NONE", "color": "lightgreen", "hex":"#90EE90"},
00003   {"idx":1, "name": "LOWSTAT05", "color": "lightgreen", "hex":"#96D953"},
00004   {"idx":2, "name": "LOWSTAT075", "color": "lightgreen", "hex":"#94E26F"},
00005   {"idx":3, "name": "LOWSTAT1", "color": "yellowgreen", "hex":"#9ACD32"},
00006   {"idx":4, "name": "LOWSTAT", "color": "yellow", "hex":"#FFFF00"},
00007   {"idx":5, "name": "TOLERABLE", "color": "lightpink", "hex":"#FFB6C1"},
00008   {"idx":6, "name": "SEVERE", "color": "orange", "hex":"#FFA500"},
00009   {"idx":7, "name": "CRITICAL", "color": "red", "hex":"#FF0000"}]

Definition at line 948 of file plotscripts.py.

Definition at line 20 of file plotscripts.py.

Definition at line 19 of file plotscripts.py.

Definition at line 18 of file plotscripts.py.

sector phi edges in: me11 me12 me13 me14 me21 me22 me31 me32 me41 me42 mb1 mb2 mb3 mb4 index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13

Definition at line 287 of file plotscripts.py.

dictionary plotscripts::TEST_RESULTS = {}

Definition at line 23 of file plotscripts.py.