Skip to content

Utkscan Configuration

Thomas King edited this page Jul 26, 2024 · 23 revisions

Introduction

Utkscan requires a configuration file. This guide will walk you through all of the various nodes that can be present in the file.

Configuration Node

This is the opening of the XML file. The configuration node is the root node for the file. If the configuration node is missing, then the entire thing goes belly up.

Example

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
    <!-- All of the other nodes must go within this node -->
</Configuration>

Author Node

This node is not used by the software in any way. This node simply serves as a record of who to blame contact in the event that you want to use this configuration file. The date, if kept current, can serve as a fingerprint for how out of date you might be.

Example

<Author>
    <Name>T. T. King</Name>
    <Email> email AT example DOT com </Email>
    <Date>June 26, 2019</Date>
</Author>

Description Node

This node contains a description of your experiment. You can add all kinds of information into this node that you may want to keep associated with this configuration file.

Example

<Description>
A timing setup to measure time difference between two pulser signals
</Description>

Global Node

The Global node contains only three options. The EventWidth nodes is the critical node, and the program will throw an invalid_argument if it is are missing.

Children

EventWidth REQUIRED

EventWidth has two attributes: unit and value. The unit can be s, ms, us or ns. value can take any positive floating point value.

HasRaw

This will enable or disable plotting of the raw histograms 1-1900 in the DAMM histogram. You will still get most of the 1800 IDs since they are always useful. It has a single attribute, value, which is a boolean.

DammPlots

This will enable or disable declaration and plotting of the DAMM histograms. This value will override the HasRaw. If using utkscan the histogram(.his) file will be size = 0; and if using utkscanor it will make a single small histogram to satisfy a sanity check in the FORTRAN code. For utkscan, setting this flag as false will result in an greatly improved scanning efficiency (i.e. it will scan the files faster); while for utkscanor this effect is smaller but still noticeable. It has a single attribute, value, which is a boolean.

Example

<Global>
    <EventWidth unit="s" value="1e-6"/>
    <HasRaw value="true"/>
    <DammPlots value="true"/>
</Global>

Reject Node

The Reject node sets rejection regions for the data. More than one rejection region can be defined. The values are always provided in seconds. Any events that arrive within the specified time windows will be ignored and skipped by the analysis. They will still be unpacked.

Example

<Reject>
   <Time start="300" end="500"/>
   <Time start="10000" end="16000"/>
</Reject>

DetectorDriver Node

The DetectorDriver node setups the main trace analysis, detector processing, and experiment specific processing. It is one of the most important nodes if you want to do any complicated analysis. There are two children Processor and Analyzer. Analyzers are responsible for performing trace analysis. Processors perform detector specific analysis (ex. VANDLE or DSSD). A subset of processors are dedicated to experiment specific analysis.

This node is where we enable the system wide ROOT output, and set the maximum ROOT file size if applicable. The ROOT output is currently only supported on branches at or ahead of the dev branch. More information on the system wide ROOT output framework is here.

Attribute Default Value Required? Description
SysRoot false No Enables the ROOT output
rFileSize 20 No Sets the ROOT file rollover size in GB. Similar to the -1,-2, etc. mechanism in the ldfs

Example

<DetectorDriver SysRoot="false" rFileSize="20">

List of known Analyzers:

CfdAnalyzer

This analyzer performs a CFD on the trace. Care should be taken when using this for timing since the CFD doesn't explicitly take into account non-linearities in the leading edge of the waveform.

If this analyzer is defined the WaveformAnalyzer must be declared before it.

Attribute Default Value Required? Description
type poly Y The type of Cfd analysis : polynomial or traditional
ignored " " N A CSV containing types, types:subtypes, types:subtypes:groups to ignore in the analyzer

FittingAnalyzer

This is the main workhorse for the High Resolution Timing analysis. The recommended driver is gsl. The root based driver tends to be slow since there's a lot more complexity involved. The ignore list only supports increasing specificity, i.e. vandle:medium not just medium.

Attribute Default Value Required? Description
type gsl Y The fitting driver : gsl or root
ignored " " N A CSV containing types, types:subtypes, types:subtypes:groups to ignore in the analyzer

If this analyzer is defined the WaveformAnalyzer must be declared before it.

TauAnalyzer

This analyzer finds the decay constant of the trace. It may or may not work right.

