Pixie16 Analysis Software Suite
Analysis code for processing of .ldf files
XML Based Configuration File

The configuration of the code is now handled solely through an XML file. The old style of map files have been deprecated and are no longer supported in the main versions of the code. We summarize here the various sections of the configuration that you will encounter. There is an example configuration file: config/Config.xml.example.

Link the proper Config.xml

The Config.xml file is a symbolic link to one of the various configuration files in the config directory. In order to switch to different configurations you simply need to issue the following command:

ln -s -f config/Config.xml.example Config.xml

This will point the Config.xml link to the proper configuration file.

The Guts of the Config.xml

Author Information

Put your name, email and date (please use Jan, Feb, ..., Dec for months names).

Description

Put short description of your experiment here.

Global Configuration Settings

Global scan parameters are setup here. Required fields are:

  • Revision :
    <Revision version="X"/>
    where X is A, D or F
  • EventWidth :
    <EventWidth units="x" value="y"/>
    where unit must be s, ms, us or ns; value is floating point
  • EnergyContraction :
    <EnergyContraction value="x" />
    OBSOLETE, please do not use energy contraction (consider calibration instead), however if needed for backward compatibility put here floating point number
  • Path :
    <Path>relatative_path</Path>
    where 'relative_path' is a path to the other configurations files not included into this xml document. At the moment only qdc.txt is not incorporated into this file. relative_path must end with '/' unless is empty (which then points to the current directory).
  • NumOfTraces :
    <NumOfTraces value="x" />
    where x is unsigned integer giving the maximum number of traces in 2D traces histograms. This number is rounded up to the power of 2, since DAMM histograms must have such sizes

Rejection Regions

The Reject node isn't for people who have flunked out, but for the rejection of specific time regions of the LDF. For example, if the beam cut out at the end of your run but still want to use the first five minutes you can define

<Time start="300" end="16000"/>

The program will now ignore everything after 300 seconds of the file.

DetectorDriver Setup

You will set up the various processors and analyzers in this node. To add a new processor to the analysis:

<Process name="SomethingProcessor"/>

Similarly for an analyzer :

<Analyzer name="SomethingAnalyzer"/>

Simply repeat this process for each Processor and Analyzer that you would like to add.

List of known Processors:

List of known Analyzers:

  • TraceFilterer
    • mandatory attributes and their default values:
      • gain_match="1.0"
      • fast_rise="10"
      • fast_gap="10"
      • fast_threshold="50"
      • energy_rise="50"
      • energy_gap="50"
    • optional attributes and their default values:
      • slow_rise="20"
      • slow_gap="20"
      • slow_threshold="10"
  • DoubleTraceAnalyzer
    • see TraceFilterer
  • TauAnalyzer
  • TraceExtractor
  • WaveformAnalyzer
  • FittingAnalyzer (requires PULSEFIT compiler flag in Makefile)
  • CfdAnalyzer

Channels map

This section replaces the map.txt (map2.txt) and cal.txt files. For each channel in each module that you want to use in analysis you must assign some physical detector type (and subtype) which is known to the pixie_scan (see DetectorLibrary.cpp). A channel may be also calibrated (by default a raw channel number from adc is used) or corrected against walk (by default walk correction is equal to 0).

The root element (<Map>) may have attributes changing the verbosity level during loading of the configuration in this section :

  • verbose_map - output loaded modules and channels
  • verbose_calibration - Output energy calibration information
  • verbose_walk - Output walk correction information

Each attribute default to False, if change to True will show more messages concerning loaded parameters etc.

Calibrations

-Energy :

  • raw : non-calibrated (also used when no calibration specified)
  • off : turn channel off (returns always 0)
  • linear : requires 2 parameters
  • quadratic : requires 3 parameters
  • cubic : a third order polynomial correction, requires 4 parameters
  • polynomial : more general but slightly slower then the two above : requires at least 1 parameter
  • hyplin : f(x) = a0/x + a1 + a2*x , suitable if problems with low channels are encountered - requires 3 parameters

