===== RunDB ===== The RunDB allows to store a hierarchy of objects describing experiments. The objects are: - Acquisitions: A simple data acquisition with inmutable characteristics during its duration - Runs: A group of acquisitions. Typically generated by a script that cycles the configuration of the experimental device and generates an acquisition for each configuration. - Run groups: a group of runs. The RunDB has a hierarchical structure. Each object contains a name, a mount point (mp) and a path, and it belongs to a parent object. The path of the object is relative to its mount point. For example, an object with mp=file:/// and path=home/data will have its files is /home/data. On the other hand an object with mp=nfs://server/nfs and path=myobject will have its data in the folder myobject of the corresponding NFS mount point. The :py:func:`new_run_group `, :py:func:`new_run `, :py:func:`new_acq ` functions return a unique id of each object with the names of each object in the hierarchy, separated by slashes. For example: root/my_run_group/my_run/my_acquisition. Examples: We have a top level run group called commissioning that contains a second level run group called first_tests. Inside it, we have a run called calibration_1 and an acquisition called iteration_1/threshold_200 (note that acquisition names can contain further filesystem levels). All of them with a mount point file:/// - id of the run groups: root/commissioning/first_tests and root/commissioning - id of the run: root/commissioning/first_tests/calibration_1 - id of the acquisition: root/commissioning/first_tests/calibration_1/iteration_1/threshold_200 API === .. automodule:: cmd_rundb :members: :member-order: bysource