Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LiquefierBase.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file LiquefierBase.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 LIQUEFIERBASE_H
17 #define LIQUEFIERBASE_H
18 
19 #include "JetClass.h"
20 #include "sigslot.h"
21 #include "FluidCellInfo.h"
22 
23 #include <array>
24 #include <vector>
25 #include "RealType.h"
26 
27 namespace Jetscape {
28 
29 class Droplet {
30 private:
31  std::array<Jetscape::real, 4> xmu;
32  std::array<Jetscape::real, 4> pmu;
33 
34 public:
35  Droplet() = default;
36  Droplet(std::array<Jetscape::real, 4> x_in,
37  std::array<Jetscape::real, 4> p_in) {
38  xmu = x_in;
39  pmu = p_in;
40  }
41  ~Droplet(){};
42 
43  std::array<Jetscape::real, 4> get_xmu() const { return (xmu); }
44 
45  std::array<Jetscape::real, 4> get_pmu() const { return (pmu); }
46 };
47 
49 private:
50  std::vector<Droplet> dropletlist;
52  const int drop_stat;
53  const int miss_stat;
54  const int neg_stat;
56 
57 public:
58  LiquefierBase();
60 
61  void add_a_droplet(Droplet droplet_in) { dropletlist.push_back(droplet_in); }
62 
63  int get_drop_stat() const { return (drop_stat); }
64  int get_miss_stat() const { return (miss_stat); }
65  int get_neg_stat() const { return (neg_stat); }
66 
67  Droplet get_a_droplet(const int idx) const { return (dropletlist[idx]); }
68 
69  void check_energy_momentum_conservation(const std::vector<Parton> &pIn,
70  std::vector<Parton> &pOut);
71  void filter_partons(std::vector<Parton> &pOut);
72  void add_hydro_sources(std::vector<Parton> &pIn, std::vector<Parton> &pOut);
73 
76  std::unique_ptr<FluidCellInfo> &,
77  sigslot::multi_threaded_local>
79 
82  }
83 
84  void set_GetHydroCellSignalConnected(bool m_GetHydroCellSignalConnected) {
85  GetHydroCellSignalConnected = m_GetHydroCellSignalConnected;
86  }
87 
88  int get_dropletlist_size() const { return (dropletlist.size()); }
89 
91 
94  const Droplet drop_i,
95  std::array<Jetscape::real, 4> &jmu) const {
96  jmu = {0, 0, 0, 0};
97  }
98 
100  Jetscape::real eta, std::array<Jetscape::real, 4> &jmu) const;
101 
102  virtual void Clear();
103 };
104 
105 }; // namespace Jetscape
106 
107 #endif // LIQUEFIERBASE_H