-Time Walk :

  • None : returns always 0
  • A : f(x) = a0 + a1 / (a2 + x) + a3 * exp(-x/a4), derived for the ge detectors at 85-86Ga experiment - requires 5 parameters
  • B1 : f(x) = a0 + (a1 + a2 / (x + 1)) * exp(-x / a4) This model was developed for the ge detectors at 93Br experiment. Use it for the low energy part of spectra. For the high energy part use B2 model.
  • B2 f(x) = a0 + a1 * exp(-x / a2) This function is the second part of 'B' model developed for the 93Br experiment Note that walk models parameters are intended to operate on natural units i.e. raw channel numbers and pixie time tics.

Both calibration and walk correction operate on some range and there might be any number of ranges defined for the channel. The code does not check if a range overlaps with another. For a given channel number the first (in order of appearance) matching range will be used.

If no min/max is specified, a 0 to infinity range is assumed (where infinity is a largest double precision floating point number on a given machine).

Map Example

An example below shows the main features of the Map node.

<Map verbose_map="True" verbose_calibration="True" verbose_walk="True">
<Module number="0">
<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>
<WalkCorrection model="A">
2.322 12487.727 432.257 19.268 140.189
</WalkCorrection>
</Channel>
<Channel number="1" type="beta_scint" subtype="beta" location="5"
tags="12,3,first">
</Channel>
...
</Module>
<Module number="1">
...
</Module>
...
</Map>

Time Calibrations

See the Time Calibrations and VANDLE Setup section for more detailed information about the various parameters in this calibration.

The time calibrations are for the alignment of detectors that use the high resolution timing algorithms in space and time. This includes all the VANDLE Bars, liquid scintillators, etc. Eventually, this will be updated and expanded based on different VANDLE orientations (i.e. parallel/perpendicular to beam).

NOTE: We currently do no error checking to make sure that an equivalent bar is defined in the Map. In such an event the code will simply return a calibration of zero for all of the possible corrections.

<TimeCalibration verbose_timing="False">
<Vandle>
<small>
<Bar number="0" z0="50.5" xoffset="1.0" zoffset="0.00"
lroffset="-5.70784">
<start loc="0" offset="2.90192"/>
<start loc="1" offset="-6.52371"/>
<start loc="2" offset="1.23556"/>
<start loc="3" offset="-5.56573"/>
</Bar>
<Bar number="1" z0="11.0" xoffset="1234.0" lroffset="-244.0" />
</small>
</Vandle>
<Scint>
<liquid>
<Detector number="0" r0="0.0" xoffset="0.0" lroffset="0.0"
tofoffset0="0.0" tofoffset1="0.0" />
</liquid>
<start>
<Detector number="0" r0="0.0" xoffset="0.0" lroffset="0.0"
tofoffset0="0.0" tofoffset1="0.0" />
</start>
</Scint>
</TimeCalibration>

Tree Correlator Information

Create here tree of "places" build of <Place> elements for your experiment. Basic places are created automatically from entries in the Map section using type_subtype_location pattern.

Root element should be named <TreeCorrelator>. Each <Place> element has a following attributes:

  • 'name' : required, if last token in name (tokens are separated by '_') characters are in format X-Y,Z where X, Y and Z are integers, a whole range X to Y is assumed (e.g. beta_0-1,5,9-10 will create beta_0, beta_1, beta_5, beta_9 and beta_10 ) Optional attributes:
  • 'type' : must be one of types defined in PlaceBuilder.cpp (see there) currently available are: PlaceDetector, PlaceThreshold, PlaceThresholdOR, PlaceCounter, PlaceOR, PlaceAND if type is not used or empty (type="") it is assumed that place already exists. In particular this is true for all basic places created from channels as defined from Map
  • 'replace' : if set to 'true', will replace existing place with a one defined in this element.
  • 'fifo' : depth of FIFO of place
  • 'coincidence' : defines type of relation with parent (true of false)
  • 'low_limit', 'high_limit' : required for PlaceThreshold and PlaceThresholdOR defines threshold limits (calibrated energy).

See PlaceBuilder for other type of places and attributes.

Notebook

Configuration of Notebook object that saves handy notes (things that are not easy to present on graph e.g. single event details) file - file in which the notes are saved mode - 'a' for append, 'r' - for replace mode