Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HadronizationManager.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file HadronizationManager.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 
16 #ifndef HADRONIZATIONMANAGER_H
17 #define HADRONIZATIONMANAGER_H
18 
19 #include "JetScapeTask.h"
20 #include "JetClass.h"
21 #include "sigslot.h"
22 
23 #include "Hadronization.h"
24 
25 #include <vector>
26 
27 namespace Jetscape {
28 
29 // : public JetScapeTask,
31  : public JetScapeModuleBase,
32  public std::enable_shared_from_this<HadronizationManager> {
33 
34 public:
36  virtual ~HadronizationManager();
37 
38  virtual void Init();
39  virtual void Exec();
40  virtual void Clear();
41  virtual void WriteTask(weak_ptr<JetScapeWriter> w);
42 
43  int GetNumSignals();
44 
45  void CreateSignalSlots();
46 
47  //get Hadrons from Hadronization submodules
48  void GetHadrons(vector<shared_ptr<Hadron>>& signal);
49 
50  // deletes the hadrons from the different hadronization modules
51  // this is used in the case of hadronization hadrons in the afterburner
52  // otherwise these hadrons are printed to file and the same hadrons will be
53  // modified in the transport and printed again
54  void DeleteHadrons();
55  // this function removes all positive hadrons, the negative ones are not deleted
56  // needed, when positive hadrons are given to the afterburner
57  void DeleteRealHadrons();
58 
59  sigslot::signal1<vector<shared_ptr<Hadron>> &> GetHadronList; //get Hadrons from HardProcess NOT Hadronization submodules
60 
62 
63  void SetGetFinalPartonListConnected(bool m_GetFinalPartonListConnected) {
64  GetFinalPartonListConnected = m_GetFinalPartonListConnected;
65  }
68  }
69 
70  void SetGetHadronListConnected(bool m_GetHadronListConnected) {
71  GetHadronListConnected = m_GetHadronListConnected;
72  }
74 
75 private:
78  vector<vector<shared_ptr<Parton>>> hd;
79  vector<shared_ptr<Hadron>> hadrons;
80 };
81 
82 } // end namespace Jetscape
83 
84 #endif