TraceExtractor

This is a simple class that will plot traces as they are defined by the attributes listed below. Useful is you want to plot traces from only a specific type of detector.

Attribute Default Value Required? Description
type None N
subtype None N
tag trace N

TraceFilterAnalyzer

This analyzer provides an interface to the TraceFilter class, which performs trapezoidal filtering on the traces. It calculates both a trigger and energy filter. The method of this filter is identical to that on-board the Pixie-16 modules. Note that the energy calculated here will never match the on-board energy.

Attribute Default Value Required? Description
FindPileup false N Tells the analyzer to look for pileups in the filters.

WaaAnalyzer

This is a quick analyzer that simply finds the maximum based on a weighted average. This method is not recommended for signals that are not approximately Gaussian.

If this analyzer is defined the WaveformAnalyzer must be declared before it.

WaveformAnalyzer

This is the main analyzer for any trace analysis. It finds the waveform, calculates QDCs, averages the baseline, calculates the standard deviation of the baseline, etc. The ignore list only supports increasing specificity, i.e. vandle:medium not just medium. Define this before any other analyzer.

Attribute Default Value Required? Description
ignored " " N A CSV containing types, types:subtypes, types:subtypes:groups to ignore in the analyzer

List of known Processors:

BetaScintProcessor

This processor analyzes the beta_scint type. It is primarily used in LeRIBSS style experiments when we only had beta detectors that used one channel. This processor will be replaced by the SingleBetaProcessor.

Attribute Default Value Required? Description
gamma_beta_limit 200.e-9 N Defines the limit of time between coincident betas and gammas
energy_contraction 1.0 N Defines the energy contraction used to plot

CloverCalibProcessor

This processor is used to calibrate clovers. It only operates on the clover type.

Attribute Default Value Required? Description
gamma_threshold 1.0 N Sets the threshold for the plots
low_ratio 1.0 N Sets the low ratio for low and high gain matching
high_ratio 3.0 N Sets the high ratio for low and high gain matching

CloverFragProcessor

This processor is a slimmed down version of the CloverProcessor, intended for experiments at Fragmentation facilities where we do not have specific logic signals needed by the CloverProcessor. However, if the user is only interested in the Root Output of PAASS then the CloverProcessor and this processor are identical. Furthermore, this processor should be more efficient due to the significantly fewer DAMM histograms. The CloverFragProcessor and the CloverProcessor share a DAMM plot id range, and there for are mutually exclusive. This processor operates only on the clover type.

This processor is supported by the System Wide ROOT output.

This processor is exclusive with the CloverProcessor due to a shared DAMMID namespace

CloverProcessor

This processor is heavily modified for LeRIBSS style experiments. It will operate only on the clover type. It will provide addback spectra, and allow for gamma-gamma coincidences.

This processor is supported by the System Wide ROOT output.

This processor is exclusive with the CloverProcessor due to a shared DAMMID namespace

Attribute Default Value Required? Description
gamma_threshold 1.0 N Sets the threshold for the plots
low_ratio 1.0 N Sets the low ratio for low and high gain matching
high_ratio 3.0 N Sets the high ratio for low and high gain matching
sub_event 100e-9 N Sets the width of the sub event for narrowing correlations.
gamma_beta_limit 200e-9 N Sets the time limit for beta-gamma coincidences
gamma_gamma_limit 200e-9 N Sets the time limit for gamma-gamma coincidences
cycle_gate1_min 0.0 N Sets the lower limit for cycle time plots.
cycle_gate1_max 0.0 N Sets the upper limit for cycle time plots.
cycle_gate2_min 0.0 N Sets the lower limit for cycle time plots.
cycle_gate2_max 0.0 N Sets the upper limit for cycle time plots.

DoubleBetaProcessor

This only analyzes the beta:double type/subtype. The corresponding channels must be tagged left or right. Additionally, if there is more than one DoubleBeta detector in the setup, they MUST be mapped for each detector in order. This order is either left/right or right/left and is the same as for the vandle type. These types of beta detectors were implemented for use with VANDLE. This class can provide a relatively simple way to look at any detector that has two signals. This processor is supported by the System Wide ROOT output.

DssdProcessor

Designed for DSSD detectors. Only works on the dssd_front and dssd_back types.

ExtTSSenderProcessor

