Changes for page The FLASH HDF5 structure
Last modified by sndueste on 2025/02/06 10:55
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,8 +1,25 @@ 1 1 == Contents == 2 2 3 +\\ 3 3 5 +* [[General information about HDF5>>doc:||anchor="General information about HDF5"]] 6 +* [[FLASH HDF5 structure>>doc:||anchor="FLASH HDF5 structure"]] 7 +* [[Most popular FLASH parameters and their names in HDF5>>doc:||anchor="Most popular FLASH parameters and their names in HDF5"]] 8 +** [[FLASH1>>doc:||anchor="FLASH1"]] 9 +*** [[Beamline info (FLASH1)>>doc:||anchor="Beamline info (FLASH1)"]] 10 +*** [[Photon Diagnostics SASE / Spectrometer (FLASH1)>>doc:||anchor="Photon Diagnostics SASE / Spectrometer (FLASH1)"]] 11 +*** [[Electron Beam properties (FLASH1)>>doc:||anchor="Electron Beam properties (FLASH1)"]] 12 +*** [[Timing information, rep rate etc.(FLASH1)>>doc:||anchor="Timing information, rep rate etc.(FLASH1)"]] 13 +*** [[Pump Probe Laser (FLASH1)>>doc:||anchor="Pump Probe Laser (FLASH1)"]] 14 +*** [[User Data (FLASH1)>>doc:||anchor="User Data (FLASH1)"]] 15 +** [[FLASH2>>doc:||anchor="FLASH2"]] 16 +** [[HDF5 structure revisions>>doc:||anchor="HDF5 structure revisions"]] 17 +* [[Example code showing how to access HDF5 files>>doc:||anchor="Example code showing how to access HDF5 files"]] 18 +** [[Samples how to read HDF5 with Matlab>>doc:||anchor="Samples how to read HDF5 with Matlab"]] 19 +** [[How to read HDF5 with Python via FLASHH5>>doc:||anchor="How to read HDF5 with Python via FLASHH5"]] 20 +* [[HDF5 and DOOCS>>doc:||anchor="HDF5 and DOOCS"]] 4 4 5 - {{toc/}}22 +\\ 6 6 7 7 \\ 8 8 ... ... @@ -36,7 +36,7 @@ 36 36 37 37 \\ 38 38 39 -== Most popular FLASH parameters and their names in HDF5 ,DOOCS and (raw) DAQ==56 +== Most popular FLASH parameters and their names in HDF5 == 40 40 41 41 The complete list for the relation between DOOCS names and HDF5 names for the recordable parameters can be found in [[DESY's Repository~[~[image:url:http://hasfweb.desy.de/pub/TWiki/TWikiDocGraphics/external-link.gif~|~|width="13" height="12"~]~]>>url:https://stash.desy.de/projects/CS/repos/pah/browse/src/camp/data/channel2HdfName.dat||shape="rect"]]. 42 42 The most common and often used ones are summarized below: ... ... @@ -485,10 +485,9 @@ 485 485 486 486 in addition there are also additional parameters saved like: 487 487 488 -* {{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. 489 -* {{code language="none"}}number of samples{{/code}}: total number of samoles recorded for each 10 Hz trigger 490 -* {{code language="none"}}error (ADC):{{/code}} 0 indicates that there was no error 491 -* {{code language="none"}}offset{{/code}}: To use the full dynamic range of the ADC one can shift the base line . This offset is saved here. 505 +* sample frequency (in MHz) 506 +* error (state) 507 +* offset 492 492 493 493 ~| 494 494 ... ... @@ -619,7 +619,9 @@ 619 619 620 620 \\ 621 621 638 +\\ 622 622 640 + 623 623 //always saved (PBD2)// 624 624 \\\\{{code language="none"}}/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: {{/code}}Besides the well calibrated averaged beam position information there is also the option 625 625 {{code language="none"}}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 {{/code}} ... ... @@ -632,7 +632,7 @@ 632 632 633 633 \\ 634 634 635 -==== Photon Diagnostics OPIS[[ 653 +==== Photon Diagnostics OPIS[[ >>url:http://photon-science.desy.de/facilities/flash/photon_diagnostics/opis_spectrometer/index_eng.html||shape="rect"]](FLASH2) ==== 636 636 637 637 for more info see: [[ OPIS>>url:http://photon-science.desy.de/facilities/flash/photon_diagnostics/opis_spectrometer/index_eng.html||shape="rect"]] 638 638 ... ... @@ -671,90 +671,116 @@ 671 671 672 672 \\ 673 673 674 -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 ...692 +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 ... 675 675 676 676 \\ 677 677 678 678 \\ 679 679 698 +\\ 699 + 680 680 ==== Electron Beam properties (FLASH2) ==== 681 681 682 682 ===== bunch charge ===== 683 683 684 684 {{code language="none"}}/FL2/Electron Diagnostic/Bunch charge/after undulator{{/code}} 685 -//always saved (PBD 2)//705 +//always saved (PBD)// 686 686 DOOCS prop : {{code language="none"}}FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN/CHARGE.FLASH2{{/code}} 687 687 DAQ channel: {{code language="none"}}FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN/CHARGE.FLASH2{{/code}} 688 -desc: electron bunch charge FLASH2 (average value for each bunchtrain).708 +desc: electron bunch charge (FLASH2) 689 689 units: nC 690 690 691 691 \\ 692 692 693 - ===== undulator settings =====713 +\\ 694 694 695 -{{code language="none"}}/FL2/Electron Diagnostic/Undulator setting/set wavelength{{/code}} 696 -//always saved (PBD2)// 697 -DOOCS prop : {{code language="none"}}TTF2.FEEDBACK/FL2.WAVELENGTHCONTROL/FLASH2/WAVELENGTH{{/code}} 698 -DAQ channel: {{code language="none"}}TTF2.FEEDBACK/FL2.WAVELENGTHCONTROL/FLASH2/WAVELENGTH{{/code}} 699 -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 % ... 700 -units: nm 715 +|((( 716 +FLASH.UTIL/FL2.UND.MOTOR/FL2SASE14/GAP 717 +)))|((( 718 +/FL2/Electron Diagnostic/Undulator setting/SASE14 gap 719 +))) 720 +|((( 721 +TTF2.FEEDBACK/FL2.WAVELENGTHCONTROL/FLASH2/WAVELENGTH 722 +)))|((( 723 +/FL2/Electron Diagnostic/Undulator setting/set wavelength 724 +))) 701 701 702 -{{code language="none"}}/FL2/Electron Diagnostic/Undulator setting/SASE14 gap{{/code}} 703 -//always saved (PBD2)// 704 -DOOCS prop : {{code language="none"}}FLASH.UTIL/FL2.UND.MOTOR/FL2SASE14/GAP{{/code}} 705 -DAQ channel: {{code language="none"}}FLASH.UTIL/FL2.UND.MOTOR/FL2SASE14/GAP{{/code}} 706 -desc: gap value of the undulators. This can be used to follow up how many undulators were closed and if there was a taper 707 -units: mm 708 - 709 -The gap values are saved for all 12 undulators (Nr 3 to 14). Undulator 14 is the one closest to the experimental hall. 710 - 711 711 ===== 712 712 arrival time ===== 713 713 714 - **FL1**{{code language="none"}}//Electron Diagnostic/BAM/4DBC3/electron bunch arrival time (low charge){{/code}}715 -//always saved (PBD 2)//729 +{{code language="none"}}/FL1/Electron Diagnostic/BAM/4DBC3/electron bunch arrival time (low charge){{/code}} 730 +//always saved (PBD)// 716 716 DOOCS prop : {{code language="none"}}FLASH.SDIAG/BAM/4DBC3/LOW_CHARGE_ARRIVAL_TIME{{/code}} 717 717 DAQ channel: {{code language="none"}}FLASH.SDIAG/BAM.DAQ/4DBC3.LOW_CHARGE_ARRIVAL_TIME{{/code}} 718 718 desc: Electron bunch arrival time measured with the BAM (more or less) before the undulator (pulse resolved data) 719 -units: ps (bigger numbers indicate later arrivaltime of the electrons) 734 +units: ps (bigger numbers indicate later arrivaltime of the electrons) 735 +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~[~[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"]] and to a recent [[talk about the working principle of the BAM>>url:https://confluence.desy.de/download/attachments/134216957/BAM-basics_and_outlook-2018_DESY-template_16-9Format.pdf?version=1&modificationDate=1565162143328&api=v2||shape="rect"]] 720 720 721 -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. 722 -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) ... 737 +\\ 723 723 724 - Docu for BAM: [[LINK to detailled 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"]] and to a recent [[talk about the working principle of the BAM>>url:https://confluence.desy.de/download/attachments/134216957/BAM-basics_and_outlook-2018_DESY-template_16-9Format.pdf?version=1&modificationDate=1565162143328&api=v2||shape="rect"]]739 +\\ 725 725 741 +\\ 726 726 727 - [[Contents>>doc:||anchor="Contents"]]743 +===== electron bunch energy ===== 728 728 745 +{{code language="none"}}/FL1/Electron Diagnostic/Electron energy/average electron energy{{/code}} 746 +_always saved (PBD) 747 +DOOCS prop : {{code language="none"}}TTF2.DAQ/ENERGY.DOGLEG/E_INTRA_MEAN/VAL{{/code}} 748 +DAQ channel: {{code language="none"}}PBD.ENERGY.DOGLEG/E_MEAN{{/code}} 749 +desc: electron bunch energy (average over the bunch train) 750 +units: (% class="twikiNewLink" %)MeV(%%) 729 729 \\ 730 730 731 -==== Timing information, rep rate etc. (FLASH2) ==== 753 +{{code language="none"}}/FL1/Electron Diagnostic/Electron energy/pulse resolved energy{{/code}} 754 +_always saved (PBD) 755 +DOOCS prop : {{code language="none"}}TTF2.DAQ/ENERGY.DOGLEG/E_SPECT/VAL.TD{{/code}} 756 +DAQ channel: {{code language="none"}}PBD.ENERGY.DOGLEG/E_SPECT{{/code}} 757 +desc: electron bunch energy bunch resolved 758 +units: (% class="twikiNewLink" %)MeV 732 732 733 - ===== start time of FLASH2 =====760 +\\ 734 734 735 -{{code language="none"}}/FL2/Timing/start time flash2{{/code}} 736 -//always saved (PBD2)// 737 -DOOCS prop : {{code language="none"}}FLASH.DIAG/TIMER/FLASHCPUTIME1.0/BUNCH_POSITION.2{{/code}} 738 -DAQ channel: {{code language="none"}}FLASH.DIAG/TIMER/FLASHCPUTIME1.0/BUNCH_POSITION.2{{/code}} 739 -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 ...) 740 -units: µs 762 +{{code language="none"}}/FL1/Electron Diagnostic/Electron energy/wavelength bunch train average{{/code}} 763 +_always saved (PBD) 764 +DOOCS prop : {{code language="none"}}TTF2.DAQ/ENERGY.DOGLEG/LAMBDA_MEAN/VAL{{/code}} 765 +DAQ channel: {{code language="none"}}PBD.ENERGY.DOGLEG/LAMBDA_MEAN{{/code}} 766 +desc: Wavelength calculated by the electron bunch energy (average over the bunch train) (FLASH1) 767 +units: nm 768 +\\ 741 741 770 +[[Contents>>doc:||anchor="Contents"]] 771 + 772 +\\ 773 + 774 +==== Timing information, rep rate etc. (FLASH1) ==== 775 + 742 742 ===== bunch repetition rate ===== 743 743 744 -{{code language="none"}}/FL 2/Timing/repetition rate{{/code}}745 -//always saved (PBD 2)//746 -DOOCS prop : {{code language="none"}}FLASH.DIAG/TIMER/FLASHCPUTIME1.0/REP_RATE_KHZ. 2{{/code}}747 -DAQ channel: LASH.DIAG/TIMER/FLASHCPUTIME1.0/REP_RATE_KHZ.2{{/code}}748 -desc: repetition rate of the bunches / pulses within the burst (FLASH 2)778 +{{code language="none"}}/FL1/Timing/repetition rate{{/code}} 779 +//always saved (PBD)// 780 +DOOCS prop : {{code language="none"}}FLASH.DIAG/TIMER/FLASHCPUTIME1.0/REP_RATE_KHZ.1{{/code}} 781 +DAQ channel: {{code language="none"}}TTF2.UTIL/LASER.CONTROL/GUN/PULSE_FREQ{{/code}} 782 +desc: repetition rate of the bunches / pulses within the burst (FLASH1) 749 749 units: kHz 784 +\\ 750 750 786 +===== set number of pulses ===== 787 + 788 +{{code language="none"}}/FL1/Timing/set number of bunches{{/code}} 789 +//always saved (PBD)// 790 +DOOCS prop : {{code language="none"}}FLASH.DIAG/TOROID.ML/3GUN/NUMBEROFBUNCHES.FLASH1{{/code}} 791 +DAQ channel: {{code language="none"}}TTF2.UTIL/LASER.CONTROL/GUN/PULSE_NUM{{/code}} 792 +desc: Number of pulses set at the gun (FLASH1) 793 +units: 794 + 751 751 ===== actual number of pulses ===== 752 752 753 753 {{code language="none"}}/FL1/Timing/actual number of bunches{{/code}} 754 -//always saved (PBD 2)//755 -DOOCS prop : {{code language="none"}}FLASH.DIAG/ PBD2.TOROID.ML/3GUN/NUMBEROFBUNCHES.FLASH2{{/code}}756 -DAQ channel: {{code language="none"}}F LASH.DIAG/PBD2.TOROID.ML/3GUN/NUMBEROFBUNCHES.FLASH2{{/code}}757 -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, (FLASH 2)798 +//always saved (PBD)// 799 +DOOCS prop : {{code language="none"}}FLASH.DIAG/TOROID.ML/12EXP/NUMBEROFBUNCHES.FLASH1{{/code}} 800 +DAQ channel: {{code language="none"}}TTF2.DIAG/PBD.TOROID.ML/12EXP{{/code}} 801 +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) 758 758 units: 759 759 \\ 760 760 ... ... @@ -761,10 +761,10 @@ 761 761 ===== actual pulse pattern recorded after the undulator ===== 762 762 763 763 {{code language="none"}}/FL1/Timing/Bunch pattern/pattern after undulator{{/code}} 764 -//always saved (PBD 2)//765 -DOOCS prop : {{code language="none"}}F LASH.DIAG/PBD2.TOROID.ML/9FL2BURN.PULSEPATTERN{{/code}}766 -DAQ channel: {{code language="none"}}F LASH.DIAG/PBD2.TOROID.ML/9FL2BURN.PULSEPATTERN{{/code}}767 -desc: The bunch pattern as function of time in a burst recorded by toroide diagnostic BEHIND the undulator. (FLASH 2)808 +//always saved (PBD)// 809 +DOOCS prop : {{code language="none"}}TTF2.DIAG/PBD.TOROID.ML/12EXP/CHARGE.TD{{/code}} 810 +DAQ channel: {{code language="none"}}TTF2.DIAG/PBD.TOROID.ML/12EXP{{/code}} 811 +desc: The bunch pattern as function of time in a burst recorded by toroide diagnostic BEHIND the undulator. (FLASH1) 768 768 units: 769 769 \\ 770 770 ... ... @@ -771,7 +771,7 @@ 771 771 ===== Train ID ===== 772 772 773 773 {{code language="none"}}/Timing/train ID{{/code}} 774 -//always saved (PBD 2)//818 +//always saved (PBD)// 775 775 DOOCS prop : {{code language="none"}}none{{/code}} 776 776 DAQ channel: {{code language="none"}}none{{/code}} 777 777 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 !) ... ... @@ -780,16 +780,13 @@ 780 780 781 781 ===== Train time ===== 782 782 783 -//always saved (PBD2) 784 -//{{code language="none"}}/Timing/train time{{/code}} 827 +{{code language="none"}}/Timing/train time{{/code}} 785 785 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 786 786 units: d h min s cs 787 787 \\ 788 788 789 -{{code language="none"}}/Timing/time stamp{{/code}} 790 - 791 -//always saved (PBD2)// 792 -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 832 +{{code language="none"}}/Timing/time stamp{{/code}} 833 +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 793 793 second column: microseconds 794 794 third column: Train ID of FLASH 795 795 \\