Example #1
0
def getDepletionVoltage(filename,
                        debug=True,
                        const_cap=None,
                        rising=1,
                        constant=8,
                        min_x=None,
                        max_x=None,
                        debugfile=None,
                        low_start=None,
                        low_end=None,
                        high_start=None,
                        high_end=None,
                        savedatapath=None,
                        variation=10,
                        strictcheck=True,
                        interactive=False):
    pl = curvePlotter(mode="CVs")
    pl.addPlotFromFile(filename, min_x=min_x, max_x=max_x, noplot=True)

    df = DepletionFitter(x=pl.x,
                         y=pl.y,
                         const_cap=const_cap,
                         rising=rising,
                         constant=constant,
                         debugfile=debugfile,
                         low_start=low_start,
                         low_end=low_end,
                         high_start=high_start,
                         high_end=high_end,
                         varcut=variation,
                         strictcheck=strictcheck,
                         interactive=interactive)
    v = df.getDepletionVoltage(debugplot=debug, savedatapath=savedatapath)
    return v
Example #2
0
def makeplot(diodestr):
    plt.close()
    folder = diodestr + "_captests/"
    sp = curvePlotter(mode="CVs", path=datadir, read_freq=True)
    for i in range(1, 5):

        readfile = folder + "*_" + str(i) + ".cv"
        try:
            f = sp.readFreq(readfile)
            fmtdiodestr = diodestr.replace("*", "")
            sp.addPlotFromFile(readfile,
                               label=fmtdiodestr + ' ' + str(f) + ' Hz')
        except:
            pass

    sp.labelAxes()
    plt.legend()
    diodestr = diodestr.replace("*", "_")
    plt.savefig(outdir + diodestr + '_captest.pdf')
Example #3
0
globalpath = os.getenv("DATAPATH") + '/'
outpath = os.getenv("DATAOUTPATH") + '/'
os.system('mkdir -p ' + outpath + args.inputDir)
outpath = outpath + args.inputDir + "/"
outprefix = outpath + args.outfile

high_end = None
high_start = None
low_end = None
low_start = None
const_cap = None

if args.rederive or (not os.path.isfile(outpath + args.outfile + ".depl")
                     and not args.ignoremissing):

    cv_plotter = curvePlotter(mode="CVs", path=globalpath)
    cv_plotter.addPlotFromFile(args.inputDir + "/*.cv", label="test")

    print('fit rising edge from to (positive)')
    print('fit constant from to')
    print('constant value (if any)')
    cv_plotter.showPlot()
    print('fit rising edge from to (positive)')
    print('fit constant from to')
    print('constant value (if any)')
    high_end = -float(input())
    high_start = -float(input())
    low_end = -float(input())
    low_start = -float(input())

    const_cap = input()
Example #4
0
#!/usr/bin/python3

from fileIO import fileReader
from plotting import curvePlotter

from matplotlib import pyplot as plt
import styles

globalpath = "/Users/jkiesele/cern_afs/eos_hgsensor_testres/Results_SSD/CVIV/Diode_TS/"

outdir = "non_irradiated/"

plter = curvePlotter(mode="CV", path=globalpath)
iv_plotter = curvePlotter(mode="IV", path=globalpath)