This processor is used for RIKEN experiments to check the timestamp synchronization between BigRIPS and Pixie. It broadcasts the current external timestamp over the network for difference plotting by the BigRIPS DAQ.

Attribute Default Value Required? Description
type none Yes Channel Type which has the External Timestamp we want to broadcast
host localhost Yes Hostname of BigRIPS DAQ to send the ExtTS to
slot 0 No Module corresponding to the channel with the ExtTs
channel 0 No Channel corresponding to the channel with the ExtTs
port 12345 No Port to send the packets to
buffSize 64 No Packet buffer size

GammaScintProcessor

Processor for handling the high-efficency gamma-ray detectors used with VANDLE. It operates on the gscint type. This processor tries to replicate as much of the CloverProcessor as possible, while still remaining usable for Fragmentation type experiments. It does decay curves and addback spectra for each of the specified subtypes. The known subtypes are "smallhag", "bighag", "nai"; these correspond to the 2" HAGRiD, 3" HAGRiD, and the large volume NaI used at ORNl and the NSCL in 2016. Root ouput does NOT include the addback. In addition to the decay curves this processor creates spectra for monitoring drift in the scintillators. These plots use either the BunchingTime or the TreeCorelator's Cycle as the binning, and have a maximum of 2048 time bins; i.e. 2048 tape cycles, or ~17 hours with a 30 second BunchingTime. This processor also has medium resolution beta gating. The idea was to reduce the internal background from the HAGRiD by introducing a tighter gate on the beta; this is done on the level of the Pixie Event Time so trace fitting is not required.

This processor is supported by the System Wide ROOT output.

This processor is exclusive with the GammaScintFragProcessor, due to a shared DAMMID namespace

Attribute Default Value Required? Description
types smallhag No CSV of used subtypes ("smallhag","bighag", or "nai")
timeScales none No CSV of time binning for decay curve plots ( ** NOTE needs EvsT==true, also 10ms is always plotted if EvsT is enabled.)**
gsroot DetectorDriver's SysRoot Option No Override PixieTree filling if DD SysRoot is enabled. if it is disabled this option does nothing
BunchingTime 30 No Time in seconds for "fake" cycles at fragmentation facilities
EvsT true No Bool, Do you want the Scint Energy vs time plots (both decay curve style and drift tracking style) These add a lot of bulk to the .his file
MRBWin 0.5e-6 No Time in seconds for the medium resolution beta gating.
FacilityType frag No "frag" or "ISOL" use the bunching time or the "Cycle" to mark the start of the EvsT plots.
NaIThresh 10 No Addback Threshold for NaI
NaISubEvtWin 0.5e-6 No Addback Sub Event Window in seconds for NaI
SmallHagThresh 10 No Addback Threshold for SmallHag
SmallHagSubEvtWin 0.5e-6 No Addback Sub Event Window in seconds for SmallHag
BigHagThresh 10 No Addback Threshold for BigHag
BigHagSubEvtWin 0.5e-6 No Addback Sub Event Window in seconds for BigHag

GammaScintFragProcessor

This is a new, faster processor for the gscint type gamma-ray detectors. This version of the processor is the simplier version of the GammaScintProcessor. It does not do much in the way of DAMM plotting, as it is more geared towards speed and ROOT based post-analysis. It makes totals, BG totals, dynode totals (for the HAGRiDs, and if the channel is tagged with "dy"), dynode BG totals, and the long time scale drift tracking (See the GammaScintProcessor description for specifics).

This processor is supported by the System Wide ROOT output.

This processor is exclusive with the GammaScintProcessor, due to a shared DAMMID namespace

Attribute Default Value Required? Description
types smallhag No CSV of used subtypes ("smallhag","bighag", or "nai")
gsroot DetectorDriver's SysRoot Option No Override PixieTree filling if DD SysRoot is enabled. If it is disabled, this option does nothing
BunchingTime 30 No Time in seconds for "fake" cycles at fragmentation facilities
FacilityType frag No "frag" or "ISOL" use the bunching time or the "Cycle" to mark the start of the EvsT plots.

GeProcessor

A simple processor that handles only the ge type and plots only the calibrated energies.

Hen3Processor

A processor designed to work with detectors like 3Hen. Only works with the 3hen type.

ImplantSsdProcessor

Designed for the SHE experiments. Works on the ssd type.

