ATTPCROOT
0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtTools
AtHitSampling
AtSampleMethods.h
Go to the documentation of this file.
1
#ifndef ATSAMPLEMETHODS_H
2
#define ATSAMPLEMETHODS_H
3
4
#include "
AtChargeWeighted.h
"
// IWYU pragma: keep
5
#include "
AtGaussian.h
"
// IWYU pragma: keep
6
#include "
AtSample.h
"
// IWYU pragma: keep
7
#include "
AtUniform.h
"
// IWYU pragma: keep
8
#include "
AtWeightedGaussian.h
"
// IWYU pragma: keep
9
#include "
AtWeightedGaussianTrunc.h
"
// IWYU pragma: keep
10
#include "
AtWeightedY.h
"
// IWYU pragma: keep
11
#include "
AtY.h
"
// IWYU pragma: keep
12
13
#include <memory>
14
#include <utility>
15
namespace
RandomSample
{
22
enum class
SampleMethod
{
23
kUniform
= 0,
24
kChargeWeighted
= 1,
25
kGaussian
= 2,
26
kWeightedGaussian
= 3,
27
kWeightedY
= 4,
28
kWeightedGaussianTrunc
= 5,
29
kY
= 6
30
};
31
40
template
<
typename
... Ts>
41
std::unique_ptr<AtSample>
CreateSampler
(
SampleMethod
method, Ts &&...params)
42
{
43
switch
(method) {
44
case
SampleMethod::kUniform
:
return
std::make_unique<AtUniform>();
45
case
SampleMethod::kChargeWeighted
:
return
std::make_unique<AtChargeWeighted>();
46
case
SampleMethod::kGaussian
:
return
std::make_unique<AtGaussian>(std::forward<Ts>(params)...);
47
case
SampleMethod::kWeightedGaussian
:
return
std::make_unique<AtWeightedGaussian>(std::forward<Ts>(params)...);
48
case
SampleMethod::kWeightedY
:
return
std::make_unique<AtWeightedY>(std::forward<Ts>(params)...);
49
case
SampleMethod::kWeightedGaussianTrunc
:
return
std::make_unique<AtWeightedGaussianTrunc>();
50
case
SampleMethod::kY
:
return
std::make_unique<AtY>();
51
default
:
return
nullptr
;
52
};
53
}
54
}
// namespace RandomSample
55
56
#endif // #ifndef ATSAMPLEMETHODS_H
AtWeightedGaussian.h
RandomSample::SampleMethod
SampleMethod
. Methods of random sampling.
Definition:
AtSampleMethods.h:22
RandomSample
Definition:
AtSampleConsensus.h:26
AtY.h
RandomSample::CreateSampler
std::unique_ptr< AtSample > CreateSampler(SampleMethod method, Ts &&...params)
. Create a hit sampler
Definition:
AtSampleMethods.h:41
RandomSample::SampleMethod::kWeightedGaussian
@ kWeightedGaussian
AtChargeWeighted.h
RandomSample::SampleMethod::kWeightedGaussianTrunc
@ kWeightedGaussianTrunc
RandomSample::SampleMethod::kY
@ kY
RandomSample::SampleMethod::kWeightedY
@ kWeightedY
AtUniform.h
AtGaussian.h
AtWeightedGaussianTrunc.h
AtWeightedY.h
RandomSample::SampleMethod::kUniform
@ kUniform
AtSample.h
RandomSample::SampleMethod::kChargeWeighted
@ kChargeWeighted
RandomSample::SampleMethod::kGaussian
@ kGaussian
Generated on Sat Nov 11 2023 15:30:38 for ATTPCROOT by
1.8.18