MarlinTPC
1.2.0
|
The signal splitter sparates signals of overlapping pulses. More...
#include <SignalSplitter.h>
Public Member Functions | |
std::vector< std::pair< size_t, std::vector< float > > > | splitSignal (std::vector< float > const &, double noise=0) |
The split function takes a std::vector of the signal to be split. More... | |
Protected Member Functions | |
void | splitSignalTwoPeaks (std::vector< float > const &) |
void | splitSignalAtMinima (std::vector< float > const &, double noise=0) |
std::vector< size_t > | findMaxima (std::vector< float > const &, double noise=0) |
search for maxima and return a vector of iterators in the original signal | |
Protected Attributes | |
std::vector< size_t > | _maxima |
std::vector< std::pair< size_t, std::vector< float > > > | _splitSignals |
double | _noiseThreshold |
The signal splitter sparates signals of overlapping pulses.
In a first step it seaches for local minima. Afterwards it unfolds the signals assuming a gaussian shape per pulse.
Please use the testSignalSplitter programme from the validation to see how it works.
std::vector< std::pair< size_t, std::vector< float > > > marlintpc::SignalSplitter::splitSignal | ( | std::vector< float > const & | inputSignal, |
double | noise = 0 |
||
) |
The split function takes a std::vector of the signal to be split.
The return value is a vector of pairs, where the first value in the pair is the position of the split pulse in the original pulse (first bin of the split pulse). The second value in the pair is the split pulse.
References findMaxima().
Referenced by marlintpc::HitSplitter::splitHit().