Contents


General information about HDF5

HDF5 is a data format maintained by the HDF group. For detailed general information see here

To download the HDF5 Viewer click here

For use on the DESY Maxwell or PAL (max-fsc or pal) hdfview is available in the xray module :
> module load xray
> hdfview

top

FLASH HDF5 structure

The photon diagnostic, electron diagnostic and beamline information as well as the information about the pump-probe laser and the infrastructure offered for users (GHz/MHz ADCs) can be included in one HDF5 file which is organised according to train IDs. The general structure is:

A detailled description of (most) channels can be found in the lower part of the hdf5 viewer:
HDF5_structure_desc.jpg

top


HDF5 example files

Here we have a few HDF5 samples (User data combined with Photon diagnostics data) from a few beamtimes showing the different kind options.

  download HDF5 (Images @ FL2)


download HDF5 (GHz ADC and OPIS @ FL2)



top



Most popular FLASH parameters and their names in HDF5, DOOCS and (raw) DAQ

The complete list for the relation between DOOCS names and HDF5 names for the recordable parameters can be found in DESY's Repository.
The most common and often used ones are summarized below:

Note, the HDF group and data set names apply to our HDF tree version since vers. 0.3.0.


FLASH1


Beamline info (FLASH1)

/FL1/Beamlines/Attenuator/pressure
always saved (PBD)
DOOCS prop : FLASH.FEL/GAS_DOSING/FL1.ATTENUATOR/PRESSURE
DAQ channel: FLASH.FEL/GAS_DOSING/FL1.ATTENUATOR/PRESSURE
desc: set pressure in the gas attenuator
units: mbar

/FL1/Beamlines/BL/Fast shutter/open
always saved (PBD)
DOOCS prop : FLASH.FEL/ADC.SIS.FL1FS/BL.SHUTTER/CH00.TD
DAQ channel: FLASH.FEL/ADC.SIS.FL1FS/BL.SHUTTER
desc: BL Beamline Fast shutter state
units: none

/FL1/Beamlines/PG/Fast shutter/open
always saved (PBD)
DOOCS prop : FLASH.FEL/ADC.SIS.FL1FS/PG.SHUTTER/CH00.TD
DAQ channel: FLASH.FEL/ADC.SIS.FL1FS/PG.SHUTTER
desc: PG Beamline Fast shutter state
units: none

/FL1/Beamlines/BL/Filters/BL filter wheel/position filter 1
always saved (PBD)
DOOCS prop : TTF2.FEL/BLFILTERS1/FILTER1/FW.MOTOR.POS
DAQ channel: TTF2.FEL/BLFILTERS1/FILTER1/FW.MOTOR.POS
desc: Position of the BL filter wheel 1 - to correlate with the filter material please look here
units: degree

/FL1/Beamlines/BL/Filters/BL filter wheel/position filter 2
always saved (PBD)
DOOCS prop : TTF2.FEL/BLFILTERS2/FILTER2/FW.MOTOR.POS
DAQ channel: TTF2.FEL/BLFILTERS2/FILTER2/FW.MOTOR.POS
desc: Position of the BL filter wheel 2 - to correlate with the filter material please look here
units: degree

/FL1/Beamlines/PG/Filters/position filter 1
always saved (PBD)
DOOCS prop : = TTF2.FEL/BDAF1/BDA.F1/FW.MOTOR.POS=
DAQ channel: TTF2.FEL/BDAF1/BDA.F1/FW.MOTOR.POS
desc: Position of the PG filter wheel 1
units: degree

/FL1/Beamlines/PG/Filters/position filter 2
always saved (PBD)
DOOCS prop : TTF2.FEL/BDAF2/BDA.F2/FW.MOTOR.POS
DAQ channel: TTF2.FEL/BDAF2/BDA.F2/FW.MOTOR.POS
desc: Position of the PG filter wheel 2
units: degree

/FL1/Beamlines/PG/Filters/position filter 3
always saved (PBD)
DOOCS prop : TTF2.FEL/PGFILTERS/PGFILTERS/FW.MOTOR.POS
DAQ channel: TTF2.FEL/PGFILTERS/PGFILTERS/FW.MOTOR.POS
desc: Position of the PG filter wheel 3
units: degree



NOTE: Aperture positions in the beamline as well as the positions of the beam steering mirrors are also saved. for more Info contact your local contact

top


Photon Diagnostics SASE (GMD) / Spectrometer (FLASH1)

/FL1/Photon Diagnostic/GMD/Average energy/energy tunnel
always saved (PBD)
DOOCS prop : TTF2.DAQ/PHFLUX/OUT04/VAL
DAQ channel: PBD.PHFLUX/TUNNEL.ENPULSEIC
desc : calibrated average SASE Energy/pulse measured in the TUNNEL before the attenuator (ion current)
units : microJ

/FL1/Photon Diagnostic/GMD/Pulse resolved energy/energy tunnel
always saved (PBD)
DOOCS prop : TTF2.DAQ/PHFLUX/OUT34/VAL
DAQ channel: PBD.PHFLUX/TUNNEL.ENERGYPULSE.USER
desc :Energy per pulse Tunnel (from e-) - the values are set to "0" if there was no SASE beam in the FEL
units : a.u. (more or less µJ but need to be calibrated with the "Average energy" for good precision) see here for help

/FL1/Photon Diagnostic/GMD/Pulse resolved energy/energy tunnel (raw)
always saved (PBD)
DOOCS prop : TTF2.DAQ/PHFLUX/OUT14/VAL
DAQ channel: PBD.PHFLUX/TUNNEL.ENERGYPULSE.FF
desc :Energy per pulse Tunnel (from e-) - uncorrected values. There are also values saved if there was no beam ... just background noise
units : a.u. (more or less µJ but need to be calibrated with the "Average energy" for good precision) see here for help