IonChamberProcessors

Analyzes ion chambers. Works with the ion_chamber type

LiquidScintProcessor

Processes data for liquid scintillators. Does some basic discrimination between particle types. Works with the liquid_scint type.

This processor is supported by the System Wide ROOT output. It should be noted that this processor uses the vandle_vec_ for its ROOT output. The structures are appended so the VandleProcessor and this processor can be run at the same time.

LitePositionProcessor

Works with the ssd type and provides some basic position functionality.

LogicProcessor

While this processor's constructor can take arguments we do not currently use them for anything. Use this to handle beam pulsing, tape moves, and things like that. Works with the logic, timeclass, and mtc types.

This processor is supported by the System Wide ROOT output. Additionally, the status of the various Logic signals is filled into the TTree for each Pixie Event.

McpProcessor

Works with the mcp class. Performs analysis on MCP signals.

NeutronScintProcessor

Does some analysis of neutron detectors. Works with the neutron_scint type.

PidProcessor

This processor operates on the pid type and is used with the Particle Identification detectors for FRIB where the full PID stack is in the Pixie Data stream. This is unlike at RIKEN, for example, where we only have a partial stack of the PID processors, and require data stream merging. This processor might be renamed to the "FribPidProcessor" given how specialized it is for FRIB, but this is to be decided

This processor is supported by the System Wide ROOT output.

Attribute Default Value Required? Description
yso_thresh 10 No Threshold for the implant detector, low gain dynode to count as an Implant. (incase of overlap between the low and high gain branches)
fit_thresh 10 No Threshold for the "Front Ion Trigger" to count as an implant in this detector.
rit_thresh 10 No Threshold for the "Rear Ion Trigger" to count as an implant in this detector.
tofflip false No Invert the time of flight (tof) calculation for PID plots.

PositionProcessor

Works with the ssd type. Provides some pretty intensive position information for the SHE experiments.

PspmtProcessor

Works with the pspmt type. Provides position information, for the PSPMT along with a hit pattern. The 1018 and 1730 Voltage Dividers use the corner type Anger Logic while the 0926 utilizes the side version. 1018 and 1730 are the square boards used for the JAEA and RIKEN experiments, and 0296 is the round boards used in the E14060 experiment at the NSCL in 2016. This processor also handles the light ion veto as well as the ion trigger (used in RIBF136) via the veto and ion subtypes. Due to RIBF136, it also takes some inbeam detectors (desi and f11) which are used for implant decay tagging. Eventually every detector that is not a true PSPMT implant detector will be removed and incorporated into a beamline/auxiliary implant detector processor.

This processor is supported by the System Wide ROOT output. With both a "Summary" and the standard PSPMT output

Attribute Default Value Required? Description
vd "SIB062_026" No Can be "SIB064_1018" or "SIB064_1730" or "SIB064_0926".
yso_scale 500.0 No Scale for DAMM anode position plots
yso_offset 500 No Offet to center for DAMM anode position plots
yso_threshold 50 No Threshold on the high gain ("beta") anode energy
front_scale 500.0 No Scale for DAMM ion trigger position plots
front_offset 500 No Offet to center for DAMM ion trigger position plots
front_threshold 50 No Threshold on the ion trigger energy
rotation 0 No Rotate the DAMM anode position plot (in degrees)

RootDevProcessor

This processor is intended to be used in the development of new detectors. It operates on the RD type, and outputs as much as possible from the ChanEvent into the standard ROOT output. This processor has one attribute "include" which is a comma separated list of extra "type" and / or "type:subtype" combinations to add to the root output. This minimizes the changes needed to swap to the "rootdev_vec_" output or if supplemental information about a channel is needed in addition to the standard output if any exists.

This list includes energy, rawEnergy, timeSansCfd, time, detNum, modNum, chanNum, subtype, group, pileup, saturation, trace, tqdc, maxPos, maxVal, highResTime, qdcSums. Some of these options require certain Analyzers or certain options to be enabled during acquisition. Users are encouraged to look at the ProcessorRootStruc.hpp for more information.

Attribute Default Value Required? Description
include None No Extra type / type:subtype to include in the "rootdev_vec_" output

RootProcessor

This processor doesn't analyze any specific detector types. It was originally designed to provide some rudimentary ROOT output for the processors. This class has been replaced by the RootDevProcessor.

