IDeconvolution.h
Go to the documentation of this file.
1 /**
2 
3 
4  */
5 
6 
7 #ifndef WIRECELL_IDECONVOLUTION
8 #define WIRECELL_IDECONVOLUTION
9 
10 namespace WireCell {
11 
12  /**
13  A deconvolution applies the inverse of a convolution
14  */
15  class IDeconvolution : public WireCell::IComponent<IDeconvolution> {
16  public:
17 
18  virtual ~IDeconvolution() ;
19 
21  typedef std::map<int, signal_t> channel_signals_t;
22 
23 
24  /** Filter in place the signal `sig` from given
25  * `channel`. Return a channel mask map with any tick-level
26  * masking that may be applied later. */
27  virtual Waveform::ChannelMaskMap apply(int channel, signal_t& sig) const = 0;
28 
29  /** Filter in place a group of signals together. Return a
30  * channel mask map with any tick-level masking that may be
31  * applied later.*/
32  virtual Waveform::ChannelMaskMap apply(channel_signals_t& chansig) const = 0;
33  };
34 
35 }
36 
37 
38 #endif // WIRECELL_IDECONVOLUTION
Sequence< real_t > realseq_t
Definition: Waveform.h:31
virtual Waveform::ChannelMaskMap apply(int channel, signal_t &sig) const =0
std::map< std::string, ChannelMasks > ChannelMaskMap
Collect channel masks by some label.
Definition: Waveform.h:59
std::map< int, signal_t > channel_signals_t
Definition: Main.h:22
Waveform::realseq_t signal_t