eic-smear
1.0.3
A collection of ROOT classes for Monte Carlo events and a fast-smearing code simulating detector effects for the Electron-Ion Collider task force
Distributor.cxx
Go to the documentation of this file.
1
10
#include "
eicsmear/smear/Distributor.h
"
11
12
#include <TF1.h>
13
#include <TRandom.h>
14
#include <TUUID.h>
15
16
namespace
Smear
{
17
18
Distributor::Distributor
()
19
: mPlus(0.)
20
, mMinus(0.)
21
, mDistribution(NULL) {
22
}
23
24
Distributor::Distributor
(
const
TString& formula,
double
lower,
double
upper,
25
double
minimum,
double
maximum)
26
: mPlus(0.)
27
, mMinus(0.)
28
, mDistribution(new TF1(TUUID().AsString(), formula, minimum, maximum)) {
29
mDistribution
->SetParameters(0., 1.);
30
if
(lower > 0.) {
31
mMinus
= lower;
32
}
// if
33
if
(upper > 0.) {
34
mPlus
= upper;
35
}
// if
36
}
37
38
Distributor::~Distributor
() {
39
if
(
mDistribution
) {
40
delete
mDistribution
;
41
mDistribution
= NULL;
42
}
// if
43
}
44
45
double
Distributor::Generate
(
double
mean,
double
sigma) {
46
double
random(0.);
47
if
(!
mDistribution
) {
48
random = gRandom->Gaus(mean, sigma);
49
}
else
{
50
mDistribution
->SetParameters(mean, sigma);
51
if
(
mMinus
> 0. ||
mPlus
> 0.) {
52
random =
mDistribution
->GetRandom(mean -
mMinus
, mean +
mPlus
);
53
}
else
{
54
random =
mDistribution
->GetRandom();
55
}
// if
56
}
// if
57
return
random;
58
}
59
60
}
// namespace Smear
Smear
Definition:
Acceptance.cxx:16
Smear::Distributor::mMinus
double mMinus
Definition:
Distributor.h:69
Distributor.h
Smear::Distributor::Distributor
Distributor()
Default constructor.
Definition:
Distributor.cxx:18
Smear::Distributor::mPlus
double mPlus
Definition:
Distributor.h:68
Smear::Distributor::~Distributor
virtual ~Distributor()
Destructor.
Definition:
Distributor.cxx:38
Smear::Distributor::mDistribution
TF1 * mDistribution
Definition:
Distributor.h:70
Smear::Distributor::Generate
virtual double Generate(double midpoint, double width)
Generate a random value based on a given midpoint and width.
Definition:
Distributor.cxx:45
src
smear
Distributor.cxx
Generated on Fri Jan 31 2020 15:11:33 for eic-smear by
1.8.17