SingleBetaProcessor

This processor operates on the beta:single type:subtype, for single ended beta detectors. It is a simple processor to provide a start for VANDLE. It has a few diagnostic DAMM plots, but thats about it. It is closely based on the DoubleBetaProcessor. This Processor is currently undergoing final testing and will be merged in to the dev branch soon

TeenyVandleProcessor

Works with the tvandle class. Doesn't really do anything additional to the VANDLE processor.

TemplateProcessor

Works with the template type.

VandleProcessor

This is the main processor for VANDLE analysis. Works on the vandle type. Detectors such as beta_scint or beta:double or beta:single that have the start tag will act as "start" signals for the ToF analysis.

This processor is supported by the System Wide ROOT output.

Attribute Default Value Required? Description
types medium N CSV telling the processor what types of VANDLE to expect.
res 2.0 N Sets the offset for DAMM histograms
offset 1000 N Sets the resolution of DAMM histograms
NumStarts 1 N Sets the number of starts to expect
compression 1.0 N Sets the compression factor for the QDC plots.
idealfp 100 N Ideal Flight Path in cm for CorTof (Geometry corrected ToF)
qdcmin 0 N QDC cut for the root output (Does Not affect DAMM plotting). It was used to speed up near-line data merging for the RIBF136 experiment, by removing low QDC events.
tofcut -1000 N Low ToF cut for the ROOT output (Does Not affect DAMM plotting). It was used to speed up near-line data merging for the RIBF136 experiment, by removing the gamma flash.

Experiment Processors

These processors are specific to experiments. They often have several associated types depending on what needed to be accomplished.

Anl1471Processor

This processor is for the ANL 1471 experiment conducted at Argonne National Lab in the beginning of 2015. Those data serve as the basis for the thesis of S. Z. Taylor.

E11027Processor

This is the experiment processor for the (d,n) studies using MoNA-LISA and VANDLE that was headed up by W. A. Peters.

IS600Processor

This experiment was carried out at ISOLDE in the summer of 2016. The spokesperson for that experiment was A. Gottardo and R. Grzywacz.

RikenPidProcessor

PidProcessor for RIBF168. Heavily based on the PidProcessor, but stripped down and specialized for the things we had for RIBF168.

This processor is supported by the System Wide ROOT output.

Attribute Default Value Required? Description
yso_thresh 10 No Threshold for the implant detector, low gain dynode to count as an Implant. (incase of overlap between the low and high gain branches)
fit_thresh 10 No Threshold for the "Front Ion Trigger" to count as an implant in this detector.
rit_thresh 10 No Threshold for the "Rear Ion Trigger" to count as an implant in this detector.
tofflip false No Invert the time of flight (tof) calculation for PID plots.

TwoChanTimingProcessor

This is a basic processor written by S. V. Paulauskas that can be used to do some basic timing analysis of just two channels.

VandleOrnl2012Processor

This processor is used to analyze data from the VANDLE 2012 commissioning experiment at LeRIBSS in the HRIBF at ORNL. These data served as the thesis for S. V. Paulauskas

Example

<DetectorDriver>
    <Analyzer name="WaveformAnalyzer"/>
    <Analyzer name="FittingAnalyzer" type="gsl"/>
    <Processor name="TemplateProcessor"/>
    <Processor name="GeProcessor"/>
    <Processor name="TemplateExpProcessor"/>
</DetectorDriver>

Map Node

The map node is most likely the most important node contained in the configuration file. Use it to map Module/Channel combinations to a specific type/subtype of detector. There are quite a number of options here and this can be the biggest source of headaches for users. Read this section carefully and let us know if you find any errors. The Map node has four required and one optional attributes. For the four required attributes Module and/or Channel specific overrides are allowed (see the Module and Channel sections below) but we must still set a default. frequency is the module's sampling frequency, i.e. 250 MS/s; and firmware is the version of the firmware that was loaded into the module during acquisition, ex. 30474.

Breaking Change

As of July 26th 2024 revision is also required to be here instead of the node. This change came about to enable mixed frequency event building, and because the frequency is not a unique enough identifier to convert PIXIE's 'EVTTIME' to ns anymore.

We are in the process of deprecating the option of setting these via the command line as we move towards full support of mixed systems (i.e. Rev F and Rev H or 250 MS/s and 500 MS/s in the same crate).

