コード例 #1
0
ファイル: visualize.py プロジェクト: augre/CernRootScripts
def main(argv):
    print argv
    f = RootFile(fn=argv[1], hn=argv[2])
    f.fillUpAllVariables()
    f.fileObj.Print()
    f.writePlanesToPngFiles()
    
    title="title..."
    
    
    h2_sum_x = ROOT.TH2D("h2_sum_x","Cumulative yz-projection",f.binN.y,f.minL.y,f.maxL.y,f.binN.z,f.minL.z,f.maxL.z)
    h2_sum_y = ROOT.TH2D("h2_sum_y","Cumulative xz-projection",f.binN.x,f.minL.x,f.maxL.x,f.binN.z,f.minL.z,f.maxL.z)
    h2_sum_z = ROOT.TH2D("h2_sum_z","Cumulative xy-projection",f.binN.x,f.minL.x,f.maxL.x,f.binN.y,f.minL.y,f.maxL.y)
    dose_max=f.histObj.Project3D("xy").GetBinContent(f.histObj.Project3D("xy").GetMaximumBin())
    
    
    c1=ROOT.TCanvas("c1", title ,2000,2000)
    c1.Divide(3,2)

    c1.cd(1)
    hist2Dxy=f.histObj.Project3D("yz")
    
    h2_sum_x.Add(hist2Dxy,1.);
    
    h2_sum_x.Smooth()
#    h2_sum_x.Smooth()
#    h2_sum_x.Smooth()
    
    h2_sum_x.SetTitle(title+"dose deposition yz projection")
    h2_sum_x.DrawCopy("colz")
    h2_sum_x.SetContour(10)
    h2_sum_x.GetXaxis().SetTitle("Distance in mm")
    h2_sum_x.Draw("cont3 same")
    
    xmin = h2_sum_x.GetXaxis().GetXmin()
    xmax = h2_sum_x.GetXaxis().GetXmax()
    line_x=ROOT.TLine(xmin,0,xmax,0)
    line_x.SetLineColor(ROOT.kRed)
    line_x.Draw()

    c1.cd(2)
    hist2Dxz=f.histObj.Project3D("xz")
    
    h2_sum_y.Add(hist2Dxz,1.);
    
    h2_sum_y.Smooth()
#    h2_sum_x.Smooth()
#    h2_sum_x.Smooth()
    
    h2_sum_y.SetTitle(title+"dose deposition xz projection")
    h2_sum_y.DrawCopy("colz")
    h2_sum_y.SetContour(10)
    h2_sum_y.GetXaxis().SetTitle("Distance in mm")
    h2_sum_y.Draw("cont3 same")
    
    xmin = h2_sum_y.GetXaxis().GetXmin()
    xmax = h2_sum_y.GetXaxis().GetXmax()
    line_x=ROOT.TLine(xmin,0,xmax,0)
    line_x.SetLineColor(ROOT.kRed)
    line_x.Draw()

    c1.cd(3)
    hist2Dxy=f.histObj.Project3D("xy")
    
    h2_sum_z.Add(hist2Dxy,1.);
    
    h2_sum_z.Smooth()
