Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/celeritas/io/detail/ImportDataConverter.hh was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

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/io/detail/ImportDataConverter.hh
0006 //---------------------------------------------------------------------------//
0007 #pragma once
0008 
0009 #include "celeritas/Types.hh"
0010 
0011 namespace celeritas
0012 {
0013 struct ImportData;
0014 struct ImportElement;
0015 struct ImportEmParameters;
0016 struct ImportPhysMaterial;
0017 struct ImportModel;
0018 struct ImportModelMaterial;
0019 struct ImportMscModel;
0020 struct ImportOpticalMaterial;
0021 struct ImportOpticalModel;
0022 struct ImportParticle;
0023 struct ImportPhysicsTable;
0024 struct ImportProcess;
0025 struct ImportGeoMaterial;
0026 
0027 namespace detail
0028 {
0029 //---------------------------------------------------------------------------//
0030 /*!
0031  * Convert imported data from one unit system to another.
0032  */
0033 class ImportDataConverter
0034 {
0035   public:
0036     // Construct with a unit system
0037     explicit ImportDataConverter(UnitSystem usys);
0038 
0039     //!@{
0040     //! Convert imported data to the native unit type
0041     void operator()(ImportData* data);
0042     void operator()(ImportElement* data);
0043     void operator()(ImportEmParameters* data);
0044     void operator()(ImportGeoMaterial* data);
0045     void operator()(ImportPhysMaterial* data);
0046     void operator()(ImportOpticalMaterial* data);
0047     void operator()(ImportOpticalModel* data);
0048     void operator()(ImportModel* data);
0049     void operator()(ImportModelMaterial* data);
0050     void operator()(ImportMscModel* data);
0051     void operator()(ImportParticle* data);
0052     void operator()(ImportPhysicsTable* data);
0053     void operator()(ImportProcess* data);
0054     //!@}
0055 
0056   private:
0057     UnitSystem usys_;
0058     double len_;
0059     double numdens_;
0060     double time_;
0061     double xs_;
0062     double inv_pressure_;
0063 };
0064 
0065 //---------------------------------------------------------------------------//
0066 }  // namespace detail
0067 }  // namespace celeritas