Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EMRandom Class Reference

#include <coresoftware/blob/master/simulation/g4simulation/g4main/EcoMug.h>

Public Member Functions

 EMRandom ()
 
void SetSeed (uint64_t seed)
 
double GenerateRandomDouble ()
 
double GenerateRandomDouble (double x1, double x2)
 
int64_t rotl (const uint64_t x, int k)
 
uint64_t next ()
 
double to_double (uint64_t x)
 

Public Attributes

uint64_t s [2]
 

Detailed Description

Fast generation of random numbers This class is based on the xoroshiro128+ generator. https://prng.di.unimi.it/

Definition at line 34 of file EcoMug.h.

View newest version in sPHENIX GitHub at line 34 of file EcoMug.h

Constructor & Destructor Documentation

EMRandom::EMRandom ( )
inline

Definition at line 37 of file EcoMug.h.

View newest version in sPHENIX GitHub at line 37 of file EcoMug.h

References gen(), rd, and s.

+ Here is the call graph for this function:

Member Function Documentation

double EMRandom::GenerateRandomDouble ( )
inline

Definition at line 52 of file EcoMug.h.

View newest version in sPHENIX GitHub at line 52 of file EcoMug.h

References next(), to_double(), and ambiguity_solver_full_chain::x.

Referenced by EcoMug::Generate(), EcoMug::GenerateFromCustomJ(), EcoMug::GenerateMomentumF1(), EcoMug::GeneratePositionCylinder(), EcoMug::GeneratePositionSky(), GenerateRandomDouble(), EMMaximization::Init(), and EMMaximization::Move().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double EMRandom::GenerateRandomDouble ( double  x1,
double  x2 
)
inline

Definition at line 58 of file EcoMug.h.

View newest version in sPHENIX GitHub at line 58 of file EcoMug.h

References GenerateRandomDouble().

+ Here is the call graph for this function:

uint64_t EMRandom::next ( )
inline

Definition at line 68 of file EcoMug.h.

View newest version in sPHENIX GitHub at line 68 of file EcoMug.h

References rotl(), and s.

Referenced by GenerateRandomDouble().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int64_t EMRandom::rotl ( const uint64_t  x,
int  k 
)
inline

Definition at line 63 of file EcoMug.h.

View newest version in sPHENIX GitHub at line 63 of file EcoMug.h

References k.

Referenced by next().

+ Here is the caller graph for this function:

void EMRandom::SetSeed ( uint64_t  seed)
inline

Definition at line 46 of file EcoMug.h.

View newest version in sPHENIX GitHub at line 46 of file EcoMug.h

References s, and seed.

Referenced by EcoMug::SetSeed().

+ Here is the caller graph for this function:

double EMRandom::to_double ( uint64_t  x)
inline

Definition at line 79 of file EcoMug.h.

View newest version in sPHENIX GitHub at line 79 of file EcoMug.h

References i, and physmon_ckf_tracking::u.

Referenced by GenerateRandomDouble().

+ Here is the caller graph for this function:

Member Data Documentation

uint64_t EMRandom::s[2]

Definition at line 88 of file EcoMug.h.

View newest version in sPHENIX GitHub at line 88 of file EcoMug.h

Referenced by EMRandom(), next(), and SetSeed().


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