Skip to content

H — Performance & efficiency #356

@GernotMaier

Description

@GernotMaier

see also #352

H1 · HIGH · evndisp keeps time-sliced pedestal analysis enabled during normal data reconstruction

Location: EventDisplay_v4/src/VEventLoop.cpp:490-495,1442-1461; EventDisplay_v4/src/VPedestalCalculator.cpp:30-199,280-381; logFiles/analysis/64080.log:71,598-599
On the exercised run, evndisp processes ~205 events/s (543 481 events in 44:04). The active
path still performs pedestal-variance bookkeeping for every telescope during standard
reconstruction: VPedestalCalculator::doAnalysis() loops over hit channels, recomputes trace
sums for every summation window, and fills per-pixel histograms.
Impact: A calibration-style side analysis remains in the hottest reconstruction loop and is a
plausible first-order contributor to the 16× throughput gap between evndisp (~205 ev/s) and
mscw_energy (~3 229 ev/s).

H2 · MEDIUM · evndisp repeats invariant low-gain/sum-window validation in the per-event loop

Location: EventDisplay_v4/src/VEventLoop.cpp:1204-1292
The analysis path rechecks availability of low-gain multipliers for sumwindow_1,
sumwindow_2, and sumwindow_pass1 on every event for every telescope, even though these are
run-level constants after initialisation.
Impact: Avoidable branch-heavy work repeated millions of times in long runs.

H3 · HIGH · anasum double-scans mscw.root and reinitialises TMVA twice per run

Location: EventDisplay_v4/src/VAnaSum.cpp:464-465; EventDisplay_v4/src/VStereoAnalysis.cpp:264-349,434-448; EventDisplay_v4/src/VTMVAEvaluator.cpp:366-511; logFiles/analysis/64080.anasum.log:97-103,237-243
In the reflected-background path, ON and OFF both point to the same mscw.root, yet VAnaSum
runs separate passes. Each pass reads 174 937 entries and rebuilds the gamma/hadron TMVA
readers from disk.
Impact: For every run, anasum roughly doubles tree I/O and repeats expensive TMVA and
effective-area initialisation that could be shared.

H4 · MEDIUM · anasum uses a linear TMVA-bin search with recomputed mean energies per event

Location: EventDisplay_v4/src/VTMVAEvaluator.cpp:714-745,802-839
Each gamma/hadron evaluation calls getDataBin(), which scans all loaded bins and recomputes
the mean energy of each candidate before evaluating the selected reader.
Impact: Avoidable per-event classifier overhead in the inner anasum loop, especially with
many energy/zenith bins.

H5 · MEDIUM · Multi-run anasum jobs scale as O(runs × total entries in chain)

Location: EventDisplay_v4/src/VAnaSum.cpp:464-465; EventDisplay_v4/src/VStereoAnalysis.cpp:434-450
fillHistograms() loops over all chain entries and then filters by runNumber == irun; each
run-specific pass re-reads entries from all other runs.
Impact: Runtime can grow toward O(runs × total_entries) instead of near-linear.

H6 · MEDIUM · evndisp reads pedestal calibration inputs redundantly during initialisation

Location: logFiles/analysis/64080.log:247-252,263-268,275-280,291-296
The same telescope-level pedestal products are read twice in succession during calibration setup.
Impact: Duplicated calibration I/O in the slowest stage of the data pipeline.

H7 · MEDIUM · mscw_energy repeatedly rebuilds TMVA datasets instead of amortising setup

Location: logFiles/analysis/64080.mscw.log:156-169; logFiles/irfs/20deg_0.5wob_NOISE200.mscw.log:261-277
Both data-side and MC-side logs contain repeated Rebuilding Dataset Default messages.
Impact: Avoidable setup churn, expensive when multiplied across large IRF productions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions