Skip to content
Snippets Groups Projects
Select Git revision
  • 8a25c826cd6a1f7f66ad45e6d01a0ec2620dc472
  • main default protected
  • dynamiccastcheck
  • generic_geometry
  • evc/volume_tmp
  • examples-update
  • generic_polyhedron
  • GoToQt6AndFixSlider
  • rbianchi-main-patch-32220
  • 6.11.X
  • patch_G4ElementsSorting
  • remove-old-unused-geomodelio-code
  • athena-ci-2025
  • add-printTree-exec
  • magFieldOpt
  • 6.3.Y
  • IO_ConditionalLoadDBTables
  • pTest
  • MaterialsAndCoReform
  • pipeline-test
  • TFPersistificationReform
  • 6.19.0
  • 6.18.0
  • 6.17.0
  • 6.16.0
  • 6.15.0
  • 6.14.0
  • 6.13.0
  • 6.12.0
  • 6.11.1
  • 6.11.0
  • 6.10.0_testG4ElementSorting
  • 6.10.0
  • 6.9.0
  • 6.8.0
  • 6.7.0
  • 6.6.0
  • 6.5.0
  • 6.4.0
  • 6.3.0
  • 6.2.0
41 results

GeoModel

  • Open with
  • Download source code
  • Your workspaces

      A workspace is a virtual sandbox environment for your code in GitLab.

      No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.

  • user avatar
    scott snyder authored
    GeoXF.cxx makes heavy use of Eigen.  In debug builds it ends up being
    much, much slower than in optimized builds, to the point where where it
    makes it difficult to run things in dbg.  Tweak the build so that we compile
    GeoXF.cxx with optimization, even in dbg builds.  We also need to use the
    flatten attribute on the functions that use Eigen, so ensure that the Eigen
    operations are completely inlined.
    
    This was motivated by the fact that numerous tests are timing out in the dbg
    build.  This change alone reduced the time required by one test from ~600s
    to ~400s.
    8a25c826
    History

    GeoModel --- A user-friendly C++ Toolkit for HEP Detector Description

    GeoModel is a user-friendly C++ Toolkit and Suite for HEP Detector Description with minimal dependencies.

    Dependencies

    The philosophy of the whole GeoModel Suite is to keep the external dependencies at the minimum.

    The core packages only depend on these third-party libraries:

    • Eigen3, as the maths library (header-only)
    • SQLite, as the underlying format to store detector description data
    • fmt, as formatting library (header-only)

    Structure

    Build tree

    By default, only the base classes are built:

    • GeoModelCore
      • GeoModelKernel
      • GeoGenericFunctions
    • GeoModelIO
      • GeoModelDBManager
      • GeoModelWrite
      • GeoModelRead
      • TFPersistification

    On request, additional packages, libraries, and tools can be built:

    • GeoModelTools
      • ExpressionEvaluator
      • GeoModelJSONParser
      • GeoModelXMLParser
      • GMCAT
    • GeoModelVisualization (gmex)
    • GeoModelExamples
    • GeoModelG4
      • GeoMaterial2G4
      • GeoModel2G4
    • FullSimLight

    Note:

    Some of the optional packages bring in additional dependencies, for example libraries to handle 3D graphics and Geant4 for standalone detector simulations.

    In particular, these are the additional dependencies and the packages that bring them:

    • GeoModelTools: Xerces-C, nlohmann_json
    • GeoModelVisualization: Qt5, Coin3D, SoQt, nlohmann_json
    • Examples about the classes handling the GeoModel->Geant4 translation: Geant4
    • GeoModelG4: Geant4
    • FullSimLight: Geant4

    Build

    For the build instruction, you can refer to the documentation folder:

    documentation/dev/

    or to the web-based render at the documentation website:

    https://geomodel.web.cern.ch/geomodel/

    License

    GeoModel is distributed under the Apache 2.0 license

    Core Developers and Maintainers

    GeoModel is developed and maintained by (in alphabetical order):

    • Marilena Bandieramonte (University of Pittsburgh, US)
    • Riccardo Maria Bianchi (University of Pittsburgh, US)
    • Joseph Boudreau (University of Pittsburgh, US)
    • Andrea Dell'Acqua (CERN, CH)
    • Vakhtang Tsulaia (LBNL, US)

    Contacts

    For questions and requests, you can open an "Issue".