diff --git a/notebooks/AGIPD/playground/AGIPD_FF_Prepare_data.ipynb b/notebooks/AGIPD/playground/AGIPD_FF_Prepare_data.ipynb
deleted file mode 100644
index 19794465d50e42d9cdc6c6aaa63e0a94d6d49eb5..0000000000000000000000000000000000000000
--- a/notebooks/AGIPD/playground/AGIPD_FF_Prepare_data.ipynb
+++ /dev/null
@@ -1,313 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "metadata": {},
-   "source": [
-    "# AGIPD Analysis\n",
-    "\n",
-    "Author: European XFEL Detector Group, Version: 1.0\n",
-    "\n",
-    "Offline Calibration for the AGIPD Detector"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "in_folder = \"/gpfs/exfel/exp/SPB/202030/p900138/proc/\" # the folder to read data from, required\n",
-    "modules = [2] # module to consider, range allowed\n",
-    "out_folder =  \"/gpfs/exfel/exp/MID/202030/p900137/scratch/karnem/r0319_0322_0342_v02\"  # the folder to output to, required\n",
-    "cluster_profile = \"noDB\"\n",
-    "fname = '{}/CORR-R{:04d}-AGIPD{:02d}-S{:05d}.h5'\n",
-    "sequences = [-1] # module to consider, set to -1 for all, range allowed\n",
-    "cells = 'range(0,0)' # number of cells, expression should be equivalent to list\n",
-    "n_bins = 500 # number of bins of the histogram\n",
-    "h_range = [-50, 450] # range of the histogram\n",
-    "chunk_size = 5 # Number of memory cells to be processed at ones and be stored in a file\n",
-    "n_cells = 202 # total number of memory cells (used to create summary file)\n",
-    "run = 204 # run number, required\n",
-    "karabo_id = 'MID_DET_AGIPD1M-1' # karabo_id \n",
-    "templ = \"{out_folder}/hists_m{module:02d}_c*.h5\" # Template to concatinate histograms"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from functools import partial\n",
-    "from ipyparallel import Client\n",
-    "import warnings\n",
-    "import glob\n",
-    "import h5py\n",
-    "import numpy as np\n",
-    "from time import sleep, time\n",
-    "import os\n",
-    "import gc\n",
-    "import matplotlib.pyplot as plt\n",
-    "import matplotlib as mpl\n",
-    "from cal_tools.ana_tools import save_dict_to_hdf5\n",
-    "%matplotlib inline\n",
-    "warnings.filterwarnings('ignore')\n",
-    "client = Client(profile=cluster_profile)\n",
-    "view = client[:]\n",
-    "view.use_dill()\n",
-    "\n",
-    "in_folder = \"{}/r{:04d}/\".format(in_folder, run)\n",
-    "cells = list(eval(cells))\n",
-    "if len(cells)>0:\n",
-    "    print(f'List of cells {cells[0]}-{cells[-1]}: {cells}')\n",
-    "print(f'Input folder {in_folder}')\n",
-    "n_pix = 128*512\n",
-    "module = modules[0]"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {
-    "scrolled": false
-   },
-   "outputs": [],
-   "source": [
-    "def process_file(cells, n_bins, h_range, n_pix, module, karabo_id, file_name):\n",
-    "    import glob\n",
-    "    import h5py\n",
-    "    import numpy as np\n",
-    "    import gc\n",
-    "\n",
-    "    print('Read file {}'.format(file_name))\n",
-    "    sequence = int(file_name.split('/')[-1].split('-')[3][1:-3])\n",
-    "    res_all = np.zeros((len(cells), n_bins, n_pix)).astype(np.uint32)\n",
-    "    err = ''\n",
-    "    try:\n",
-    "        with h5py.File(file_name, \"r\") as f:\n",
-    "            path = f'/INSTRUMENT/{karabo_id}/DET/{module}CH0:xtdf/image'\n",
-    "            print(path)\n",
-    "\n",
-    "            data_h = f[f'{path}/data']\n",
-    "            cellId_h = f[f'{path}/cellId']\n",
-    "\n",
-    "            cell_id = np.array(cellId_h[()])\n",
-    "            \n",
-    "            for ic, cell in enumerate(cells):\n",
-    "                print(cell)\n",
-    "                cell_sel = np.where(cell_id == cell)\n",
-    "                data = np.array(data_h[cell_sel]).astype(np.float32)\n",
-    "\n",
-    "                print(data.shape)\n",
-    "                res_all[ic] = np.apply_along_axis(lambda a: np.histogram(a, bins=n_bins, range=h_range)[0],\n",
-    "                                          0,\n",
-    "                                          data.reshape(data.shape[0], n_pix))\n",
-    "            gc.collect()\n",
-    "    except Exception as e:\n",
-    "        err = str(e)\n",
-    "        gc.collect()\n",
-    "    return res_all, err, sequence\n",
-    "\n",
-    "\n",
-    "if sequences[0] == -1:\n",
-    "    fnames = glob.glob(fname.format(\n",
-    "        in_folder, run, module, 99999).replace('99999', '*'))\n",
-    "else:\n",
-    "    fnames = [fname.format(in_folder, run, module, x) for x in sequences]\n",
-    "\n",
-    "#proposal = int(in_folder.split('/')[6][1:])\n",
-    "sequences = [int(x.split('/')[-1].split('-')[3][1:-3]) for x in fnames]\n",
-    "\n",
-    "print(f\"List of sequences: {sorted(sequences)}\")\n",
-    "processed = np.zeros((max(sequences+[1])+1, max(cells+[1])+1))\n",
-    "processed[:,:] = np.nan\n",
-    "\n",
-    "cell_list = []\n",
-    "for cell in cells:\n",
-    "    cell_list.append(cell)\n",
-    "    if len(cell_list) >= chunk_size or cell == cells[-1]:\n",
-    "        inp = []\n",
-    "        for file_name in fnames:\n",
-    "            inp.append(file_name)\n",
-    "\n",
-    "        print(f'Process cells: {cell_list}')\n",
-    "        p = partial(process_file, cell_list, n_bins, h_range, n_pix, module, karabo_id)\n",
-    "        results = view.map_sync(p, inp)\n",
-    "        #results = list(map(p, inp))\n",
-    "\n",
-    "        all_hists = np.zeros((len(cell_list), n_bins, n_pix)).astype(np.uint32)\n",
-    "        for ir, r in enumerate(results):\n",
-    "            data, msg, s = r\n",
-    "            if msg == '':\n",
-    "                processed[s, np.array(cell_list)] = 1\n",
-    "                all_hists += data\n",
-    "            else:\n",
-    "                processed[s, np.array(cell_list)] = 0\n",
-    "                print(f'Error in {ir}: {msg}')\n",
-    "\n",
-    "\n",
-    "        out_name = '{}/hists_m{:02d}_c{:03d}-{:03d}.h5'.format(out_folder, module,\n",
-    "                                                               cell_list[0], cell_list[-1])\n",
-    "\n",
-    "        save_dict_to_hdf5({'hist': all_hists,\n",
-    "                           'cellId': np.array(cell_list),\n",
-    "                           # 'proposal': proposal,\n",
-    "                           # 'sequences': sequences,\n",
-    "                           # 'run_': [int(run)],\n",
-    "                           'nBins': n_bins,\n",
-    "                           'hRange': np.array(h_range)}, out_name)\n",
-    "\n",
-    "        cell_list = []\n",
-    "        gc.collect()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "fig = plt.figure(figsize=(10,10))\n",
-    "plt.imshow(processed, cmap=plt.cm.jet, vmin = 0, vmax = 1)\n",
-    "plt.title(f\"Processed files and cells for module {module}\")\n",
-    "plt.ylabel(\"Sequences\", fontsize=18)\n",
-    "_ = plt.xlabel(\"Cells\", fontsize=18)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Concatinate all files for given module\n",
-    "fnames = glob.glob(templ.format(out_folder=out_folder, module=module))\n",
-    "total_hist = np.zeros((n_cells, n_bins, n_pix)).astype(np.uint32)\n",
-    "\n",
-    "for file_name in fnames:\n",
-    "    with h5py.File(file_name, \"r\") as f:\n",
-    "\n",
-    "        f_hist = np.array(f['hist'][()])\n",
-    "        f_cell_id = np.array(f['cellId'][()])\n",
-    "        f_n_bins = f['nBins'][()]\n",
-    "        f_h_range = np.array(f['hRange'][()])\n",
-    "        #f_proposal = np.array(f['proposal'][()])\n",
-    "        #f_sequences = np.array(f['sequences'][()])\n",
-    "        #f_runs = np.array(f['runs'][()])\n",
-    "\n",
-    "        if n_bins != f_n_bins or f_h_range[0] != h_range[0] or f_h_range[1] != h_range[1]:\n",
-    "            print(f'file {file_name} is incompatible to be merged')\n",
-    "            continue\n",
-    "\n",
-    "        print(f'Add file {file_name} with cells {f_cell_id}')\n",
-    "        total_hist[f_cell_id] += f_hist\n",
-    "\n",
-    "\n",
-    "out_name = '{}/hists_m{:02d}_sum.h5'.format(out_folder, module)\n",
-    "print(f'Save to file: {out_name}')\n",
-    "\n",
-    "save_dict_to_hdf5({'hist': total_hist,\n",
-    "                   'cellId': np.arange(n_cells),\n",
-    "                   'nBins': n_bins,\n",
-    "                   'hRange': np.array(h_range)}, out_name)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "rshist = np.reshape(total_hist, (n_cells, n_bins, 512, 128))\n",
-    "\n",
-    "# some sanity check per mem cell\n",
-    "mean_hist = np.zeros(n_cells)\n",
-    "std_hist = np.zeros(n_cells)\n",
-    "sum_hist = np.zeros(n_cells)\n",
-    "for i in range(0, n_cells):\n",
-    "    mean_hist[i] = np.mean(rshist[i, :, :, :])\n",
-    "    std_hist[i] = np.std(rshist[i, :, :, :])\n",
-    "    sum_hist[i] = np.sum(rshist[i, :, :, :])/(128*512)\n",
-    "\n",
-    "x = np.linspace(0, n_cells, n_cells)\n",
-    "fig = plt.figure(figsize=(10, 10))\n",
-    "\n",
-    "ax0 = fig.add_subplot(211)\n",
-    "ax0.plot(x, mean_hist, 'k', color='#3F7F4C')\n",
-    "ax0.fill_between(x, mean_hist-std_hist, mean_hist+std_hist,\n",
-    "                 alpha=0.6, edgecolor='#3F7F4C', facecolor='#7EFF99',\n",
-    "                 linewidth=1, linestyle='dashdot', antialiased=True,\n",
-    "                 label=\" mean value $ \\pm $ std \")\n",
-    "\n",
-    "ax0.set_xlabel('Cell', fontsize=14)\n",
-    "ax0.set_ylabel('Mean over module [ADU]', fontsize=14)\n",
-    "ax0.set_title(f'Module {module}', fontsize=16, fontweight='bold')\n",
-    "ax0.grid()\n",
-    "# ax0.set_ylim(-100,100)\n",
-    "_ = ax0.legend()\n",
-    "\n",
-    "ax1 = fig.add_subplot(212)\n",
-    "ax1.plot(x, sum_hist, 'k', color='#3F7F4C')\n",
-    "\n",
-    "ax1.set_xlabel('Cell', fontsize=14)\n",
-    "ax1.set_ylabel('Average statistics', fontsize=14)\n",
-    "ax1.set_title(f'Module {module}', fontsize=16, fontweight='bold')\n",
-    "_ = ax1.legend()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Plot for single pixel and all memory cells.\n",
-    "xpix= 23\n",
-    "ypix= 44\n",
-    "\n",
-    "x = np.arange(h_range[0],h_range[1] , 1)\n",
-    "n,_ = rshist[:,:,xpix,ypix].shape\n",
-    "\n",
-    "colors = mpl.cm.rainbow(np.linspace(0, 1, n))\n",
-    "\n",
-    "\n",
-    "fig = plt.figure(figsize=(10,5))\n",
-    "fig.suptitle(f'Module {module} ', fontsize=14, fontweight='bold')\n",
-    "\n",
-    "ax = fig.add_subplot(111)\n",
-    "fig.subplots_adjust(top=0.85)\n",
-    "ax.set_title(f'single pixel [{xpix},{ypix}], all ({n_cells}) memory cells')\n",
-    "\n",
-    "ax.set_xlabel('Signal [ADU]')\n",
-    "ax.set_ylabel('Counts')\n",
-    "ax.set_xlim(-50,300)\n",
-    "for color, y in zip(colors, rshist[:,:,xpix,ypix]):\n",
-    "    ax.plot(x, y, color=color,linewidth=0.2)\n",
-    "plt.grid()  \n",
-    "plt.show()"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.6.7"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/xfel_calibrate/notebooks.py b/xfel_calibrate/notebooks.py
index c3a19cdd95c825eff0af0968812fe5b51f05671e..b814077b51b6e0d5c3913795105024b9887a0143 100644
--- a/xfel_calibrate/notebooks.py
+++ b/xfel_calibrate/notebooks.py
@@ -41,12 +41,6 @@ notebooks = {
                             "default concurrency": None,
                             "cluster cores": 8},
         },
-       "FF_HISTS": {
-               "notebook": "notebooks/AGIPD/playground/AGIPD_FF_Prepare_data.ipynb",
-               "concurrency": {"parameter": "modules",
-                               "default concurrency": list(range(16)),
-                               "cluster cores": 30},
-               },
     },
 
     "AGIPD64K": {
@@ -241,4 +235,3 @@ notebooks = {
         },
     },
 }
-