-
Notifications
You must be signed in to change notification settings - Fork 16
SettingsFile
The settings file tells MiniballSort about the hardware configuration, so it knows what detectors it has, which modules it has and how they are connected. It also has some flags and parameters to determine how to treat the data and a couple of time windows needed to build physical events within a single detector type at the event builder stage.
-
PileupRejection- determines whether events should be rejected if the pile-up flag from the MWD firmware is set (default: false). Data is still filled to the time-ordered raw event tree, but will be rejected at the event-builder stage. Filling of the histograms in the raw ROOT file will however depend on the value of this flag, even in-sourcemode. This allows the user to use the raw tree for diagnostic purposes because the flag is available in the FebexData class. It also means that this flag can be toggled later without needing to unpack and time-order the data again, only the event-builder stage needs rerunning by passing the-eflag. -
ClippedRejection- determines whether events should be rejected if the pulse went over range of the ADC and the clipped flag is set by the MWD firmware (default: true). As with thePileupRejectionflag, data is still written to the time-ordered ROOT tree but not filled in the histograms. -
FebexDataOnly- currently ignored, but was intended for debugging purposes, particularly in the case that the HI-REX data enters the MIDAS data stream in the future and breaks some compatibility in format. -
MbsEventSort- When the DAQ ran in MBS mode for the 2022 physics campaign, the readout was triggered and each had an EventID assigned. Enabling this flag sorts the MBS data by this EventID rather than by absolute timestamp (default: true). It has no effect for MED data or MIDAS data. -
DataBlockSize- The size of the data block size written by the MIDAS TapeServer (default: 0x10000 = 64 kB).
The following are to handle corrupt data from 2023. The bug in the DAQ that caused them was fixed on 3rd October 2023, so data after that doesn't need these options, nor does the old DGF data.
-
BufferFullRejection- boolean reject buffer after a full buffer (default = false) -
BufferPartRejection- boolean reject partial buffers (default = false)
The main time window to be controlled by the user is the event builder correlation window, which is the static time width over which events are correlated from the first trigger.
-
EventWindow- Event-builder correlation window in units of ns (default: 3000 = 3.0 µs).
The following "hit windows" concern the event builder stage, where a single detector might have multiple "hits" that need to be correlated to form a single "particle". An example is the correlation of p-side and n-side "hits" in the CD detector that are produced by a single particle interaction. There may also be an additional PAD detector behind when in telescope configuration, which will register a further "hit" that needs to be reconstructed in the event builder stage.
-
MiniballCrystalHitWindow- for core-segment coincidences in Miniball in units of ns (default: 400 ns) -
MiniballAddbackHitWindow- for core-core coincidences, i.e. addback, in Miniball in units of ns (default: 400 ns) -
CDHitWindow- for p-n or p-p, or n-n coincidences in the CD in units of ns (default: 200 ns) -
PadHitWindow- for CD-PAD coincidences in units of ns (default: 200 ns) -
IonChamberHitWindow- for gas-silicon coincidences in the ionisation chamber in units of ns (default: 500 ns)
The miniball clusters are indexed by the cluster number (0 to 7), the detector/crystal number (0 to 2) and the segment number (0 = core, segments 1 to 6).
The CD is indexed by CD number (0 = forward, 1 = backward), quadrant (0 to 3), strip (depends on the kind of CD and which side), side (0 = p-type rings, 1 = n-type sectors)
The PAD is also indexed by PAD number (0 = forward, 1 = backward) and quadrant (0 to 3).
The febex modules are indexed by SFP, board and channel, while the modules from the old DAQ are indexed by module number and channel.
It has things like:
how many SFPs it has. e.g.
NumberOfFebexSfps: 2 # total number of SFPs delivering data
how many pulsers and which SFP, board and channel they are on. eg.
NumberOfPulsers: 2Pulser_0.Sfp: 0 # Location of the first pulser in the DAQPulser_0.Board: 12Pulser_0.Channel: 0Pulser_1.Sfp: 1 # Location of the second pulser in the DAQPulser_1.Board: 9Pulser_1.Channel: 8
It also has the SFP, board and channel for the EBIS pulse, T1 (proton impact on primary ISOLDE target), supercycle start and RILIS. e.g.
EBIS.Sfp: 1EBIS.Board: 9EBIS.Channel: 0T1.Sfp: 1 # Location of the T1 signal in the DAQT1.Board: 9T1.Channel: 2SC.Sfp: 1 # Location of the SC signal in the DAQSC.Board: 9SC.Channel: 6RILIS.Sfp: 1 # Location of the RILIS Laser signal in the DAQRILIS.Board: 9RILIS.Channel: 4
Swapped channels. e.g. swapping MB10081: C1 <-> C2
Miniball_3_2_1.Channel: 11Miniball_3_2_2.Channel: 10
Where the channels for the PAD detectors are e.g.
Pad_0_0.Sfp: 1Pad_0_1.Sfp: 1Pad_0_2.Sfp: 1Pad_0_3.Sfp: 1Pad_0_0.Board: 9Pad_0_1.Board: 9Pad_0_2.Board: 9Pad_0_3.Board: 9Pad_0_0.Channel: 9Pad_0_1.Channel: 11Pad_0_2.Channel: 13Pad_0_3.Channel: 15
Ionisation chamber e.g.
NumberOfIonChamberLayers: 0 # Number of layers in the ionisation chamber usually 2, dE (gas = 0) and E (Si = 1)IonChamber_0.Sfp: 1IonChamber_0.Board: 9IonChamber_0.Channel: 12IonChamber_1.Sfp: 1IonChamber_1.Board: 9IonChamber_1.Channel: 14
Here's the full list:
-
NumberOfFebexSfps- number of SFPs (default = 2) -
NumberOfFebexBoards- maximum number of febex boards (default = 16) -
NumberOfFebexChannels- maximum number of febex channels (default = 16) -
NumberOfMiniballClusters- number of Miniball clusters (default = 8) -
NumberOfMiniballCrystals- number of crystals per miniball cluster (default = 3) -
NumberOfMiniballSegments- number of segments per crystal including the core (default = 7) -
NumberOfCDDetectors- number of CD detectors (default = 1) -
NumberOfCDSectors- number of CD quadrants (default = 4) -
NumberOfCDStrips.P- number of rings on the P side (default = 16) -
NumberOfCDStrips.N- number of sector channels per quadrant on the N side (default = 12) -
NumberOfBeamDumpDetectors- number of beam dump detectors (default = 1) -
NumberOfSpedeSegments- number of spede segments (default = 0 or 24, depending on context) -
NumberOfIonChamberLayers- number of layers (e.g. gas and Si are two layers) of ionisation chamber (default = 2) -
NumberOfPulsers- number of pulsers (default = 2) -
EBIS.Sfp- febex SFP of EBIS pulse (default = 1) -
EBIS.Board- febex board of EBIS pulse (default = 10) -
EBIS.Channel- febex channel of EBIS pulse (default = 0) -
T1.Sfp- febex SFP of proton impact (T1) signal (default = 1) -
T1.Board- febex board of proton impact (T1) signal (default = 10) -
T1.Channel- febex channel of proton impact (T1) signal (default = 2) -
SC.Sfp- febex SFP of supercycle start signal (default = 1) -
SC.Board- febex board of supercycle start signal (default = 10) -
SC.Channel- febex channel of supercycle start signal (default = 4) -
RILIS.Sfp- febex SFP of laser on/off signal (default = 1) -
RILIS.Board- febex board of laser on/off signal (default = 10) -
RILIS.Channel- febex channel of laser on/off signal (default = 6) -
Miniball_%d_%d_%d.Sfp- febex SFP for the cluster, detector and segment (default = 0) -
Miniball_%d_%d_%d.Board- febex board for the cluster, detector and segment (default assumes channels are in order) -
Miniball_%d_%d_%d.Channel- febex or DGF channel for the cluster, detector and segment (default assumes channels are in order) -
CD_%d_%d_%d.%s.Sfp- febex SFP for ith CD, jth quadrant, kth strip, (0 = p-side rings, 1 = n-side sectors) -
CD_%d_%d_%d.%s.Board- febex board for ith CD, jth quadrant, kth strip, (0 = p-side rings, 1 = n-side sectors) -
CD_%d_%d_%d.%s.Channel- febex or ADC channel for ith CD, jth quadrant, kth strip, side (0 = p-side rings, 1 = n-side sectors) -
Pad_%d_%d.Sfp- febex SFP for PAD number, quadrant -
Pad_%d_%d.Board- febex board for PAD number, quadrant -
Pad_%d_%d.Channel- febex or ADC channel for PAD number, quadrant -
BeamDump_%d.Sfp- febex SFP of ith beam dump detector (default = 1) -
BeamDump_%d.Board- febex board of ith beam dump detector (default = 10) -
BeamDump_%d.Channel- febex or DGF channel of ith beam dump detector (default = i * 2 + 1) -
Spede_%d.Sfp- febex SFP of ith SPEDE channel -
Spede_%d.Board- febex board of ith SPEDE channel -
Spede_%d.Channel- febex or ADC channel of ith SPEDE channel -
IonChamber_%d.Sfp- febex SFP of ith ionisation chamber layer (i = 0 for gas, i = 1 for Si) (default = 1) -
IonChamber_%d.Board- febex board of ith ionisation chamber layer (i = 0 for gas, i = 1 for Si) (default = 10) -
IonChamber_%d.Channel- febex or DGF channel of ith ionisation chamber layer (i = 0 for gas, i = 1 for Si) (default assumes they are after beam dump detectors) -
Pulser_%d.Sfp- febex SFP for ith pulser (default = i) -
Pulser_%d.Board- febex board for ith pulser (efault = 15) -
Pulser_%d.Channel- febex channel for ith pulser (default = 15)
The following are specific to the old DGF-based DAQ used until 2018. This setup had 48 DGFs for the clusters, 5 more DGFs for timestamping, 1 DGF for the beam dump, five MADCs, 4 CAEN TDCs, three scaler units and a pattern unit:
-
NumberOfDgfModules- number of DGF modules (default = 0) -
NumberOfDgfTimestampModules- number of DGF timestamp modules (default = 5) -
NumberOfDgfChannels- number of DGF channels (default = 4) -
DgfModuleOffset- DGF module offset (default = 1) -
DgfTimestampModuleOffset- DGF timestamp module offset (default = 49) -
DgfTimestampDelay- DGF timestamp delay because the DGF starts counting with an offset and MADC doesn't (default = 65527) -
DgfTimestampUnits- length of DGF timestamp [ns] (default = 25) -
NumberOfCaenAdcModules- number of CAEN ADCs (default = 0) -
NumberOfCaenAdcChannels- number of CAEN channels (default = 32) -
CaenAdcModuleOffset- offset of CAEN ADC module number (default = 60) -
CaenAdcTimestampUnits- length of CAEN ADC timestamp [ns] (default = 25) -
NumberOfMesytecAdcModules- number of MADC modules (default = 0) -
MesytecAdcModuleOffset- offset of MADC module number (default = 55) -
MesytecAdcTimestampUnits- length of MADC timestamp [ns] (default = 25) -
NumberOfScalerUnits- number of scaler units (default = 1) -
ScalerUnitOffset- offset of scaler module number (default = 0) -
NumberOfPatternUnits- number of pattern units (default = 1) -
PatternUnitOffset- offset of pattern unit module number (default = 67) -
Dgf.VME.First- ID of first DGF (default = 1) -
Dgf.VME.Last- ID of last DGF (default = 10) -
Adc.VME.First- ID of first ADC (default = 11) -
Adc.VME.Last- ID of last ADC (default = 19) -
Scaler.VME.First- ID of first scaler (default = 20) -
Scaler.VME.Last- ID of last scaler (default = 20) -
Pattern.VME.First- ID of first pattern unit (default = 21) -
Pattern.VME.Last- ID of last pattern unit (default = 21) -
DgfScaler.VME.First- ID of first DGF scaler (default = 22) -
DgfScaler.VME.Last- ID of last DGF scaler (default = 24) -
EBIS.Dgf- DGF module for EBIS pulse (default = 52) -
T1.Dgf- DGF module for proton impact (T1) signal (default = 52) -
SC.Dgf- DGF module for supercycle signal (default = 52) -
Miniball_%d_%d_%d.Dgf- DGF module for the ith cluster, jth detector and kth segment -
CD_%d_%d_%d.%s.Adc- ADC module for a CD channel (ith CD, jth quadrant, kth sector of the lth side) -
Pad_%d_%d.Adc- ADC for the ith PAD and jth quadrant -
BeamDump_%d.Dgf- DGF for the ith beam dump detector (default = 54) -
IonChamber_%d.Adc- ADC for the ith ionisation chamber (default = 4) -
RILIS.Pattern- location of laser bit in pattern unit (default = 8)