Repository navigation
Known Bugs
marc1uk edited this page Oct 24, 2026
·
22 revisions
This page lists known bugs awaiting resolution. Also see Outstanding Improvements, which do not represent bugs but high priority code quality improvements that will make development easier for everyone.
NOTE: Andy's Claude flagged some bugs. High priority flags are looked at already and fixed. If interested, please look at medium and low priority flags as well.
| Added On | Resolved by PR# | Affected ToolChains | Affected Tools | Description |
|---|---|---|---|---|
| 2026-10-21 | LAPPDProcessedAna, others ? | LAPPDTreeMaker | Files processed before merging #393 (dual-ACDC EBV2) have no ACDC 1 (_1) timing maps. LAPPDLoadStore maps their old keys onto _0 only and leaves _1 empty. LAPPDTreeMaker looks for the _1 timing in every LAPPD event, can't find it, and throws an error each time. Recommended not to use on older data. Low priority. |
|
| 2026-10-21 | LAPPDProcessedFilter | ProcessedLAPPDFilter | When run on files processed before #393 (dual-ACDC EBV2), the filter copies only the new _0/_1 LAPPD timing keys. Old files don't have these, so the filtered file ends up with empty timing maps and the old timing keys are dropped. LAPPDProcessedAna and BeamClusterAnalysis then throw errors on that filtered file. Low prority since the old data already has filtered files. |
|
| 2026-10-24 | EventBuilderV2 | EBPMT, EBSaver | RWM/BRF/BES buffer pointers are uninitialised and their Get results unchecked. |
|
| 2026-10-24 | EventBuilderV2 | EBPMT, PMTDataDecoder | RWM/BRF/BES waveforms are copied with operator[] (can overwrite entries, copies twice). Use emplace + std::move. |
|
| 2026-10-24 | All Tools that Set pointers in the CStore |
Pointers set in the CStore with persist=true (the default) are re-serialised each time they are updated, which is a particularly heavy operation for containers and large data structures. Since the CStore is never saved to file there is no need for serialisation, so pointers placed in the CStore should always use persist=false to avoid needless overhead. |
||
| 2026-10-24 | EBLAPPD, EBLoadRaw, EBMRD, EBPMT, EBSaver, EBTriggerGrouper, LAPPDLoadTXT | Verbosity constants use a non-standard order (v_message = 1, v_warning = 2, v_error = 3, v_debug = 4) instead of the usual v_error = 0, v_warning = 1, v_message = 2, v_debug = 3, so messages appear at lower verbosity than warnings and errors. |
||
| 2026-10-24 | EventBuilderV2, EventBuilderV2_laser | LAPPDLoadStore | An old-format offsetFitResult.root gives garbage LAPPD times (unchecked branches). Only new files are to be used or add checks for legacy file handling. |
|
| 2026-10-24 | EventBuilderV2 (all) | EBSaver | If several MRD readouts are within 1 ms of a trigger, each overwrites the previous TDCData but all are removed from the buffer, so only the last is saved and the rest are lost (link). Probably rare. |
|
| 2026-10-24 | EventBuilderV2 (all) | EBSaver | If one trigger group pairs with two PMT readouts, Hits (and RawWaveformMap) are merged, but RecoADCData, AuxHits, RecoAuxADCData, RawAcqSize, EventTimeTank and the RWM/BRF/BES waveforms are overwritten, so only the last readout's values are kept (link) |
|
| 2026-10-24 | EventBuilderV2 (all) | EBLoadRaw | With ReadTriggerOverlap 0, TrigData is never set and CTCEntryNum never advances (both are only in the overlap branch), so CTC data isn't loaded. Not hit now: all configs use ReadTriggerOverlap 1. |
|
| 2026-10-24 | BeamFetcherV2 | BeamFetcherV2 |
IsBundle 0 doesn't work: the single-device query URL is missing &t0=, results from different devices aren't merged for the same timestamp (map::insert keeps only the first), and BeamDataQuery is never cleared between queries. ToolChain uses IsBundle 1, so it never hit. |