Reports until 16:57, Tuesday 25 November 2025
H1 DetChar (DetChar)
alicia.calafat@LIGO.ORG - posted 16:57, Tuesday 25 November 2025 (88241)
Fast-shutter lock-loss study: trigger-to-10-percent rise times
[Alicia Calafat, Joan-Rene Merou, Sheila Dwyer]

Lock-loss events at the AS port can send short, high-power optical pulses towards the photodiodes. At full-power operation these pulses can carry of order tens of joules in a few milliseconds, which is potentially hazardous for the InGaAs diodes if not mitigated. The fast shutter in HAM6 (TOASTR) protects the AS port by inserting a mirror into the beam and dumping the pulse into a dedicated beam dump.
Previous aLOGs have highlighted the importance of understanding the fast shutter response during lock losses:
- In November 2024, "Fast shutter bouncing happens with an inconvenient timing" (aLOG 81130) reported a lock loss around tGPS ≃ 1415043099 where the fast shutter, after closing, briefly bounced open again roughly when the power into HAM6 reached its maximum (~760 W). The energy deposited into HAM6 was estimated to be ≃ 17 J, with ≃ 12 J leaking past the shutter due to the bounce.
- In June 2025, "OPS Monday day shift start" (aLOG 85393) described a lock loss at ≃ 100 kW circulating power that did not trigger the fast shutter. The maximum power at HAM6 (~1.4 W) stayed below the analogue fast shutter trigger threshold (≃ 3-4 W). The same PEM channel was used to estimate the power incident on HAM6, and it was noted that the calibration in this configuration is a factor of 10 smaller than in observation mode because the 90:10 beam diverter was open.
These and related reports motivate a more systematic study of the timing of the fast shutter response during lock losses, in particular the trigger-to-10-percent rise time inferred from the HAM6 PEM channel. As a secondary quantity, we also keep track of the energy deposited in HAM6 to flag potentially dangerous high-energy pulses. Data and calibration
The analysis is based on a list of lock-loss events stored in a JSON file (index.cgi.json), each with an event id, a nominal GPS time and a refined GPS time.
For each event, the script reads the PEM channel
H1:PEM-CS_ADC_5_19_2K_OUT_DQ
at 2048 Hz over a symmetric window around the refined GPS time. The channel is recorded in ADC counts and converted to physical power in watts with a single calibration factor CALIBRATION_W_PER_COUNT, which depends on the optical configuration:
- Observation mode (beam diverter in nominal configuration): about 0.177 W/count, consistent with the estimates in aLOG 81130.
- Configuration with the 90:10 beam diverter open: the PEM sees about ten times less power and the effective calibration is reduced by a factor of 10, i.e. 0.0177 W/count, as explicitly stated in aLOG 85393.
For the present study the default calibration is CALIBRATION_W_PER_COUNT = 0.0177, corresponding to the beam diverter open configuration. All reported powers are in watts and all integrated quantities are in joules. If one wants to compare directly with the energies quoted in aLOG 81130, the same script can be re-run with CALIBRATION_W_PER_COUNT = 0.177, in which case all energies scale up by a factor 10. Definition of peak, trigger level and 10-percent point
For each event the script computes:
- The peak power at HAM6, defined as the maximum of the calibrated power time series P(t) in the analysis window (peak_value_W, at time peak_time_gps).
- A pre-event plateau level, defined as the median of P(t) before the peak.
- A 10-percent-of-peak level, ten_percent_power_W = 0.1 x peak_value_W, and the corresponding time on the rising edge, rise_10pct_time_gps (first sample where P(t) ≥ 0.1 x peak_value_W and t ≤ peak_time_gps).
- An effective trigger level, trigger_level_W, used as a proxy for the fast-shutter trigger threshold. By default this is 0.2 W, but for a handful of events it is raised to a larger value to avoid small pre-pulses (see below). The trigger time trigger_time_gps is defined as the first sample where P(t) ≥ trigger_level_W on the rising side.
- The effective trigger-to-10-percent rise time, trigger_to_10pct_time_s = rise_10pct_time_gps - trigger_time_gps, which quantifies how quickly the HAM6 power grows from the effective trigger level to 10 percent of its peak during the lock loss.
- The deposited energy in the main pulse, integrated_energy_J, computed by integrating P(t) from the trigger up-crossing to the first down-crossing of the same trigger level after the peak, using a trapezoidal rule in time. Per-event trigger tuning
In most lock losses the nominal trigger level of 0.2 W lies well below the main peak and above any pre-event fluctuations, so the first up-crossing of 0.2 W is a good proxy for when the shutter would be triggered.
However, in several events the 0.2 W line is already crossed by small bumps before the main pulse. In these cases the nominal 0.2 W crossing is clearly too early compared to the onset of the main lock-loss pulse, and the resulting trigger_to_10pct_time_s would not characterize the main burst but instead include a long interval over a small pre-pulse.
To avoid this, the script allows per-event overrides of trigger_level_W. For a small number of GPS times, the trigger level is manually raised so that it sits above the pre-pulse but still below the main peak. The set of events with custom trigger levels is encoded in the CUSTOM_TRIGGER_LEVELS dictionary in the script and currently includes events at:
- GPS 1443656698
- GPS 1443956187
- GPS 1444867592
- GPS 1445889945
- GPS 1446288577
- GPS 1446552568
- GPS 1446642040
For these events, the diagnostic plots show the higher trigger level as a horizontal line and use its first up-crossing to define trigger_time_gps. CSV summary
All per-event measurements are written to: outputs/lockloss_log.csv with one row per lock loss. The columns are:
- event_id: string identifier of the event copied from index.cgi.json.
- event_gps: refined GPS time of the lock loss (s).
- peak_time_gps: GPS time at which the peak power is reached (s).
- peak_value_W: peak power at HAM6 (W).
- ten_percent_power_W: 10 percent of the peak power (W).
- trigger_time_gps: GPS time at which P(t) first reaches the effective trigger level (s). For most events the trigger level is 0.2 W; for a handful of events it is raised as described above.
- rise_10pct_time_gps: GPS time at which P(t) first reaches 10 percent of the peak on the rising side (s).
- trigger_to_10pct_time_s: difference between rise_10pct_time_gps and trigger_time_gps (s).
- integrated_energy_J: time integral of P(t) between the trigger up-crossing and the first down-crossing after the peak (J).
To give a compact overview of the CSV content, the table below shows the first five rows of the current file, illustrating the typical numerical values one obtains:
event_id event_gps [s] peak_time_gps [s] peak_value_W [W] ten_percent_power_W [W] trigger_time_gps [s] rise_10pct_time_gps [s] trigger_to_10pct_time_s [s] integrated_energy_J [J]
1442831740 1442831739.506836 1442831739.550293 76.23296356201172 7.623296356201172 1442831739.5288086 1442831739.5410156 0.01220703125 0.7808257855358534
1442889453 1442889452.898926 1442889452.9663086 61.84770584106445 6.184770584106445 1442889452.8920898 1442889452.9282227 0.0361328125 1.674310484304442
1442904451 1442904451.206055 1442904451.2641602 81.97347259521484 8.197347259521484 1442904451.2441406 1442904451.255371 0.01123046875 0.8560717486398062
1442926321 1442926320.563965 1442926320.625 73.39449310302734 7.339449310302735 1442926320.5576172 1442926320.5947266 0.037109375 1.6212408712308388
1443044104 1443044104.236328 1443044104.3188477 66.14673614501953 6.614673614501953 1443044104.227539 1443044104.2773438 0.0498046875 1.7385223870514892
Several events in the CSV naturally share exactly the same value of trigger_to_10pct_time_s, even though the lock losses occur on different days. This is expected because the data are sampled at 2048 Hz, so any time difference is an integer multiple of the sampling interval Delta_t = 1/2048 s ≈ 0.000488 s. If the trigger and the 10-percent point are separated by N samples, the measured time is T = N/2048 s. Small physical variations in the true trigger-to-10-percent time that are smaller than one sampling interval cannot be resolved and collapse onto the same discrete set of allowed values N/2048 s in the CSV. Diagnostic plots:
For each event, the script produces a PNG figure
lockloss_H1_PEM-CS_ADC_5_19_2K_OUT_DQ_.png
with two panels ("Zoom out" and "Zoom in") showing:
- The calibrated power P(t) in watts.
- A shaded region corresponding to the integrated pulse, with the integrated energy in the legend.
- Vertical lines at the peak time, at the effective trigger-time crossing, and at the 10-percent-of-peak crossing.
- Horizontal lines for the plateau power and for the effective trigger level.
The first figure below shows a representative event analysed with the nominal trigger level of 0.2 W. In the legend one can read the peak time and peak power, the time and value of the 10-percent-of-peak crossing, the trigger-time crossing at 0.2 W, the plateau power, and the integrated energy of the pulse. The zoomed panel highlights the plateau, the rapid rise into the main burst, and the decay back towards zero:
Example lock-loss event analysed with the nominal 0.2 W trigger level
For a small subset of events, a pre-pulse or slow ramp above the plateau made the nominal 0.2 W level unsuitable as a proxy for the fast-shutter trigger. In those cases the trigger level was raised so that trigger_time_gps is associated with the onset of the main burst rather than with the earlier structure. The following figures illustrate these cases, in order of GPS time and with the corresponding custom trigger levels used in the analysis:
- GPS 1443656698, trigger level raised to 1.0 W:
Lock-loss event at GPS 1443656698 with trigger level raised to 1.0 W - GPS 1443956187, trigger level raised to 0.6 W:
Lock-loss event at GPS 1443956187 with trigger level raised to 0.6 W - GPS 1444867592, trigger level raised to 1.0 W:
Lock-loss event at GPS 1444867592 with trigger level raised to 1.0 W - GPS 1445889945, trigger level raised to 0.3 W:
Lock-loss event at GPS 1445889945 with trigger level raised to 0.3 W - GPS 1446288577, trigger level raised to 2.5 W:
Lock-loss event at GPS 1446288577 with trigger level raised to 2.5 W - GPS 1446552568, trigger level raised to 0.5 W:
Lock-loss event at GPS 1446552568 with trigger level raised to 0.5 W - GPS 1446642040, trigger level raised to 8.0 W:
Lock-loss event at GPS 1446642040 with trigger level raised to 8.0 W Taken together, these examples show that a single nominal trigger level of 0.2 W is adequate for the majority of the sample, but a small number of events benefit from per-event tuning to avoid contamination from pre-pulses or slow ramps when measuring the trigger-to-10-percent rise time. Histogram of trigger-to-10-percent rise times
Once all events in index.cgi.json have been processed, the script reads the accumulated CSV and constructs two 1D histograms of trigger_to_10pct_time_s:
- A histogram with continuous bins.
- A discrete stacked-bar plot where each distinct time value appears once on the x-axis and the bar height counts how many lock losses share that value. For each value, the bar is split into a grey portion for events using the nominal trigger level (0.2 W) and a red portion for events where a custom trigger level was used.
The histogram, produced as
trigger_to_10pct_histogram_classic.png
illustrates the overall distribution of trigger-to-10-percent rise times. An example is shown here:
1D histogram of trigger-to-10-percent rise times The second plot, produced as
trigger_to_10pct_time_distribution.png
makes the discrete nature of the allowed times and the relative contribution of nominal vs. custom trigger levels more explicit. Each x-tick corresponds to one distinct trigger_to_10pct_time_s value found in the CSV, and the bar is split between nominal (grey) and custom (red) triggers:
Discrete stacked-bar distribution of trigger-to-10-percent rise times Because the PEM channel is sampled at 2048 Hz, all trigger-to-10-percent times fall on a discrete grid T = N/2048 s. The discrete histogram shows that only a small set of such N values occur frequently, reflecting the repeatable shape of the fast-shutter pulse in this configuration. The red portions highlight that only a small subset of events required raising the trigger level to avoid pre-pulses; the bulk of the sample is well described by the nominal 0.2 W level.
Images attached to this report