All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
INoiseFilter.h
Go to the documentation of this file.
1 /**
2  * @file INoiseFilter.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 INoiseFilter_h
11 #define INoiseFilter_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 ~INoiseFilter() 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 ChannelVec list of channels associated to input data array
51  * @param ArrayFloat array by channel of the waveforms
52  */
53  using ChannelPlanePair = std::pair<unsigned int,unsigned int>;
54  using ChannelPlaneVec = std::vector<ChannelPlanePair>;
55 
58  const icarus_signal_processing::ArrayFloat&,
59  const size_t&) = 0;
60 
61  /**
62  * @brief Recover the channels for the processed fragment
63  */
64  virtual const icarus_signal_processing::VectorInt& getChannelIDs() const = 0;
65 
66  /**
67  * @brief Recover the selection values
68  */
69  virtual const icarus_signal_processing::ArrayBool& getSelectionVals() const = 0;
70 
71  /**
72  * @brief Recover the ROI values
73  */
74  virtual const icarus_signal_processing::ArrayBool& getROIVals() const = 0;
75 
76  /**
77  * @brief Recover the original raw waveforms
78  */
79  virtual const icarus_signal_processing::ArrayFloat& getRawWaveforms() const = 0;
80 
81  /**
82  * @brief Recover the pedestal corrected waveforms
83  */
84  virtual const icarus_signal_processing::ArrayFloat& getPedCorWaveforms() const = 0;
85 
86  /**
87  * @brief Recover the "intrinsic" RMS
88  */
89  virtual const icarus_signal_processing::ArrayFloat& getIntrinsicRMS() const = 0;
90 
91  /**
92  * @brief Recover the correction median values
93  */
94  virtual const icarus_signal_processing::ArrayFloat& getCorrectedMedians() const = 0;
95 
96  /**
97  * @brief Recover the waveforms less coherent noise
98  */
99  virtual const icarus_signal_processing::ArrayFloat& getWaveLessCoherent() const = 0;
100 
101  /**
102  * @brief Recover the morphological filter waveforms
103  */
104  virtual const icarus_signal_processing::ArrayFloat& getMorphedWaveforms() const = 0;
105 
106  /**
107  * @brief Recover the pedestals for each channel
108  */
109  virtual const icarus_signal_processing::VectorFloat& getPedestalVals() const = 0;
110 
111  /**
112  * @brief Recover the full RMS before coherent noise
113  */
114  virtual const icarus_signal_processing::VectorFloat& getFullRMSVals() const = 0;
115 
116  /**
117  * @brief Recover the truncated RMS noise
118  */
119  virtual const icarus_signal_processing::VectorFloat& getTruncRMSVals() const = 0;
120 
121  /**
122  * @brief Recover the number of bins after truncation
123  */
124  virtual const icarus_signal_processing::VectorInt& getNumTruncBins() const = 0;
125 
126 };
127 
128 } // namespace lar_cluster3d
129 #endif
virtual const icarus_signal_processing::ArrayFloat & getWaveLessCoherent() const =0
Recover the waveforms less coherent noise.
virtual const icarus_signal_processing::ArrayFloat & getPedCorWaveforms() const =0
Recover the pedestal corrected waveforms.
virtual const icarus_signal_processing::ArrayBool & getROIVals() const =0
Recover the ROI values.
virtual const icarus_signal_processing::ArrayBool & getSelectionVals() const =0
Recover the selection values.
virtual const icarus_signal_processing::ArrayFloat & getIntrinsicRMS() const =0
Recover the &quot;intrinsic&quot; RMS.
virtual void process_fragment(detinfo::DetectorClocksData const &, const daq::INoiseFilter::ChannelPlaneVec &, const icarus_signal_processing::ArrayFloat &, const size_t &)=0
std::pair< unsigned int, unsigned int > ChannelPlanePair
Given a set of recob hits, run DBscan to form 3D clusters.
Definition: INoiseFilter.h:53
virtual const icarus_signal_processing::ArrayFloat & getMorphedWaveforms() const =0
Recover the morphological filter 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 const icarus_signal_processing::ArrayFloat & getCorrectedMedians() const =0
Recover the correction median values.
IDecoderFilter interface class definiton.
Definition: INoiseFilter.h:32
virtual const icarus_signal_processing::ArrayFloat & getRawWaveforms() const =0
Recover the original raw waveforms.
virtual const icarus_signal_processing::VectorFloat & getPedestalVals() const =0
Recover the pedestals for each channel.
virtual const icarus_signal_processing::VectorInt & getNumTruncBins() const =0
Recover the number of bins after truncation.
Contains all timing reference information for the detector.
virtual void configure(const fhicl::ParameterSet &)=0
Interface for configuring the particular algorithm tool.
virtual const icarus_signal_processing::VectorFloat & getFullRMSVals() const =0
Recover the full RMS before coherent noise.
virtual ~INoiseFilter() noexcept=default
Virtual Destructor.
std::vector< ChannelPlanePair > ChannelPlaneVec
Definition: INoiseFilter.h:54