BNMR: Histograms and Scalers
The data from the bnmr or bnqr experiments largely consists of histogrammed scaler data. The scaler data are read from the Multichannel Scaler(s) SIS3801 (bnmr) or SIS3820 (bnqr). The scaler data is histogrammed and saved differently depending on whether the run is Type 1 or Type 2.
- experiment bnmr has two SIS3801 scalers known as Scaler A and Scaler B
- experiment bnqr has one SIS3820 scaler, Scaler B
- The sis3820 scaler is needed for bnqr alpha mode as it has a larger buffer and greater resolution.
BNQR has two scalers (SIS3801E), Scaler A and Scaler B.
|A||SIS3801||1||Front scalers (16 segments summed in hardware)|
|2||Front scalers (16 segments summed in hardware)|
|Total number of real scaler inputs : 2|
Input signals are not usually attached to the lowest two channels in Scaler B (Scaler Internal Clock and Fluorescence Monitor).
The data from the first input (Scaler Internal Clock) is used for testing as it should have a constant value in all bins. An external signal (e.g. pulser) is sometimes input to the Fluorescence Monitor input for testing. The data from these inputs is read out and histogrammed.
|B||SIS3801||1||Scaler Internal Clock (not connected)|
|2||Fluorescence Monitor (not used)|
|3,4||Polarimeter counters (2)|
|5,6,7,8||Neutral Beam Forwards counters (4)|
|9,10,11,12||Neutral Beam Backwards counters (4)|
|Total number of real scaler inputs : 12|
BNQR has only one scaler (SIS3820), Scaler B.
Input signals are not usually attached to the lowest two channels (Scaler Internal Clock and Flueorescence Monitor). The data from the first input (Scaler Internal Clock) is used for monitoring, as it should have a constant value in all bins. An external signal (e.g. pulser) is sometimes input to the Fluorescence Monitor input for testing. The data from these inputs is read out and histogrammed in all experimental modes except Mode 2h (Alpha mode).
|Scaler||Module||Channel||Contents||Scaler Channel Active|
|Non-alpha Modes||* 1h||** 2h|
|B||SIS3820 *||1||Scaler Internal Clock (not connected)||Y||Y||N *|
|17||Fluorescence Monitor (not used)||Y||Y||N *|
|18,19||Polarimeter counters (2)||Y||Y||Y|
|20||Neutral Beam Forwards counter (summed in hardware)||Y||Y||Y|
|21||Neutral Beam Backwards counter (summed in hardware)||Y||Y||Y|
|Total number of real scaler inputs||6||10||8|
The highest four Scaler inputs are used for the Alpha Counters. These are ignored in all experimental modes except for
- 1h * (i.e. experimental mode "1f" where the Alpha counters have been selected)
- 2h ** (Alpha mode)
** In Alpha mode the two lowest scaler channels (see above) are ignored in order to save memory.
* SIS3820 module has ECL inputs 1-16, NIM 17-32. Therefore BNQR's input channel start at 17 (NIM).
The Scaler Modules contain a buffer (FIFO) for the data. This FIFO is larger in the SIS3820 module than the SIS3801, so the SIS3820 can buffer more data. During the PPG cycle, the scaler time bins collect data in turn as the PPG steps through the time bins (via PPG MCS Next output signal connected to Scaler LNE input). This data is stored in the Scaler FIFO. During the PPG cycle, the scaler data is read out periodically, ensuring that the FIFO does not become full.
The selected format of the scaler data is "24-bit", where the channel and user-bits are encoded in the top 8 bits of the 32-bit data word, and the data is in bits 0-23. See Manual for details.
Histograms are built by a combination of the frontend and the data logger. Various manipulations can be performed on the data read from the scalers, with different manipulations for Type 1 (TI/integral) and Type 2 (TD/time-differential) modes.
Type 1 histograms
The final output of Type 1 (integral) runs are histograms with one bin per cycle/super-cycle. I.e. if the MCS has 100 bins per PPG cycle and we run for 20 cycles, the final histogram will be 20 bins long. In general all 100 time bins are summed together to create the final output bin. The final histogram is effectively an array of counts per cycle as the run progresses.
The frontend does very little manipulation to the data, and just sends the full data for each cycle to the MUD logger.
The logger can perform a few manipulations on the data:
- Create separate histograms based on the helicity polarity, with
-appended to the histogram title. If the helicity is
+and the data for a cycle looks like
10would be appended to
histo_name+and 0 appended to
- Create separate histograms based on the user bits. This is currently quite specific, with hard-coded suffixes like
_ref0appended to the histogram titles. If the data for a cycle looks like
1,2,3,4with corresponding user bits
4would be appended to
histo_name_frq0and 6 appended to
- Create separate histograms based on bin ranges. Some modes state that certain ranges of bins should be summed separately (e.g. a signal region and a background region). The configuration is generally set up by the RF calculator, which can set both the bin ranges and the suffixes to add to the histogram ranges.
Type 2 histograms
The final output of Type 2 (differential) runs are histograms with one bin per time bin. I.e. if the MCS has 100 bins per PPG cycle and we run for 20 cycles, the final histogram will be 100 bins long.
The frontend can perform a few manipulations on the data:
- Create separate histograms based on the helicity polarity.
- Create separate histograms based on the microwave sample/reference state (for some bnqr modes).
The logger does very little manipulation to the data, and just writes the banks it receives from the frontend as MUD histograms.
The frontend can compute various numerical values based on the data read from the MCS. The values can be:
- Per-run or per-cycle
- Sums of one or more channels
- Ratios/asymmetries of two channels
- Specific or agnostic to a helicity polarity, microwave sample/reference state, user bit value
These values can be recorded in EPICS, in the ODB, and as a bank sent to the logger (called
HSCL). Many of these values are shown on the status page of the experiment. The MUD logger only writes the values to file for type 2 runs (historical reasoning unknown).
The frontend configuration is rather complex, but doesn't change often, so is done in the frontend code itself. This includes defining the midas bank names that will be used to send data to the logger.
The MUD logging configuration is done via the ODB at /MUD Logging/Histos/Settings. This includes specifying what to do with each midas bank that the logger receives from the frontend. It is most easily edited using the logging webpage.