Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:19:20

0001 /*******************************************************************************
0002  * Copyright (c) The JETSCAPE Collaboration, 2018
0003  *
0004  * Modular, task-based framework for simulating all aspects of heavy-ion collisions
0005  * 
0006  * For the list of contributors see AUTHORS.
0007  *
0008  * Report issues at https://github.com/JETSCAPE/JETSCAPE/issues
0009  *
0010  * or via email to bugs.jetscape@gmail.com
0011  *
0012  * Distributed under the GNU General Public License 3.0 (GPLv3 or later).
0013  * See COPYING for details.
0014  ******************************************************************************/
0015 // This is a general basic class for a hyper-surface finder
0016 
0017 #ifndef SURFACEFINDER_H_
0018 #define SURFACEFINDER_H_
0019 
0020 #include <vector>
0021 
0022 #include "RealType.h"
0023 #include "SurfaceCellInfo.h"
0024 #include "FluidEvolutionHistory.h"
0025 
0026 namespace Jetscape {
0027 
0028 class SurfaceFinder {
0029 private:
0030   Jetscape::real T_cut;
0031   const EvolutionHistory &bulk_info;
0032   bool boost_invariant;
0033 
0034   std::vector<SurfaceCellInfo> surface_cell_list;
0035 
0036 public:
0037   SurfaceFinder(const Jetscape::real T_in, const EvolutionHistory &bulk_data);
0038   ~SurfaceFinder();
0039 
0040   void Find_full_hypersurface();
0041 
0042   int get_number_of_surface_cells() const { return (surface_cell_list.size()); }
0043   SurfaceCellInfo get_surface_cell_with_idx(int idx) const {
0044     return (surface_cell_list[idx]);
0045   }
0046   std::vector<SurfaceCellInfo> get_surface_cells_vector() const {
0047     return (surface_cell_list);
0048   }
0049 
0050   bool check_intersect_3D(Jetscape::real tau, Jetscape::real x,
0051                           Jetscape::real y, Jetscape::real dt,
0052                           Jetscape::real dx, Jetscape::real dy, double ***cube);
0053   void Find_full_hypersurface_3D();
0054 
0055   bool check_intersect_4D(Jetscape::real tau, Jetscape::real x,
0056                           Jetscape::real y, Jetscape::real eta,
0057                           Jetscape::real dt, Jetscape::real dx,
0058                           Jetscape::real dy, Jetscape::real deta,
0059                           double ****cube);
0060   void Find_full_hypersurface_4D();
0061 
0062   SurfaceCellInfo PrepareASurfaceCell(Jetscape::real tau, Jetscape::real x,
0063                                       Jetscape::real y, Jetscape::real eta,
0064                                       Jetscape::real da0, Jetscape::real da1,
0065                                       Jetscape::real da2, Jetscape::real da3,
0066                                       const FluidCellInfo fluid_cell);
0067 };
0068 
0069 } // namespace Jetscape
0070 
0071 #endif // SURFACEFINDER_H_