-
Notifications
You must be signed in to change notification settings - Fork 9
XML Config
#Introduction 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/examples/example.xml Config.xml
This will point the Config.xml link to the example configuration file. This file is unlikely to be useful for your specific setup. You should make your own directory in the config folder and put your configuration files there.
#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 : relatative_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 Region 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 Node 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:
- BeamLogicProcessor
- BetaScintProcessor
- DoubleBetaProcessor
- DssdProcessor
- GeProcessor
- gamma_threshold="1.0"
- low_ratio="1.0"
- high_ratio="3.0"
- sub_event="100e-9"
- gamma_beta_limit="200e-9"
- gamma_gamma_limit="200e-9"
- cycle_gate1_min="0.0"
- cycle_gate1_max="0.0"
- cycle_gate2_min="0.0"
- cycle_gate2_max="0.0"
- GeCalibProcessor
- gamma_threshold="1.0"
- low_ratio="1.0"
- high_ratio="3.0"
- Hen3Processor
- ImplantSsdProcessor
- IonChamberProcessor
- LiquidScintProcessor
- LogicProcessor
- double_stop="False"
- double_start="False"
- McpProcessor
- NeutronScintProcessor
- PositionProcessor
- PulserProcessor
- SsdProcesssor
- VandleProcessor
- bars="small" (CSV list, uses small,medium,big)
- NumStarts="2" (the number of start detectors you have)
- res="2" (sets the resolution of the time histograms to 0.5 ns/bin)
- offset="200" (sets the arbitrary zero of the histogram to 200)
- RootProcessor (Requires the USE_ROOT compiler flag)
###List of known Analyzers:
- TraceFilterer
- gain_match="1.0"
- fast_rise="10"
- fast_gap="10"
- fast_threshold="50"
- energy_rise="50"
- energy_gap="50"
- slow_rise="20"
- slow_gap="20"
- slow_threshold="10"
- DoubleTraceAnalyzer
- see TraceFilterer for options
- TauAnalyzer
- TraceExtractor
- WaveformAnalyzer
- FittingAnalyzer (requires USE_GSL build flag)
- CfdAnalyzer
#Map Node 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 () 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 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"/>
</Bar>
<Bar number="1" z0="11.0" xoffset="1234.0" lroffset="-244.0" /> </Bar>
</small>
</Vandle>
</TimeCalibration>
#Tree Correlator Node Create here tree of "places" build of elements for your experiment. This will define coincidence logic, correlations, etc. See the Tree Correlator for more details on setting up this node.
#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