#    h2_sum_z.Smooth()
#    h2_sum_z.Smooth()
    
    h2_sum_z.SetTitle(title+ "dose deposition xy projection")
    h2_sum_z.DrawCopy("colz")
    h2_sum_z.SetContour(10)
    h2_sum_z.GetXaxis().SetTitle("Distance in mm")
    h2_sum_z.Draw("cont3 same")
    
    zmin = h2_sum_z.GetXaxis().GetXmin()
    zmax = h2_sum_z.GetXaxis().GetXmax()
    line_z=ROOT.TLine(zmin,0,zmax,0)
    line_z.SetLineColor(ROOT.kViolet)
    line_z.Draw()
    
    c1.cd(4)
    projX=h2_sum_x.ProjectionX("Profile x-axis",f.binN.x/2,f.binN.x/2)
    projX.SetTitle("Profile x-axis; Position [u.u]; Intensity [u.u]")
    projX.GetXaxis().SetTitle("Distance in mm")
    projX.SetLineColor(ROOT.kRed)
    projX.Draw()
    maxiX=projX.GetMaximum()
    print "maxiX=",maxiX
    
    c1.cd(5)
    projY=h2_sum_y.ProjectionX("Profile y-axis",f.binN.y/2,f.binN.y/2)
    projY.SetTitle("Profile y-axis; Position [u.u]; Intensity [u.u]")
    projY.GetXaxis().SetTitle("Distance in mm")
    projY.SetLineColor(ROOT.kRed)
    projY.Draw()
    maxiY=projY.GetMaximum()
    print "maxiX=",maxiX


    c1.cd(6)
    projZ=h2_sum_z.ProjectionX("Profile z-axis",f.binN.z/2,f.binN.z/2)#.Clone("projX")
    projZ.SetTitle("Profile z-axis; Position [u.u]; Intensity [u.u]")
    projZ.GetXaxis().SetTitle("Distance in mm")
    projZ.SetLineColor(ROOT.kViolet)
    projZ.Draw()
    maxiZ=projZ.GetMaximum()
    print "maxiZ=",maxiZ
        

    
    c1.Print("doseline.png")
コード例 #2
0
def main(argv):
    currentDir=getcwd().split("/")[-1]
    inputfile = 'Dosimetry_detector_complete1_tot.root'
    outputfile = 'voigt.png'
    function=voigt
    fname="voigt"
    myFitFunc=r.TF1("voigt",function,0,120, 4)
    try:
        opts, args = getopt.getopt(argv[1:],"hi:o:f:",["ifile=","ofile=","function="])
    except getopt.GetoptError:
        print argv[0],'-i <inputfile> -o <outputfile> -f <function>'
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print argv[0],'-i <inputfile> -o <outputfile> -f <function>'
            sys.exit()
        elif opt in ("-i", "--ifile"):
            inputfile = arg
        elif opt in ("-o", "--ofile"):
            outputfile = arg
        elif opt in ("-f", "--function"):
            if arg == "voigt":
                function = voigt
                fname="voigt"
                myFitFunc=r.TF1("voigt",function,0,120, 4)
                myFitFunc.SetParName(0, "norm")
                myFitFunc.SetParName(1, "sigma")
                myFitFunc.SetParName(2, "lg")
                myFitFunc.SetParName(3, "max")
            elif arg == "tripleGaussian":
                function = tripleGaussian
                fname="tripleGaussian"
                myFitFunc=r.TF1("tripleGaussian",function,0,120, 9)
                myFitFunc.SetParName(0, "norm")
                myFitFunc.SetParName(1, "mu1")
                myFitFunc.SetParName(2, "sigma1")
                myFitFunc.SetParName(3, "mu2")
                myFitFunc.SetParName(4, "sigma2")
                myFitFunc.SetParName(5, "mu3")
                myFitFunc.SetParName(6, "sigma3")
                myFitFunc.SetParName(7, "frac1")
                myFitFunc.SetParName(8, "frac2")
            else:
                print "you can choose from voigt,tripleGaussian"

    print 'Input file is "', inputfile
    print 'Output file is "', outputfile
    print 'Function is "', fname
    print  "working dir is ", getcwd().split("/")[-1]

    f = RootFile(fn=inputfile, hn="edepXYZ_Tot")
    f.loadFile()
    f.loadHist()
    f.histObj.Rebin3D(2,2,2)
    f.getNbinsXYZ()
    f.getMinXYZ()
    f.getMaxXYZ()
    f.initTH2DforXYPlane()
    f.getXYPlane()
    f.initTH2DforYZPlane()
    f.getYZPlane()
    f.initTH1DforEachAxis()
    f.getTH1DforEachAxis()
    f.fileObj.Print()
    
    f.writePlanesToPngFiles()

    print "f.binN.x:",f.binN.x,"f.binN.y:",f.binN.y,"f.binN.z:",f.binN.z