Attribute Default Value Required? Description
verbose false No If "true" it will output all Modules/Channels defined in the Map node along with their calibrations and settings.
TraceDelay None Yes This is the default Trace Delay. Units are ns.
firmware None Yes This is the default firmware to be used.
frequency None Yes This is the default frequency of the modules.
revision None Yes This is the default revision of the modules. ("D","F","H")

Example

<Map verbose="true" TraceDelay="248" firmware="34300" frequency="250">
 <!-- All of the Modules and channels will get defined in here. -->
</Map>

Module Node

There is one recognized child, Module. The Module node has three attributes : number, frequency, and firmware. Number represents the number of the module in the system (zero counting). For example, the module in Slot 2 of the crate will be number="0". If firmware and frequency are omitted then the defaults from the <Map> parent are used. Every Module that was in the crate for acquisition must be defined with at least one channel; the ignore:ignore type:subtype combination is useful for this.

Attributes

Attribute Default Value Required? Description
number None Y Number of the module in the system.
firmware Map Node: firmware N Firmware override loaded on the module
frequency Map Node: frequency N Sampling ADC frequency override of the module
TraceDelay Map Node: Trace Delay N Trace Delay override for this module. Units are ns.
revision Map Node: revision N Pixie16 board revision override for this module

Example

<Module number="0" frequency="" firmware="" TraceDelay="" revision="">
 <!-- All of the channels will go here. -->
</Module>

Channel Node

Module has a single recognized child, Channel. Channel has five attributes: number, type, subtype, group and tags. The first three attributes are required. tags is an optional attribute that can be used to enable special behavior. You can use any combination of type/subtype in the channel specifications, there is no restriction. Only certain types/subtypes are able to be processed by the predefined processors. Please see the Detector Driver section for more information on the types that the Processors can process. The group is intended to be a 3rd tier of specificity for a given channel. A clearer name for this option is being considered and user input is welcome. This wiki will be updated when/if a new name is chosen.

Attributes

Attribute Default Value Required? Description
number None Y The physical channel number.
type None Y Detector type to use for analysis.
subtype None Y Detector subtype to use for analysis.
group None N Detector group to use for analysis.
tags None N Tags for special processing.

NOTE1: There is a special type/subtype combination ignore:ignore that will cause the channel to be ignored in the analysis. NOTE2: The start tag notifies the VandleProcessor that this channel will be used for ToF analysis. NOTE3: There is an additional type called generic that provides a way to access information for detectors that may not fall into a specific processor category.

Energy Calibrations

Energy calibrations are used to calibrate the on-board energy, which is stored in the private variable XiaData::energy_. Omitting this node assumes no calibration, and the calibration will return 0. The function coefficients must be input in ascending power order.

Attributes

This node has three attributes: model, min, and max. Min and max are optional attributes. If the limits are not provided a range of [0,inf] will be assumed. Multiple ranges can be defined, and they can overlap. If ranges overlap then we use the first defined model.

Attribute Default Value Required? Description
model None Y The calibration model that you want. Choose from the list below.
min 0 N The low bound for the calibration.
max inf N The upper bound for the calculation.

Models

Name Free Params Equation Notes
linear 2 eqn:line
quadratic 3 eqn:quad
cubic 4 eqn:cube
polynomial n eqn:poly Generalized version of first 3; can be slowwww
hyplin 3 eqn:hyplin Suitable for low energy calibrations

Example

<Calibration model="quadratic" min="0" max="100">
    -0.912 0.625 1.2390e-5
</Calibration>

Walk Calibrations

Walk calibrations adjust for time walk in the on-board trigger filter. If you are performing timing using the trigger filter or the high resolution timing then you should consider a walk correction. Omitting this node assumes no calibration, and the calibration will return 0. The function coefficients must be input in ascending power order.

These models expect times to be in pixie "natural" units, i.e. clock-ticks.

Attributes

This node has three attributes: model, min, and max. Min and max are optional attributes. If the limits are not provided a range of [0,inf] will be assumed. Multiple ranges can be defined, and they can overlap. If ranges overlap then we use the first defined model.

Attribute Default Value Required? Description
model None Y The calibration model that you want. Choose from the list below.
min 0 N The low bound for the calibration.
max inf N The upper bound for the calculation.

Models

