{"id":17358591,"url":"https://github.com/niess/turtle-geant4","last_synced_at":"2025-03-27T15:22:45.873Z","repository":{"id":111397688,"uuid":"152266640","full_name":"niess/turtle-geant4","owner":"niess","description":"Import a topography in Geant4 using TURTLE","archived":false,"fork":false,"pushed_at":"2023-12-05T13:07:41.000Z","size":44,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T19:14:24.364Z","etag":null,"topics":["geant4","topography","turtle"],"latest_commit_sha":null,"homepage":"https://niess.github.io/turtle-pages","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/niess.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.LESSER","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-10-09T14:33:09.000Z","updated_at":"2023-09-11T12:32:11.000Z","dependencies_parsed_at":"2023-12-05T14:27:16.777Z","dependency_job_id":"ee95c185-2012-4e8e-8fa1-4f61b1de387b","html_url":"https://github.com/niess/turtle-geant4","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niess%2Fturtle-geant4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niess%2Fturtle-geant4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niess%2Fturtle-geant4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niess%2Fturtle-geant4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/niess","download_url":"https://codeload.github.com/niess/turtle-geant4/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245868522,"owners_count":20685666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geant4","topography","turtle"],"created_at":"2024-10-15T19:06:06.671Z","updated_at":"2025-03-27T15:22:45.839Z","avatar_url":"https://github.com/niess.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Turtle version](https://img.shields.io/badge/turtle-v0.11-blue.svg)](https://github.com/niess/turtle/releases/v0.11)\n[![Build Status](https://travis-ci.com/niess/turtle-geant4.svg?branch=master)](https://travis-ci.com/niess/turtle-geant4)\n\n# G4TURTLE\n( **G**eant**4** **T**opographic **U**tilities for t**R**ansporting par**T**icules over **L**ong rang**E**s )\n\n## Description\nThis is a [Geant4][Geant4] wrapper of the [TURTLE][TURTLE] library. It allows to\nefficiently import topographic data in [Geant4][Geant4] as a custom\n[G4VPhysicalVolume][G4VPhysicalVolume]. The [TURTLE][TURTLE] library is\nencapsulated in a [G4Turtle][G4Turtle] class. Below is a minimal\nexample for building a topography as a Geant4 geometry with [TURTLE][TURTLE]:\n\n```C++\n#include \"G4Turtle.hh\"\n\nG4VPhysicalVolume * DetectorConstruction::Construct()\n{\n        /* Fetch the topography */\n        G4Turtle * turtle = G4Turtle::GetInstance();\n        turtle-\u003eSetTopographyData(\"path/to/global/model\");\n\n        /* Return the topography as world volume */\n        return turtle-\u003eGetPhysicalVolume();\n}\n```\n\nNote that the Geant4 geometry for the topography is emulated from the data,\non the fly. Therefore it can't be visualized. This mechanism however allows\nto handle very large topographic data sets.\n\nExtra volumes can be placed inside the topography with the\n`G4Turtle::PVPlacement` method, e.g. a detector. The daughter volumes are placed\nby specifying their geographic coordinates, i.e. latitude, longitude, height\nabove ground, etc. Note that they prevail over the topography.\n\n## Installation\n\nBuilding the [G4Turtle][G4Turtle] class requires a vanilla Geant4 installation,\nincluding both header files and libraries. Builds have been successfully tested\nwith v10.0 to v10.5 of Geant4, e.g. using [Ubuntu Docker images](https://hub.docker.com/r/andreadotti/geant4-dev/).\n\nA [CMakeLists.txt](CMakeLists.txt) file is provided for building both\n[TURTLE][TURTLE] and [G4Turtle][G4Turtle] as shared libraries. This can be done\nfor example as:\n```bash\ncd g4turtle\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake install\n```\n\n- By default the installation is done to the `g4turtle` source directory, under\n  `lib` and `include`. You can specify a different install location as:\n  ```bash\n  cmake .. -DCMAKE_INSTALL_PREFIX=/path/to/install\n  ```\n\n- The [test](test) executable can be built as:\n  ```bash\n  make run-g4goupil\n  ```\n\n- The default build of [TURTLE][TURTLE] requires `libpng-dev` and `libtiff-dev`\n  for reading GeoTIFF and PNG topography data. On Debian and derivatives (e.g.\n  Ubuntu) these dependencies can be installed as:\n  ```bash\n  sudo apt install pkg-config libpng-dev libtiff-dev\n  ```\n\n- Alternatively, you can build your own version of [TURTLE][TURTLE], e.g. with\n  GEOTIFF disabled and link to it as:\n  ```bash\n  cmake .. -DTURTLE_PREFIX=/path/to/turtle/install\n  ```\n\n\n## License\n\nThe TURTLE library and the [G4Turtle][G4Turtle] wrapper are under the **GNU\nLGPLv3** license. See the provided [`LICENSE`](LICENSE) and\n[`COPYING.LESSER`](COPYING.LESSER) files. The [test](test) program however has a\nseparate public domain license allowing it to be copied without restrictions.\n\n[Geant4]: https://geant4.web.cern.ch/\n[G4VPhysicalVolume]: http://www.apc.univ-paris7.fr/~franco/g4doxy/html/classG4VPhysicalVolume.html\n[TURTLE]: https://niess.github.io/turtle-pages\n[G4Turtle]: src/G4Turtle.hh\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniess%2Fturtle-geant4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniess%2Fturtle-geant4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniess%2Fturtle-geant4/lists"}