Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-19 08:49:55

0001 //------------------------------- -*- C++ -*- -------------------------------//
0002 // Copyright Celeritas contributors: see top-level COPYRIGHT file for details
0003 // SPDX-License-Identifier: (Apache-2.0 OR MIT)
0004 //---------------------------------------------------------------------------//
0005 //! \file celeritas/setup/Problem.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include <memory>
0010 #include <string>
0011 
0012 namespace celeritas
0013 {
0014 //---------------------------------------------------------------------------//
0015 namespace inp
0016 {
0017 struct Problem;
0018 }
0019 
0020 class CoreParams;
0021 class GeantSd;
0022 class OpticalCollector;
0023 class RootFileManager;
0024 class StepCollector;
0025 struct ImportData;
0026 
0027 namespace setup
0028 {
0029 //---------------------------------------------------------------------------//
0030 //! Result from loaded standalone input to be used in front-end apps
0031 struct ProblemLoaded
0032 {
0033     //! Problem setup
0034     std::shared_ptr<CoreParams> core_params;
0035 
0036     //!@{
0037     //! \name Input-dependent products
0038 
0039     //! Step collector
0040     std::shared_ptr<StepCollector> step_collector;
0041     //! Optical offload management
0042     std::shared_ptr<OpticalCollector> optical_collector;
0043     //! Geant4 SD interface
0044     std::shared_ptr<GeantSd> geant_sd;
0045     //! ROOT file manager
0046     std::shared_ptr<RootFileManager> root_manager;
0047 
0048     //!@}
0049 
0050     //!@{
0051     //! \name Temporary: to be used downstream
0052     //! \todo These should be refactored: should be built in Problem
0053 
0054     //! Write offloaded primaries
0055     std::string offload_file;
0056     //! Write diagnostic output
0057     std::string output_file;
0058 
0059     //!@}
0060 };
0061 
0062 //---------------------------------------------------------------------------//
0063 // Set up the problem
0064 ProblemLoaded problem(inp::Problem const& p, ImportData const& imported);
0065 
0066 //---------------------------------------------------------------------------//
0067 }  // namespace setup
0068 }  // namespace celeritas