1 #ifndef WIRECELLSIGPROC_OMNIBUSSIGPROC 2 #define WIRECELLSIGPROC_OMNIBUSSIGPROC 20 const std::string& per_chan_resp_tn =
"PerChannelResponse",
21 const std::string& field_response =
"FieldResponse",
26 double inter_gain = 1.2,
28 float th_factor_ind = 3,
29 float th_factor_col = 5,
34 double l_max_th=10000,
36 int l_short_length = 3,
37 int l_jump_one_bin = 0,
38 double r_th_factor = 3.0,
39 double r_fake_signal_low_th = 500,
40 double r_fake_signal_high_th = 1000,
41 double r_fake_signal_low_th_ind_factor = 1.0,
42 double r_fake_signal_high_th_ind_factor = 1.0,
44 int r_break_roi_loop = 2,
45 double r_th_peak = 3.0,
46 double r_sep_peak=6.0,
47 double r_low_peak_sep_threshold_pre = 1200,
48 int r_max_npeaks = 200,
50 double r_th_percent = 0.1,
51 int charge_ch_offset = 10000,
53 const std::string& wiener_threshold_tag =
"threshold",
55 bool use_roi_debug_mode =
false,
59 const std::string& break_roi_loop1_tag =
"break_roi_1st",
60 const std::string& break_roi_loop2_tag =
"break_roi_2nd",
88 const std::vector<float>& perwire_rmses,
93 std::vector<std::list<SignalROI*> >& roi_channel_list);
108 OspChan(
int c=-1,
int w=-1,
int p=-1,
int id=-1) : channel(
c), wire(
w), plane(
p), ident(id) {}
std::shared_ptr< const IFrame > pointer
void init_overall_response(IFrame::pointer frame)
std::string m_break_roi_loop1_tag
std::string m_loose_lf_tag
OspChan(int c=-1, int w=-1, int p=-1, int id=-1)
std::map< int, OspChan > m_channel_map
std::string m_break_roi_loop2_tag
virtual void configure(const WireCell::Configuration &config)
Accept a configuration.
void decon_2D_init(int plane)
double m_r_fake_signal_low_th
OmnibusSigProc(const std::string &anode_tn="AnodePlane", const std::string &per_chan_resp_tn="PerChannelResponse", const std::string &field_response="FieldResponse", double fine_time_offset=0.0 *units::microsecond, double coarse_time_offset=-8.0 *units::microsecond, double gain=14.0 *units::mV/units::fC, double shaping_time=2.2 *units::microsecond, double inter_gain=1.2, double ADC_mV=4096/(2000.*units::mV), float th_factor_ind=3, float th_factor_col=5, int pad=5, float asy=0.1, int rebin=6, double l_factor=3.5, double l_max_th=10000, double l_factor1=0.7, int l_short_length=3, int l_jump_one_bin=0, double r_th_factor=3.0, double r_fake_signal_low_th=500, double r_fake_signal_high_th=1000, double r_fake_signal_low_th_ind_factor=1.0, double r_fake_signal_high_th_ind_factor=1.0, int r_pad=5, int r_break_roi_loop=2, double r_th_peak=3.0, double r_sep_peak=6.0, double r_low_peak_sep_threshold_pre=1200, int r_max_npeaks=200, double r_sigma=2.0, double r_th_percent=0.1, int charge_ch_offset=10000, const std::string &wiener_tag="wiener", const std::string &wiener_threshold_tag="threshold", const std::string &gauss_tag="gauss", bool use_roi_debug_mode=false, const std::string &tight_lf_tag="tight_lf", const std::string &loose_lf_tag="loose_lf", const std::string &cleanup_roi_tag="cleanup_roi", const std::string &break_roi_loop1_tag="break_roi_1st", const std::string &break_roi_loop2_tag="break_roi_2nd", const std::string &shrink_roi_tag="shrink_roi", const std::string &extend_roi_tag="extend_roi")
void decon_2D_hits(int plane)
Eigen::ArrayXXcf array_xxc
A complex, 2D array.
double m_r_low_peak_sep_threshold_pre
std::string m_extend_roi_tag
static const double microsecond
std::vector< OspChan > m_channel_range[3]
std::string m_shrink_roi_tag
std::vector< pointer > vector
virtual bool operator()(const input_pointer &in, output_pointer &out)
The calling signature:
void decon_2D_ROI_refine(int plane)
std::string m_per_chan_resp
std::shared_ptr< const IFrame > input_pointer
void decon_2D_looseROI(int plane)
void load_data(const input_pointer &in, int plane)
std::string m_wiener_threshold_tag
void decon_2D_charge(int plane)
std::vector< double > trace_summary_t
constexpr std::array< std::size_t, geo::vect::dimension< Vector >)> indices()
Returns a sequence of indices valid for a vector of the specified type.
double m_fine_time_offset
std::shared_ptr< Interface > pointer
double m_intrinsic_time_offset
double m_coarse_time_offset
void decon_2D_looseROI_debug_mode(int plane)
IAnodePlane::pointer m_anode
std::string m_field_response
virtual WireCell::Configuration default_configuration() const
Optional, override to return a hard-coded default configuration.
std::shared_ptr< const IFrame > output_pointer
void decon_2D_tightROI(int plane)
std::shared_ptr< spdlog::logger > logptr_t
bool m_use_roi_debug_mode
void decon_2D_tighterROI(int plane)
Array::array_xxc m_c_data
Waveform::ChannelMaskMap m_cmm
std::string m_cleanup_roi_tag
double m_r_fake_signal_high_th
Array::array_xxf m_r_data
void save_roi(ITrace::vector &itraces, IFrame::trace_list_t &indices, int plane, std::vector< std::list< SignalROI * > > &roi_channel_list)
Json::Value Configuration
double m_r_fake_signal_low_th_ind_factor
bool masked_neighbors(const std::string &cmname, OspChan &ochan, int nnn)
void save_data(ITrace::vector &itraces, IFrame::trace_list_t &indices, int plane, const std::vector< float > &perwire_rmses, IFrame::trace_summary_t &threshold)
void restore_baseline(WireCell::Array::array_xxf &arr)
std::string m_tight_lf_tag
virtual ~OmnibusSigProc()
std::vector< size_t > trace_list_t
std::vector< Waveform::realseq_t > overall_resp[3]
double m_r_fake_signal_high_th_ind_factor
Eigen::ArrayXXf array_xxf
A real, 2D array.