MarlinTPC  1.2.0
SignalSplitter.h
1 #ifndef MARLINTPC_SIGNAL_SPLITTER_H
2 #define MARLINTPC_SIGNAL_SPLITTER_H
3 
4 #include <vector>
5 #include <iterator>
6 
7 namespace marlintpc
8 {
19 {
20  public:
26  std::vector< std::pair< size_t, std::vector<float> > > splitSignal(std::vector<float> const &, double noise=0);
27 
28  protected:
29  // std::vector< std::pair< size_t, std::vector<float> > > splitSignalTwoPeaks( std::vector<float> const & );
30  void splitSignalTwoPeaks(std::vector<float> const &);
31  void splitSignalAtMinima(std::vector<float> const &, double noise=0);
32 
34  std::vector< size_t > findMaxima(std::vector<float> const &, double noise=0);
35 
36  std::vector<size_t> _maxima;
37  std::vector< std::pair< size_t, std::vector<float> > > _splitSignals;
38  double _noiseThreshold;
39 };
40 }
41 
42 
43 
44 #endif //MARLINTPC_SIGNAL_SPLITTER_H
The signal splitter sparates signals of overlapping pulses.
Definition: SignalSplitter.h:18
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.
Definition: SignalSplitter.cc:8
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
Definition: SignalSplitter.cc:33