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. | |
Generic class for shaping signals on wires.
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.
After the deconvolution kernel is calculated, the configuration is locked.
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.
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.Definition in file SignalShaping.h.