From 34265f8e71dc4cf259a370a02ac748145a862bf6 Mon Sep 17 00:00:00 2001
From: "Harouna-Mayer, Sani" <sani.harouna-mayer@uni-hamburg.de>
Date: Wed, 28 Aug 2024 16:45:15 +0000
Subject: [PATCH] Upload New File

---
 process_raw_iq.py | 542 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 542 insertions(+)
 create mode 100644 process_raw_iq.py

diff --git a/process_raw_iq.py b/process_raw_iq.py
new file mode 100644
index 0000000..e841299
--- /dev/null
+++ b/process_raw_iq.py
@@ -0,0 +1,542 @@
+import os
+from glob import glob
+import numpy as np
+import subprocess
+import matplotlib.pyplot as plt
+from scipy.optimize import curve_fit, minimize_scalar
+
+
+def find_idx(arr, a):
+    return (np.abs(np.array(arr) - a)).argmin()
+
+
+def save_xy(fname, x, y, header=''):
+    np.savetxt(fname, np.vstack((x, y)).T, header=header, comments='#')
+    return
+
+
+def load_xy(fname, skiprows=0):
+    data = np.loadtxt(fname, skiprows=skiprows).T
+    x = data[0]
+    y = data[1]
+    return x, y
+
+
+def q2tt(q, energy):
+    """ q: array or float, [A-1];  energy: [keV] """
+    wl = 12.39842 / energy
+    tt = 2 * 180 / np.pi * np.arcsin(q * wl / 4 / np.pi)
+    return tt
+
+
+def tt2q(tt, energy):
+    """ q: array or float, [A-1];  energy: [keV] """
+    wl = 12.39842 / energy
+    q = 4 * np.pi / wl * np.sin(tt / 2 * np.pi / 180)
+    return q
+
+
+def convertpattern_q2tt(fname, energy, skiprows=0, dtype_out="xy"):
+    x, y = load_xy(fname, skiprows=skiprows)
+    x = q2tt(x, energy=energy)
+    dtype = fname.split(".")[-1]
+    fname_out = fname[:-(len(dtype) + 1)] + "_in_tt." + dtype_out
+    save_xy(fname_out, x, y, header="converted from q to two theta, energy = {} keV\ntwo theta   intensity".format(energy))
+    return
+
+def convertpattern_tt2q(fname, energy, skiprows=0, dtype_out="xy"):
+    x, y = load_xy(fname, skiprows=skiprows)
+    x = tt2q(x, energy=energy)
+    dtype = fname.split(".")[-1]
+    fname_out = fname[:-(len(dtype) + 1)] + "_in_q." + dtype_out
+    save_xy(fname_out, x, y, header="converted from two theta to q, energy = {} keV\ntwo theta   intensity".format(energy))
+    return
+
+
+def avg(path2data, dtype=".dat", fname_timetemp="", temp0=30, avg_num=60, overwrite=False):
+
+    fnames = glob(os.path.join(path2data, '*' + dtype))
+    fnames.sort()
+
+    path2avg = os.path.join(os.path.dirname(os.path.dirname(path2data)), "avg{}_iqs".format(avg_num), os.path.basename(path2data))
+    if not os.path.isdir(path2avg):
+        os.makedirs(path2avg)
+
+    timetempdir = "time_vs_temp"
+    if not fname_timetemp:
+        fname_timetemp = os.path.join(os.path.dirname(path2data), timetempdir, "timetemps_" + os.path.basename(path2data) + ".txt")
+    times, temps = load_xy(fname_timetemp)
+    idx0 = find_idx(temps, temp0)
+    idxend = -((len(fnames)-idx0) % avg_num)
+    print("average {} from file idx {} to {}".format(os.path.basename(path2avg), idx0, idxend))
+
+    temps_crop = temps[idx0:idxend:avg_num]
+    fnames_crop = fnames[idx0:idxend]  # cut before idx0 and every pattern which doesnt have enough for time resolution
+    for temp, fnames_to_avg in zip(temps_crop, np.reshape(fnames_crop, (int(len(fnames_crop) / avg_num), avg_num))):
+        fname_avg = os.path.join(path2avg,
+                                 os.path.basename(fnames_to_avg[0][:-len(dtype)]) + "_avg_" + str(avg_num) + dtype)
+        if os.path.isfile(fname_avg) and not overwrite:
+            print("skippidiskippy")
+            continue
+        else:
+            y_avgs = []
+            for fname in fnames_to_avg:
+                x, y = load_xy(fname)
+                y_avgs.append(y)
+            y_avg = np.mean(y_avgs, axis=0)
+            header = 'averaged {} files\n'.format(avg_num)
+            header += 'from path: {}\nto {}\n'.format(path2data, path2avg)
+            header += 'temperature (°C): {}\n'.format(temp)
+            header += 'q (A^-1)    I (a.u.)'
+            save_xy(fname_avg, x, y_avg, header=header)
+            # print(fname_avg)
+    return
+
+
+def avg_all_in_dir(parentdir, overwrite=False):
+    subdirs = [os.path.join(parentdir, subdir) for subdir in os.listdir(parentdir)\
+               if os.path.isdir(os.path.join(parentdir, subdir))]
+    timetempdir = "time_vs_temp"
+    skipsubdirs = [os.path.join(parentdir, timetempdir)]
+    for skipsubdir in skipsubdirs:
+        subdirs.remove(skipsubdir)
+    for dir in subdirs:
+        avg(dir, overwrite=overwrite)
+    return
+
+
+def bkg_sub(path2data, path2bkg, path2sub="", x_range=[1.05, 1.35], dtype=".dat", fancyapproach=False, bkgscale=1.0):
+
+    if not path2sub:
+        path2sub = os.path.join(os.path.dirname(os.path.dirname(path2data)), "bkgsub_iqs", os.path.basename(path2data))
+    if not os.path.isdir(path2sub):
+        os.makedirs(path2sub)
+
+    fnames = glob(os.path.join(path2data, '*' + dtype))
+    fnames.sort()
+
+    fnames_bkg = glob(os.path.join(path2bkg, '*' + dtype))
+    fnames_bkg.sort()
+    for i in range(len(fnames) - len(fnames_bkg)):
+        fnames_bkg.append(fnames_bkg[-1])
+
+    x0, y0 = load_xy(fnames[0])
+    idx_range = [find_idx(x0, xi) for xi in x_range]
+    scale_approach_value = 0.00001
+
+    from scipy.optimize import minimize_scalar
+    def initial_scale(y1, y2):
+        def func(s):
+            return np.mean(abs(y1 - s * y2))
+        res = minimize_scalar(func)
+        return res['x']
+
+    for fname, fname_bkg in zip(fnames, fnames_bkg):
+        x, y = load_xy(fname)
+        x_bkg, y_bkg = load_xy(fname_bkg)
+        with open(fname, 'r') as f:
+            temp = float(f.readlines()[3].split()[-1])
+
+        if fancyapproach:
+            # here fancy subtracton by finding scale so in the givin area background goes as close to zero as possible without beeing negative
+            s = initial_scale(y[idx_range[0]:idx_range[1]], y_bkg[idx_range[0]:idx_range[1]])
+            # s = round(s, len(str(scale_approach_value).split('.')[1]))
+            # s = round(s, abs(int(np.log10(scale_approach_value))))
+            y_sub = y - s * y_bkg
+
+            if np.any(y_sub[idx_range[0]:idx_range[1]] <= 0.0):
+                while np.any(y_sub[idx_range[0]:idx_range[1]] <= 0.0):
+                    s -= scale_approach_value
+                    y_sub = y - s * y_bkg
+            else:
+                while np.all(y_sub[idx_range[0]:idx_range[1]] > 0.0):
+                    s += scale_approach_value
+                    y_sub = y - s * y_bkg
+                s -= scale_approach_value
+
+            header = 'background subtraction by minimizing background subtracted file but not going below 0 between\n'
+            header += 'q > {} and q < {} A^-1\n'.format(*x_range)
+            header += 'scale: {} ±{}\n'.format(s, scale_approach_value)
+            header += 'temperature (°C): {}\n'.format(temp)
+            header += 'unsubtracted file: {}\n'.format(fname)
+            header += 'background file: {}\n'.format(fname_bkg)
+            header += 'q (A^-1)    I (a.u.)'
+
+        else:
+            # for fixed bkg scale
+            s = bkgscale
+            y_sub = y - s * y_bkg
+
+            header = 'normal background subtraction\n'
+            header += '\n'.format(*x_range)
+            header += 'scale: {}\n'.format(s)
+            header += 'temperature (°C): {}\n'.format(temp)
+            header += 'unsubtracted file: {}\n'.format(fname)
+            header += 'background file: {}\n'.format(fname_bkg)
+            header += 'q (A^-1)    I (a.u.)'
+
+        fname_sub = os.path.join(path2sub, os.path.basename(fname[:-len(dtype)]) + "_bkgsub" + dtype)
+
+        save_xy(fname_sub, x, y_sub, header=header)
+
+    return
+
+
+def make_pdf(fname_iq, fname_gr, composition, qmin, qmax, qmax_inst, rpoly, rmax=30.0):
+
+    command = [
+        'pdfgetx3',
+        str(fname_iq),
+        '--force=True',
+        '--format=QA',
+        '--mode=xray',
+        '--composition=' + str(composition),
+        '--qmin=' + str(qmin),
+        '--qmax=' + str(qmax),
+        '--qmaxinst=' + str(qmax_inst),
+        '--rpoly=' + str(rpoly),
+        '--rmax=' + str(rmax),
+        '-t=gr',
+        '-o=' + str(fname_gr),
+    ]
+
+    subprocess.run(command)
+
+    return
+
+
+def make_pdf_all_in_dir(path2data, path2pdf="", dtype=".dat",
+                        composition="Cu3PdN", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9, rmax=30.0):
+
+    print(path2data)
+
+    if not path2pdf:
+        path2pdf = os.path.join(os.path.dirname(os.path.dirname(path2data)), "pdfs", os.path.basename(path2data))
+    if not os.path.isdir(path2pdf):
+        os.makedirs(path2pdf)
+
+    fnames = glob(os.path.join(path2data, '*' + dtype))
+    fnames.sort()
+
+    for fname_iq in fnames:
+
+        fname_gr = os.path.join(path2pdf, os.path.basename(fname_iq)[:-len(dtype)] + ".gr")
+
+        make_pdf(fname_iq, fname_gr, composition=composition, qmin=qmin, qmax=qmax, qmax_inst=qmax_inst, rpoly=rpoly, rmax=rmax)
+        # print(os.path.basename(fname_gr))
+
+    print(path2pdf)
+
+    return
+
+
+def bkg_sub_n_makepdf_fitglasspeak(fname_data, fname_bkg, fname_bkgsub, fname_gr):
+
+    # fname_bkg = "/Users/admin/data/23_bt_2304_accell/avg60_iqs/bkg_bnh2_140_sdd600/bkg_bnh2_140_sdd600-01848_avg_60.dat"
+    # fname_data = "/Users/admin/data/23_bt_2304_accell/avg60_iqs/cupdn_140_3_sdd600/cupdn_140_3_sdd600-03734_avg_60.dat"
+    # fname_bkgsub = "/Users/admin/data/23_bt_2304_accell/bkgsub_iqs/cupdn_140_3_sdd600_glassfit/cupdn_140_3_sdd600-06914_avg_60.dat"
+    # fname_gr = "/Users/admin/data/23_bt_2304_accell/pdfs/cupdn_140_3_sdd600_glassfit/cupdn_140_3_sdd600-06914_avg_60.gr"
+
+    if not os.path.isdir(os.path.dirname(fname_bkgsub)):
+        os.makedirs(os.path.dirname(fname_bkgsub))
+    if not os.path.isdir(os.path.dirname(fname_gr)):
+        os.makedirs(os.path.dirname(fname_gr))
+
+    q, i_bkg = load_xy(fname_bkg)
+    q, i_data = load_xy(fname_data)
+
+    r_min = 1.2
+    r_max = 1.8
+
+    s_arr = []
+    a_arr = []
+    x0_arr = []
+    fwhm_arr = []
+    m_arr = []
+    y0_arr = []
+
+    def scale():
+
+        def gaussian(x, x0, a, fwhm, m, y0):
+            return a * np.exp(- (x - x0) ** 2 / 2 / (fwhm / 2.35482) ** 2) + m * x + y0
+
+        def func(s):
+
+            save_xy(fname_bkgsub, q, i_data - i_bkg * s)
+            # make_pdf(fname_bkgsub, fname_gr, "Cu3PdN", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9)
+            make_pdf(fname_bkgsub, fname_gr, "Cu3PdN", qmin=0.4, qmax=10.3, qmax_inst=17.5, rpoly=0.9)
+            r, g = load_xy(fname_gr, skiprows=23)
+            idx_min = find_idx(r, r_min)
+            idx_max = find_idx(r, r_max)
+
+            initial_guess = [1.6, 0.1, 0.5, 0.1, -3.0]
+            nobound = (-np.inf, np.inf)
+            restraints = np.array([(1.5, 1.7), (0.0, np.inf), (0.3, 0.8), (-1, 1), nobound]).T
+            popt, pcov = curve_fit(gaussian, r[idx_min:idx_max + 1], g[idx_min:idx_max + 1], p0=initial_guess, bounds=restraints)
+            a = popt[1]
+            a_err = np.sqrt(pcov[1, 1])
+
+            s_arr.append(s)
+            x0_arr.append(popt[0])
+            a_arr.append(popt[1])
+            fwhm_arr.append(popt[2])
+            m_arr.append(popt[3])
+            y0_arr.append(popt[4])
+            return a
+
+        res = minimize_scalar(func)
+        return res['x']
+
+    s = scale()
+    # print(s)
+
+    with open(fname_data, 'r') as f:
+        temp = float(f.readlines()[3].split()[-1])
+    header = 'glassfit background subtraction\n'
+    header += 'scale: {}\n'.format(s)
+    header += 'temperature (°C): {}\n'.format(temp)
+    header += 'unsubtracted file: {}\n'.format(fname_data)
+    header += 'background file: {}\n'.format(fname_bkg)
+    header += 'q (A^-1)    I (a.u.)'
+    save_xy(fname_bkgsub, q, i_data - i_bkg * s)
+    # make_pdf(fname_bkgsub, fname_gr, "Cu3PdN", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9)
+    make_pdf(fname_bkgsub, fname_gr, "Cu3PdN", qmin=0.4, qmax=10.3, qmax_inst=17.5, rpoly=0.9)
+
+    # r, g = load_xy(fname_gr, skiprows=23)
+    #
+    # fit_dict = {
+    #     "s": {"values": s_arr},
+    #     "a": {"values": a_arr},
+    #     "x0": {"values": x0_arr},
+    #     "fwhm": {"values": fwhm_arr},
+    #     "m": {"values": m_arr},
+    #     "y0": {"values": y0_arr},
+    # }
+    #
+    # def key_ax(ax, key):
+    #     ax.plot(fit_dict[key]["values"], label=key)
+    #     ax.set_xlabel("iteration")
+    #     ax.set_ylabel(key)
+    #     return ax
+    #
+    # keys = ["s", "a", "x0", "fwhm", "m", "y0"]
+    # figsize = (6, 2 * len(keys))
+    # fig, axs = plt.subplots(len(keys), 1, sharex=True, sharey=False, gridspec_kw={'hspace': 0}, figsize=figsize)
+    # lines = []
+    # labels = []
+    # for i, keys in enumerate(keys):
+    #     axs[i] = key_ax(axs[i], keys)
+    #     axs[i].legend(frameon=False)
+    #     # lines_i, labels_i = axs[i].get_legend_handles_labels()
+    #     # [lines.append(line) for line in lines_i if line not in lines]
+    #     # [labels.append(label) for label in labels_i if label not in labels]
+    # # axs[0].legend(lines, labels, loc='best', frameon=False)
+    # fig.align_ylabels()
+    # plt.show()
+    #
+    # plt.plot(r, g)
+    # plt.xlim(0, 7.5)
+    # plt.title(s)
+    # plt.show()
+    return s
+
+def bkg_sub_n_makepdf_all_in_dir_glassfit(path2data, path2bkg, path2sub="", path2pdf="", dtype=".dat"):
+
+    if not path2sub:
+        path2sub = os.path.join(os.path.dirname(os.path.dirname(path2data)), "bkgsub_iqs", os.path.basename(path2data) + "_glassfit")
+    if not os.path.isdir(path2sub):
+        os.makedirs(path2sub)
+    if not path2pdf:
+        path2pdf = os.path.join(os.path.dirname(os.path.dirname(path2data)), "pdfs", os.path.basename(path2data) + "_glassfit")
+    if not os.path.isdir(path2pdf):
+        os.makedirs(path2pdf)
+
+    fnames = glob(os.path.join(path2data, '*' + dtype))
+    fnames.sort()
+
+    fnames_bkg = glob(os.path.join(path2bkg, '*' + dtype))
+    fnames_bkg.sort()
+    for i in range(len(fnames) - len(fnames_bkg)):
+        fnames_bkg.append(fnames_bkg[-1])
+
+    s_arr = []
+    for fname, fname_bkg in zip(fnames, fnames_bkg):
+
+        print(fname)
+
+        fname_bkgsub = os.path.join(path2sub, os.path.basename(fname[:-len(dtype)]) + "_bkgsub" + dtype)
+        fname_gr = os.path.join(path2pdf, os.path.basename(fname[:-len(dtype)]) + ".gr")
+
+        s = bkg_sub_n_makepdf_fitglasspeak(fname, fname_bkg, fname_bkgsub, fname_gr)
+        s_arr.append(s)
+
+    plt.plot(s_arr)
+    plt.ylabel("scale")
+    plt.xlabel("time (min)")
+    plt.show()
+
+
+def bkg_sub_n_makepdf_bymaxint(fname_data, fname_bkg, fname_bkgsub, fname_gr):
+
+    if not os.path.isdir(os.path.dirname(fname_bkgsub)):
+        os.makedirs(os.path.dirname(fname_bkgsub))
+    if not os.path.isdir(os.path.dirname(fname_gr)):
+        os.makedirs(os.path.dirname(fname_gr))
+
+    q, i_bkg = load_xy(fname_bkg)
+    q, i_data = load_xy(fname_data)
+
+    r_min = 1.9
+    r_max = 4.0
+
+    def scale():
+
+        def func(s):
+
+            save_xy(fname_bkgsub, q, i_data - i_bkg * s)
+            # make_pdf(fname_bkgsub, fname_gr, "Cu3PdN", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9)
+            make_pdf(fname_bkgsub, fname_gr, "Cu3PdN", qmin=0.4, qmax=10.3, qmax_inst=17.5, rpoly=0.9)
+            r, g = load_xy(fname_gr, skiprows=23)
+            idx_min = find_idx(r, r_min)
+            idx_max = find_idx(r, r_max)
+
+            return -np.max(g[idx_min:idx_max])
+
+        res = minimize_scalar(func)
+        return res['x']
+
+    s = scale()
+    print(s)
+
+    with open(fname_data, 'r') as f:
+        temp = float(f.readlines()[3].split()[-1])
+    header = 'max pdf intensity (between {} adn {} A^-1) background subtraction\n'.format(r_min, r_max)
+    header += 'scale: {}\n'.format(s)
+    header += 'temperature (°C): {}\n'.format(temp)
+    header += 'unsubtracted file: {}\n'.format(fname_data)
+    header += 'background file: {}\n'.format(fname_bkg)
+    header += 'q (A^-1)    I (a.u.)'
+    save_xy(fname_bkgsub, q, i_data - i_bkg * s)
+    make_pdf(fname_bkgsub, fname_gr, "Cu3PdN", qmin=0.4, qmax=10.3, qmax_inst=17.5, rpoly=0.9)
+
+    return s
+
+def bkg_sub_n_makepdf_all_in_dir_baymaxint(path2data, path2bkg, path2sub="", path2pdf="", dtype=".dat"):
+
+    if not path2sub:
+        path2sub = os.path.join(os.path.dirname(os.path.dirname(path2data)), "bkgsub_iqs", os.path.basename(path2data) + "_bymaxint")
+    if not os.path.isdir(path2sub):
+        os.makedirs(path2sub)
+    if not path2pdf:
+        path2pdf = os.path.join(os.path.dirname(os.path.dirname(path2data)), "pdfs", os.path.basename(path2data) + "_bymaxint")
+    if not os.path.isdir(path2pdf):
+        os.makedirs(path2pdf)
+
+    fnames = glob(os.path.join(path2data, '*' + dtype))
+    fnames.sort()
+
+    fnames_bkg = glob(os.path.join(path2bkg, '*' + dtype))
+    fnames_bkg.sort()
+    for i in range(len(fnames) - len(fnames_bkg)):
+        fnames_bkg.append(fnames_bkg[-1])
+
+    s_arr = []
+    for fname, fname_bkg in zip(fnames, fnames_bkg):
+
+        print(fname)
+
+        fname_bkgsub = os.path.join(path2sub, os.path.basename(fname[:-len(dtype)]) + "_bkgsub" + dtype)
+        fname_gr = os.path.join(path2pdf, os.path.basename(fname[:-len(dtype)]) + ".gr")
+
+        s = bkg_sub_n_makepdf_bymaxint(fname, fname_bkg, fname_bkgsub, fname_gr)
+        s_arr.append(s)
+
+    plt.plot(s_arr)
+    plt.ylabel("scale")
+    plt.xlabel("time (min)")
+    plt.show()
+
+path2data = "/Users/admin/Wolke/data/23_bt_2304_accell/avg60_iqs/cupdn_140_3_sdd600"
+path2bkg = "/Users/admin/Wolke/data/23_bt_2304_accell/avg60_iqs/bkg_bnh2_140_sdd600"
+path2sub = "/Users/admin/Wolke/data/23_bt_2304_accell/bkgsub_iqs/cupdn_140_3_sdd600_bymaxint"
+path2pdf = "/Users/admin/Wolke/data/23_bt_2304_accell/pdfs/cupdn_140_3_sdd600_bymaxint"
+bkg_sub_n_makepdf_all_in_dir_baymaxint(path2data, path2bkg)
+
+
+def avg_specific(path2data, dtype=".dat", avg_startnum=0, avg_endnum=120):
+    fnames = glob(os.path.join(path2data, '*' + dtype))
+    fnames.sort()
+    path2avg = "/Users/admin/data/23_bt_2304_accell/abcheckauis/starting_point_wobkgsub/iqs"
+
+    avg_num = avg_endnum - avg_startnum
+    fnames_to_avg = fnames[avg_startnum:avg_endnum]
+    fname_avg = os.path.join(path2avg,
+                             os.path.basename(fnames_to_avg[0][:-len(dtype)]) + "_avg_" + str(avg_num) + dtype)
+
+    y_avgs = []
+    for fname in fnames_to_avg:
+        x, y = load_xy(fname)
+        y_avgs.append(y)
+    y_avg = np.mean(y_avgs, axis=0)
+    header = 'averaged {} files\n'.format(avg_num)
+    header += 'from path: {}\nto {}\n'.format(path2data, path2avg)
+    header += 'q (A^-1)    I (a.u.)'
+    save_xy(fname_avg, x, y_avg, header=header)
+# datadirdir = "/Users/admin/data/23_bt_2304_accell/raw_iqs/"
+# dir = "sh_pdn_180_1"
+# path2data = os.path.join(datadirdir, dir)
+# avg_specific(path2data)
+
+
+# path2data = "/Users/admin/data/23_bt_2304_accell/raw_iqs/bkg_bnh2_160_1"
+# avg(path2data, overwrite=True)
+# path2bkg = "/Users/admin/data/23_bt_2304_accell/raw_iqs/cufen_160_1"
+# avg(path2bkg, overwrite=True)
+# bkg_sub_n_makepdf_all_in_dir_glassfit("/Users/admin/data/23_bt_2304_accell/avg60_iqs/cufen_160_1", "/Users/admin/data/23_bt_2304_accell/avg60_iqs/bkg_bnh2_160_1")
+print('kukuk')
+
+# path2bkg = "/Users/admin/data/23_bt_2304_accell/raw_iqs/lk_bg_fe3s4_180_1"
+# avg(path2bkg, overwrite=True)
+# path2data = "/Users/admin/data/23_bt_2304_accell/raw_iqs/lk_fe3s4_180_1"
+# avg(path2data, overwrite=True)
+# bkg_sub_n_makepdf_all_in_dir_glassfit("/Users/admin/data/23_bt_2304_accell/avg60_iqs/lk_fe3s4_180_1", "/Users/admin/data/23_bt_2304_accell/avg60_iqs/lk_bg_fe3s4_180_1")
+# path2bkg = "/Users/admin/data/23_bt_2304_accell/raw_iqs/lk_bg_fe3s4_100_1"
+# avg(path2bkg, overwrite=True)
+# path2data = "/Users/admin/data/23_bt_2304_accell/raw_iqs/lk_fe3s4_100_1"
+# avg(path2data, overwrite=True)
+# bkg_sub_n_makepdf_all_in_dir_glassfit("/Users/admin/data/23_bt_2304_accell/avg60_iqs/lk_fe3s4_100_1", "/Users/admin/data/23_bt_2304_accell/avg60_iqs/lk_bg_fe3s4_100_1")
+
+
+
+# path2bkg = "/Users/admin/data/23_bt_2304_accell/avg60_iqs/bkg_bnh2_140_sdd600"
+# path2data = "/Users/admin/data/23_bt_2304_accell/avg60_iqs/cupdn_140_3_sdd600"
+# bkg_sub(path2data, path2bkg, fancyapproach=False, bkgscale=1.0)
+
+# path2data = "/Users/admin/data/23_bt_2304_accell/bkgsub_iqs/cupdn_140_3_sdd600"
+# make_pdf_all_in_dir(path2data, composition="Cu3PdN", qmin=0.4, qmax=10.3, qmax_inst=17.5, rpoly=0.9)
+
+
+# path2data = "/Users/admin/data/23_bt_2304_accell/bkgsub_iqs/cu3n_140_1"
+# make_pdf_all_in_dir(path2data, composition="Cu3N", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9)
+# path2data = "/Users/admin/data/23_bt_2304_accell/bkgsub_iqs/cu3n_140_2"
+# make_pdf_all_in_dir(path2data, composition="Cu3N", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9)
+# path2data = "/Users/admin/data/23_bt_2304_accell/bkgsub_iqs/cupdn_140_1"
+# make_pdf_all_in_dir(path2data, composition="Cu3PdN", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9)
+# path2data = "/Users/admin/data/23_bt_2304_accell/bkgsub_iqs/cupdn_140_2"
+# make_pdf_all_in_dir(path2data, composition="Cu3PdN", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9)
+# path2data = "/Users/admin/data/23_bt_2304_accell/bkgsub_iqs/sh_pdn_140_2"
+# make_pdf_all_in_dir(path2data, composition="Pd", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9)
+
+# make_pdf("/Users/admin/data/23_bt_2304_accell/calibauis/lab6_ac_cell_385-00067.dat",
+#          "/Users/admin/data/23_bt_2304_accell/calibauis/lab6_ac_cell_385-00067.dat",
+#          composition="LaB6", qmin=0.7, qmax=10.3, qmax_inst=24.0, rpoly=0.9)
+
+# path2data = "/Users/admin/data/23_bt_2304_accell/bkgsub_iqs/cupdn_140_3_sdd600"
+# path2pdf = "/Users/admin/data/23_bt_2304_accell/pdfs/cupdn_140_3_sdd600_qmax16p3"
+# make_pdf_all_in_dir(path2data, composition="Cu3PdN", qmin=0.7, qmax=16.3, qmax_inst=18.3, rpoly=0.9)
+#
+# make_pdf("/Users/admin/data/23_bt_2304_accell/calibauis/lab6_ac_cell_385-00067.dat",
+#          "/Users/admin/data/23_bt_2304_accell/calibauis/lab6_ac_cell_385-00067_qmax16p3.gr",
+#          composition="LaB6", qmin=0.7, qmax=16.3, qmax_inst=18.3, rpoly=0.9)
+
+print('hi')
-- 
GitLab