18const UInt_t nNumbers = 20000000U;
24const auto workSize = nNumbers / nWorkers;
43 TFile ofile(
"mt101_singleCore.root",
"RECREATE");
44 TNtuple randomNumbers(
"singleCore",
"Random Numbers",
"r");
45 fillRandom(randomNumbers, rndm, nNumbers);
46 randomNumbers.Write();
56 auto workItem = [](
UInt_t workerID) {
59 TFile ofile(
Form(
"mt101_multiCore_%u.root", workerID),
"RECREATE");
60 TNtuple workerRandomNumbers(
"multiCore",
"Random Numbers",
"r");
61 fillRandom(workerRandomNumbers, workerRndm, workSize);
62 workerRandomNumbers.Write();
67 std::vector<std::thread> workers;
71 workers.emplace_back(workItem, workerID);
75 for (
auto &&worker : workers)
int Int_t
Signed integer 4 bytes (int).
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int).
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
A simple TTree restricted to a list of float variables only.
Random number generator class based on M.
virtual Double_t Gaus(Double_t mean=0, Double_t sigma=1)
Samples a random number from the standard Normal (Gaussian) Distribution with the given mean and sigm...
void EnableThreadSafety()
Enable support for multi-threading within the ROOT code in particular, enables the global mutex to ma...