Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes
G4TemplateRNGHelper< T > Class Template Reference

#include <G4RNGHelper.hh>

Public Types

typedef std::vector< T > SeedsQueue
 
typedef SeedsQueue::size_type SeedsQueueSize_type
 

Public Member Functions

virtual ~G4TemplateRNGHelper ()
 
virtual const T GetSeed (const G4int &sdId)
 
void AddOneSeed (const T &seed)
 
void Fill (double *dbl, int nev, int nev_tot, int nrpe)
 
void Refill (double *dbl, int nev)
 
const SeedsQueueSize_type GetNumberSeeds () const
 
virtual void Clear ()
 

Static Public Member Functions

static G4TemplateRNGHelperGetInstance ()
 

Protected Attributes

SeedsQueue seeds
 
int offset
 
int nev_filled
 
int nev_total
 
int nRandParEvent
 

Detailed Description

template<class T>
class G4TemplateRNGHelper< T >

Definition at line 47 of file G4RNGHelper.hh.

Member Typedef Documentation

template<class T>
typedef std::vector<T> G4TemplateRNGHelper< T >::SeedsQueue

Definition at line 59 of file G4RNGHelper.hh.

template<class T>
typedef SeedsQueue::size_type G4TemplateRNGHelper< T >::SeedsQueueSize_type

Definition at line 60 of file G4RNGHelper.hh.

Constructor & Destructor Documentation

template<class T>
virtual G4TemplateRNGHelper< T >::~G4TemplateRNGHelper ( )
inlinevirtual

Definition at line 71 of file G4RNGHelper.hh.

References G4TemplateRNGHelper< T >::Clear().

71  {
72  Clear();
73  instance = 0;
74  }
virtual void Clear()
Definition: G4RNGHelper.hh:120

Member Function Documentation

template<class T>
void G4TemplateRNGHelper< T >::AddOneSeed ( const T &  seed)
inline

Definition at line 92 of file G4RNGHelper.hh.

References G4TemplateRNGHelper< T >::seeds.

92 { seeds.push_back(seed); }
template<class T>
virtual void G4TemplateRNGHelper< T >::Clear ( )
inlinevirtual

Definition at line 120 of file G4RNGHelper.hh.

References G4TemplateRNGHelper< T >::seeds.

Referenced by G4TemplateRNGHelper< T >::~G4TemplateRNGHelper().

120 { seeds.clear(); }
template<class T>
void G4TemplateRNGHelper< T >::Fill ( double *  dbl,
int  nev,
int  nev_tot,
int  nrpe 
)
inline

Definition at line 95 of file G4RNGHelper.hh.

References G4TemplateRNGHelper< T >::nev_filled, G4TemplateRNGHelper< T >::nev_total, G4TemplateRNGHelper< T >::nRandParEvent, G4TemplateRNGHelper< T >::offset, and G4TemplateRNGHelper< T >::seeds.

Referenced by G4MTRunManager::InitializeEventLoop().

96  {
97  seeds.clear();
98  for(int i=0;i<nrpe*nev;i++)
99  { seeds.push_back((long)(100000000L*dbl[i])); }
100  offset = 0;
101  nev_filled = nev;
102  nev_total = nev_tot;
103  nRandParEvent = nrpe;
104  }
template<class T>
static G4TemplateRNGHelper* G4TemplateRNGHelper< T >::GetInstance ( void  )
inlinestatic

Definition at line 52 of file G4RNGHelper.hh.

Referenced by G4WorkerRunManager::GenerateEvent(), G4MTRunManager::InitializeEventLoop(), G4MTRunManager::RefillSeeds(), G4MTRunManager::SetUpAnEvent(), and G4MTRunManager::SetUpNEvents().

52  {
53  if (!instance)
54  {
55  instance = new G4TemplateRNGHelper();
56  }
57  return instance;
58  }
template<class T>
const SeedsQueueSize_type G4TemplateRNGHelper< T >::GetNumberSeeds ( ) const
inline

Definition at line 117 of file G4RNGHelper.hh.

References G4TemplateRNGHelper< T >::seeds.

117 { return seeds.size(); }
template<class T>
virtual const T G4TemplateRNGHelper< T >::GetSeed ( const G4int sdId)
inlinevirtual

Definition at line 77 of file G4RNGHelper.hh.

References FatalException, G4Exception(), G4TemplateRNGHelper< T >::offset, and G4TemplateRNGHelper< T >::seeds.

Referenced by G4WorkerRunManager::GenerateEvent(), G4MTRunManager::SetUpAnEvent(), and G4MTRunManager::SetUpNEvents().

77  {
78  G4int seedId = sdId - 2*offset;
79  if ( seedId < static_cast<G4int>(seeds.size()) )
80  {
81  T& seed = seeds[seedId];
82  return seed;
83  }
85  msg << "No seed number "<<seedId<<"("<<seeds.size()<<" available)\n"
86  << " Original seed number "<<sdId<<" filled so far "<<offset;
87  G4Exception("G4RNGHelper::GetSeed","Run0035", FatalException,msg);
88  return T();
89  }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
int G4int
Definition: G4Types.hh:78
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
template<class T>
void G4TemplateRNGHelper< T >::Refill ( double *  dbl,
int  nev 
)
inline

Definition at line 106 of file G4RNGHelper.hh.

References G4TemplateRNGHelper< T >::nev_filled, G4TemplateRNGHelper< T >::nRandParEvent, G4TemplateRNGHelper< T >::offset, and G4TemplateRNGHelper< T >::seeds.

Referenced by G4MTRunManager::RefillSeeds().

107  {
108  if(nev==0) return;
109  seeds.clear();
110  for(int i=0;i<nRandParEvent*nev;i++)
111  { seeds.push_back((long)(100000000L*dbl[i])); }
112  offset += nev_filled;
113  nev_filled = nev;
114  }

Field Documentation

template<class T>
int G4TemplateRNGHelper< T >::nev_filled
protected
template<class T>
int G4TemplateRNGHelper< T >::nev_total
protected

Definition at line 127 of file G4RNGHelper.hh.

Referenced by G4TemplateRNGHelper< T >::Fill().

template<class T>
int G4TemplateRNGHelper< T >::nRandParEvent
protected
template<class T>
int G4TemplateRNGHelper< T >::offset
protected
template<class T>
SeedsQueue G4TemplateRNGHelper< T >::seeds
protected

The documentation for this class was generated from the following file: