Skip to main content
LARDON uses a two-level parameter system:
  1. Global defaults — loaded from $LARDON_PATH/settings/default_reco_parameters.json for every run.
  2. Detector overrides — loaded from $LARDON_PATH/settings/{detector}/reco_parameters.json on top of the defaults.
  3. Run-range overrides — within the detector file, keys of the form "runstart-runend" are applied when the run number falls in that range.
The detector file must have a "default" section (applied to all runs) and may have additional run-range sections. Only the first matching run-range section is applied.
default_reco_parameters.json   ← always loaded
        ↓ overridden by
{detector}/reco_parameters.json["default"]   ← always loaded for that detector
        ↓ overridden by
{detector}/reco_parameters.json["runstart-runend"]   ← applied when run matches
Both files use JSONC (JSON with comments). C-style block comments (/* */) and line comments (//) are valid anywhere in these files.
To inspect the parameters actually used for a given run, LARDON prints them at startup when run with verbose output. You can also call reconstruction_parameters.dump() programmatically.

Parameter reference

pedestal

Controls the iterative RMS-based pedestal estimation used to define regions of interest (ROIs).
ParameterDefaultDescription
raw_rms_thr3RMS multiplier for the initial ROI seed. Samples above raw_rms_thr × RMS are considered signal.
n_iter2Number of iterations for the ROI-constrained RMS computation. More iterations converge to a cleaner baseline estimate.

mask

Fine-grained ROI masking applied after the pedestal step. Parameters differ between collection (unipolar) and induction (bipolar) views.

mask.coll — collection views

ParameterDefaultDescription
min_dt10Minimum ROI duration in ticks. Shorter regions are discarded.
low_thr[2.0, 2.0]Two-pass low RMS threshold [first_pass, second_pass] for the ROI opening.
high_thr[5.0, 3.0]Two-pass high RMS threshold [first_pass, second_pass] for peak confirmation.
min_rise3Minimum number of ticks on the rising edge of a pulse.
min_fall8Minimum number of ticks on the falling edge of a pulse.
pad_bef10Ticks added before the ROI start.
pad_aft15Ticks added after the ROI end.

mask.ind — induction views

Induction signals are bipolar (positive then negative lobe). Parameters are split into pos (positive lobe) and neg (negative lobe) sub-sections, plus shared parameters. Shared:
ParameterDefaultDescription
max_dt_pos_neg20Maximum allowed tick separation between positive and negative lobes of the same bipolar signal.
pad_bef10Ticks added before the ROI start.
pad_aft15Ticks added after the ROI end.
mask.ind.pos — positive lobe:
ParameterDefaultDescription
min_dt8Minimum duration of the positive lobe in ticks.
low_thr[1.8, 2.0]Two-pass low RMS threshold.
high_thr[2.5, 3.0]Two-pass high RMS threshold.
min_rise3Minimum rising-edge ticks.
min_fall1Minimum falling-edge ticks.
mask.ind.neg — negative lobe:
ParameterDefaultDescription
min_dt8Minimum duration of the negative lobe in ticks.
low_thr[-1.8, -1.8]Two-pass low RMS threshold (negative values).
high_thr[-2.5, -2.5]Two-pass high RMS threshold (negative values).
min_rise1Minimum rising-edge ticks.
min_fall3Minimum falling-edge ticks.

noise

noise.coherent — coherent noise subtraction

Groups of channels sharing the same front-end card exhibit correlated (coherent) noise. LARDON subtracts the median waveform of each group.
ParameterDefaultDescription
groupings[32]List of group sizes for coherent noise subtraction. Each value defines a grouping level.
per_view0If 1, perform coherent subtraction per view rather than per card.
per_view_per_card1If 1, perform coherent subtraction per view within each card group (default mode).
capa_weight0If 1, weight channel contributions by their capacitance when computing the group median.
calibrated0If 1, use calibrated channel gains when computing the coherent noise estimate.

noise.fft — FFT low-pass filter

ParameterDefaultDescription
freq-1Frequency in MHz of a notch filter to remove a specific noise line. Set to -1 to disable.
low_cut0.6Low-pass cutoff frequency in MHz. Frequencies above this value are attenuated.
gaus_sigma0.02Gaussian roll-off width in MHz for the low-pass filter edge.

noise.microphonic — microphonic noise removal

ParameterDefaultDescription
window-1Size of the sliding median window in ticks for microphonic noise removal. Set to -1 to disable.

hit_finder

hit_finder.coll — collection hit finding

ParameterDefaultDescription
amp_sig[2.5, 5.5]Two-threshold amplitude in units of RMS: [low_threshold, high_threshold]. A hit is seeded at high_threshold and extends down to low_threshold.

hit_finder.ind — induction hit finding

ParameterDefaultDescription
amp_sig2.0Amplitude threshold in units of RMS for induction hits.
merge_tdc_thr10Maximum tick gap between two adjacent induction hit candidates to merge them into one.

Shared hit-finder parameters

ParameterDefaultDescription
dt_min10Minimum hit duration in ticks. Hits shorter than this are rejected.
min_thr0.5Absolute minimum amplitude threshold in RMS units.
pad.left10Ticks prepended to each hit window.
pad.right20Ticks appended to each hit window.

track_2d

Parameters for building 2D track segments within a single wire view using a Hough-transform seed and a Kalman-filter extension.
ParameterDefaultDescription
min_nb_hits5Minimum number of hits required to form a 2D track.
rcut6.0Search radius in mm for associating hits to a track candidate.
chi2cut8.0Maximum χ² per degree of freedom for adding a hit to an existing track.
y_error0.5Initial position error estimate for the Kalman filter (in mm).
slope_error1.0Initial slope error estimate for the Kalman filter.
pbeta3.0Momentum–velocity product estimate used in the Kalman filter (in MeV).
slope_max50Maximum allowed track slope. Tracks steeper than this are rejected.
hough_win_X10.0Hough transform accumulator window in the X direction (mm).
hough_win_Z20.0Hough transform accumulator window in the Z direction (mm).
hough_n_min5Minimum number of hits in a Hough bin to declare a seed.
hough_theta_res1.0Angular resolution of the Hough accumulator in degrees.
hough_rho_res0.25Distance resolution of the Hough accumulator in mm.
hough_min_score4Minimum Hough score to accept a seed.
max_gap2.0Maximum gap in mm between consecutive hits along a track.
dray_thr2.0Delta-ray detection threshold (in RMS units).
dray_dmax6.0Maximum distance in mm to associate a hit with a delta ray.

stitching_2d

Parameters for stitching together 2D track segments within a module or across modules informed by 3D reconstruction.
SectionParameterDefaultDescription
in_modulealign_thr0.98Minimum alignment (dot product) between track directions to stitch within a module.
in_moduledma_thr3.0Maximum distance of minimum approach in mm.
in_moduledist_thr10.0Maximum endpoint-to-endpoint distance in mm.
from_3dalign_thr0.96Alignment threshold when stitching using 3D information.
from_3ddma_thr8.0Distance of minimum approach threshold when using 3D information (mm).
from_3ddist_thr15.0Endpoint distance threshold when using 3D information (mm).

track_3d

Parameters for assembling 3D tracks from 2D segments across wire views.
ParameterDefaultDescription
trk_ztol3.0Maximum Z difference in mm at 2D track boundaries for matching across views.
hit_ztol1.0Z tolerance in mm when matching individual hits across views.
len_min2.0Minimum 2D track length in mm to be considered as input to 3D building.
d_thresh0.5Tolerance in mm when searching for a 3D intersection point.
min_z_overlap10.0Minimum Z overlap in mm required between two 2D tracks to attempt 3D matching.
trk_min_dz15.0Minimum Z extent in mm for a 2D track to be considered in 3D matching.
trk_min_dx8.0Minimum X extent in mm for a 2D track to be considered in 3D matching.
timing.dx_tol[3.0, 0.5]X-boundary tolerance in mm per drift volume for timing-based matching.
timing.dy_tol[3.0, 3.0]Y-boundary tolerance in mm per drift volume.
timing.dz_tol2.0Z-boundary tolerance in mm.
timing.drift_tol10Drift-time tolerance in ticks.

stitching_3d

Parameters for stitching 3D track segments across module or cathode boundaries.
SectionParameterDefaultDescription
moduledist_thr8.0Maximum endpoint distance in mm for module-boundary stitching.
modulealign_thr0.98Minimum direction alignment for module-boundary stitching.
moduleboundary_tol5.0Tolerance in mm from the module boundary plane.
cathodedx_thresh10.0Maximum X separation in mm across the cathode.
cathodedy_thresh10.0Maximum Y separation in mm across the cathode.
cathodedz_thresh10.0Maximum Z separation in mm across the cathode.
cathodealign_thresh0.96Minimum direction alignment across the cathode.
cathodeboundary_tol5.0Tolerance in mm from the cathode plane.

ghost

ParameterDefaultDescription
search1Enable (1) or disable (0) ghost track identification.
dmin10.0Minimum distance in mm between a real track and a ghost track candidate.

single_hit

Parameters for reconstructing isolated charge deposits not associated with any track.
ParameterDefaultDescription
max_per_view3Maximum number of single-hit candidates per view. Events with more candidates are vetoed.
outlier_dmax2.5Maximum distance in mm from the cluster centroid to accept a hit as non-outlier.
cluster_eps2.0DBSCAN epsilon parameter in mm for clustering single-hit candidates.
dist_veto5.0Minimum distance in mm from any track; hits closer than this are vetoed.
max_bary20.0Maximum barycenter displacement in mm.

pds

Parameters for reconstructing photon detection system (PDS) waveforms. These are only used when reconstruction is run with the -pds flag.

pds.pedestal

ParameterDefaultDescription
raw_adc_thresh200ADC threshold for the initial PDS pedestal estimation.
rms_thresh3RMS multiplier for signal ROI detection in PDS waveforms.
n_iter3Number of iterations for PDS pedestal RMS computation.

pds.noise

ParameterDefaultDescription
flat_baseline_window4000Window size in PDS ticks for flat baseline estimation.

pds.hit_finder

ParameterDefaultDescription
amp_sig[5, 8]Two-threshold amplitude in RMS units [low, high] for PDS peak finding.
dt_min50Minimum PDS hit duration in ticks.
pad.left30Ticks prepended to each PDS hit window.
pad.right50Ticks appended to each PDS hit window.

pds.cluster

ParameterDefaultDescription
max_lag50Maximum lag in PDS ticks for waveform cross-correlation alignment.
time_tol5Time tolerance in µs for grouping PDS hits into a cluster.

pds.tpc_matching

All time tolerances are in µs.
ParameterDefaultDescription
min_cluster_size2Minimum number of PDS hits in a cluster to attempt TPC matching.
trigger.time_tol_bef/aft[5] / [5]Time window in µs before/after the trigger time.
anode_crosser.time_tol_bef/aft[5] / [5]Time window for anode-crossing track matching, per drift volume.
cathode_crosser.time_tol_bef/aft[5, 5] / [5, 5]Time window for cathode-crossing track matching, per drift volume.
unknown.time_tol_bef/aft[5, 5] / [5, 5]Time window for unclassified track types.
single_hits.time_tol5Time tolerance for matching PDS clusters to single hits.

Detector-specific example: pdvd

The pdvd detector overrides a number of defaults to account for its multi-module geometry. Parameters that accept arrays receive one value per module (4 modules in the default configuration). For example:
{
  "default": {
    "hit_finder": {
      "coll": {
        "amp_sig": [[1.8, 2.4], [1.8, 2.4], [1.6, 2.2], [1.6, 2.2]]
      },
      "ind": {
        "amp_sig": [1.6, 1.6, 1.5, 1.5]
      }
    },
    "noise": {
      "microphonic": {
        "window": 400
      },
      "coherent": {
        "calibrated": 1
      }
    },
    "track_2d": {
      "min_nb_hits": 10
    }
  },
  "42000-99999": {
    "hit_finder": {
      "coll": {
        "amp_sig": [[1.8, 2.8], [1.8, 2.8], [1.8, 2.8], [1.8, 2.8]]
      }
    }
  }
}
Key differences from the global defaults:
  • hit_finder.coll.amp_sig — per-module, per-pass thresholds instead of a single pair.
  • noise.microphonic.window — enabled at 400 ticks (disabled by default).
  • noise.coherent.calibrated — set to 1 to use calibrated gains.
  • track_2d.min_nb_hits — raised to 10 (global default is 5).

Build docs developers (and LLMs) love