All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IDecoderFilter.h
Go to the documentation of this file.
1 /**
2  * @file IDecoderFilter.h
3  *
4  * @brief This provides an art tool interface definition for tools which "decode" artdaq
5  * fragments into LArSoft data objects
6  *
7  * @author usher@slac.stanford.edu
8  *
9  */
10 #ifndef IDecoderFilter_h
11 #define IDecoderFilter_h
12 
13 // Framework Includes
14 #include "fhiclcpp/ParameterSet.h"
15 #include "art/Framework/Principal/Event.h"
16 
17 // Algorithm includes
18 #include "artdaq-core/Data/Fragment.hh"
19 namespace detinfo {
20  class DetectorClocksData;
21 }
22 
23 #include "icarus_signal_processing/ICARUSSigProcDefs.h"
24 
25 //------------------------------------------------------------------------------------------------------------------------------------------
26 
27 namespace daq
28 {
29 /**
30  * @brief IDecoderFilter interface class definiton
31  */
33 {
34 public:
35  /**
36  * @brief Virtual Destructor
37  */
38  virtual ~IDecoderFilter() noexcept = default;
39 
40  /**
41  * @brief Interface for configuring the particular algorithm tool
42  *
43  * @param ParameterSet The input set of parameters for configuration
44  */
45  virtual void configure(const fhicl::ParameterSet&) = 0;
46 
47  /**
48  * @brief Given a set of recob hits, run DBscan to form 3D clusters
49  *
50  * @param fragment The artdaq fragment to process
51  */
52  virtual void process_fragment(detinfo::DetectorClocksData const& clockData,
53  const artdaq::Fragment& fragment) = 0;
54 
55  /**
56  * @brief Recover the channels for the processed fragment
57  */
58  virtual const icarus_signal_processing::VectorInt getChannelIDs() const = 0;
59 
60  /**
61  * @brief Recover the selection values
62  */
63  virtual const icarus_signal_processing::ArrayBool getSelectionVals() const = 0;
64 
65  /**
66  * @brief Recover the ROI values
67  */
68  virtual const icarus_signal_processing::ArrayBool getROIVals() const = 0;
69 
70  /**
71  * @brief Recover the original raw waveforms
72  */
73  virtual const icarus_signal_processing::ArrayFloat getRawWaveforms() const = 0;
74 
75  /**
76  * @brief Recover the pedestal corrected waveforms
77  */
78  virtual const icarus_signal_processing::ArrayFloat getPedCorWaveforms() const = 0;
79 
80  /**
81  * @brief Recover the "intrinsic" RMS
82  */
83  virtual const icarus_signal_processing::ArrayFloat getIntrinsicRMS() const = 0;
84 
85  /**
86  * @brief Recover the correction median values
87  */
88  virtual const icarus_signal_processing::ArrayFloat getCorrectedMedians() const = 0;
89 
90  /**
91  * @brief Recover the waveforms less coherent noise
92  */
93  virtual const icarus_signal_processing::ArrayFloat getWaveLessCoherent() const = 0;
94 
95  /**
96  * @brief Recover the morphological filter waveforms
97  */
98  virtual const icarus_signal_processing::ArrayFloat getMorphedWaveforms() const = 0;
99 
100  /**
101  * @brief Recover the pedestals for each channel
102  */
103  virtual const icarus_signal_processing::VectorFloat getPedestalVals() const = 0;
104 
105  /**
106  * @brief Recover the full RMS before coherent noise
107  */
108  virtual const icarus_signal_processing::VectorFloat getFullRMSVals() const = 0;
109 
110  /**
111  * @brief Recover the truncated RMS noise
112  */
113  virtual const icarus_signal_processing::VectorFloat getTruncRMSVals() const = 0;
114 
115  /**
116  * @brief Recover the number of bins after truncation
117  */
118  virtual const icarus_signal_processing::VectorInt getNumTruncBins() const = 0;
119 
120 };
121 
122 } // namespace lar_cluster3d
123 #endif
virtual const icarus_signal_processing::ArrayFloat getPedCorWaveforms() const =0
Recover the pedestal corrected waveforms.
virtual const icarus_signal_processing::VectorFloat getTruncRMSVals() const =0
Recover the truncated RMS noise.
virtual const icarus_signal_processing::VectorInt getChannelIDs() const =0
Recover the channels for the processed fragment.
virtual ~IDecoderFilter() noexcept=default
Virtual Destructor.
IDecoderFilter interface class definiton.
virtual const icarus_signal_processing::ArrayFloat getIntrinsicRMS() const =0
Recover the "intrinsic" RMS.
virtual const icarus_signal_processing::ArrayFloat getWaveLessCoherent() const =0
Recover the waveforms less coherent noise.
virtual void process_fragment(detinfo::DetectorClocksData const &clockData, const artdaq::Fragment &fragment)=0
Given a set of recob hits, run DBscan to form 3D clusters.
virtual const icarus_signal_processing::ArrayFloat getCorrectedMedians() const =0
Recover the correction median values.
virtual const icarus_signal_processing::ArrayBool getSelectionVals() const =0
Recover the selection values.
virtual const icarus_signal_processing::ArrayBool getROIVals() const =0
Recover the ROI values.
Contains all timing reference information for the detector.
virtual const icarus_signal_processing::VectorFloat getFullRMSVals() const =0
Recover the full RMS before coherent noise.
virtual void configure(const fhicl::ParameterSet &)=0
Interface for configuring the particular algorithm tool.
virtual const icarus_signal_processing::ArrayFloat getMorphedWaveforms() const =0
Recover the morphological filter waveforms.
virtual const icarus_signal_processing::VectorFloat getPedestalVals() const =0
Recover the pedestals for each channel.
virtual const icarus_signal_processing::ArrayFloat getRawWaveforms() const =0
Recover the original raw waveforms.
virtual const icarus_signal_processing::VectorInt getNumTruncBins() const =0
Recover the number of bins after truncation.