.. _how_it_works:

How it Works
============

The European XFEL Offline Calibration utilizes the tools nbconvert_ and nbparameterise_
to expose Jupyter_ notebooks to a command line interface. In the process reports are generated
from these notebooks. The general interface is::

    % xfel-calibrate DETECTOR TYPE
    
where `DETECTOR` and `TYPE` specify the task to be performed.

Additionally, it leverages the DESY/XFEL Maxwell cluster to run these jobs in parallel
via SLURM_.

Here is a list of :ref:`available_notebooks`. See the :ref:`advanced_topics` if you are
for details on how to use as detector group staff. 

If you would like to integrate additional notebooks please see the :ref:`development_workflow`.

.. _nbparameterise: https://github.com/takluyver/nbparameterise
.. _nbconver: https://github.com/jupyter/nbconvert
.. _jupyter: http://jupyter.org/
.. _SLURM: https://slurm.schedmd.com