hitmaker takes a source of raw GET ring items and converts them
into a stream of ring items containing hits. For the output format,
see Output Ring Items below.
inputuri
specifies the source of data. This
can be either a file: or tcp:
URI to accept data from an offline file or online ring buffer
respectively.
outputuri
specifies where the output
ring items will be put. Again file: or
tcp: URIs can be used, however if a
tcp: URI is specified, the host must be
localhost.
All non PHYSICS_EVENT items encounterd on the input are passsed without modification to the output. PHYSICS_EVENT items retain the same body header as the input item (timestamp and source id), however the output ring item body is a set of hits computed from the traces that are present in the input item. See Output Ring Itesm below.
The body of output PHYSICS_EVENT items is a leading uint32_t followed by a sequence of NSCLGET::Hit items as defined in /usr/opt/NSCLGET/include/AnalyzeFrame.h. The leading uint32_t specifies the number of hits to follow.
The s_cobo
, s_asad
,
s_aget
and s_chan
define which global channel the hit comes from. The following
items in each NSCLGET::Hit are computed from
the raw traces:
s_time
The centroid in time of the baseline subtracted trace. See below for baseline determination.
s_peak
The height of the trace peak. This is found by taking the sample with the largest value, the sample on each side of it and performing a Lagrange three point interpolation. As such the resolution of this height should be better than that of the ADC.
Note that this computation is performed on a baseline subtracted waveform.
s_integral
Integration of the background subtracted waveform.
GET pulses can sit on a considerable baseline. The computations described above are done on a trace from which the estimated baseline is subtracted. The baseline is determined by taking the minimum value of the leftmost and rightmost samples in the trace. This works quite well for unsuppressed data where the full trace is present. It's not so clear this is a good estimator for suppressed data as the idea then is to suppress data that are at or near the baseline. Nonethelesss, without any outside information that's the best we can do.
The assumed baseline should only influence the peak value and the integration.