L1SPFilter.h
Go to the documentation of this file.
1 /** This component applies "compressed sensing" influenced signal
2  * processing based on an L1 norm minimzation which fits both a
3  * unipolar collection and a bipolar induction response to regions
4  * channels in shorted regions known to have a mix.
5  */
6 #ifndef WIRECELLSIGPROC_L1SPFILTER
7 #define WIRECELLSIGPROC_L1SPFILTER
8 
11 
14 
15 namespace WireCell {
16  namespace SigProc {
17 
18  class L1SPFilter : public IFrameFilter,
19  public IConfigurable
20  {
21  public:
22  L1SPFilter(double gain = 14.0 * units::mV/units::fC,
23  double shaping = 2.2 * units::microsecond,
24  double postgain = 1.2,
25  double ADC_mV = 4096/(2000.*units::mV),
26  double fine_time_offset = 0.0 * units::microsecond,
27  double coarse_time_offset = -8.0 * units::microsecond);
28  virtual ~L1SPFilter();
29 
30  /// IFrameFilter interface.
31  virtual bool operator()(const input_pointer& in, output_pointer& out);
32 
33  /// IConfigurable interface.
34  virtual void configure(const WireCell::Configuration& config);
36 
37  void init_resp();
38 
39  int L1_fit(std::shared_ptr<WireCell::SimpleTrace>& newtrace, std::shared_ptr<const WireCell::ITrace>& adctrace, int start_tick, int end_tick, bool flag_shorted = false);
40 
41  private:
43 
44  double m_gain;
45  double m_shaping;
46  double m_postgain;
47  double m_ADC_mV;
50  double m_period;
51 
54 
55 
56  };
57  }
58 }
59 
60 #endif
virtual void configure(const WireCell::Configuration &config)
IConfigurable interface.
Definition: L1SPFilter.cxx:165
linterp< double > * lin_W
Definition: L1SPFilter.h:53
linterp< double > * lin_V
Definition: L1SPFilter.h:52
static const double microsecond
Definition: Units.h:94
static const double mV
Definition: Units.h:180
virtual bool operator()(const input_pointer &in, output_pointer &out)
IFrameFilter interface.
Definition: L1SPFilter.cxx:178
std::shared_ptr< const IFrame > input_pointer
Definition: IFunctionNode.h:39
static Config * config
Definition: config.cpp:1054
virtual WireCell::Configuration default_configuration() const
Optional, override to return a hard-coded default configuration.
Definition: L1SPFilter.cxx:97
static const double fC
Definition: Units.h:113
std::shared_ptr< const IFrame > output_pointer
Definition: IFunctionNode.h:40
Definition: Main.h:22
int L1_fit(std::shared_ptr< WireCell::SimpleTrace > &newtrace, std::shared_ptr< const WireCell::ITrace > &adctrace, int start_tick, int end_tick, bool flag_shorted=false)
Definition: L1SPFilter.cxx:494
Json::Value Configuration
Definition: Configuration.h:50
L1SPFilter(double gain=14.0 *units::mV/units::fC, double shaping=2.2 *units::microsecond, double postgain=1.2, double ADC_mV=4096/(2000.*units::mV), double fine_time_offset=0.0 *units::microsecond, double coarse_time_offset=-8.0 *units::microsecond)
Definition: L1SPFilter.cxx:25