Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TrentoInitial.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file TrentoInitial.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 TRENTOINITIAL_H
17 #define TRENTOINITIAL_H
18 
19 #include <tuple>
20 #include <memory>
21 #include <iostream>
22 #include <boost/filesystem.hpp>
23 #include <boost/filesystem/fstream.hpp>
24 #include <boost/program_options.hpp>
25 
26 #include "fwd_decl.h"
27 #include "JetScapeModuleBase.h"
28 #include "collider.h"
29 #include "InitialState.h"
30 #include "JetScapeLogger.h"
31 
32 using OptDesc = po::options_description;
33 using VarMap = po::variables_map;
34 using namespace trento;
35 
36 namespace Jetscape {
37 
38 typedef struct {
42  double total_entropy;
43  std::map<int, double> ecc; // order, eccentricity
44  std::map<int, double> psi; // order, participant_plane
45  double xmid, ymid;
46 } EventInfo;
47 
56 
57 class TrentoInitial : public InitialState {
58 public:
59  // Initialize from XML configuration
60  TrentoInitial();
61  ~TrentoInitial();
62 
63  //void Init();
64  void Exec();
65  void Clear();
66  void InitTask();
67 
68  struct RangeFailure : public std::runtime_error {
69  using std::runtime_error::runtime_error;
70  };
72 
73 private:
74  std::shared_ptr<trento::Collider> TrentoGen_;
75  std::pair<double, double> GenCenTab(std::string proj, std::string targ,
76  VarMap var_map, int cL, int cH);
78  // Output output_;
79 
80  // Allows the registration of the module so that it is available to be used by the Jetscape framework.
82 };
83 
84 } // end namespace Jetscape
85 
86 #endif // TRENTOINITIAL_H