for m in ['cv', 'iv']:

    plter = plter
    if m == 'iv':
        plter = iv_plotter

    linestyle = '-'

    plter.addPlotFromFile("1004_UL_diode_big/1004_UL_diode_big_2020-11-06_1." +
                          m,
                          label="1004 (300 µm), no GR, $V_{fb}=-5V$",
                          linestyle='dashed',
                          color="tab:green")

    plter.addPlotFromFile("1013_UL_diode_big/1013_UL_diode_big_2020-11-06_1." +
                          m,
Example #5
0
def plotFullSet(minstr, outdir, identifier="UL_diode_big", globalpath=None):
    os.system("mkdir -p " + outdir)
    if globalpath is None:
        globalpath = os.getenv("DATAPATH") + '/'

    cv_plotter = curvePlotter(mode="CVs", path=globalpath)
    iv_plotter = curvePlotter(mode="IV", path=globalpath)

    for m in ['cv', 'iv']:

        plter = cv_plotter
        if m == 'iv':
            plter = iv_plotter

        plter.addPlotFromFile(
            "1002_UL*diode_big_no_ann/1002_UL*diode_big_no_ann_2020-11-12_1." +
            m,
            label="6.5 E14 $neq/cm^2$, no ann.",
            min_x=-950)

        plter.addPlotFromFile(
            "1003_UL*diode_big_no_ann/1003_UL*diode_big_no_ann_2020-11-12_1." +
            m,
            label="1.0 E15 $neq/cm^2$, no ann.",
            min_x=-950)

        plter.addPlotFromFile(
            "1102_UL*diode_big_no_ann/1102_UL*diode_big_no_ann_2020-11-10_2." +
            m,
            label="1.5 E15 $neq/cm^2$, no ann.",
            min_x=-950)

        #plt.legend(loc='lower left')
        #plter.labelAxes()
        #plt.twinx()

        plter.addPlotFromFile("1002_" + identifier + "_ann_" + minstr + "/*." +
                              m,
                              label="6.5 E14 $neq/cm^2$, " + minstr + "@60C",
                              linestyle='dashed')

        plter.addPlotFromFile("1003_" + identifier + "_ann_" + minstr + "/*." +
                              m,
                              label="1.0 E15 $neq/cm^2$, " + minstr + "@60C",
                              linestyle='dashed')

        plter.addPlotFromFile("1102_" + identifier + "_ann_" + minstr + "/*." +
                              m,
                              label="1.5 E15 $neq/cm^2$, " + minstr + "@60C",
                              linestyle='dashed')

        plt.title("300µm")
        plt.legend()
        if m == 'cv':
            plt.ylim([0., 1.25e22])
        else:
            plt.ylim([0., 1.5e-5])
        plter.savePlot(outdir + m + "_1001_1002_1003_1102.pdf", nolegend=True)

        plter.addPlotFromFile(
            "2002_UL*diode_big_no_ann/2002_UL*diode_big_no_ann_2020-11-12_1." +
            m,
            label="1.0 E15 $neq/cm^2$ ,no ann.",
            min_x=-950)

        plter.addPlotFromFile(
            "2003_UL*diode_big_no_ann/2003_UL*diode_big_no_ann_2020-11-12_1." +
            m,
            label="1.5 E15 $neq/cm^2$, no ann.",
            min_x=-950)

        plter.addPlotFromFile(
            "2102_UL*diode_big_no_ann/2102_UL*diode_big_no_ann_2020-11-12_1." +
            m,
            label="2.5 E15 $neq/cm^2$, no ann.",
            min_x=-950)

        #plt.legend(loc='lower left')
        ##plt.subplots_adjust(left=0.0, bottom=0.0, right=0.0)
        #plter.labelAxes()
        #plt.twinx()

        plter.addPlotFromFile("2002_" + identifier + "_ann_" + minstr + "/*." +
                              m,
                              label="1E15 $neq/cm^2$, " + minstr + "@60C",
                              linestyle='dashed')

        plter.addPlotFromFile("2003_" + identifier + "_ann_" + minstr + "/*." +
                              m,
                              label="1.5E15 $neq/cm^2$, " + minstr + "@60C",
                              linestyle='dashed')

        plter.addPlotFromFile("2102_" + identifier + "_ann_" + minstr + "/*." +
                              m,
                              label="2.5E15 $neq/cm^2$, " + minstr + "@60C",
                              linestyle='dashed')

        plt.title("200µm")
        plt.legend()
        if m == 'cv':
            plt.ylim([0., 6e21])
        else:
            plt.ylim([-1.e-6, 2.1e-5])

        plter.savePlot(outdir + m + "_2001_2002_2003_2102.pdf", nolegend=True)