IChannelSpectrum.h
Go to the documentation of this file.
1 /**
2  A Channel Spectrum provides a discrete Fourier amplitude as a
3  function of frequency.
4 
5  An example implementation is a model of the noise on a given
6  channel.
7 
8  */
9 
10 #ifndef WIRECELL_ICHANNELSPECTRUM
11 #define WIRECELL_ICHANNELSPECTRUM
12 
14 
15 namespace WireCell {
16 
17  class IChannelSpectrum : virtual public IComponent<IChannelSpectrum> {
18  public:
19 
20  virtual ~IChannelSpectrum() ;
21 
22  /// The data type for frequency space amplitude (not power).
23  /// It should be in units of [X]/[frequency] (equivalently
24  /// [X]*[time]) where [X] is the unit of the equivalent
25  /// waveform expressed in the time domain. For a noise model
26  /// [X] is likely [voltage].
27  typedef std::vector<float> amplitude_t;
28 
29  /// Return the spectrum associated with the given channel ID
30  /// in suitable binning. In the implementing component, the
31  /// Binning should likely be coordinated with the rest of the
32  /// application via the configuration.
33  virtual const amplitude_t& operator()(int chid) const = 0;
34 
35 
36  };
37 }
38 
39 
40 #endif
std::vector< float > amplitude_t
virtual const amplitude_t & operator()(int chid) const =0
Definition: Main.h:22