#    pdb.set_trace()
#    r.gStyle.SetEndErrorSize(3)
    r.gStyle.SetErrorX(0.)
    

    c1=r.TCanvas("c1", "", 1000,1000)
    c1.Divide(1,3)

    c1.cd(1)
    if function==tripleGaussian:
        myFitFunc.SetParameters(1500, 5, .5, 6, 1.5, 5, 5, .4, .3)
    elif function==voigt:
	maxbin=f.rootValX.GetMaximumBin()
	print "maxbin:", maxbin,"maxbincontent:",f.rootValX.GetBinContent(maxbin)
        myFitFunc.SetParameters(f.rootValX.GetBinContent(maxbin), 5, .5, maxbin)
    f.rootValX.Fit(fname, "I")
    f.rootValX.SetMarkerStyle(20)
    f.rootValX.Draw("E1")

    printInfo(myFitFunc, "x")

    c1.cd(2)
    if function==tripleGaussian:
        myFitFunc.SetParameters(150, 5, .5, 6, 1.5, 5, 5, .4, .3)
    elif function==voigt:
	maxbin=f.rootValY.GetMaximumBin()
	print "maxbin:", maxbin,"maxbincontent:",f.rootValY.GetBinContent(maxbin)
        myFitFunc.SetParameters(f.rootValY.GetBinContent(maxbin), 5, .5, maxbin)
    f.rootValY.Fit(fname, "I")
    f.rootValY.SetMarkerStyle(20)
    f.rootValY.Draw("E1")

    printInfo(myFitFunc,"y")

    c1.cd(3)
    if function==tripleGaussian:
        myFitFunc.SetParameters(1500, 5, .5, 6, 1.5, 5, 5, .4, .3)
    elif function==voigt:
	maxbin=f.rootValZ.GetMaximumBin()
	print "maxbin:", maxbin,"maxbincontent:",f.rootValZ.GetBinContent(maxbin)
        myFitFunc.SetParameters(f.rootValZ.GetBinContent(maxbin), 5, .5, maxbin)
    f.rootValZ.Fit(fname,"I")
    f.rootValZ.SetMarkerStyle(20)
    f.rootValZ.Draw("E1")

    printInfo(myFitFunc,"z")

    c1.Print(outputfile)
