MUSIC unknown
Analysis for the MUSIC active-target ionization chamber
Loading...
Searching...
No Matches
ChannelCal Struct Reference

One readout channel's beam-peak calibration. More...

#include <CalibrateBeam.hpp>

Public Attributes

TString name
 Channel name from the active channel map.
Char_t side
 Readout end: 'L' or 'R' for the split strips 1-16, 'S' for the unsplit end strips 0 and 17, 'C' for the cathode, 'G' for the grid.
Int_t strip
 Anode strip index this channel reads; -1 for the cathode.
Double_t fit_adc = 0.0
 Modal beam peak, in ADC: the modal bin of the channel's beam-peak histogram (100 bins over the 5th-95th percentile of the samples), or the median for the cathode, which has no clean peak.
Long64_t n_samples = 0
 Events the anchor was taken from.
Double_t gain = -1.0
 Left/right gain-match override.
Double_t offset_adc = 0.0
 ADC subtracted from this channel before its gain, only when the channel fired (a reading of 0 stays 0).
Double_t ridge_ratio = 0.0
 Short channels only: C_short / C_long = -1 / slope from this subfile's own ridge fit, or 0 when the ridge was not measurable and a fallback was used.
Double_t ridge_offset = 0.0
 Short channels only: offset_adc in units of C_long, from this subfile's own ridge fit, aggregated over a run like ridge_ratio.

Detailed Description

One readout channel's beam-peak calibration.

Produced per subfile by CalibrateBeam, and consumed by EnergyView to turn raw ADC into calibrated units.

Definition at line 44 of file CalibrateBeam.hpp.

Member Data Documentation

◆ fit_adc

Double_t ChannelCal::fit_adc = 0.0

Modal beam peak, in ADC: the modal bin of the channel's beam-peak histogram (100 bins over the 5th-95th percentile of the samples), or the median for the cathode, which has no clean peak.

No fit and no width. 0 when uncalibrated (too few samples).

For the long end of a segmented strip this is its anchor; for the short end it only seeds the ridge fit: see gain.

Definition at line 57 of file CalibrateBeam.hpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile(), Gain(), IsCalibrated(), ReduceToAnchors(), and WriteCalibrationTree().

◆ gain

Double_t ChannelCal::gain = -1.0

Left/right gain-match override.

When >= 0 this is used instead of 1 / fit_adc; when negative the reciprocal fit is used.

Set by the gain-match step. The long end is anchored on its own modal beam peak, which is the full deposit for the majority of beam events that leave the short end silent. A robust line through the beam-gated (short, long) pairs, the charge-sharing ridge, has slope -k and intercept a; the short end's anchor is C_long / k and its offset (offset_adc) (a - C_long) / k, the sideways shift of the ridge relative to the long-only peak. With gain x (ADC - offset) on a short end that fired, events with and without a short hit sum to the same total. Where the ridge is not measurable the short side falls back to the parity's median C_short / C_long and median offset, or the global median ratio and no offset. This puts left and right on the same charge scale, so reaction events — which share charge between ends differently than beam events do — no longer sawtooth between even and odd strips.

Definition at line 76 of file CalibrateBeam.hpp.

Referenced by Gain(), and WriteCalibrationTree().

◆ n_samples

Long64_t ChannelCal::n_samples = 0

Events the anchor was taken from.

Definition at line 58 of file CalibrateBeam.hpp.

Referenced by CalibrateBeam::CalibrateBeamOneSubfile(), ReduceToAnchors(), and WriteCalibrationTree().

◆ name

TString ChannelCal::name

Channel name from the active channel map.

Definition at line 45 of file CalibrateBeam.hpp.

Referenced by CalibrateBeam::BuildChannels(), CalibrateBeam::CalibrateBeamOneSubfile(), and ReduceToAnchors().

◆ offset_adc

Double_t ChannelCal::offset_adc = 0.0

ADC subtracted from this channel before its gain, only when the channel fired (a reading of 0 stays 0).

Short ends of strips 1-16 only, from the ridge; 0 elsewhere. On 37Cl the R-chain short ends carry 100-230 ADC of it, the L-chain ones a few tens.

Definition at line 81 of file CalibrateBeam.hpp.

Referenced by WriteCalibrationTree().

◆ ridge_offset

Double_t ChannelCal::ridge_offset = 0.0

Short channels only: offset_adc in units of C_long, from this subfile's own ridge fit, aggregated over a run like ridge_ratio.

Definition at line 94 of file CalibrateBeam.hpp.

Referenced by WriteCalibrationTree().

◆ ridge_ratio

Double_t ChannelCal::ridge_ratio = 0.0

Short channels only: C_short / C_long = -1 / slope from this subfile's own ridge fit, or 0 when the ridge was not measurable and a fallback was used.

This is a preamplifier gain ratio and therefore fixed per channel. That is what lets AggregateRidgeRatiosForRun() take the run-level median over the subfiles that measured it (three or more) and rewrite each subfile's stored short-side gain from that median and its own long anchor; it edits the calibration tree, not this record.

Definition at line 91 of file CalibrateBeam.hpp.

Referenced by WriteCalibrationTree().

◆ side

Char_t ChannelCal::side

Readout end: 'L' or 'R' for the split strips 1-16, 'S' for the unsplit end strips 0 and 17, 'C' for the cathode, 'G' for the grid.

Definition at line 48 of file CalibrateBeam.hpp.

Referenced by CalibrateBeam::BuildChannels(), CalibrateBeam::CalibrateBeamOneSubfile(), CollectAnchorSamplesOneSubfile(), ReduceToAnchors(), and WriteCalibrationTree().

◆ strip

Int_t ChannelCal::strip

Anode strip index this channel reads; -1 for the cathode.

Definition at line 49 of file CalibrateBeam.hpp.

Referenced by CalibrateBeam::BuildChannels(), CalibrateBeam::CalibrateBeamOneSubfile(), CollectAnchorSamplesOneSubfile(), and WriteCalibrationTree().


The documentation for this struct was generated from the following file: