Import Geant4 11.2.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2023-06-30 09:09:57 +02:00
parent aef78ca386
commit dd1f179cda
3780 changed files with 212808 additions and 142780 deletions
+15 -22
View File
@@ -42,30 +42,29 @@
#ifndef G4TemplateRNGHelper_hh
#define G4TemplateRNGHelper_hh 1
#include "globals.hh"
#include <queue>
#include <vector>
#include "globals.hh"
template <class T>
template<class T>
class G4TemplateRNGHelper
{
public:
// The container is modeled as a (shared) singleton
static G4TemplateRNGHelper<T>* GetInstance();
static G4TemplateRNGHelper<T>* GetInstanceIfExist();
using SeedsQueue = std::vector<T>;
using SeedsQueueSize_type = typename SeedsQueue::size_type;
public:
// The container is modeled as a (shared) singleton
static G4TemplateRNGHelper<T>* GetInstance();
static G4TemplateRNGHelper<T>* GetInstanceIfExist();
virtual ~G4TemplateRNGHelper();
// Returns seed given id
virtual const T GetSeed(const G4int& sdId)
{
G4int seedId = sdId - 2 * offset;
if(seedId < static_cast<G4int>(seeds.size()))
{
if (seedId < static_cast<G4int>(seeds.size())) {
T& seed = seeds[seedId];
return seed;
}
@@ -83,23 +82,20 @@ class G4TemplateRNGHelper
void Fill(G4double* dbl, G4int nev, G4int nev_tot, G4int nrpe)
{
seeds.clear();
for(G4int i = 0; i < nrpe * nev; ++i)
{
for (G4int i = 0; i < nrpe * nev; ++i) {
seeds.push_back((G4long)(100000000L * dbl[i]));
}
offset = 0;
nev_filled = nev;
nev_total = nev_tot;
offset = 0;
nev_filled = nev;
nev_total = nev_tot;
nRandParEvent = nrpe;
}
void Refill(G4double* dbl, G4int nev)
{
if(nev == 0)
return;
if (nev == 0) return;
seeds.clear();
for(G4int i = 0; i < nRandParEvent * nev; ++i)
{
for (G4int i = 0; i < nRandParEvent * nev; ++i) {
seeds.push_back((G4long)(100000000L * dbl[i]));
}
offset += nev_filled;
@@ -113,7 +109,6 @@ class G4TemplateRNGHelper
virtual void Clear() { seeds.clear(); }
protected:
SeedsQueue seeds;
// Note: following numbers are number of events.
// seeds are generated for nRandParEvent times n_event
@@ -123,11 +118,9 @@ class G4TemplateRNGHelper
G4int nRandParEvent = 0;
private:
G4TemplateRNGHelper() {}
G4TemplateRNGHelper() = default;
private:
static G4TemplateRNGHelper<T>* instance;
};