Name Free Params Equation Notes
A 5 eqn:A Derived for Clovers/Betas in 85,86Ga exp.
B1 4 eqn:B1 For low energy Clovers/Beta in 93Br
B2 3 eqn:B2 For mid-high energy Clovers/Beta in 93Br
VS 0 For use with vandle/small w/ "default" fit parameters, Rev F
VD 0 For use with vandle/small w/ "default" fit parameters, Rev D

Example

<Channel number="0" type="" subtype="" tags="">
<Walk model="A">
    2.322 12487.727 432.257 19.268 140.189
</Walk>
</Channel>

Trace Node

This node contains information related to trace analysis. The WaveformAnalyzer uses this information to perform its calculations. This node is always parsed for the vandle type and the values are set to the vandle:medium by default. So even if it is not here we set the correct values for VANDLE.

Attributes

Attribute Default Value Required? Description
delay Module specific or Default No Tells us where we should start looking for the waveform. Units are ns.
DiscriminationStart 3 N Where we should start our secondary sum of the waveform for discrimination.
baselineThreshold 3 N The threshold for the standard deviation of the baseline for trace rejection.
RangeLow 5 N This is the low range for the waveform measured from the maximum.
RangeHigh 10 N This is the high range for the waveform measured from the maximum.

NOTE : The waveform range is defined as [MaxPosition - Low, MaxPosition + High].

Example

<Channel number="0" type="" subtype="" tags="">
    <Trace delay="" baselineThreshold="" RangeLow="" RangeHigh=""/>
</Channel>

Fit Node

This node contains information necessary for the high resolution fitting of traces. This node is always parsed for the vandle type and the values are set to the vandle:medium by default. So even if it is not here we set the correct values for VANDLE. I recommend only the Vandle Timing Function.

Attributes

Attribute Default Value Required? Description
beta 0.254373 N The first parameter for the fitting function.
gamma 0.208072 N The second parameter for the fitting function.

Example

<Channel number="0" type="" subtype="" tags="">
    <Fit beta="0.254373" gamma="0.208072"/>
</Channel>

Cfd Node

This node provides the arguments necessary for CFD analysis of traces. You can learn more about how CFDs work here.

Attributes

Attribute Default Value Required? Description
f 0.8 N The fraction for scaling the CFD.
d 1 N The delay of the CFD
l 0 N Not currently used.

Example

<Channel number="0" type="" subtype="" tags="">
    <Cfd f="125" d="125" l="10"/>
</Channel>

Filter Node

This node provides information necessary for trace filtering. The two children Trigger and Energy must be defined. They each have the same arguments l, g, and t. These arguments must be provided in units of ns.

Attributes

Attribute Default Value Required? Description
l 100 Y Risetime to use for the filter.
g 100 Y Flattop for the filter.
t 1 Y Threshold (Trigger) or Tau (Energy) of the filter.
unit ns N Used just to remind the user of the units.

Example

<Channel number="0" type="" subtype="" tags="">
    <Filter>
        <Trigger l="125" g="125" t="10" unit="ns"/>
        <Energy l="300" g="300" t="50" unit="ns"/>
    </Filter>
</Channel>

Putting them all together

<Map verbose_map="True" verbose_calibration="True" verbose_walk="True">
    <Module number="0" frequency="250" firmware="30474">
        <Channel number="0" type="ge" subtype="clover_high">
            <Calibration model="quadratic" min="0" max="100"> -0.912 0.625 1.2390e-5 </Calibration>
            <Calibration model="linear" min="100"> 0.1 0.515 </Calibration>
            <Walk model="A"> 2.322 12487.727 432.257 19.268 140.189 </Walk>
            <Filter>
                <Trigger l="125" g="125" t="10" unit="ns"/>
                <Energy l="300" g="300" t="50" unit="ns"/>
            </Filter>
        </Channel>
        <Channel number="1" type="beta_scint" subtype="beta" tags="start"> 
            <Trace delay="85" baselineThreshold="3.0" RangeLow="5" RangeHigh="10"/>
            <Cfd f="0.8" d="1" l="0"/>    
        </Channel>
        <Channel number="2" type="vandle" subtype="medium" tags="left"> 
            <Trace delay="85" baselineThreshold="3.0" RangeLow="5" RangeHigh="10"/>
            <Fit beta="0.254373" gamma="0.208072"/>
        </Channel>
        <Channel number="3" type="vandle" subtype="medium" tags="right"> 
           <Trace delay="85" baselineThreshold="3.0" RangeLow="5" RangeHigh="10"/>
           <Fit beta="0.254373" gamma="0.208072"/>
           You can also add notes like this, that the program will ignore. 
        </Channel>
    </Module>
