Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4INCL::Ranecu Class Reference

#include <G4INCLRanecu.hh>

Inheritance diagram for G4INCL::Ranecu:
G4INCL::IRandomGenerator

Public Member Functions

 Ranecu ()
 
 Ranecu (const Random::SeedVector &sv)
 
virtual ~Ranecu ()
 
Random::SeedVector getSeeds ()
 
void setSeeds (const Random::SeedVector &sv)
 
G4double flat ()
 
- Public Member Functions inherited from G4INCL::IRandomGenerator
 IRandomGenerator ()
 
virtual ~IRandomGenerator ()
 

Detailed Description

Definition at line 52 of file G4INCLRanecu.hh.

Constructor & Destructor Documentation

G4INCL::Ranecu::Ranecu ( )

Definition at line 48 of file G4INCLRanecu.cc.

48  {
49  iseed1 = 666;
50  iseed2 = 777;
51  }
G4INCL::Ranecu::Ranecu ( const Random::SeedVector sv)

Definition at line 53 of file G4INCLRanecu.cc.

References setSeeds().

53  {
54  setSeeds(sv);
55  }
void setSeeds(const Random::SeedVector &sv)
Definition: G4INCLRanecu.hh:65
G4INCL::Ranecu::~Ranecu ( )
virtual

Definition at line 57 of file G4INCLRanecu.cc.

57 {}

Member Function Documentation

G4double G4INCL::Ranecu::flat ( )
virtual

Implements G4INCL::IRandomGenerator.

Definition at line 59 of file G4INCLRanecu.cc.

References iz.

60  {
61  // This is an adapted version of subroutine ranecu:
62  // A. Padal, J. Sempau Computer Physics Cummunications 175 (2006) 440-450
63  G4double uscale=1.0/2.147483563e9;
64 
65  long i1=iseed1/53668;
66  iseed1=40014*(iseed1-i1*53668)-i1*12211;
67 
68  if(iseed1 < 0) iseed1 = iseed1 + 2147483563;
69 
70  long i2=iseed2/52774;
71  iseed2=40692*(iseed2-i2*52774)-i2*3791;
72  if(iseed2 < 0) iseed2=iseed2+2147483399;
73 
74  long iz=iseed1-iseed2;
75  if(iz < 1) iz=iz+2147483562;
76 
77  return iz*uscale;
78  }
G4double iz
Definition: TRTMaterials.hh:39
double G4double
Definition: G4Types.hh:76
Random::SeedVector G4INCL::Ranecu::getSeeds ( )
inlinevirtual

Implements G4INCL::IRandomGenerator.

Definition at line 58 of file G4INCLRanecu.hh.

References G4INCL::Random::SeedVector::push_back().

58  {
59  Random::SeedVector sv;
60  sv.push_back(iseed1);
61  sv.push_back(iseed2);
62  return sv;
63  }
void G4INCL::Ranecu::setSeeds ( const Random::SeedVector sv)
inlinevirtual

Implements G4INCL::IRandomGenerator.

Definition at line 65 of file G4INCLRanecu.hh.

References G4INCL::Random::SeedVector::at().

Referenced by Ranecu().

65  {
66 // assert(sv.size()>=2);
67  iseed1 = sv.at(0);
68  iseed2 = sv.at(1);
69  }

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