34 #include "CLHEP/Random/RandGauss.h" 69 while (j < s.size() && s[
j] !=
',' && !isdigit(s[j]) && s[
j] !=
'.')
71 if (j < s.size() && (isdigit(s[j]) || s[
j] ==
'.')) {
72 x = atof(s.c_str() +
j);
90 : _resolution_exponent(0) {
99 while (i < s.size() && isspace(s[i]))
106 }
else if (s[i] ==
'+') {
111 if (get_field(s, i, x))
116 if (i != string::npos) {
118 if (get_field(s, i, x))
123 if (i != string::npos) {
124 if (get_field(s, i + 1, x))
196 CLHEP::RandGauss
gen(engine);
198 return 1 / gen.fire(1 / x,
sigma(
p));
200 return gen.fire(x,
sigma(
p));
double R() const
Return the R term (resolution term)
Calculate and represent resolution for a physical quantity.
double m() const
Return the exponent factor in the resolution term.
bool inverse() const
Return the setting of the inverse flag.
friend std::ostream & operator<<(std::ostream &s, const Resolution &r)
Output stream operator, print the content of this Resolution to an output stream. ...
double pick(double x, double p, CLHEP::HepRandomEngine &engine) const
Generate random value from a Gaussian distribution described by this resolution. Given a value ...
double _resolution_exponent
double sigma(double p) const
Return the uncertainty for a variable with magnitude p.
def gen(fragment, howMuch)
Production test section ####.
Resolution(std::string s="")
Constructor, initialize from a string.
double N() const
Return the N term (noise term)
Calculate and represent resolution for a physical quantity.
double C() const
Return the C term (constant term)