</Map>

TimeCalibration Node

We use time calibrations to calibrate the VANDLE ToF spectra. These calibrations are discussed in more detail on the Time Calibrations page. If there is a request for a bar that doesn't have a calibration the calibration will return 0.

<TimeCalibration verbose_timing="False">
    <Vandle>
        <small>
            <Bar number="25" lroffset="" z0="" xoffset="" zoffset="">
                <TofOffset location="" offset=""/>
            </Bar>
        </small>
    </Vandle>
</TimeCalibration>

Vandle Node

This node contains information that's only useful to the VandleProcessor. These values are always set weather or not the node exists in the xml. This node is there for used to override one or more of the parameters if necessary.

NOTE: There is currently no error checking on the units for these parameters.

Children:

  • SpeedOfLightSmall - Speed of light in a small VANDLE module in cm/ns
  • SpeedOfLightMedium - Speed of light in a medium VANDLE module in cm/ns
  • SpeedOfLightBig - Speed of light in a big VANDLE module in cm/ns

Example

<Vandle>
    <SpeedOfLightBig unit="cm/ns" value="15.22998"/>
    <SpeedOfLightMedium unit="cm/ns" value="15.5"/>
    <SpeedOfLightSmall unit="cm/ns" value="12.65822"/>
</Vandle>

TreeCorrelator Node

Editor's note: This section needs to be updated and expanded for clarity.

Create here tree of correlations for the experiment. The root element of . Basic places are created automatically from entries in the Map section using type_subtype_location pattern.

Each element has a following attributes:

Attributes

Attribute Default Value Required? Description
name None Y Tokens are separated by '_'. The last token is an int (X) or a range (Y-Z)
type See Notes N A type from the following table. Missing or empty ("") type assumes it exists.
replace false N Will replace an existing place with the one defined here.
fifo 2 N Depth of the place's FIFO.
low_limit ns N Required for PlaceThreshold and PlaceThresholdOR, defines lower threshold limit.
high_limit ns N Required for PlaceThreshold and PlaceThresholdOR, defines upper threshold limit.
coincidence true N Defines what type of relationship with the parent node.
init false N
coincidence true N
reset true N

Known Types

Type Description
PlaceDetector A place that defines either a physical or virtual detector type.
PlaceThreshold A place whose children are only added to the FIFO if they fall in the threshold range.
PlaceOR A place that is a logical OR between all children.
PlaceAND A place that is a logical AND between all children.
PlacePlaceThresholdOR A place that is a combination of an OR and Threshold.
PlaceCounter A place that simply counts when the children are present.

NOTE: There may be places missing from this list.

<TreeCorrelator name="root" verbose="False">
    <Place type="PlaceOR" name="Beta" fifo="10">
        <Place type="PlaceThreshold" name="template_start_0" low_limit="10.0" high_limit="16382" fifo="5" replace="true"/>
    </Place>

    <Place type="PlaceOR" name="Gamma">
        <Place type="PlaceOR" name="Clover0">
            <Place type="PlaceThreshold" name="ge_clover_high_0-3" low_limit="20.0" high_limit="99999" replace="true"/>
        </Place>
    </Place>

    <Place type="PlaceAND" name="GammaWOBeta">
        <Place type="" name="Gamma" coincidence="true"/>
        <Place type="" name="Beta" fifo="10" coincidence="false"/>
    </Place>

    <Place type="PlaceDetector" name="TapeMove" reset="false"/>
    <Place type="PlaceDetector" name="Beam" reset="false"/>
    <Place type="PlaceDetector" name="Cycle" reset="false"/>
</TreeCorrelator>

Notebook Node

Configuration of Notebook object that saves handy notes (things that are not easy to present on graph e.g. single event details).

Attributes

Attribute Default Value Required? Description
file None Y File name that you want to write to.
mode a N 'a' for append, 'r' for replace
<NoteBook file='notes.txt' mode='a'/>

Clone this wiki locally