Use crystal ball (2016)


  • Log into GSI as user ‘land’:

    ssh -lland
  • Go to the experimente directory:

    cd /u/land/lynx.landexp/ikp/xbdaq
  • You will find the following:

    r4l-43 - MBS macros for the LEFT of crystal ball - ctrl = 1 - crystals 82-162
    r4l-59 - MBS macros for the RIGHT of crystal ball - ctrl = 2 - crystals 1-81
    scripts - Scripts to set environment variables
    unpacker - Main ucesb directory (contains e.g. empty unpacker)
    upexps/xb2016 - Experiment specific unpacker
    r3bfuser - Glue code between nurdlib and MBS
    nurdlib - readout library
    trloii - trigger logic library and tools
    htools - Support library for nurdlib
    unpacker - ???
  • There is a screen session on lxir123:

    ssh -lland lxir123
  • Log into it:

    screen -x xb
  • It has many windows:

    r4l-43 - Logged into r4l-43 (for compiling / log files)
    r4l-59 - Logged into r4l-59 (for log files)
    lxir - Logged into lxir123 (for compiling)
    devMbs - development
    r4l-59ioc - EPICS server for r4l-59
    r4l-19ioc - EPICS server for r4l-43
    watch - EPICS watcher for both systems
    pi - Logged into landpi001
  • DAQ control (conventional) To start the DAQ on each side of XB, do: In each of the windows r4l-43 / r4l-59:

    > cd landexp/ikp/xbdaq/r4l-XX
    > resl
    > mbs
    mbs> @s

    In the conventional way you cannot use the EPICS watcher for the DAQ

  • DAQ control (via EPICS)


    This only works, if the EPICS servers are started (see below).

    From a GSI machine (lx-pool might not work), do:

    export EPICS_CA_ADDR_LIST=""
    caput -S R4L-10:setup_pwd /land/usr/land/landexp/ikp/xbdaq/r4l-43
    caput R4L-10:dispatch_up 1
    caput R4L-10:dispatch_send "r4l-43::@s"
    caput -S R4L-29:setup_pwd /land/usr/land/landexp/ikp/xbdaq/r4l-59
    caput R4L-29:dispatch_up 1
    caput R4L-29:dispatch_send "r4l-59::@s"

    This will start the DAQs using the EPICS control interface For resetting use:

    caput R4L-10:reset_local 1
    caput R4L-29:reset_local 1

    To start EPICS servers (IOCs) Log into r4l-43 and r4l-59 and do:

    cd bl/epics/mbs_ioc/iocBoot/iocmbs

    The servers on the raspberrypi (landpi001) are started automatically

Slow control (HV and MSCFs)

landpi001 runs the EPICS servers for both systems

  • HV:

    cd epics/iseg_hv/scripts
    • Here are a couple of helper scripts:                 - Switch all crystals ON (does not set voltage)                - Switch all crystals OFF (does not reset voltage)                   - Read a voltage list file (default: init_final.list)
                                          and apply the voltages listed there <cr>         - Switch a single crystal on <cr>        - Switch a single crystal off          - Read settings for all crystals <cr> <v>   - Set voltage v on crystal cr <cr>       - Read back set and measured voltage on crystal cr
  • Shaper modules (Mesytec MSCF-16):

    cd epics/mrcc_ioc/script
    • You will also find helper scripts here: <cmd> [<from> <to>]       - Read value of parameter <cmd> <cmd> <mscf> <value>       - Set parameter <cmd> of <mscf> to <value> <cmd> <from> <to>      - Read parameter <cmd> from range of crystals                   - Read all parameters from hardware                  - Show parameter values <cr>                - Put signal from crystal <cr> on the mux output


      One always has to upd_settings first, before read_settings. Otherwise the values are not read from the hardware, but only from the EPICS database. After setting a new value, the database is automatically updated.


  • Streaming, unpacking and merging data

    Unpacker/merger is in ~/lynx.landexp/ikp/xbdaq/upexps/xb2016

    • Set root environment:

    • Streaming from a single crate:

      ./xb2016 stream://r4l-XX --output=/path/to/file.lmd
    • Unpacking from a single crate:

      ./xb2016 stream://r4l-XX --ntuple=RAW,/path/to/file.root
    • Merging data from two streams:

      ./xb2016_merger --merge=wr,2 stream://r4l-43 stream://r4l-59 --output=/file
    • Merging data and sending to second ucesb for unpacking:

      ./xb2016_merger --merge=wr,2 stream://r4l-43 stream://r4l-59 --output=- \
      | ./xb2016 --file=- --ntuple=RAW,/path/to/rootfile
    • Merging data and serving on a local port:

      ./xb2016_merger --merge=wr,2 stream://r4l-43 stream://r4l-59 \
    • Unpacking from a local server:

      ./xb2016 stream://localhost:8000 --ntuple=RAW,/file.lmd