Changes for page The FLASH HDF5 structure

Last modified by sndueste on 2025/02/06 10:55

From version 46.1
edited by sndueste
on 2021/02/10 10:13
Change comment: There is no comment for this version
To version 58.1
edited by sndueste
on 2022/09/07 17:20
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -19,6 +19,12 @@
19 19  {{code language="none"}}> module load xray{{/code}}
20 20  {{code language="none"}}> hdfview{{/code}}
21 21  
22 +or you can use
23 +
24 +{{code language="none"}}> silx view{{/code}}
25 +
26 +\\
27 +
22 22  [[Contents>>doc:||anchor="Contents"]]
23 23  
24 24  == The FLASH HDF5 format ==
... ... @@ -32,7 +32,7 @@
32 32  \\
33 33  
34 34  {{expand title="Discontinued HDF formats"}}
35 -== Comparison to FLASH's deprecated HDF formats ==
41 +=== Comparison to FLASH's deprecated HDF formats ===
36 36  
37 37  Before 2021, FLASH provided two different HDF formats formally known as //near-online// and //offline// HDF files.
38 38  
... ... @@ -97,12 +97,12 @@
97 97  
98 98  {{layout-section ac:type="single"}}
99 99  {{layout-cell}}
100 -{{info title="Sample scripts in python"}}
106 +{{info}}
101 101  === Reference implementation (Python) ===
102 102  
103 -[[~[~[image:attach:binder_badge.png~|~|thumbnail="true" width="120"~]~]>>url:https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.desy.de%2Fchristopher.passow%2Fflash-daq-hdf/master||shape="rect"]]
109 +(imperative)  (% class="Object" %)[[https:~~/~~/gitlab.desy.de/christopher.passow/flash-daq-hdf>>url:https://gitlab.desy.de/christopher.passow/flash-daq-hdf||shape="rect"]]
104 104  
105 -(% class="Object" %)[[https:~~/~~/gitlab.desy.de/christopher.passow/flash-daq-hdf>>url:https://gitlab.desy.de/christopher.passow/flash-daq-hdf||shape="rect"]]
111 +(% class="Object" %)(object oriented) [[https:~~/~~/gitlab.desy.de/christopher.passow/fdh-builder>>url:https://gitlab.desy.de/christopher.passow/fdh-builder.git||shape="rect"]]
106 106  {{/info}}
107 107  {{/layout-cell}}
108 108  {{/layout-section}}
... ... @@ -200,8 +200,7 @@
200 200  
201 201  ==== Photon Diagnostics SASE ([[GMD>>url:http://photon-science.desy.de/facilities/flash/photon_diagnostics/gmd_intensity_and_position/index_eng.html||shape="rect"]]) ====
202 202  
203 -\\
204 -
209 +{{expand title="Discontinued GMD format (used until 2021)"}}
205 205  (% style="color: rgb(0,0,0);" %)**Discontinued GMD data recording / evaluation  (VME + PhotonFlux ML server)**
206 206  
207 207  {{code language="none"}}/FL1/Photon Diagnostic/GMD/Average energy/energy tunnel{{/code}}
... ... @@ -249,10 +249,11 @@
249 249  DAQ channel: {{code language="none"}}PBD.PHFLUX/BDA.ENERGYPULSE.FF{{/code}}
250 250  desc :Energy per pulse BDA (from e-) - uncorrected values. There are also values saved if there was no beam ... just background noise
251 251  units : a.u. (more or less µJ but need to be calibrated with the "Average energy" for good precision)** [[see here for help>>doc:FLASHUSER.jddd-linked help pages.Calibrating the pulse resolved (electron) data from GMD.WebHome]]**
257 +{{/expand}}
252 252  
253 253  \\
254 254  
255 -(% style="color: rgb(0,0,0);" %)**NEW (2021) GMD data recording / evaluation  (MTCA, analog to FLASH2 and XFEL)**
261 +(% style="letter-spacing: 0px; color: rgb(0, 0, 0)" %)**NEW (since 2021) GMD data recording / evaluation  (same format as FLASH2 and XFEL)**
256 256  
257 257  {{code language="none"}}/FL1/Photon Diagnostic/GMD/Average energy/energy tunnel{{/code}}
258 258  //always saved (PBD)//
... ... @@ -410,8 +410,27 @@
410 410  units: nC
411 411  
412 412  =====
413 -arrival time =====
419 +arrival time (BAM) =====
414 414  
421 +{{info title="BAM information: updates 2022"}}
422 +* The data format of the BAM has been completely altered in the 2022 shutdown
423 +* before 2022 BAMs were always saving the arrival time information for each 1µs bucked regardless if there were electrons in the accelerator or not. IN addition the arrival times for  FL1 and FL2 were saved in the same parameter ...
424 +* THIS is now different. there are new parameters for pulses that go to FL1 and to FL2 (in detail: first time slot of the accelerator and second)
425 +* There has been also a renaming  (and relocation) of the BAMs.
426 +** acc:  4DBC3 → FL0.DBC2
427 +** FL1: 1SFELC →  FL1.SFELC
428 +** FL2: FL2XTDS → (% style="color: rgb(23,43,77);" %)FL2.SEED5
429 +* for more Info: [[LINK to detailed infos from MSK>>url:https://confluence.desy.de/display/SDiagPublic/BAM+Data+Structure||shape="rect"]]
430 +* [[Info collection about the BAMs and how to use the BAM data>>url:https://confluence.desy.de/display/FLASHUSER/Info+collection+for+the+BAM||shape="rect"]]
431 +* [[Link a collection of papers related to the BAM and the analysis of pump-probe experiments>>doc:FLASHUSER.Additional helpful things.FLASH beamlines and instruments references.WebHome]]
432 +* a recent  [[talk about the working principle of the BAM>>attach:BAM-basics and outlook-2018_DESY-template_16-9Format.pdf]]
433 +{{/info}}
434 +
435 +\\
436 +
437 +{{expand title="Discontinued BAM format (used until end 2021)"}}
438 +(% style="color: rgb(0,0,0);" %)**Discontinued BAM data recording **
439 +
415 415  {{code language="none"}}/FL1/Electron Diagnostic/BAM/4DBC3/electron bunch arrival time (low charge){{/code}}
416 416  //always saved (PBD)//
417 417  DOOCS prop : {{code language="none"}}FLASH.SDIAG/BAM/4DBC3/LOW_CHARGE_ARRIVAL_TIME{{/code}}
... ... @@ -419,17 +419,70 @@
419 419  desc: Electron bunch arrival time measured with the BAM inside the accelerator - however shows a very good correlation to the arrivaltime  of the XUV pulses in the experiment (pulse resolved data).
420 420  units: ps (bigger numbers indicate later arrivaltime of the electrons)
421 421  
447 +\\
448 +
422 422  {{code language="none"}}/FL1/Electron Diagnostic/BAM/1SFELC/electron bunch arrival time (low charge){{/code}}
423 423  //always saved (PBD)//
424 424  DOOCS prop : {{code language="none"}}FLASH.SDIAG/BAM/1SFELC/LOW_CHARGE_ARRIVAL_TIME{{/code}}
425 425  DAQ channel: {{code language="none"}}FLASH.SDIAG/BAM.DAQ/1SFELC.LOW_CHARGE_ARRIVAL_TIME{{/code}}
426 426  desc: Electron bunch arrival time measured with the BAM  before the undulator (pulse resolved data). This one was newly installed in 2020.
427 -units: ps (bigger numbers indicate later arrivaltime of the electrons)
454 +units: ps (bigger numbers indicate later arrival time of the electrons)
455 +{{/expand}}
428 428  
457 +(% style="color: rgb(255,102,0);" %)DBC2/electron bunch arrival time{{code language="none"}}/FL1/Electron Diagnostic/BAM/{{/code}}(%%)
458 +//always saved (PBD)//
459 +DOOCS prop : FLASH.SDIAG/BAM/FL0.DBC2/ARRIVAL_TIME.absolute.SA1
460 +DAQ channel: (% style="color: rgb(255,102,0);" %)FLASH.SDIAG/BAM/FL0.DBC2/ARRIVAL_TIME.absolute.SA1 (%%)
461 +desc: Electron bunch arrival time measured with the BAM inside the accelerator (after bunch compressor 2) - It shows a very good correlation to the arrival time  of the XUV pulses in the experiment (see help).  The SA1 indicates the data is recorded for the first time slot at FLASh, typically used for FLASH1
462 +units: fs (bigger numbers (typically) indicate later arrival times of the electrons).
463 +
464 +\\
465 +
466 +(% style="color: rgb(255,102,0);" %)DBC2/error{{code language="none"}}/FL1/Electron Diagnostic/BAM/{{/code}}(%%)
467 +//always saved (PBD)//
468 +DOOCS prop : FLASH.SDIAG/BAM/FL0.DBC2/ARRIVAL_TIM(% style="color: rgb(0,0,0);" %)E.bamError(%%)
469 +DAQ channel: (% style="color: rgb(255,102,0);" %)FLASH.SDIAG/BAM/FL0.DBC2/ARRIVAL_TIME.BAMERROR(%%)
470 +desc: If the value is 0 , the BAM is working well. If it is non-zero there is a problem !!
471 +
472 +\\
473 +
474 +(% style="color: rgb(255,102,0);" %)DBC2/error{{code language="none"}}/FL1/Electron Diagnostic/BAM/{{/code}}(%%)
475 +//always saved (PBD)//
476 +DOOCS prop : FLASH.SDIAG/BAM/FL0.DBC2/ARRIVAL_TIM(% style="color: rgb(0,0,0);" %)E..bamStatus.//1//(%%)
477 +DAQ channel: (% style="color: rgb(255,102,0);" %)FLASH.SDIAG/BAM/FL0.DBC2/ARRIVAL_TIME.BAMSTATUS(%%)
478 +desc: (% style="letter-spacing: 0.0px;" %) status bit: 0 - data is valid; 1 - beam present; 2 - calibration ongoing; 3 - feedback enabled; 4 - feedback acting;  mostly check for bit 0 == 1 is sufficient
479 +
480 +\\
481 +
482 +(% style="color: rgb(23,43,77);" %)SFELC(% style="color: rgb(255,102,0);" %)/electron bunch arrival time{{code language="none"}}/FL1/Electron Diagnostic/BAM/{{/code}}(%%)
483 +//always saved (PBD)//
484 +DOOCS prop : FLASH.SDIAG/BAM/(% style="color: rgb(23,43,77);" %)FL1.SFELC(%%)/ARRIVAL_TIME.absolute.SA1
485 +DAQ channel: (% style="color: rgb(255,102,0);" %)FLASH.SDIAG/BAM/(% style="color: rgb(255, 102, 0); color: rgb(23, 43, 77)" %)FL1.SFELC(% style="color: rgb(255,102,0);" %)/ARRIVAL_TIME.absolute.SA1 (%%)
486 +desc: Electron bunch arrival time measured  with the BAM  before the undulator (pulse resolved data). This one was newly installed in 2020.  The SA1 indicates the data is recorded for the first time slot at FLASh, typically used for FLASH1
487 +units: fs (bigger numbers (typically) indicate later arrival times of the electrons).
488 +
489 +\\
490 +
491 +(% style="color: rgb(23,43,77);" %)SFELC(% style="color: rgb(255,102,0);" %)/error{{code language="none"}}/FL1/Electron Diagnostic/BAM/{{/code}}(%%)
492 +//always saved (PBD)//
493 +DOOCS prop : FLASH.SDIAG/BAM/(% style="color: rgb(23,43,77);" %)FL1.SFELC(%%)/ARRIVAL_TIM(% style="color: rgb(0,0,0);" %)E.bamError(%%)
494 +DAQ channel: (% style="color: rgb(255,102,0);" %)FLASH.SDIAG/BAM/(% style="color: rgb(255, 102, 0); color: rgb(23, 43, 77)" %)FL1.SFELC(% style="color: rgb(255,102,0);" %)/ARRIVAL_TIME.BAMERROR(%%)
495 +desc: If the value is 0 , the BAM is working well. If it is non-zero there is a problem !!
496 +
497 +\\
498 +
499 +(% style="color: rgb(23,43,77);" %)SFELC(% style="color: rgb(255,102,0);" %)/error{{code language="none"}}/FL1/Electron Diagnostic/BAM/{{/code}}(%%)
500 +//always saved (PBD)//
501 +DOOCS prop : FLASH.SDIAG/BAM/(% style="color: rgb(23,43,77);" %)FL1.SFELC(%%)/ARRIVAL_TIM(% style="color: rgb(0,0,0);" %)E..bamStatus.//1//(%%)
502 +DAQ channel: (% style="color: rgb(255,102,0);" %)FLASH.SDIAG/BAM/(% style="color: rgb(255, 102, 0); color: rgb(23, 43, 77)" %)FL1.SFELC(% style="color: rgb(255,102,0);" %)/ARRIVAL_TIME.BAMSTATUS(%%)
503 +desc: (% style="" %) status bit: 0 - data is valid; 1 - beam present; 2 - calibration ongoing; 3 - feedback enabled; 4 - feedback acting;  mostly check for bit 0 == 1 is sufficient
504 +
505 +\\
506 +
429 429  {{info title="BAM hints"}}
430 430  * besides the arrivaltime from FLASH1 there is also the FLASH2/3 electron arrival time saved.In case of doubt ask your local contact
431 431  * [[Link a collection of papers related to the BAM and the analysis of pump-probe experiments >>doc:FLASHUSER.Additional helpful things.FLASH beamlines and instruments references.WebHome]]
432 -* [[LINK to detailed infos from MSK (may only work inside DESY network~[~[image:url:http://hasfweb.desy.de/pub/TWiki/TWikiDocGraphics/external-link.gif~|~|width="13" height="12"~]~]>>url:http://www.desy.de/~~mbock/pages/BAM_daq_channel_descriptions.html||shape="rect"]]
510 +* [[LINK to detailed infos from MSK>>url:https://confluence.desy.de/display/SDiagPublic/BAM+Data+Structure||shape="rect"]]
433 433  * a recent  [[talk about the working principle of the BAM>>attach:BAM-basics and outlook-2018_DESY-template_16-9Format.pdf]]
434 434  {{/info}}
435 435  
... ... @@ -528,7 +528,7 @@
528 528  //always saved (PBD)//
529 529  DOOCS prop : {{code language="none"}}TTF2.DIAG/PBD.TOROID.ML/12EXP/CHARGE.TD{{/code}}
530 530  DAQ channel: {{code language="none"}}TTF2.DIAG/PBD.TOROID.ML/12EXP{{/code}}
531 -desc: The bunch pattern as function of time in a burst recorded by toroide diagnostic BEHIND the undulator. (FLASH1)
609 +desc: The bunch pattern as function of time in a burst recorded by toroid diagnostic BEHIND the undulator. (FLASH1)
532 532  units:
533 533  \\
534 534  
... ... @@ -601,7 +601,7 @@
601 601  //always saved (PBD)//
602 602  DOOCS prop : {{code language="none"}}TTF2.FEL/TDOLFEL/TDOLFEL/STREAK.CAM.TIME{{/code}}
603 603  DOOCS prop : {{code language="none"}}TTF2.FEL/TDOLFEL/TDOLFEL/STREAK.CAM.TIME{{/code}}
604 -desc: delaytime between the optical laser and the FEL units: ps
682 +desc: delay time between the optical laser and the FEL units: ps
605 605  
606 606  \\
607 607  
... ... @@ -611,7 +611,7 @@
611 611  
612 612  ==== User Data (FLASH1) ====
613 613  
614 -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.
692 +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 of slow properties (motor positions etc) for user experiments. For details please ask your local contact.
615 615  
616 616  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
617 617  
... ... @@ -639,13 +639,13 @@
639 639  {{code language="none"}}/FL1/Experiment/BL3/ADQ412 GHz ADC/CH03/TD{{/code}}
640 640  
641 641  DOOCS prop : {{code language="none"}}FLASH.FEL/ADC.ADQ.PG/EXP1.CH00/CH00.TD  or CH00.DAQ.TD{{/code}}
642 -here the {{code language="none"}}CH00.TD{{/code}} is the full ADC trace as it is sampled ( typically several 100.000 samples per pulse train) while the {{code language="none"}}CH00.DAQ.TD{{/code}} trace only has the number of samples which are sent to the DAQ OR if //grouping// is activated the {{code language="none"}}CH00.DAQ.TD{{/code}} conatins only the grouped spectra. To read the ADC trace with an online analysis program the {{code language="none"}}CH00.DAQ.TD{{/code}} is used preferablly.
720 +here the {{code language="none"}}CH00.TD{{/code}} is the full ADC trace as it is sampled ( typically several 100.000 samples per pulse train) while the {{code language="none"}}CH00.DAQ.TD{{/code}} trace only has the number of samples which are sent to the DAQ OR if //grouping// is activated the {{code language="none"}}CH00.DAQ.TD{{/code}} contains only the grouped spectra. To read the ADC trace with an online analysis program the {{code language="none"}}CH00.DAQ.TD{{/code}} is used preferably.
643 643  DAQ channel: {{code language="none"}}FLASH.FEL/ADC.ADQ.PG/EXP1.CH00{{/code}}
644 644  
645 645  In addition there are also additional parameters saved like:
646 646  
647 647  * {{code language="none"}}sample frequency{{/code}}: it shows the sample frequency in MHz (number of samples per µs). NOTE: the clock of the ADC is NOT synchronized to the FLASH timing system. Thus the number of samples between bunches in the bunch train may be not integer numbers which will be show up for long bunch trains.
648 -* {{code language="none"}}number of samples{{/code}}: total number of samoles recorded for each 10 Hz trigger
726 +* {{code language="none"}}number of samples{{/code}}: total number of samples recorded for each 10 Hz trigger
649 649  * {{code language="none"}}error (ADC):{{/code}} 0 indicates that there was no error
650 650  
651 651  ===== MHz ADCs =====
... ... @@ -658,7 +658,7 @@
658 658  In addition there are also additional parameters saved like:
659 659  
660 660  * {{code language="none"}}sample frequency{{/code}}: it shows the sample frequency in MHz (number of samples per µs). NOTE: the clock of the ADC is NOT synchronized to the FLASH timing system. Thus the number of samples between bunches in the bunch train may be not integer numbers which will be show up for long bunch trains.
661 -* {{code language="none"}}number of samples{{/code}}: total number of samoles recorded for each 10 Hz trigger
739 +* {{code language="none"}}number of samples{{/code}}: total number of samples recorded for each 10 Hz trigger
662 662  
663 663  [[Contents>>doc:||anchor="Contents"]]
664 664  
... ... @@ -819,7 +819,7 @@
819 819  // saved opon request (PBD2)//
820 820  DOOCS prop : {{code language="none"}}FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL040{{/code}}
821 821  DAQ channel:{{code language="none"}} FLASH.UTIL/STORE/FL2.TUNNEL.OPIS/VAL040{{/code}}
822 -desc : meanwavelength ( ~~ 1 sec averaging time ) measured in the TUNNEL for a specific bunch out of the bunch train (via photoelectron spectroscopy)
900 +desc : mean wavelength ( ~~ 1 sec averaging time ) measured in the TUNNEL for a specific bunch out of the bunch train (via photoelectron spectroscopy)
823 823  units : nm
824 824  
825 825  \\
... ... @@ -833,11 +833,11 @@
833 833  
834 834  \\
835 835  
836 -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>>mailto:markus.braune@desy.de||shape="rect"]] ( respobsible for [[OPIS>>url:http://photon-science.desy.de/facilities/flash/photon_diagnostics/opis_spectrometer/index_eng.html||shape="rect"]])
914 +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 saving the complete 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>>mailto:markus.braune@desy.de||shape="rect"]] ( responsible for [[OPIS>>url:http://photon-science.desy.de/facilities/flash/photon_diagnostics/opis_spectrometer/index_eng.html||shape="rect"]])
837 837  
838 838  \\
839 839  
840 -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 ...
918 +In case OPIS was not operating there is still information 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 ...
841 841  
842 842  \\
843 843  
... ... @@ -856,8 +856,21 @@
856 856  
857 857  \\
858 858  
859 -===== undulator settings =====
937 +===== electron bunch energy =====
860 860  
939 +{{code language="none"}}/FL2/Electron Diagnostic/Electron energy/energy of first bunch/behind undulators{{/code}}
940 +//always saved (PBD2)//
941 +DOOCS prop : {{code language="none"}}FLASH.DIAG/BEAM_ENERGY_MEASUREMENT/FL2XTDS/ENERGY.FLASH2{{/code}}
942 +DAQ channel: (% style="color: rgb(94,108,132);" %)TTF2.DAQ/PBD2.BEAM.ENERGY.MEAS.ML.COPY/FL2XTDS.ENERGY.FLASH2{{code language="none"}}{{/code}}(%%)
943 +desc: electron bunch energy measured behind the undulator. Data is saved with 10 Hz - BUT (for computation reasons) only the energy of the FIRST bunch is recorded. The data is also available for (% style="color: rgb(94,108,132);" %)extraction and septum  in the beginning of FLASH2
944 +
945 +(% style="letter-spacing: 0.0px;" %)units: (% class="twikiNewLink" %)MeV
946 +
947 +\\
948 +
949 +(% style="color: rgb(94,108,132);font-weight: 600;letter-spacing: 0.0px;" %)
950 +undulator settings
951 +
861 861  {{code language="none"}}/FL2/Electron Diagnostic/Undulator setting/set wavelength{{/code}}
862 862  //always saved (PBD2)//
863 863  DOOCS prop : {{code language="none"}}TTF2.FEEDBACK/FL2.WAVELENGTHCONTROL/FLASH2/WAVELENGTH{{/code}}