diff --git a/Results/dummy b/Results/dummy
deleted file mode 100644
index 8b137891791fe96927ad78e64b0aad7bded08bdc..0000000000000000000000000000000000000000
--- a/Results/dummy
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/user/example.py b/user/example.py
index d1859b41c511a6959198d0616dec8ea4f92fc8ba..6d9effdba6145b2dcae6ebbebeb885ccabaece81 100644
--- a/user/example.py
+++ b/user/example.py
@@ -18,7 +18,7 @@ parser.add_argument('-bin_0', type=float, default=-100.0, help='SELECT FIRST BIN
 parser.add_argument('-truncate_nsigma0_up', type=float, default=2.0, help='SCAN SPECTRUM FROM Q < Q_0 - 4 sigma_0')
 parser.add_argument('-truncate_nsigma0_do', type=float, default=2.0, help='EVALUATE SPECTRUM CHI2 IN Q_0 - x*sigma_0 < Q < Q_0 + 2*sigma_0')
 parser.add_argument('-prefit_only', action='store_true', help='FIT THE WHOLE SPECTRUM')
-parser.add_argument('-folder', type=str, default='data/hamamatsu_pcb6', help='Directory containing the data files')
+parser.add_argument('-folder', type=str, default='data/hamamatsu_pcb6/trial', help='Directory containing the data files')
 
 args = parser.parse_args()
 
@@ -71,7 +71,7 @@ for i, (file, path) in enumerate(files_to_fit):
     items = file.split('_')
 
     V = float(items[2].replace('V', '').replace('p', '.'))
-
+    print(V)
     f_tau_hmt = f_tau(V, V_bd_hmt, V_0_hmt)  
 
 
diff --git a/user/sumlab_auto.py b/user/sumlab_auto.py
new file mode 100644
index 0000000000000000000000000000000000000000..74ae8eeba984e7c10481129dbc18fb369f87c5ad
--- /dev/null
+++ b/user/sumlab_auto.py
@@ -0,0 +1,113 @@
+import sys
+import os
+sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+from PeakOTron import PeakOTron
+import pandas as pd
+import numpy as np
+import argparse
+
+
+def float_or_none(value):
+    return None if value.lower() == 'none' else float(value)
+
+
+parser = argparse.ArgumentParser(description='Fit SiPM data')
+parser.add_argument('-V_bd_hmt', type=float,
+                    default=26.1, help='V_bd_hmt value')
+parser.add_argument('-V_0_hmt', type=float, default=1.4, help='V_0_hmt value')
+parser.add_argument('-tau', type=float, default=20.0,
+                    help='SLOW COMPONENT OF SIPM PULSE')
+parser.add_argument('-t_0', type=float, default=100.0,
+                    help='PRE-INTEGRATION TIME')
+parser.add_argument('-t_gate', type=float, default=100.0, help='GATE LENGTH')
+parser.add_argument('-bin_0', type=float_or_none, default=-100.0,
+                    help='SELECT FIRST BIN OF SPECTRUM')
+parser.add_argument('-truncate_nsigma0_up', type=float_or_none,
+                    default=2.0, help='SCAN SPECTRUM FROM Q < Q_0 - 4 sigma_0')
+parser.add_argument('-truncate_nsigma0_do', type=float_or_none, default=2.0,
+                    help='EVALUATE SPECTRUM CHI2 IN Q_0 - x*sigma_0 < Q < Q_0 + 2*sigma_0')
+parser.add_argument('-prefit_only', action='store_true',
+                    help='FIT THE WHOLE SPECTRUM')
+parser.add_argument('-folder', type=str, default='data/sumlab',
+                    help='Directory containing the data files')
+
+args = parser.parse_args()
+
+
+def C_tau(V, V_bd, V_0): return (V - V_bd)/V_0
+
+
+def f_tau(V, V_bd, V_0): return -1/np.log((1-np.exp(C_tau(V, V_bd, V_0)
+                                                    * np.exp(-1)))/(1 - np.exp(C_tau(V, V_bd, V_0))))
+
+
+V_bd_hmt = args.V_bd_hmt
+V_0_hmt = args.V_0_hmt
+tau = args.tau  # SLOW COMPONENT OF SIPM PULSE
+t_0 = args.t_0  # PRE-INTEGRATION TIME
+t_gate = args.t_gate  # GATE LENGTH
+bin_0 = args.bin_0  # SELECT FIRST BIN OF SPECTRUM (CAN BE AUTOMATIC)
+# SCAN SPECTRUM FROM Q < Q_0 - 4 sigma_0
+truncate_nsigma0_up = args.truncate_nsigma0_up
+# EVALUATE SPECTRUM CHI2 IN Q_0 - x*sigma_0  < Q < Q_0 + 2*sigma_0
+truncate_nsigma0_do = args.truncate_nsigma0_do
+prefit_only = args.prefit_only  # FIT THE WHOLE SPECTRUM
+
+out_dict = {}
+files_to_fit = []
+
+# Find all histograms in directory
+folder = args.folder
+for root, dirs, files in os.walk(folder):
+    for file in files:
+        if file.endswith(".txt"):
+            files_to_fit.append([file, os.path.join(root, file)])
+
+print("\033[95m\n=======================================")
+print("   PeakOTron")
+print("=======================================\033[0m")
+
+# Loop thorough files
+for i, (file, path) in enumerate(files_to_fit):
+    print("\033[95mFitting: {:s}\033[0m".format(file))
+    V = float(file.split('deg')[1].split('V')[0].replace('_', '.'))
+    f_tau_hmt = f_tau(V, V_bd_hmt, V_0_hmt)
+
+    # Load files.
+    data = np.loadtxt(path, skiprows=0)
+    # Create a PeakOTron Fit Object.
+    f_data = PeakOTron(verbose=False)
+    # Perform fit.
+    f_data.Fit(data,
+               tau=tau,  # SLOW PULSE COMPONENT TIME CONSTANT (ns)
+               t_gate=t_gate,  # GATE LENGTH (ns)
+               t_0=t_0,  # INTEGRATION TIME BEFORE GATE (ns)
+               tau_R=f_tau_hmt*tau,
+               bin_0=bin_0,
+               truncate_nsigma0_up=truncate_nsigma0_up,
+               truncate_nsigma0_do=truncate_nsigma0_do
+               )
+
+    f_data.PlotFit(plot_in_bins=True, display=False,
+                   save_directory=f"{folder}/{file[:-4]}_fit.png")
+
+    fit_out = {}
+    prefit_val, prefit_err = f_data.GetPrefitResults(bin_units=False)
+    print("\033[95m"+rf"Prefit: G = {prefit_val.get('G')} d_G = {prefit_err.get('G')}"+"\033[0m")
+    for key, value in prefit_val.items():
+        fit_out["prefit_{:s}".format(key)] = value
+    for key, value in prefit_err.items():
+        fit_out["prefit_d_{:s}".format(key)] = value
+
+    #if not prefit_only:
+    fit_val, fit_err = f_data.GetFitResults(bin_units=False)
+    print("\033[95m"+rf"Fit: G = {fit_val.get('G')} d_G = {fit_err.get('G')}"+"\033[0m")
+    for key, value in fit_val.items():
+        fit_out["{:s}".format(key)] = value
+    for key, value in fit_err.items():
+        fit_out["d_{:s}".format(key)] = value
+
+    df = pd.DataFrame.from_dict([fit_out])
+    df.to_csv("{}/fit_results_{:s}.csv".format(folder, file[:-4]))
+
+print("\033[95m=======================================\033[0m")