/FL1/Photon Diagnostic/GMD/Average energy/energy BDA
always saved (PBD)
DOOCS prop : TTF2.DAQ/PHFLUX/OUT05/VAL
DAQ channel: PBD.PHFLUX/BDA.ENPULSEIC
desc : calibrated average SASE Energy/pulse measured in the BDA (in the experimental hall) after the attenuator (ion current)
units : microJ

/FL1/Photon Diagnostic/GMD/Pulse resolved energy/energy BDA
always saved (PBD)
DOOCS prop : TTF2.DAQ/PHFLUX/OUT35/VAL
DAQ channel: PBD.PHFLUX/BDA.ENERGYPULSE.USER
desc :Energy per pulse BDA (from e-) - the values are set to "0" if there was no SASE beam in the FEL
units : a.u. (more or less µJ but need to be calibrated with the "Average energy" for good precision) see here for help

/FL1/Photon Diagnostic/GMD/Pulse resolved energy/energy BDA (raw)
always saved (PBD)
DOOCS prop : TTF2.DAQ/PHFLUX/OUT15/VAL
DAQ channel: PBD.PHFLUX/BDA.ENERGYPULSE.FF
desc :Energy per pulse BDA (from e-) - uncorrected values. There are also values saved if there was no beam ... just background noise
units : a.u. (more or less µJ but need to be calibrated with the "Average energy" for good precision) see here for help

/FL1/Photon Diagnostic/GMD/Beam position/position BDA horizontal
always saved (PBD)
DOOCS prop : FLASH.FEL/XGM.POSMON/FL1.BDA/IX.POS
DAQ channel: FLASH.FEL/XGM.POSMON/FL1.BDA/IX.POS
desc :Beam position of the photon Beam determined by the GMD (BDA, x=horizontal)
units : mm

/FL1/Photon Diagnostic/GMD/Beam position/position BDA vertical
always saved (PBD)
DOOCS prop : FLASH.FEL/XGM.POSMON/FL1.BDA/IY.POS
DAQ channel: FLASH.FEL/XGM.POSMON/FL1.BDA/IY.POS
desc :Beam position of the photon Beam determined by the GMD (BDA, y=vertical)
units : mm

/FL1/Photon Diagnostic/GMD/Beam position/position tunnel horizontal
always saved (PBD)
DOOCS prop : FLASH.FEL/XGM.POSMON/FL1.TUNNEL/IX.POS
DAQ channel: FLASH.FEL/XGM.POSMON/FL1.TUNNEL/IX.POS
desc :Beam position of the photon Beam determined by the GMD (TUNNEL, x=horizontal)
units : mm

/FL1/Photon Diagnostic/GMD/Beam position/position tunnel vertical
always saved (PBD)
DOOCS prop : FLASH.FEL/XGM.POSMON/FL1.TUNNEL/IY.POS
DAQ channel: FLASH.FEL/XGM.POSMON/FL1.TUNNEL/IY.POS
desc :Beam position of the photon Beam determined by the GMD (TUNNEL, y=vertical)
units : mm

/FL1/Photon Diagnostic/Wavelength/Tunnelspectrometer/wavelength
_always saved (when Spectrum is measured !!) (PBD) _
DOOCS prop : TTF2.EXP/PHOTONWL.ML/WAVE_LENGTH/VAL.TD
DAQ channel: PBD.PHOTONWL.ML/WAVE_LENGTH
desc : XUV Spectrum measured with the "tunnel spectrometer"
units :

/FL1/Photon Diagnostic/Wavelength/Tunnelspectrometer/wavelength start value
_always saved (when Spectrum is measured !!) (PBD) _
DOOCS prop : TTF2.EXP/PBD.PHOTONWL.ML/BSTART/VAL
DAQ channel: TTF2.EXP/PBD.PHOTONWL.ML/BSTART/VAL
desc : start value (in nm) for the wavelength axis of the XUV Spectrum measured with the "tunnel spectrometer"
units : nm

/FL1/Photon Diagnostic/Wavelength/Tunnelspectrometer/wavelength increment
_always saved (when Spectrum is measured !!) (PBD) _
DOOCS prop : ==
DAQ channel: ==
desc : increment value (in nm) for each pixel for the wavelength axis of the XUV Spectrum measured with the "tunnel spectrometer"
units : nm

/FL1/Photon Diagnostic/Wavelength/PG2 spectrometer/photon energy
saved on DEMAND (PBD spectrometer stream)
DOOCS prop : ==
DAQ channel: PBD.PHOTONEN.ML/PHOTON_ENERGY
desc : XUV Spectrum in eV measured with the "PG2 spectrometer"
units :

/FL1/Photon Diagnostic/Wavelength/PG2 spectrometer/photon energy start value
saved on DEMAND (PBD spectrometer stream)
DOOCS prop : ==
DAQ channel: ==
desc : start value (in eV) for the wavelength axis of the XUV Spectrum measured with the "PG2 spectrometer"
units : eV

/FL1/Photon Diagnostic/Wavelength/PG2 spectrometer/photon energy increment
saved on DEMAND (PBD spectrometer stream)
DOOCS prop : ==
DAQ channel: ==
desc : increment value (in eV) for each pixel for the wavelength axis of the XUV Spectrum measured with the "PG spectrometer"
units : eV

/FL1/Photon Diagnostic/Wavelength/PG2 spectrometer/photon wavelength
saved on DEMAND (PBD spectrometer stream)
DOOCS prop : ==
DAQ channel: PHOTONEN.ML/PHOTON_WAVE_LEN
desc : XUV Spectrum in nm measured with the "PG2 spectrometer"
units :

/FL1/Photon Diagnostic/Wavelength/PG2 spectrometer/photon wavelength increment
saved on DEMAND (PBD spectrometer stream)
DOOCS prop : ==
DAQ channel: ==
desc : start value (in nm) for the wavelength axis of the XUV Spectrum measured with the "PG2 spectrometer"
units : nm

