ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtParameterDistribution.h
Go to the documentation of this file.
1 #ifndef ATPARAMETERDISTRIBUTION_H
2 #define ATPARAMETERDISTRIBUTION_H
3 
4 #include <memory>
5 #include <random>
6 namespace MCFitter {
7 
9 
10 protected:
11  double fMean{0};
12  double fSpread{0};
13  long fSeed;
14  static thread_local std::unique_ptr<std::mt19937> fRand;
15 
16 public:
17  AtParameterDistribution(double mean, double spread, long seed = 0);
18  virtual ~AtParameterDistribution() = default;
19 
20  double GetMean() const { return fMean; }
21  double GetSpread() const { return fSpread; }
22 
23  void SetMean(double mean) { fMean = mean; }
24  void SetSpread(double spread) { fSpread = spread; }
25 
26  double Sample();
27 
28  virtual void TruncateSpace() = 0;
29 
30 protected:
31  virtual double SampleSpread() = 0;
32 };
33 
34 } // namespace MCFitter
35 
36 #endif // ATPARAMETERDISTRIBUTION_H
MCFitter::AtParameterDistribution
Definition: AtParameterDistribution.h:8
MCFitter::AtParameterDistribution::fSpread
double fSpread
Definition: AtParameterDistribution.h:12
MCFitter::AtParameterDistribution::TruncateSpace
virtual void TruncateSpace()=0
MCFitter::AtParameterDistribution::GetMean
double GetMean() const
Definition: AtParameterDistribution.h:20
MCFitter::AtParameterDistribution::SetMean
void SetMean(double mean)
Definition: AtParameterDistribution.h:23
MCFitter::AtParameterDistribution::fRand
static thread_local std::unique_ptr< std::mt19937 > fRand
Definition: AtParameterDistribution.h:14
MCFitter::AtParameterDistribution::fSeed
long fSeed
Definition: AtParameterDistribution.h:13
MCFitter::AtParameterDistribution::Sample
double Sample()
Definition: AtParameterDistribution.cxx:14
MCFitter::AtParameterDistribution::GetSpread
double GetSpread() const
Definition: AtParameterDistribution.h:21
MCFitter::AtParameterDistribution::fMean
double fMean
Definition: AtParameterDistribution.h:11
MCFitter::AtParameterDistribution::~AtParameterDistribution
virtual ~AtParameterDistribution()=default
MCFitter::AtParameterDistribution::AtParameterDistribution
AtParameterDistribution(double mean, double spread, long seed=0)
Definition: AtParameterDistribution.cxx:9
MCFitter::AtParameterDistribution::SampleSpread
virtual double SampleSpread()=0
MCFitter::AtParameterDistribution::SetSpread
void SetSpread(double spread)
Definition: AtParameterDistribution.h:24
mean
double mean(const double *a, size_t m)
Definition: cluster.cxx:26
MCFitter
Definition: AtMCResult.cxx:5