ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Simulation
ISF
ISF_FastCaloSim
ISF_FastCaloGpu
src
Rand4Hits_cpu.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
#include <random>
5
#include <vector>
6
#include <algorithm>
7
8
#define cpu_randgen_t std::mt19937
9
10
void
Rand4Hits::createCPUGen
(
unsigned
long
long
seed ) {
11
cpu_randgen_t
* eng =
new
cpu_randgen_t
( seed );
12
m_gen
= (
void
*)eng;
13
}
14
15
void
Rand4Hits::destroyCPUGen
() {
16
if
(
m_gen
) {
delete
(
cpu_randgen_t
*)
m_gen
; }
17
}
18
19
float
*
Rand4Hits::genCPU
(
size_t
num ) {
20
m_rnd_cpu
.resize( num );
21
22
cpu_randgen_t
* eng = (
cpu_randgen_t
*)(
m_gen
);
23
24
auto
RNG = [eng](
float
low,
float
high ) {
25
auto
randomFunc = [distribution_ = std::uniform_real_distribution<float>( low, high ),
26
&random_engine_ = *eng]()
mutable
{
return
distribution_( random_engine_ ); };
27
return
randomFunc;
28
};
29
30
std::generate_n(
m_rnd_cpu
.begin(), num, RNG( 0.f, 1.f ) );
31
32
return
m_rnd_cpu
.data();
33
}
cpu_randgen_t
#define cpu_randgen_t
Definition
Rand4Hits_cpu.cxx:8
Rand4Hits::destroyCPUGen
void destroyCPUGen()
Definition
Rand4Hits_cpu.cxx:15
Rand4Hits::createCPUGen
void createCPUGen(unsigned long long seed)
Definition
Rand4Hits_cpu.cxx:10
Rand4Hits::m_gen
void * m_gen
Definition
Rand4Hits.h:67
Rand4Hits::m_rnd_cpu
std::vector< float > m_rnd_cpu
Definition
Rand4Hits.h:80
Rand4Hits::genCPU
float * genCPU(size_t num)
Definition
Rand4Hits_cpu.cxx:19
Generated on
for ATLAS Offline Software by
1.17.0