/FL1/Photon Diagnostic/Wavelength/PG2 spectrometer/photon wavelength start value
saved on DEMAND (PBD spectrometer stream)
DOOCS prop : ==
DAQ channel: ==
desc : increment value (in nm) for each pixel for the wavelength axis of the XUV Spectrum measured with the "PG spectrometer"
units : nm

top

Electron Beam properties (FLASH1)

bunch charge

/FL1/Electron Diagnostic/Bunch charge/after undulator
always saved (PBD)
DOOCS prop : FLASH.DIAG/TOROID.ML/12EXP/CHARGE.FLASH1
DAQ channel: FLASH.DIAG/TOROID/12EXP
desc: electron bunch charge (FLASH1)
units: nC


arrival time

/FL1/Electron Diagnostic/BAM/4DBC3/electron bunch arrival time (low charge)
always saved (PBD)
DOOCS prop : FLASH.SDIAG/BAM/4DBC3/LOW_CHARGE_ARRIVAL_TIME
DAQ channel: FLASH.SDIAG/BAM.DAQ/4DBC3.LOW_CHARGE_ARRIVAL_TIME
desc: Electron bunch arrival time measured with the BAM (more or less) before the undulator (pulse resolved data)
units: ps (bigger numbers indicate later arrivaltime of the electrons)
note: besides the arivaltime from FLASH1 there is also the FLASH2/3 electron arrival time saved. LINK to detailled infos from MSK (may only work inside DESY network and to a recent  talk about the working principle of the BAM

electron beam profile

/FL1/Electron Diagnostic/Electron bunch profile/TDS profile
always saved (PBD) - IF LOLA is ON and ACTIVATED in the PBD DAQ (talk to expert)
DOOCS prop : TTF2.DAQ/BEAM.PROF.ML/BEAM.PROF/OUT.PROF.CCCED
DAQ channel: PBD.BEAM.PROF.ML/DAQ.OUT.PROF.CCCED
desc: temporal profile of electron bunch, y axis in Ampers (FLASH1)
units: pixel

/FL1/Electron Diagnostic/Electron bunch profile/Expert stuff/TDS calibration constant
always saved (PBD) - IF LOLA is ON and ACTIVATED in the PBD DAQ (talk to expert)
DOOCS prop : TTF2.DAQ/BEAM.PROF.ML/BEAM.PROF/CALIB.CONST.T
DAQ channel: = PBD.BEAM.PROF.ML/CCT=
desc: TDS calibration constant for the x-axis of the profiles: fs per pixel
units: fs per pixel

/FL1/Electron Diagnostic/Electron bunch profile/TDS profile width rms
always saved (PBD) - IF LOLA is ON and ACTIVATED in the PBD DAQ (talk to expert)
DOOCS prop : TTF2.DAQ/BEAM.PROF.ML/BEAM.PROF/SOWS.W.CCTED
DAQ channel: PBD.BEAM.PROF.ML/PROFWIDTHCCTED
desc: rms pulse width of the measures TDS electron bunch profile
units: fs

electron bunch energy

/FL1/Electron Diagnostic/Electron energy/average electron energy
_always saved (PBD)
DOOCS prop : TTF2.DAQ/ENERGY.DOGLEG/E_INTRA_MEAN/VAL
DAQ channel: PBD.ENERGY.DOGLEG/E_MEAN
desc: electron bunch energy (average over the bunch train)
units: MeV

/FL1/Electron Diagnostic/Electron energy/pulse resolved energy
_always saved (PBD)
DOOCS prop : TTF2.DAQ/ENERGY.DOGLEG/E_SPECT/VAL.TD
DAQ channel: PBD.ENERGY.DOGLEG/E_SPECT
desc: electron bunch energy bunch resolved
units: MeV


/FL1/Electron Diagnostic/Electron energy/wavelength bunch train average
_always saved (PBD)
DOOCS prop : TTF2.DAQ/ENERGY.DOGLEG/LAMBDA_MEAN/VAL
DAQ channel: PBD.ENERGY.DOGLEG/LAMBDA_MEAN
desc: Wavelength calculated by the electron bunch energy (average over the bunch train) (FLASH1)
units: nm

top


Timing information, rep rate etc.  (FLASH1)

bunch repetition rate

/FL1/Timing/repetition rate
always saved (PBD)
DOOCS prop : FLASH.DIAG/TIMER/FLASHCPUTIME1.0/REP_RATE_KHZ.1
DAQ channel: TTF2.UTIL/LASER.CONTROL/GUN/PULSE_FREQ
desc: repetition rate of the bunches / pulses within the burst (FLASH1)
units: kHz

set number of pulses

/FL1/Timing/set number of bunches
always saved (PBD)
DOOCS prop : FLASH.DIAG/TOROID.ML/3GUN/NUMBEROFBUNCHES.FLASH1
DAQ channel: TTF2.UTIL/LASER.CONTROL/GUN/PULSE_NUM
desc: Number of pulses set at the gun (FLASH1)
units:

actual number of pulses

/FL1/Timing/actual number of bunches
always saved (PBD)
DOOCS prop : FLASH.DIAG/TOROID.ML/12EXP/NUMBEROFBUNCHES.FLASH1
DAQ channel: TTF2.DIAG/PBD.TOROID.ML/12EXP
desc: Number of bunches measured BEHIND the undulator. If pulses are used for diagnostic of the protection system of the accelerator limits the number of bunches to be accelerated this is the actual number that created XUV radiation.The number is calculated by the DAQ middle layer server, (FLASH1)
units:

actual pulse pattern recorded after the undulator

/FL1/Timing/Bunch pattern/pattern after undulator
always saved (PBD)
DOOCS prop : TTF2.DIAG/PBD.TOROID.ML/12EXP/CHARGE.TD
DAQ channel: TTF2.DIAG/PBD.TOROID.ML/12EXP
desc: The bunch pattern as function of time in a burst recorded by toroide diagnostic BEHIND the undulator. (FLASH1)
units:

Train ID

/Timing/train ID
always saved (PBD)
DOOCS prop : none
DAQ channel: none
desc: Each 10 Hz burst has its unique train ID. For the HDF5 data set the ID is the same for all parameters with the same index (note camera images may be shifted by 1 ID - talk to the experts !)
units:

Train time

/Timing/train time
desc:Local time as array of day, hour, minute, second, and centisecond. This data set is meant for visualization purposes only. For correlations use the train ID or the Unix time of the time stamp
units: d h min s cs

/Timing/time stamp
desc:first column: Local time in unix time. To get day, hour, minute, second you can use unix: e.g. date --date='@1553617729' or matlab, python etc
second column: microseconds
third column: Train ID of FLASH

top


Pump Probe Laser (FLASH1)

/FL1/Experiment/Pump probe laser/laser attenuation

always saved (PBD)
DOOCS prop : TTF2.FEL/PPDELAYCAL/PPDELAYCAL/ROT2.CURRENT
DAQ channel: TTF2.FEL/PPDELAYCAL/PPDELAYCAL/ROT2.CURRENT
desc: attenuation of the PPLaser (rotation of a waveplate)
units : 0 no transmission , 1: full transmission


/FL1/Experiment/Pump probe laser/laser delay
always saved (PBD)
DOOCS prop : TTF2.FEL/PPDELAYCAL/PPDELAYCAL/DLY1.CURRENT
DAQ channel: TTF2.FEL/PPDELAYCAL/PPDELAYCAL/DLY1.CURRENT
desc: delay of the Pump probe laser - measured by the read back position of the motor. only read out every secound ... better use the encoder
units : ps ( pos delay means IR comes later)


/FL1/Experiment/Pump probe laser/delay line IK220.0/ENC.DELAY
always saved (PBD)
DOOCS prop : TTF2.FEL/DELLINE.ENC/IK220.0/ENC.DELAY
DAQ channel: TTF2.FEL/DELLINE.ENC/IK220.0:ENC.DELAY
subsystem: DELLINE.ENC desc : delay of the Pump probe laser - measured by an encoder. The position is read out with 10Hz train synchronized and should be used to determine the actual laser delay (the motor position is only read out about every second
units : ps ( pos delay means IR comes later)


/FL1/Experiment/Pump probe laser/Synchronization/timing jitter RMS GECCO
always saved (PBD)
DOOCS prop : FLASH.SYNC/F1PPL.LASER_LOCK/28C.F1PPL1.CONTROLLER/ADV_CTRL_MANAGER.0.PID_INPUT_JITTER.2.RD
DAQ channel: FLASH.SYNC/F1PPL.LASER_LOCK/28C.F1PPL1.CONTROLLER/ADV_CTRL_MANAGER.0.PID_INPUT_JITTER.2.RD
desc: rms jitter of the GECCO TiSa Oscillator units: fs


/FL1/Experiment/Pump probe laser/streak camera delay time
always saved (PBD)
DOOCS prop : TTF2.FEL/TDOLFEL/TDOLFEL/STREAK.CAM.TIME
DOOCS prop : TTF2.FEL/TDOLFEL/TDOLFEL/STREAK.CAM.TIME
desc: delaytime between the optical laser and the FEL units: ps


top


User Data (FLASH1)

The data saved specifically for detectors at an experiment will show up in /Experiment/ there is a large number of options for cameras or monitoring pslow properties (motor positons etc) for user experiments. For details please ask your local contact.

NOTE: If parameters for an experiment are included on short notice the correct naming in the HDF5 may not be in time and the data will show up in /uncategorized/ with the DOOCS names

The most common and permanently installed device used by experiment are our ADCs:

GHz ADCs

ADC traces of the (SPDevices 412) GHZ ADCs available for the users . More information about the ADCs can be found here
saved on DEMAND in the user DAQ

The HDF5 names for the ADC traces are depending on the beamline :

PG Beamline:
/FL1/Experiment/PG/ADQ412 GHz ADC/CH00/TD
/FL1/Experiment/PG/ADQ412 GHz ADC/CH01/TD
/FL1/Experiment/PG/ADQ412 GHz ADC/CH02/TD
/FL1/Experiment/PG/ADQ412 GHz ADC/CH03/TD

BL Beamlines:
/FL1/Experiment/BL1/ADQ412 GHz ADC/CH00/TD
/FL1/Experiment/BL1/ADQ412 GHz ADC/CH01/TD
/FL1/Experiment/BL1/ADQ412 GHz ADC/CH02/TD
/FL1/Experiment/BL1/ADQ412 GHz ADC/CH03/TD

/FL1/Experiment/BL2/ADQ412 GHz ADC/CH00/TD
/FL1/Experiment/BL2/ADQ412 GHz ADC/CH01/TD

/FL1/Experiment/BL3/ADQ412 GHz ADC/CH02/TD
/FL1/Experiment/BL3/ADQ412 GHz ADC/CH03/TD

DOOCS prop : FLASH.FEL/ADC.ADQ.PG/EXP1.CH00/CH00.TD  or CH00.DAQ.TD
here the CH00.TD is the full ADC trace as it is sampled ( typically several 100.000 samples per pulse train) while the CH00.DAQ.TD trace only has the number of samples which are sent to the DAQ OR if grouping is activated the CH00.DAQ.TD conatins only the grouped spectra. To read the ADC trace with an online analysis program the CH00.DAQ.TD is used preferablly.
DAQ channel: FLASH.FEL/ADC.ADQ.PG/EXP1.CH00

In addition there are also additional parameters saved like:

MHz ADCs

similar to the GHz ADCs the MHz ADCs are saved with HDF5 names like:
/FL1/Experiment/BL1/SIS8300 100MHz ADC/CH2/TD
DOOCS prop : FLASH.FEL/ADC.SIS.BL1/EXP1.CH02/CH00.TD
DAQ channel: : FLASH.FEL/ADC.SIS.BL1/EXP1.CH02

In addition there are also additional parameters saved like:

top




FLASH2

There is analog to FLASH1 a permanently running "PhotonDagnostic DAQ FLASH2" (PBD2) and 2 User DAQs

Beamline info (FLASH2)

/FL2/Beamlines/Attenuator/pressure  (not yet available)
always saved (PBD2)
DOOCS prop : FLASH.FEL/ATT.GAS_DOSING/FL2.HALL/PRESSURE
DAQ channel:  FLASH.FEL/ATT.GAS_DOSING/FL2.HALL/PRESSURE
desc: set pressure in the gas attenuator
units: mbar

/FL2/Beamlines/FL20/Shutter/open
always saved (PBD2)
DOOCS prop : FLASH.FEL/ADC.SIS.FL2FS/FL20.SHUTTER/CH00.TD
DAQ channel: FLASH.FEL/ADC.SIS.FL2FS/FL20.SHUTTER
desc: BL Beamline Fast shutter state: 1 is open, 0 is closed ( for technical reasons there are 100 vales of this state saved ...)
units: none


/FL2/Beamlines/Filter wheel/position wheel 1
always saved (PBD2)
DOOCS prop : FLASH.FEL/FL20H.PH.MOTOR/MOTOR1.MOT3/FPOS
DAQ channel: FLASH.FEL/FL20H.PH.MOTOR/MOTOR1.MOT3/FPOS
desc: Position of the BL filter wheel 1 - to correlate with the filter material please look here
units: degree

/FL2/Beamlines/Filter wheel/position wheel 2
always saved (PBD2)
DOOCS prop : FLASH.FEL/FL20H.PH.MOTOR/MOTOR2.MOT3/FPOS
DAQ channel: FLASH.FEL/FL20H.PH.MOTOR/MOTOR2.MOT3/FPOS
desc: Position of the BL filter wheel 2 - to correlate with the filter material please look here
units: degree


NOTE: Aperture positions in the beamline as well as the positions of the beam steering mirrors are also saved. for more Info contact your local contact

top



Photon Diagnostics SASE (XGMD - FLASH2)

/FL2/Photon Diagnostic/GMD/Average energy/energy tunnel
always saved (PBD2)
DOOCS prop : FLASH.FEL/XGM.PHOTONFLUX/FL2.TUNNEL/PHOTONFLUX.UJ
DAQ channel: FLASH.FEL/XGM.PHOTONFLUX/FL2.TUNNEL/PHOTONFLUX.UJ
desc : calibrated average ( ~ 20 sec averaging time ) SASE Energy/pulse measured in the TUNNEL before the attenuator (ion current)
units : microJ


average Sigma    to be included in

/FL2/Photon Diagnostic/GMD/Average energy/energy tunnel uncertainty
always saved (PBD2)
DOOCS prop : FLASH.FEL/XGM.PHOTONFLUX/FL2.TUNNEL/PHOTONFLUX.UJ.SIGMA
DAQ channel: FLASH.FEL/XGM.PHOTONFLUX/FL2.TUNNEL/PHOTONFLUX.UJ.SIGMA
desc :  This parameter gives an indication of the error of the measurement of the average pulse energy. This takes signal to noise,  detector resolution, uncertainties in crossection etc into account. (it is NOT the measurement of the statistical fluctuation of the SASE pulses)
units : microJ



/FL2/Photon Diagnostic/GMD/Pulse resolved energy/energy tunnel
always saved (PBD2)
DOOCS prop : FLASH.FEL/XGM.INTENSITY/FL2.TUNNEL/INTENSITY.TD
DAQ channel: FLASH.FEL/XGM.INTENSITY/FL2.TUNNEL/INTENSITY.TD
desc : Energy per pulse measured in the Tunnel  (in fromt of the gas attenuator and the apertures in the Hall)
units : a.u. (more or less µJ but need to be calibrated with the "Average energy" for good precision) see here for help



/FL2/Photon Diagnostic/GMD/Pulse resolved energy/energy tunnel uncertainty (sigma)
always saved (PBD2)
DOOCS prop : FLASH.FEL/XGM.INTENSITY/FL2.TUNNEL/INTENSITY.SIGMA.TD
DAQ channel: FLASH.FEL/XGM.INTENSITY/FL2.TUNNEL:4
desc :This parameter gives an indication of the error of the measurement of the pulse energy. This takes signal to noise,  detector resolution, uncertainties in crossection etc into account. (it is NOT the measurement of the statistical fluctuation of the SASE pulses)
units : a.u. (more or less µJ - related to the value of the pulse energy )


All values for the GMD are also available for the HALL GMD which is located in the experimental hall down stream the gas attenuator. If the attenuator is on the ratio between Hall and Tunnel signal shows the attenuation. BUT NOTE that the filter unit and the Aperture 4 are downstream the GMD. So if filters and aperture are used this influence is NOT measured by the GMD hall !


Besides  pulse energy the GMD also provides information about the beam position


/FL2/Photon Diagnostic/GMD/Average Beam position/position tunnel horizontal
always saved (PBD2)
DOOCS prop : FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IX.POS
DAQ channel: FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IX.POS
desc : the Average ( ~ 20 sec averaging time ) Beam position of the photon Beam determined by the GMD (tunnel, x=horizontal)
units : mm


/FL2/Photon Diagnostic/GMD/Average Beam position/position tunnel vertical
always saved (PBD2)
DOOCS prop : FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IY.POS
DAQ channel: FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IY.POS
desc : the Average ( ~ 20 sec averaging time ) Beam position of the photon Beam determined by the GMD (tunnel, x=horizontal)
units : mm


/FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position tunnel x
always saved (PBD2)
DOOCS prop : FLASH.FEL/XGM.BPM/FL2.HALL/X.TD
DAQ channel: FLASH.FEL/XGM.BPM/FL2.HALL:2
desc:
Besides the well calibrated averaged beam position information there is also the option to measure the beam position on a single bunch level. HOWEVER this methide needs a perfectly adjusted signal level (talk to your local contact !!) and also then the signal to noise is rather small and one needs some averaging ... BUT with this option one can determine if there was a spatial slope on a burst (say forst bunches were lower than the last ones or so ...)
units : mm    

(x=horizontal, y = vertial)

again the same parameter set is available for the HALL GMD



Photon Diagnostics OPIS  (FLASH2)

for more info see:  OPIS

(The OPIS hall is not installed yet ...)


/FL2/Photon Diagnostic/Wavelength/OPIS tunnel/Processed/mean photon energy
 saved opon request (PBD2)
DOOCS prop : FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL042
DAQ channel: FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL042
desc : mean photon energy ( ~ 1 sec averaging time ) measured in the TUNNEL for a specific bunch out of the bunch train (via photoelectron spectroscopy)
units : eV


/FL2/Photon Diagnostic/Wavelength/OPIS tunnel/Processed/mean wavelength
 saved opon request (PBD2)
DOOCS prop : FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL040
DAQ channel: FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL040
desc : meanwavelength ( ~ 1 sec averaging time ) measured in the TUNNEL for a specific bunch out of the bunch train (via photoelectron spectroscopy)
units : nm


/FL2/Photon Diagnostic/Wavelength/OPIS tunnel/Processed/number of analyzed bunch        (in older version this can be found in OPIS tunnel/Expert stuff/General operation parameters/)
 saved opon request (PBD2)
DOOCS prop : FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL060
DAQ channel: FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL060
desc : The bunch number of the bunch used for the wavelength calculation
units :


If Opis is running typically on the the averaged data is saved. For several experiments it may make sense to save the information for each single bunch. This is up to now done by savng the compleate ADC trace of the TOF setup. This is a huge amount of data and needs processing. This has to be performed after the beamtime in close contact to Markus Braune ( respobsible for OPIS)


In case OPIS was not operating there is still informaton about the set wavelength for the undulators (see below) which may differ by up to 5 % from the actual wavelength due to different settings in the FEL ...



Electron Beam properties (FLASH2)

bunch charge

/FL2/Electron Diagnostic/Bunch charge/after undulator
always saved (PBD2)
DOOCS prop : FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN/CHARGE.FLASH2
DAQ channel: FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN/CHARGE.FLASH2
desc: electron bunch charge FLASH2 (average value for each bunchtrain).
units: nC


undulator settings

/FL2/Electron Diagnostic/Undulator setting/set wavelength
always saved (PBD2)
DOOCS prop : TTF2.FEEDBACK/FL2.WAVELENGTHCONTROL/FLASH2/WAVELENGTH
DAQ channel:  TTF2.FEEDBACK/FL2.WAVELENGTHCONTROL/FLASH2/WAVELENGTH
desc: Set value for the anticipated wavelength . This parameter is used to set the undulator gap. It may however deviate from the actual wavelength by several % ...
units: nm

/FL2/Electron Diagnostic/Undulator setting/SASE14 gap
always saved (PBD2)
DOOCS prop : FLASH.UTIL/FL2.UND.MOTOR/FL2SASE14/GAP
DAQ channel:  FLASH.UTIL/FL2.UND.MOTOR/FL2SASE14/GAP
desc: gap value of the undulators. This can be used to follow up how many undulators were closed and if there was a taper
units: mm

The gap values are saved for all 12 undulators (Nr 3 to 14). Undulator 14 is the one closest to the experimental hall.


arrival time

/FL1/Electron Diagnostic/BAM/4DBC3/electron bunch arrival time (low charge)
always saved (PBD2)
DOOCS prop : FLASH.SDIAG/BAM/4DBC3/LOW_CHARGE_ARRIVAL_TIME
DAQ channel: FLASH.SDIAG/BAM.DAQ/4DBC3.LOW_CHARGE_ARRIVAL_TIME
desc: Electron bunch arrival time measured with the BAM (more or less) before the undulator (pulse resolved data)
units: ps (bigger numbers indicate later arrivaltime of the electrons)

The BAM measures the arrivaltime of FLASH 1 and FLASH2 in the same data set (thus also sorted in at /FL1/ !). The first values are for FLASH1 bunches.
After a gap of about 70 micros ( 70 colums)  with  as entry for the switching between FLASH 1 and 2 the values for the electrons used in FLASH2 start.  The start time of FLASH2 is also recorded in the DAQ. FLASH1 start time is for historic reasons 700. thus if e.g. the start time of FLASH2 ( property name see below) is 1200 it means that FLASH starts at column 500 (1200-700) ...

Docu for BAM:  LINK to detailled infos from MSK (may only work inside DESY network and to a recent talk about the working principle of the BAM


top


Timing information, rep rate etc.  (FLASH2)

start time of FLASH2

/FL2/Timing/start time flash2
always saved (PBD2)
DOOCS prop : FLASH.DIAG/TIMER/FLASHCPUTIME1.0/BUNCH_POSITION.2
DAQ channel: FLASH.DIAG/TIMER/FLASHCPUTIME1.0/BUNCH_POSITION.2
desc: The max 600 µs acceleration time of FLASH is devided between FLASH1 and FLASH2. This 600 µs window starts with FLASH1 (up to now)  at a time"label" of 700 µs (for historic reasons). Thus the first bunch of FLASH 1 comes at "700" and the last possibel bunch comes at 1300 (700+600). After FLASH1 train is over ther is a about 70µs switching time with no bunches. Then comes the first FLASH2 bunch.  Thus if e.g. the start time of FLASH2 is 1200 it means that FLASH2 starts at column 500 (1200-700)  in the HDF5 files. (However for yet unknown reasons this may change by 2-3 colums ...)
units: µs

bunch repetition rate

/FL2/Timing/repetition rate
always saved (PBD2)
DOOCS prop : FLASH.DIAG/TIMER/FLASHCPUTIME1.0/REP_RATE_KHZ.2
DAQ channel: FLASH.DIAG/TIMER/FLASHCPUTIME1.0/REP_RATE_KHZ.2
desc: repetition rate of the bunches / pulses within the burst (FLASH2)
units: kHz

actual number of pulses

/FL1/Timing/actual number of bunches
always saved (PBD2)
DOOCS prop : FLASH.DIAG/PBD2.TOROID.ML/3GUN/NUMBEROFBUNCHES.FLASH2
DAQ channel: FLASH.DIAG/PBD2.TOROID.ML/3GUN/NUMBEROFBUNCHES.FLASH2
desc: Number of bunches measured BEHIND the undulator. If pulses are used for diagnostic of the protection system of the accelerator limits the number of bunches to be accelerated this is the actual number that created XUV radiation.The number is calculated by the DAQ middle layer server, (FLASH2)
units:

actual pulse pattern recorded after the undulator

/FL1/Timing/Bunch pattern/pattern after undulator
always saved (PBD2)
DOOCS prop : FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN.PULSEPATTERN
DAQ channel: FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN.PULSEPATTERN
desc: The bunch pattern as function of time in a burst recorded by toroide diagnostic BEHIND the undulator. (FLASH2)
units:

Train ID

/Timing/train ID
always saved (PBD2)
DOOCS prop : none
DAQ channel: none
desc: Each 10 Hz burst has its unique train ID. For the HDF5 dataset the ID is the same for all parameters with the same index (note camera images may be shifted by 1 ID - talk to the experts !)
units:

Train time

always saved (PBD2)
/Timing/train time
desc:Local time as array of day, hour, minute, second, and centisecond. This dataset is meant for visualisation purposes only. For correlations use the train ID or the Unix time of the time stamp
units: d h min s cs

/Timing/time stamp

always saved (PBD2)
desc: first column: Local time in unix time. To get day, hour, minute, second you can use unix: e.g. date --date='@1553617729' or matlab, python etc
second column: microseconds
third column: Train ID of FLASH

top


User Data (FLASH2)

The data saved specifically for detectors at an experiment will show up in /Experiment/ there is a large number of options for cameras or monitoring pslow properties (motor positons etc) for user experiments. For details please ask your local contact.

NOTE: If parameters for an experiment are included on short notice the correct naming in the HDF5 may not be in time and the data will show up in /uncategorized/ with the DOOCS names

The most common and permanently installed device used by experiment are our ADCs:

GHz ADCs

ADC traces of the (SPDevices 412) GHZ ADCs available for the users . More information about the ADCs can be found here
saved on DEMAND in the user DAQ

Up to now there are 4 channels available at FL24


/FL2/Experiment/MTCA-EXP1/ADQ412 GHz ADC/CH00/TD
/FL2/Experiment/MTCA-EXP1/ADQ412 GHz ADC/CH01/TD
/FL2/Experiment/MTCA-EXP1/ADQ412 GHz ADC/CH02/TD
/FL2/Experiment/MTCA-EXP1/ADQ412 GHz ADC/CH03/TD


DOOCS prop : FLASH.FEL/ADC.ADQ.FL2EXP1/FL2EXP1.CH00/CH00.TD  or CH00.DAQ.TD
here the CH00.TD is the full ADC trace as it is sampled ( typically several 100.000 samples per pulse train) while the CH00.DAQ.TD trace only has the number of samples which are sent to the DAQ OR if grouping is activated the CH00.DAQ.TD conatins only the grouped spectra. To read the ADC trace with an online analysis program the CH00.DAQ.TD is used preferablly.
DAQ channel: FLASH.FEL/ADC.ADQ.FL2EXP1/FL2EXP1.CH00

In addition there are also additional parameters saved like:

MHz ADCs

similar to the GHz ADCs the MHz ADCs are saved with HDF5 names like:
/FL2/Experiment/MTCA-EXP1/SIS8300 100MHz ADC/CH2/TD
DOOCS prop : FLASH.FEL/ADC.SIS.FL2EXP1/FL2EXP1.CH02/CH00.TD
DAQ channel: : FLASH.FEL/ADC.SIS.FL2EXP1/FL2EXP1.CH02

In addition there are also additional parameters saved like:

top



Pump Probe Laser (FLASH2)

There may be more information available from the "Laser DAQ". laese contact your Laser Local Contact.

/FL2/Experiment/Pump probe laser/FL24/attenuator position
always saved (PBD2)
DOOCS prop : FLASH.FEL/FLAPP2BEAMLINES/MOTOR1.FL24/FPOS
DAQ channel: FLASH.FEL/FLAPP2BEAMLINES/MOTOR1.FL24/FPOS
desc: attenuation of the PPLaser in the FL24 hutch (rotation of a waveplate)
units : deg.


/FL2/Experiment/Pump probe laser/FL24/polarization position
always saved (PBD2)
DOOCS prop : FLASH.FEL/FLAPP2BEAMLINES/MOTOR2.FL24/FPOS
DAQ channel: FLASH.FEL/FLAPP2BEAMLINES/MOTOR2.FL24/FPOS
desc: attenuation of the PPLaser in the FL24 hutch (rotation of a waveplate)
units : deg.


/FL1/Experiment/Pump probe laser/laser delay readback
always saved (PBD2)
DOOCS prop : FLASH.SYNC/LASER.LOCK.EXP/FLASH2.PPL1.OSC1/FMC0.MD22.0.POSITION.RD
DAQ channel: FLASH.SYNC/LASER.LOCK.EXP/FLASH2.PPL1.OSC1/FMC0.MD22.0.POSITION.RD
desc: delay of the Pump probe laser - measured by the read back position of the motor. There is also the set value available ( upto now these values are only updating every 1-2 seconds. There is no fast encoder property as on FLASH1 available)
units : ps )


/FL1/Experiment/Pump probe laser/Synchronization/timing jitter RMS
always saved (PBD)
DOOCS prop : FLASH.SYNC/LASER.LOCK.EXP/FLASH2.PPL1.OSC1/CURRENT_INPUT_JITTER.RD
DAQ channel: FLASH.SYNC/LASER.LOCK.EXP/FLASH2.PPL1.OSC1/CURRENT_INPUT_JITTER.RD
desc: rms jitter of the fs-Oscillator
units: fs

top


"/uncategorized/"

 If parameters for an experiment are included on short notice the correct naming in the HDF5 may not be in time and the data will show up in /uncategorized/ with their DOOCS names


HDF5 structure revisions

Starting with Beamblock 4, August 2018, the hierarchy of the HDF group names have been adapted to reflect the new situation at FLASH. FLASH2 is operating for users quite some time now. Therefore, both accelerators appear equally in their respective HDF groups, namely "/FL1" and "/FL2". The root group of proper, by run organised HDF files have an attribute called "version". This version attribute has changed from "0.2.x" to "0.3.x". The changes in detail:



earlier HDF path (vers. 0.2)is now (vers. 0.3)
/Photon Diagnostic/GMD/Beam position/position BDA x/FL1/Photon Diagnostic/GMD/Beam position/position BDA horizontal
/Photon Diagnostic/GMD/Beam position/position BDA y/FL1/Photon Diagnostic/GMD/Beam position/position BDA vertical
/Photon Diagnostic/GMD/Beam position/position tunnel x/FL1/Photon Diagnostic/GMD/Beam position/position tunnel horizontal
/Photon Diagnostic/GMD/Beam position/position tunnel y/FL1/Photon Diagnostic/GMD/Beam position/position tunnel vertical
/Experiment/Pump probe laser/BPM/position x/FL1/Experiment/Pump probe laser/BPM/position horizontal
/Experiment/Pump probe laser/BPM/position y/FL1/Experiment/Pump probe laser/BPM/position vertical
/FL2/Photon Diagnostic/GMD/Beam position/Average/position hall horizontal/FL2/Photon Diagnostic/GMD/Average beam position/position hall horizontal
/FL2/Photon Diagnostic/GMD/Beam position/Average/position hall vertical/FL2/Photon Diagnostic/GMD/Average beam position/position hall vertical
/FL2/Photon Diagnostic/GMD/Beam position/Average/position tunnel horizontal/FL2/Photon Diagnostic/GMD/Average beam position/position tunnel horizontal
/FL2/Photon Diagnostic/GMD/Beam position/Average/position tunnel vertical/FL2/Photon Diagnostic/GMD/Average beam position/position tunnel vertical
/FL2/Photon Diagnostic/GMD/Average energy/hall/FL2/Photon Diagnostic/GMD/Average energy/energy hall
/FL2/Photon Diagnostic/GMD/Average energy/hall (raw)/FL2/Photon Diagnostic/GMD/Average energy/energy hall (raw)
/FL2/Photon Diagnostic/GMD/Average energy/tunnel/FL2/Photon Diagnostic/GMD/Average energy/energy tunnel
/FL2/Photon Diagnostic/GMD/Average energy/tunnel (raw)/FL2/Photon Diagnostic/GMD/Average energy/energy tunnel (raw)
/FL2/Photon Diagnostic/GMD/Beam position/Pulse resolved/hall x/FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position hall horizontal
/FL2/Photon Diagnostic/GMD/Beam position/Pulse resolved/hall y/FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position hall vertical
/FL2/Photon Diagnostic/GMD/Beam position/Pulse resolved/tunnel x/FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position tunnel horizontal
/FL2/Photon Diagnostic/GMD/Beam position/Pulse resolved/tunnel y/FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position tunnel vertical


top


Example code showing how to access HDF5 files


Samples how to read HDF5 with Matlab

The examples apply to HDF files with HDF tree version before vers. 0.3.0.

%% read in the needed data p=path; path(p,'D:\mess-daten\DAQ-data\hdf5\Gotthard') % add the actual folder to the path hdf5file='FLASH1_EXP-2016-03-16T1420.h5'; % data with Gotthard and VLS

% h5disp(hdf5file,'/','min') % to get an idea what is in the file % h5info(hdf5file,'/Experiment/Gotthard1/BL.0') % get info about the individual channel

% read a Number per 10 Hz pulse train:

FEL_Wavelength_energy_server=h5read(hdf5file,'/Photon Diagnostic/Wavelength/Calculated by energy/wavelength' );

% read in a 1D array (spectrum) %GMD data GMD_Spectrum=h5read(hdf5file,'/Photon Diagnostic/GMD/Pulse resolved energy/energy BDA');

% This reads in all the data . One can also limit the amount of data read to a subset of the data stored in the file. e.g. for image Data (Gotthard)


Start_event= 500 ;   % define the first 10 Hz event
 Number_of_events = 20; % how many 10 Hz events to load

% read only part of the data:

Gotthard_data=h5read(hdf5file,'/Experiment/Gotthard1/BL.0',[2   650 Start_event],[50 85 Number_of_events]);

% start stop increment "manual" for 2 D data : [start bunch number in Gotthard data start pixelin spectrum start sample in 10 Hz trains], % [number of bunches in the Gotthard data number of points in the spectrum number of spectra ]

VLS_Spectrum=h5read(hdf5file,'/Photon Diagnostic/Wavelength/VLS online spectrometer/PCO.ROI.X',[400 Start_event],[200 Number_of_events] );
 

% start stop increment "manual" for 1D data : [start sample in the spectrum start sample in 10 Hz trains],[number of points in the spectrum number of spectra ]

%GMD data

GMD_Spectrum=h5read(hdf5file,'/Photon Diagnostic/GMD/Pulse resolved energy/energy BDA',[1 Start_event],[40 Number_of_events] );

top

How to read HDF5 with Python via FLASHH5

With FlashH5 we provide h5py based examples to access and evaluate FLASH's HDF5 files.


HDF5 and DOOCS

Here is an outdated list with the available properties that are always saved (PBD) for FLASH1 as HDF5 names and the corresponding DOOCS names

top