BaselineFinder Class Reference
[modules - functions to process raw data in series]

searches the beginning of a channel's waveform to determine baselineBaseline finder searches for a (possibly) moving baseline DC offset in pulse data. It does this by taking a moving average (pre_samps before and post_samps after) for those points where the sample amplitude within the full average window is less than max_amplitude (or max_sum_amplitude) More...

#include <BaselineFinder.hh>

Inheritance diagram for BaselineFinder:
ChannelModule BaseModule ParameterList VParameterNode

List of all members.

Public Member Functions

int Initialize ()
 Initialize the module before starting a run. Return 0 if no error.
int Finalize ()
 Finalize state after a run has processed. Return 0 if no error.
int Process (ChannelData *chdata)
 Process a single channel in a single trigger. Return 0 if no error.

Static Public Member Functions

static const std::string GetDefaultName ()

Public Attributes

bool fixed_baseline
bool linear_interpolation
int segment_samps
int min_valid_samps
double max_sigma
double max_sigma_diff
double max_mean_diff
int avg_samps
double max_sigma_factor
double pulse_threshold
int cooldown
int pre_cooldown
double max_amplitude
 max amplitude for sample to be part of baseline
double max_sum_amplitude
 max_amplitude for sum channel
double signal_begin_time
 position to start searching for baseline
int pre_samps
 samples before point to average
int post_samps
 samples after point to average
bool save_interpolations
 Save drift baseline interpolation regions as spe.
double laserwindow_begin_time
double laserwindow_end_time
bool laserwindow_freeze

Private Member Functions

int FixedBaseline (ChannelData *chdata)
int DriftingBaseline (ChannelData *chdata)

Detailed Description

searches the beginning of a channel's waveform to determine baseline

Baseline finder searches for a (possibly) moving baseline DC offset in pulse data. It does this by taking a moving average (pre_samps before and post_samps after) for those points where the sample amplitude within the full average window is less than max_amplitude (or max_sum_amplitude)

The algorithm goes: 1) Find the highest sample in the time before signal_begin_time 2) search for a region which is pre_samps+post_samps long which has no sample below the max found in the last step - 2*max_amplitude Call this the original baseline. If no clean region is found before signal_begin_time, we fail and abort 3) Once a first guess at baseline is found, call that moving_base. From then on, the baseline is evaluated if all samples in a window are within max_amplitude of the last evaluated moving baseline. 4) For samples of large amplitude, the baseline is linearly interpolated from the nearest good points. 5) Finally we subtract the moving baseline from the signal and store it in the subtracted_waveform

Definition at line 36 of file BaselineFinder.hh.


Member Function Documentation

int BaselineFinder::DriftingBaseline ( ChannelData chdata  )  [private]

pass_amp

Definition at line 93 of file BaselineFinder.cc.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on 20 Jun 2014 for daqman by  doxygen 1.6.1