IFrameSlicer.h
Go to the documentation of this file.
1 #ifndef WIRECELL_IFRAMESLICER
2 #define WIRECELL_IFRAMESLICER
3 
6 #include "WireCellIface/IFrame.h"
8 
9 namespace WireCell {
10 
11  /** A frame slicer conceptually performs a transpose of a frame
12  * from being tick-major order to being channel-major while on the
13  * way possibly rebinning the per-tick samples by applying some
14  * metric function (typically just a sum) and possibly some
15  * uncertainty function.
16  *
17  * Note, there could be a closely related IQueuedoutNode which
18  * instead returns a queue of ISlice which might be more suited to
19  * stream processing. OTOH, implementations of this IFrameSlicer
20  * are expected produce an ISliceFrame which spans the same time
21  * as the input IFrame.
22  */
23  class IFrameSlicer : public IFunctionNode<IFrame,ISliceFrame>
24  {
25  public:
26  typedef std::shared_ptr<IFrameSlicer> pointer;
27 
28  virtual ~IFrameSlicer() ;
29 
30  virtual std::string signature() {
31  return typeid(IFrameSlicer).name();
32  }
33 
34  // supply:
35  // virtual bool operator()(const input_pointer& in, output_pointer& out);
36 
37  };
38 
39 
40 }
41 
42 #endif
static QCString name
Definition: declinfo.cpp:673
std::string string
Definition: nybbler.cc:12
std::shared_ptr< IFrameSlicer > pointer
Definition: IFrameSlicer.h:26
Definition: Main.h:22
virtual std::string signature()
Set the signature for all subclasses.
Definition: IFrameSlicer.h:30