ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtStudentDistribution.cxx
Go to the documentation of this file.
2 
3 #include <memory> // for unique_ptr<>::element_type, unique_ptr
4 namespace MCFitter {
5 
6 AtStudentDistribution::AtStudentDistribution(double mean, double spread, double seed)
7  : AtParameterDistribution(mean, spread, seed)
8 {
9 }
10 
12 {
13  // N.B. We recreate the distribution (which is cheap) each call to avoid data races when multithreaded
14  std::student_t_distribution<> distro{1};
15  return distro(*fRand);
16 }
17 
18 } // namespace MCFitter
MCFitter::AtStudentDistribution::SampleSpread
double SampleSpread() override
Definition: AtStudentDistribution.cxx:11
MCFitter::AtParameterDistribution
Definition: AtParameterDistribution.h:8
AtStudentDistribution.h
MCFitter::AtParameterDistribution::fRand
static thread_local std::unique_ptr< std::mt19937 > fRand
Definition: AtParameterDistribution.h:14
MCFitter::AtStudentDistribution::AtStudentDistribution
AtStudentDistribution(double mean, double spread, double seed=0)
Definition: AtStudentDistribution.cxx:6
mean
double mean(const double *a, size_t m)
Definition: cluster.cxx:26
MCFitter
Definition: AtMCResult.cxx:5