ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtReconstruction
AtFitter
ParameterDistributions
AtParameterDistribution.cxx
Go to the documentation of this file.
1
#include "
AtParameterDistribution.h
"
2
3
#include <FairLogger.h>
4
5
namespace
MCFitter
{
6
7
thread_local std::unique_ptr<std::mt19937>
AtParameterDistribution::fRand
=
nullptr
;
8
9
AtParameterDistribution::AtParameterDistribution
(
double
mean
,
double
spread,
long
seed)
10
: fMean(
mean
), fSpread(spread), fSeed(seed)
11
{
12
}
13
14
double
AtParameterDistribution::Sample
()
15
{
16
long
seed =
fSeed
;
17
if
(
fRand
==
nullptr
) {
18
if
(seed == 0) {
19
std::random_device rd;
20
seed = rd();
21
}
22
LOG(info) <<
"Seeding thread with "
<< seed;
23
fRand
= std::make_unique<std::mt19937>(seed);
24
}
25
return
fMean
+
fSpread
*
SampleSpread
();
26
}
27
}
// namespace MCFitter
AtParameterDistribution.h
MCFitter::AtParameterDistribution::fSpread
double fSpread
Definition:
AtParameterDistribution.h:12
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::fMean
double fMean
Definition:
AtParameterDistribution.h:11
MCFitter::AtParameterDistribution::AtParameterDistribution
AtParameterDistribution(double mean, double spread, long seed=0)
Definition:
AtParameterDistribution.cxx:9
MCFitter::AtParameterDistribution::SampleSpread
virtual double SampleSpread()=0
mean
double mean(const double *a, size_t m)
Definition:
cluster.cxx:26
MCFitter
Definition:
AtMCResult.cxx:5
Generated on Sat Nov 11 2023 15:30:38 for ATTPCROOT by
1.8.18