Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
JetScapeTaskSupport.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file JetScapeTaskSupport.h
1 /*******************************************************************************
2  * Copyright (c) The JETSCAPE Collaboration, 2018
3  *
4  * Modular, task-based framework for simulating all aspects of heavy-ion collisions
5  *
6  * For the list of contributors see AUTHORS.
7  *
8  * Report issues at https://github.com/JETSCAPE/JETSCAPE/issues
9  *
10  * or via email to bugs.jetscape@gmail.com
11  *
12  * Distributed under the GNU General Public License 3.0 (GPLv3 or later).
13  * See COPYING for details.
14  ******************************************************************************/
15 
32 #ifndef JETSCAPETASKSUPPORT_H
33 #define JETSCAPETASKSUPPORT_H
34 
35 #include "InitialState.h"
36 #include "JetEnergyLoss.h"
37 #include "JetEnergyLossManager.h"
38 #include "FluidDynamics.h"
39 #include "HardProcess.h"
40 #include "JetScapeWriter.h"
41 
42 #include <iostream>
43 #include <atomic>
44 #include <memory>
45 #include <random>
46 #include <thread>
47 
48 using std::atomic_int;
49 
50 namespace Jetscape {
51 
52 class
53  JetScapeTaskSupport //: public sigslot::has_slots<sigslot::multi_threaded_local>
54 {
55 
56 public:
57  static JetScapeTaskSupport *Instance();
58  // void CleanUp();
59 
64  int RegisterTask();
65 
67  static void ReadSeedFromXML();
68 
73  shared_ptr<std::mt19937> GetMt19937Generator(int TaskId);
74 
75  // Getters
76  static unsigned int GetRandomSeed() { return random_seed_; };
77 
78 protected:
79  static bool one_generator_per_task_;
80 
81 private:
82  JetScapeTaskSupport() : CurrentTaskNumber(0){};
83 
84  static JetScapeTaskSupport *m_pInstance;
85 
86  atomic_int CurrentTaskNumber;
87  static unsigned int random_seed_;
88  static bool initialized_;
89 
91 };
92 
93 } // end namespace Jetscape
94 
95 #endif