Files
geant4/source/analysis/g4tools/include/tools/randf
T
2016-12-09 12:35:28 +01:00

75 lines
1.7 KiB
Plaintext

// Copyright (C) 2010, Guy Barrand. All rights reserved.
// See the file tools.license for terms.
#ifndef tools_randf
#define tools_randf
#include "randT"
#include "rtausmef"
namespace tools {
class rgaussf : public rgauss<rtausmef,float> {
typedef rgauss<rtausmef,float> parent;
public:
rgaussf(float a_mean = 0,float a_std_dev = 1):parent(m_flat,a_mean,a_std_dev),m_flat(){}
virtual ~rgaussf(){}
public:
rgaussf(const rgaussf& a_from):parent(m_flat),m_flat(a_from.m_flat){}
rgaussf& operator=(const rgaussf& a_from) {
parent::operator=(a_from);
m_flat = a_from.m_flat;
return *this;
}
public:
float shoot() const {return parent::shoot(::sqrtf,::logf);}
protected:
rtausmef m_flat;
};
class rexpf : public rexp<rtausmef,float> {
typedef rexp<rtausmef,float> parent;
public:
rexpf(float a_rate = 1):parent(m_flat,a_rate),m_flat(){}
virtual ~rexpf(){}
public:
rexpf(const rexpf& a_from):parent(m_flat),m_flat(a_from.m_flat){}
rexpf& operator=(const rexpf& a_from) {
parent::operator=(a_from);
m_flat = a_from.m_flat;
return *this;
}
public:
float shoot() const {return parent::shoot(::logf);}
protected:
rtausmef m_flat;
};
}
#include "mathf"
namespace tools {
class rbwf : public rbw<rtausmef,float> {
typedef rbw<rtausmef,float> parent;
public:
rbwf(float a_mean = 0,float a_gamma = 1):parent(m_flat,a_mean,a_gamma),m_flat(){}
virtual ~rbwf(){}
public:
rbwf(const rbwf& a_from):parent(m_flat),m_flat(a_from.m_flat){}
rbwf& operator=(const rbwf& a_from) {
parent::operator=(a_from);
m_flat = a_from.m_flat;
return *this;
}
public:
float shoot() const {return parent::shoot(fhalf_pi(),::tanf);}
protected:
rtausmef m_flat;
};
}
#endif