LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
SignalShaping.h File Reference

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

#include "TComplex.h"
#include <vector>
#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

  • Yun-Tse Tsai (yunts.nosp@m.e@sl.nosp@m.ac.st.nosp@m.anfo.nosp@m.rd.ed.nosp@m.u), July 17th, 2014
    Modify void AddResponseFunction(const std::vector<double>& resp); to void AddResponseFunction(const std::vector<double>& resp, bool ResetResponse = false ); If you want to reset your response, fResponse in this object, you can do AddResponseFunction( yourResponse, true ) The other part involving AddResponseFunction shouldn't be affected.
  • X. Qian 2015/01/06
    Add the time offset variable
    Need to add the set and extraction code

Definition in file SignalShaping.h.