Files
geant4/source/analysis/g4tools/include/tools/rtausmed
T
2019-12-06 15:12:28 +01:00

40 lines
974 B
Plaintext

// Copyright (C) 2010, Guy Barrand. All rights reserved.
// See the file tools.license for terms.
#ifndef tools_rtausmed
#define tools_rtausmed
// G.Barrand : not so clear if 0 and 1 are included.
// With a simple program, we saw no hits with "if(r.shoot()==0)" or "if(r.shoot()==1)".
// (See inlib/tests/rand.cpp).
#include "rtausmeui"
#include "S_STRING"
#include <cmath>
namespace tools {
class rtausmed : public rtausmeui {
typedef rtausmeui parent;
public:
TOOLS_SCLASS(tools::rtausmed)
public:
rtausmed(unsigned int a_seed = 4357):parent(a_seed){}
virtual ~rtausmed(){}
public:
rtausmed(const rtausmed& a_from):parent(a_from){}
rtausmed& operator=(const rtausmed& a_from) {parent::operator=(a_from);return *this;}
protected:
static double two_to_minus_32() {
static const double s_v = std::ldexp(1.0,-32);
return s_v;
}
public:
double shoot() {return double(parent::shoot()) * two_to_minus_32();}
};
}
#endif