IChannelFilter.h
Go to the documentation of this file.
1 #ifndef WIRECELL_ICHANNELFILTER
2 #define WIRECELL_ICHANNELFILTER
3 
6 
7 #include <map>
8 
9 namespace WireCell {
10 
11  /**
12  A channel filter mutates digitized waveforms from channels.
13  */
14  class IChannelFilter : public WireCell::IComponent<IChannelFilter> {
15  public:
16 
17  virtual ~IChannelFilter() ;
18 
20  typedef std::map<int, signal_t> channel_signals_t;
21 
22 
23  /** Filter in place the signal `sig` from given
24  * `channel`. Return a channel mask map with any tick-level
25  * masking that may be applied later. */
26  virtual Waveform::ChannelMaskMap apply(int channel, signal_t& sig) const = 0;
27 
28  /** Filter in place a group of signals together. Return a
29  * channel mask map with any tick-level masking that may be
30  * applied later.*/
31  virtual Waveform::ChannelMaskMap apply(channel_signals_t& chansig) const = 0;
32  };
33 
34 }
35 
36 #endif
Sequence< real_t > realseq_t
Definition: Waveform.h:31
Waveform::realseq_t signal_t
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
Definition: Main.h:22
std::map< int, signal_t > channel_signals_t