Changes for page The FLASH HDF5 structure

Last modified by sndueste on 2025/09/10 11:43

From version 93.4
edited by sndueste
on 2025/05/19 16:47
Change comment: There is no comment for this version
To version 89.11
edited by sndueste
on 2025/04/23 14:55
Change comment: Update document after refactoring.

Summary

Details

Page properties
Content
... ... @@ -111,17 +111,17 @@
111 111  == Complete list of recordable parameters ==
112 112  
113 113  The complete list for the relation between DOOCS names and HDF5 names for the recordable parameters can be found in [[DESY's Repository>>url:https://stash.desy.de/projects/CS/repos/pah/browse/src/camp/data/channel2HdfName.dat||shape="rect"]].
114 +
114 114  
115 115  == Most popular FLASH parameters and their names in HDF5, DOOCS and (raw) DAQ ==
116 116  
117 117  {{id name="DOOCSparameters"/}}
118 118  
120 +Note, the HDF group and data set names apply to our HDF tree version since vers. 0.3.0.
119 119  
122 +
120 120  === FLASH1 ===
121 121  
122 -
123 -In the Shutdown 2024 / 2025  the complete photon diagnostic and experiment control was renewed and thus the Doocs names and also some HDF5 names had to be changed. The 
124 -
125 125  ==== Beamline info (FLASH1) ====
126 126  
127 127  {{code language="none"}}/FL1/Beamlines/Attenuator/pressure{{/code}}
... ... @@ -130,6 +130,7 @@
130 130  DAQ channel: {{code language="none"}}FLASH.FEL/GAS_DOSING/FL1.ATTENUATOR/PRESSURE{{/code}}
131 131  desc: set pressure in the gas attenuator
132 132  units: mbar
133 +
133 133  
134 134  {{code language="none"}}/FL1/Beamlines/BL/Fast shutter/open{{/code}}
135 135  //always saved (PBD)//
... ... @@ -151,6 +151,7 @@
151 151  DAQ channel: {{code language="none"}}TTF2.FEL/BLFILTERS1/FILTER1/FW.MOTOR.POS{{/code}}
152 152  desc: Position of the BL filter wheel 1 - to correlate with the filter material please look [[here>>doc:FS-FLASH USER tmp.jddd-linked help pages.Filter-Units.Filter wheels in FLASH1 and FLASH2.WebHome]]
153 153  units: degree
155 +
154 154  
155 155  {{code language="none"}}/FL1/Beamlines/BL/Filters/BL filter wheel/position filter 2{{/code}}
156 156  //always saved (PBD)//
... ... @@ -158,6 +158,7 @@
158 158  DAQ channel: {{code language="none"}}TTF2.FEL/BLFILTERS2/FILTER2/FW.MOTOR.POS{{/code}}
159 159  desc: Position of the BL filter wheel 2 - to correlate with the filter material please look [[here>>doc:FS-FLASH USER tmp.jddd-linked help pages.Filter-Units.Filter wheels in FLASH1 and FLASH2.WebHome]]
160 160  units: degree
163 +
161 161  
162 162  {{code language="none"}}/FL1/Beamlines/PG/Filters/position filter 1{{/code}}
163 163  //always saved (PBD)//
... ... @@ -165,6 +165,7 @@
165 165  DAQ channel: {{code language="none"}}TTF2.FEL/BDAF1/BDA.F1/FW.MOTOR.POS{{/code}}
166 166  desc: Position of the PG filter wheel 1
167 167  units: degree
171 +
168 168  
169 169  {{code language="none"}}/FL1/Beamlines/PG/Filters/position filter 2{{/code}}
170 170  //always saved (PBD)//
... ... @@ -172,6 +172,7 @@
172 172  DAQ channel: {{code language="none"}}TTF2.FEL/BDAF2/BDA.F2/FW.MOTOR.POS{{/code}}
173 173  desc: Position of the PG filter wheel 2
174 174  units: degree
179 +
175 175  
176 176  {{code language="none"}}/FL1/Beamlines/PG/Filters/position filter 3{{/code}}
177 177  //always saved (PBD)//
... ... @@ -262,6 +262,7 @@
262 262  
263 263  {{info title="GMD pulse resolved data structure"}}
264 264  For every pulse in the pulse train the information is saved:
270 +
265 265  
266 266  1. **Intensity per pulse** (a.u. (more or less µJ ))
267 267  1. Intensity per pulse (auxillary GMD) - not used
... ... @@ -505,6 +505,7 @@
505 505  DAQ channel: {{code language="none"}}PBD.BEAM.PROF.ML/DAQ.OUT.PROF.CCCED{{/code}}
506 506  desc: temporal profile of electron bunch, y axis in Ampers (FLASH1)
507 507  units: pixel
514 +
508 508  
509 509  {{code language="none"}}/FL1/Electron Diagnostic/Electron bunch profile/Expert stuff/TDS calibration constant{{/code}}
510 510  //always saved (PBD) - IF LOLA is ON and ACTIVATED in the PBD DAQ (talk to expert)//
... ... @@ -512,6 +512,7 @@
512 512  DAQ channel: = PBD.BEAM.PROF.ML/CCT=
513 513  desc: TDS calibration constant for the x-axis of the profiles: fs per pixel
514 514  units: fs per pixel
522 +
515 515  
516 516  {{code language="none"}}/FL1/Electron Diagnostic/Electron bunch profile/TDS profile width rms{{/code}}
517 517  //always saved (PBD) - IF LOLA is ON and ACTIVATED in the PBD DAQ (talk to expert)//
... ... @@ -527,7 +527,8 @@
527 527  DOOCS prop : {{code language="none"}}TTF2.DAQ/ENERGY.DOGLEG/E_INTRA_MEAN/VAL{{/code}}
528 528  DAQ channel: {{code language="none"}}PBD.ENERGY.DOGLEG/E_MEAN{{/code}}
529 529  desc: electron bunch energy (average over the bunch train)
530 -units: (% class="twikiNewLink" %)MeV
538 +units: (% class="twikiNewLink" %)MeV(%%)
539 +
531 531  
532 532  {{code language="none"}}/FL1/Electron Diagnostic/Electron energy/pulse resolved energy{{/code}}
533 533  //always saved (PBD)//
... ... @@ -543,6 +543,7 @@
543 543  DAQ channel: {{code language="none"}}PBD.ENERGY.DOGLEG/LAMBDA_MEAN{{/code}}
544 544  desc: Wavelength calculated by the electron bunch energy (average over the bunch train) (FLASH1)
545 545  units: nm
555 +
546 546  
547 547  [[Contents>>doc:||anchor="Contents"]]
548 548  
... ... @@ -557,6 +557,7 @@
557 557  DAQ channel: {{code language="none"}}TTF2.UTIL/LASER.CONTROL/GUN/PULSE_FREQ{{/code}}
558 558  desc: repetition rate of the bunches / pulses within the burst (FLASH1)
559 559  units: kHz
570 +
560 560  
561 561  ===== set number of pulses =====
562 562  
... ... @@ -575,6 +575,7 @@
575 575  DAQ channel: {{code language="none"}}TTF2.DIAG/PBD.TOROID.ML/12EXP{{/code}}
576 576  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)
577 577  units:
589 +
578 578  
579 579  ===== actual pulse pattern recorded after the undulator =====
580 580  
... ... @@ -584,6 +584,7 @@
584 584  DAQ channel: {{code language="none"}}TTF2.DIAG/PBD.TOROID.ML/12EXP{{/code}}
585 585  desc: The bunch pattern as function of time in a burst recorded by toroid diagnostic BEHIND the undulator. (FLASH1)
586 586  units:
599 +
587 587  
588 588  ===== Train ID =====
589 589  
... ... @@ -593,34 +593,24 @@
593 593  DAQ channel: {{code language="none"}}none{{/code}}
594 594  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 !)
595 595  units:
609 +
596 596  
597 -===== (% style="color:#e67e22" %)Train time(%%) =====
611 +===== Train time =====
598 598  
599 -(% style="color:#e67e22" %){{code language="none"}}/Timing/train time{{/code}}
613 +{{code language="none"}}/Timing/train time{{/code}}
600 600  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
601 601  units: d h min s cs
616 +
602 602  
603 -(% style="color:#e67e22" %){{code language="none"}}/Timing/time stamp{{/code}}
618 +{{code language="none"}}/Timing/time stamp{{/code}}
604 604  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
605 605  second column: microseconds
606 606  third column: Train ID of FLASH
622 +
607 607  
608 -currently it is saved as Unix time in : /zraw/FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1/dGroup/time
609 -
610 -{{expand expanded="false" title="Timestamp help for python"}}
611 - import time
612 -
613 -# epoch time is found in /zraw/FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1/dGroup/time #!!! a leading 1 has to be added !!!
614 -# The time and date of the start of the data taking in the HDF file is encoded in the filename - to roughly check the time
615 -epoch_time = 1709051499.17 # Replace with your epoch time
616 -
617 -formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(epoch_time))
618 -print(formatted_time)
619 -{{/expand}}
620 -
621 -
622 622  [[Contents>>doc:||anchor="Contents"]]
623 623  
626 +
624 624  ==== Pump Probe Laser (FLASH1) ====
625 625  
626 626  **PIGLET (PG laser)**
... ... @@ -751,7 +751,8 @@
751 751  (% style="color:#000000" %)DOOCS prop : {{code language="none"}}FLASH.FEL/ATT.GAS_DOSING/FL2.HALL/PRESSURE{{/code}} (%%)
752 752  (% style="color:#000000" %)DAQ channel:  {{code language="none"}}FLASH.FEL/ATT.GAS_DOSING/FL2.HALL/PRESSURE{{/code}} (%%)
753 753  (% style="color:#000000" %)desc: set pressure in the gas attenuator (%%)
754 -(% style="color:#000000" %)units: mbar
757 +(% style="color:#000000" %)units: mbar(%%)
758 +
755 755  
756 756  {{code language="none"}}/FL2/Beamlines/FL20/Shutter/open{{/code}}
757 757  //always saved (PBD2)//
... ... @@ -767,6 +767,7 @@
767 767  DAQ channel: FLASH.FEL/FL20H.PH.MOTOR/MOTOR1.MOT3/FPOS
768 768  desc: Position of the BL filter wheel 1 - to correlate with the filter material please look **[[here>>doc:FS-FLASH USER tmp.jddd-linked help pages.Filter-Units.Filter wheels in FLASH1 and FLASH2.WebHome]]**
769 769  units: degree
774 +
770 770  
771 771  /FL2/Beamlines/Filter wheel/position wheel 2
772 772  always saved (PBD2)
... ... @@ -801,6 +801,7 @@
801 801  
802 802  {{info title="GMD pulse resolved data structure"}}
803 803  For every pulse in the pulse train the information is saved:
809 +
804 804  
805 805  1. **Intensity per pulse** (a.u. (more or less µJ ))
806 806  1. Intensity per pulse (auxillary GMD) - not used
... ... @@ -1098,6 +1098,7 @@
1098 1098  DAQ channel: {{code language="none"}}FLASH.DIAG/PBD2.TOROID.ML/3GUN/NUMBEROFBUNCHES.FLASH2{{/code}}
1099 1099  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)
1100 1100  units:
1107 +
1101 1101  
1102 1102  ===== actual pulse pattern recorded after the undulator =====
1103 1103  
... ... @@ -1107,6 +1107,7 @@
1107 1107  DAQ channel: {{code language="none"}}FLASH.DIAG/PBD2.TOROID.ML/9FL2BURN.PULSEPATTERN{{/code}}
1108 1108  desc: The bunch pattern as function of time in a burst recorded by toroide diagnostic BEHIND the undulator. (FLASH2)
1109 1109  units:
1117 +
1110 1110  
1111 1111  ===== Train ID =====
1112 1112  
... ... @@ -1116,40 +1116,26 @@
1116 1116  DAQ channel: {{code language="none"}}none{{/code}}
1117 1117  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 !)
1118 1118  units:
1127 +
1119 1119  
1120 -===== (% style="color:#e67e22" %)Train time(%%) =====
1129 +===== Train time =====
1121 1121  
1122 -(% style="color:#e67e22" %)//always saved (PBD2)//(%%)
1123 -(% style="color:#e67e22" %){{code language="none"}}/Timing/train time{{/code}}
1131 +//always saved (PBD2)//
1132 +{{code language="none"}}/Timing/train time{{/code}}
1124 1124  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
1125 1125  units: d h min s cs
1135 +
1126 1126  
1127 1127  {{code language="none"}}
1128 1128  /Timing/time stamp
1129 1129  {{/code}}
1130 1130  
1131 -(% style="color:#e67e22" %)//always saved (PBD2)//(%%)
1132 -(% style="color:#e67e22" %)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
1141 +//always saved (PBD2)//
1142 +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
1133 1133  second column: microseconds
1134 1134  third column: Train ID of FLASH
1145 +
1135 1135  
1136 -
1137 -(% id="cke_bm_2455529S" style="display:none" %) (%%)currently it is saved as Unix time in : /zraw/FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1/dGroup/time
1138 -
1139 -{{expand expanded="false" title="Timestamp help for python"}}
1140 - import time
1141 -
1142 -# epoch time is found in /zraw/FLASH.DIAG/TIMINGINFO/TIME1.BUNCH_FIRST_INDEX.1/dGroup/time #!!! a leading 1 has to be added !!!
1143 -# The time and date of the start of the data taking in the HDF file is encoded in the filename - to roughly check the time
1144 -epoch_time = 1709051499.17 # Replace with your epoch time
1145 -
1146 -formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(epoch_time))
1147 -print(formatted_time)
1148 -{{/expand}}
1149 -
1150 -
1151 -
1152 -
1153 1153  [[Contents>>doc:||anchor="Contents"]]
1154 1154  
1155 1155