The FLASH HDF5 structure
Contents
- General information about HDF5
- FLASH HDF5 structure
- Most popular FLASH parameters and their names in HDF5
- Example code showing how to access HDF5 files
- HDF5 and DOOCS
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
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:
- Electron Diagnostic
- Photon Diagnostics
- Beamlines
- Experiment
- Timing
A detailled description of (most) channels can be found in the lower part of the hdf5 viewer:
Most popular FLASH parameters and their names in HDF5
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
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
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
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 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
/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
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
Pump Probe Laser (FLASH1)
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
User Data (FLASH1)
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:
- sample frequency (in MHz)
- error (state)
- offset
|
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
FLASH2
There is analog to FLASH1 a permanently running "PhotonDagnostic DAQ FLASH2" (PBD2) and 2 User DAQs
Beamline info (FLASH2)
(not yet available)/FL2/Beamlines/Attenuator/pressure
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
always saved (PBD2)
here
/FL2/Beamlines/Filter wheel/position wheel 2 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 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
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
always saved (PBD2)
/FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position tunnel x DOOCS prop : FLASH.FEL/XGM.BPM/FL2.HALL/X.TDDAQ 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
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)
DAQ name | HDF5 name |
---|---|
FLASH.UTIL/FL2.UND.MOTOR/FL2SASE3/GAP | /FL2/Electron Diagnostic/Undulator setting/SASE03 gap |
FLASH.UTIL/FL2.UND.MOTOR/FL2SASE14/GAP | /FL2/Electron Diagnostic/Undulator setting/SASE14 gap |
TTF2.FEEDBACK/FL2.WAVELENGTHCONTROL/FLASH2/WAVELENGTH | /FL2/Electron Diagnostic/Undulator setting/set wavelength |
FLASH.FEL/XGM.PHOTONFLUX/FL2.HALL/PHOTONFLUX.UJ | /FL2/Photon Diagnostic/GMD/Average energy/hall |
FLASH.FEL/XGM.PHOTONFLUX/FL2.HALL/PHOTONFLUX | /FL2/Photon Diagnostic/GMD/Average energy/hall (raw) |
FLASH.FEL/XGM.PHOTONFLUX/FL2.TUNNEL/PHOTONFLUX.UJ | /FL2/Photon Diagnostic/GMD/Average energy/tunnel |
FLASH.FEL/XGM.PHOTONFLUX/FL2.TUNNEL/PHOTONFLUX | /FL2/Photon Diagnostic/GMD/Average energy/tunnel (raw) |
FLASH.FEL/XGM.POSMON/FL2.HALL/IX.POS | /FL2/Photon Diagnostic/GMD/Average beam position/position hall horizontal |
FLASH.FEL/XGM.POSMON/FL2.HALL/IY.POS | /FL2/Photon Diagnostic/GMD/Average beam position/position hall vertical |
FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IX.POS | /FL2/Photon Diagnostic/GMD/Average beam position/position tunnel horizontal |
FLASH.FEL/XGM.POSMON/FL2.TUNNEL/IY.POS | /FL2/Photon Diagnostic/GMD/Average beam position/position tunnel vertical |
FLASH.FEL/XGM.BPM/FL2.HALL:0 | /FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position hall horizontal |
FLASH.FEL/XGM.BPM/FL2.HALL:1 | /FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position hall vertical |
FLASH.FEL/XGM.BPM/FL2.TUNNEL:0 | /FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position tunnel horizontal |
FLASH.FEL/XGM.BPM/FL2.TUNNEL:1 | /FL2/Photon Diagnostic/GMD/Pulse resolved beam position/position tunnel vertical |
FLASH.FEL/XGM.INTENSITY/FL2.TUNNEL:1 | /FL2/Photon Diagnostic/GMD/Pulse resolved energy/energy aux tunnel |
FLASH.FEL/XGM.INTENSITY/FL2.HALL | /FL2/Photon Diagnostic/GMD/Pulse resolved energy/energy hall |
FLASH.FEL/XGM.INTENSITY/FL2.HALL:0 | /FL2/Photon Diagnostic/GMD/Pulse resolved energy/energy hall |
FLASH.FEL/XGM.INTENSITY/FL2.TUNNEL | /FL2/Photon Diagnostic/GMD/Pulse resolved energy/energy tunnel |
FLASH.FEL/XGM.INTENSITY/FL2.TUNNEL:0 | /FL2/Photon Diagnostic/GMD/Pulse resolved energy/energy tunnel |
FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL042 | /FL2/Photon Diagnostic/Wavelength/OPIS tunnel/Processed/mean phtoton energy |
FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL040 | /FL2/Photon Diagnostic/Wavelength/OPIS tunnel/Processed/mean wavelengt |
FLASH.FEL/ADC.ADQ/OPIS1.CH02 | /FL2/Photon Diagnostic/Wavelength/OPIS tunnel/Raw data/CH02 |
FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN/CHARGE.FLASH2 | /FL2/Electron Diagnostic/Bunch charge/after undulator |
FLASH.DIAG/PBD2.TOROID.ML/3GUN/CHARGE.FLASH2 | /FL2/Electron Diagnostic/Bunch charge/at gun |
FLASH.FEL/FL20T.PH.MOTOR/MOTOR1.MOT1/FPOS | /FL2/Beamlines/Tunnel Apertures/position aperture1 horizontal |
FLASH.FEL/FL20T.PH.MOTOR/MOTOR2.MOT1/FPOS | /FL2/Beamlines/Tunnel Apertures/position aperture1 vertical |
FLASH.FEL/ADC.SIS.FL2FS/FL20.SHUTTER | /FL2/Beamlines/FL20/Shutter/channel 0 |
FLASH.FEL/ADC.ADQ.FL2EXP1/FL2EXP1.CH00 | /FL2/Experiment/MTCA-EXP1/ADQ412 GHz ADC/CH00/TD |
FLASH.FEL/ADC.SIS.FL2EXP1/FL2EXP1.CH00 | /FL2/Experiment/MTCA-EXP1/SIS8300 100MHz ADC/CH0/TD |
FLASH.SYNC/LASER.LOCK.EXP/FLASH2.PPL1.OSC1/CURRENT_INPUT_JITTER.RD | /FL2/Experiment/Pump probe laser/Synchronization/timing jitter RMS |
FLASH.SYNC/LASER.LOCK.EXP/FLASH2.PPL1.OSC1/LOCK_STATUS.VALUE.RD | /FL2/Experiment/Pump probe laser/Synchronization/timing jitter RMS GECCO |
FLASH.SYNC/LASER.LOCK.EXP/FLASH2.PPL1.OSC1/FMC0.MD22.0.POSITION.RD | /FL2/Experiment/Pump probe laser/laser delay readback |
FLASH.SYNC/LASER.LOCK.EXP/FLASH2.PPL1.OSC1/FMC0.MD22.0.POSITION_SET.WR | /FL2/Experiment/Pump probe laser/laser delay set value |
FLASH.FEL/FLAPP2BEAMLINES/MOTOR1.FL24/FPOS | /FL2/Experiment/Pump probe laser/FL24/attenuator position |
FLASH.FEL/FLAPP2BEAMLINES/MOTOR2.FL24/POS | /FL2/Experiment/Pump probe laser/FL24/polarization position |
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:
- All FLASH1 related HDF groups moved to group "/FL1", i.e. a new prefix "/FL1" is added to their HDF path.
- The ambigious term "pulse" has been replaced by "train" to refer to "pulse train". Most notably, the dataset "/Timing/pulse ID" has changed to "/Timing/train ID".
- A number of inconsistent names have been streamlined. The relevant changes are listed in the following table.
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 |
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] );
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
HDF5 names and the corresponding DOOCS names