12 #ifndef WIRECELLGEN_EMPERICALNOISEMODEL 13 #define WIRECELLGEN_EMPERICALNOISEMODEL 26 #include <unordered_map> 34 const int nsamples = 10000,
36 const double wire_length_scale = 1.0*
units::cm,
41 const std::string chanstat_tn =
"StaticChannelStatus");
49 virtual const std::vector<float>&
freq()
const;
51 virtual const double gain(
int chid)
const;
virtual const double gain(int chid) const
std::vector< len_amp_cache_t > m_amp_cache
void resample(NoiseSpectrum &spectrum) const
virtual const std::vector< float > & freq() const
std::unordered_map< int, amplitude_t > len_amp_cache_t
std::vector< float > amplitude_t
virtual const amplitude_t & operator()(int chid) const
IChannelSpectrum.
virtual const double shaping_time(int chid) const
EmpiricalNoiseModel(const std::string &spectra_file="", const int nsamples=10000, const double period=0.5 *units::us, const double wire_length_scale=1.0 *units::cm, const std::string anode_tn="AnodePlane", const std::string chanstat_tn="StaticChannelStatus")
IAnodePlane::pointer m_anode
virtual void configure(const WireCell::Configuration &config)
IConfigurable.
void gen_elec_resp_default()
std::string m_chanstat_tn
Waveform::realseq_t m_elec_resp_freq
std::shared_ptr< Interface > pointer
virtual WireCell::Configuration default_configuration() const
Optional, override to return a hard-coded default configuration.
std::shared_ptr< spdlog::logger > logptr_t
virtual ~EmpiricalNoiseModel()
std::vector< float > amps
IChannelStatus::pointer m_chanstat
std::vector< float > freqs
amplitude_t interpolate(int plane, double wire_length) const
Json::Value Configuration
std::map< int, std::vector< NoiseSpectrum * > > m_spectral_data
std::string m_spectra_file
std::unordered_map< int, Waveform::realseq_t > m_elec_resp_cache
std::unordered_map< int, int > m_chid_to_intlen