Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:13:56

0001 //!    \file Frontend.h
0002 //!    \brief Declares the interfaces for loading GDML to VecGeom
0003 //!
0004 //!    \authors Author:  Dmitry Savin <sd57@protonmail.ch>
0005 //!
0006 
0007 #pragma once
0008 #ifndef VGDMLFrontend_h
0009 #define VGDMLFrontend_h
0010 
0011 #include <string>
0012 #include <memory>
0013 #include "Middleware.h"
0014 
0015 namespace vgdml {
0016 
0017 namespace Frontend {
0018 /// Construct a VecGeom geometry tree from a GDML file
0019 /// \return true if the geometry was read and constructed without error
0020 bool Load(std::string const &aFilename, bool validate = true, double mm_unit = 0.1, bool verbose = 1);
0021 } // namespace Frontend
0022 
0023 struct Parser {
0024 public:
0025   /// Construct a VecGeom geometry tree from a GDML file
0026   /// \return unique_ptr holding VGDML representation of material/auxiliary data, or nullptr if construction fails
0027   std::unique_ptr<Middleware> Load(std::string const &aFilename, bool validate = true, double mm_unit = 0.1,
0028                                    bool verbose = 1);
0029 };
0030 
0031 } // namespace vgdml
0032 
0033 #endif // VGDMLFrontend_h