All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces
SignalShaping.h File Reference

Generic class for shaping signals on wires. More...

#include <vector>
#include "TComplex.h"
#include "art/Framework/Services/Registry/ServiceHandle.h"
#include "lardata/Utilities/LArFFT.h"

Go to the source code of this file.

Classes

class  util::SignalShaping
 

Namespaces

 util
 Namespace for general, non-LArSoft-specific utilities.
 

Detailed Description

Generic class for shaping signals on wires.

Author
H. Greenlee

This is a generic class for shaping signals on wires during simulation (convolution) and reconstruction (deconvolution).

This class acts as a repository for a consistent set of convolution and deconvolution kernels. It also supplies an interface for convoluting either type of kernel with a time series signal. All FFT type calculations are done using LArFFT service.

This class has only a default constructor. Configuration must be done externally by calling configuration methods. The proper method for configuring this class is as follows.

  1. Add one or more response functions using method AddReponseFunction.
  2. Optionally call methods SetPeakResponseTime or ShiftResponseTime.
  3. Add one or more filter functions using method AddFilterFunction.
  4. Call method CalculateDeconvKernel once.

After the deconvolution kernel is calculated, the configuration is locked.

Notes on time and frequency series functions

Times and frequencies are measured in units of ticks and cycles/tick.

Time series are represented as vector<double> of length N, representing sampled times on interval [0,N) ticks. (N = LArFFT::FFTSize().)

Frequency series are represented as vector<TComplex> of length (N/2+1), representing sampled frequencies on interval [0, 1/2] cycles/tick. Negative frequencies (not stored) are complex conjugate of corresponding positive frequency.

Update notes

Definition in file SignalShaping.h.