1 #ifndef WIRECELLGEN_BINNEDDIFFUSION 2 #define WIRECELLGEN_BINNEDDIFFUSION 62 void add(std::shared_ptr<GaussianDiffusion> gd,
int impact_index);
66 void erase(
int begin_impact_index,
int end_impact_index);
82 std::pair<double,double>
pitch_range(
double nsigma=0.0)
const;
90 std::pair<double,double>
time_range(
double nsigma=0.0)
const;
113 std::set<std::shared_ptr<GaussianDiffusion> >
m_diffs;
std::shared_ptr< const IDepo > pointer
ImpactDataCalculationStrategy
Useful to client code to mark a calculation strategy.
bool add(IDepo::pointer deposition, double sigma_time, double sigma_pitch)
std::pair< double, double > pitch_range(double nsigma=0.0) const
std::pair< int, int > m_window
BinnedDiffusion(const Pimpos &pimpos, const Binning &tbins, double nsigma=3.0, IRandom::pointer fluctuate=nullptr, ImpactDataCalculationStrategy calcstrat=linear)
void erase(int begin_impact_index, int end_impact_index)
IRandom::pointer m_fluctuate
const Pimpos & pimpos() const
std::shared_ptr< Interface > pointer
ImpactDataCalculationStrategy m_calcstrat
double get_nsigma() const
ImpactData::pointer impact_data(int bin) const
std::shared_ptr< const ImpactData > pointer
const Binning & tbins() const
QTextStream & bin(QTextStream &s)
std::set< std::shared_ptr< GaussianDiffusion > > m_diffs
std::pair< double, double > time_range(double nsigma=0.0) const
std::map< int, ImpactData::mutable_pointer > m_impacts
std::pair< int, int > impact_bin_range(double nsigma=0.0) const
std::pair< int, int > time_bin_range(double nsigma=0.0) const