コード例 #3
0
ファイル: visualize.py プロジェクト: augre/CernRootScripts
def main(argv):
    print argv
    f = RootFile(fn=argv[1], hn=argv[2])
    f.fillUpAllVariables()
    f.fileObj.Print()
    f.writePlanesToPngFiles()

    title = "title..."

    h2_sum_x = ROOT.TH2D("h2_sum_x", "Cumulative yz-projection", f.binN.y,
                         f.minL.y, f.maxL.y, f.binN.z, f.minL.z, f.maxL.z)
    h2_sum_y = ROOT.TH2D("h2_sum_y", "Cumulative xz-projection", f.binN.x,
                         f.minL.x, f.maxL.x, f.binN.z, f.minL.z, f.maxL.z)
    h2_sum_z = ROOT.TH2D("h2_sum_z", "Cumulative xy-projection", f.binN.x,
                         f.minL.x, f.maxL.x, f.binN.y, f.minL.y, f.maxL.y)
    dose_max = f.histObj.Project3D("xy").GetBinContent(
        f.histObj.Project3D("xy").GetMaximumBin())

    c1 = ROOT.TCanvas("c1", title, 2000, 2000)
    c1.Divide(3, 2)

    c1.cd(1)
    hist2Dxy = f.histObj.Project3D("yz")

    h2_sum_x.Add(hist2Dxy, 1.)

    h2_sum_x.Smooth()
    #    h2_sum_x.Smooth()
    #    h2_sum_x.Smooth()

    h2_sum_x.SetTitle(title + "dose deposition yz projection")
    h2_sum_x.DrawCopy("colz")
    h2_sum_x.SetContour(10)
    h2_sum_x.GetXaxis().SetTitle("Distance in mm")
    h2_sum_x.Draw("cont3 same")

    xmin = h2_sum_x.GetXaxis().GetXmin()
    xmax = h2_sum_x.GetXaxis().GetXmax()
    line_x = ROOT.TLine(xmin, 0, xmax, 0)
    line_x.SetLineColor(ROOT.kRed)
    line_x.Draw()

    c1.cd(2)
    hist2Dxz = f.histObj.Project3D("xz")

    h2_sum_y.Add(hist2Dxz, 1.)

    h2_sum_y.Smooth()
    #    h2_sum_x.Smooth()
    #    h2_sum_x.Smooth()

    h2_sum_y.SetTitle(title + "dose deposition xz projection")
    h2_sum_y.DrawCopy("colz")
    h2_sum_y.SetContour(10)
    h2_sum_y.GetXaxis().SetTitle("Distance in mm")
    h2_sum_y.Draw("cont3 same")

    xmin = h2_sum_y.GetXaxis().GetXmin()
    xmax = h2_sum_y.GetXaxis().GetXmax()
    line_x = ROOT.TLine(xmin, 0, xmax, 0)
    line_x.SetLineColor(ROOT.kRed)
    line_x.Draw()

    c1.cd(3)
    hist2Dxy = f.histObj.Project3D("xy")

    h2_sum_z.Add(hist2Dxy, 1.)

    h2_sum_z.Smooth()
    #    h2_sum_z.Smooth()
    #    h2_sum_z.Smooth()

    h2_sum_z.SetTitle(title + "dose deposition xy projection")
    h2_sum_z.DrawCopy("colz")
    h2_sum_z.SetContour(10)
    h2_sum_z.GetXaxis().SetTitle("Distance in mm")
    h2_sum_z.Draw("cont3 same")

    zmin = h2_sum_z.GetXaxis().GetXmin()
    zmax = h2_sum_z.GetXaxis().GetXmax()
    line_z = ROOT.TLine(zmin, 0, zmax, 0)
    line_z.SetLineColor(ROOT.kViolet)
    line_z.Draw()

    c1.cd(4)
    projX = h2_sum_x.ProjectionX("Profile x-axis", f.binN.x / 2, f.binN.x / 2)
    projX.SetTitle("Profile x-axis; Position [u.u]; Intensity [u.u]")
    projX.GetXaxis().SetTitle("Distance in mm")
    projX.SetLineColor(ROOT.kRed)
    projX.Draw()
    maxiX = projX.GetMaximum()
    print "maxiX=", maxiX

    c1.cd(5)
    projY = h2_sum_y.ProjectionX("Profile y-axis", f.binN.y / 2, f.binN.y / 2)
    projY.SetTitle("Profile y-axis; Position [u.u]; Intensity [u.u]")
    projY.GetXaxis().SetTitle("Distance in mm")
    projY.SetLineColor(ROOT.kRed)
    projY.Draw()
    maxiY = projY.GetMaximum()
    print "maxiX=", maxiX

    c1.cd(6)
    projZ = h2_sum_z.ProjectionX("Profile z-axis", f.binN.z / 2,
                                 f.binN.z / 2)  #.Clone("projX")
    projZ.SetTitle("Profile z-axis; Position [u.u]; Intensity [u.u]")
    projZ.GetXaxis().SetTitle("Distance in mm")
    projZ.SetLineColor(ROOT.kViolet)
    projZ.Draw()
    maxiZ = projZ.GetMaximum()
    print "maxiZ=", maxiZ

    c1.Print("doseline.png")