Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
f0a3f93
add env yml
barachwal Apr 3, 2025
f63e9ed
update yml
barachwal Apr 3, 2025
11a84d9
update yml
barachwal Apr 4, 2025
d88621c
add beam rot exception handling
barachwal Apr 9, 2025
897d28a
Merge remote-tracking branch 'upstream/develop' into develop
jhajduga Apr 9, 2025
7cb03ae
Merge pull request #8 from jhajduga/update-to-upstream
jhajduga Apr 9, 2025
6dd88d1
Merge branch 'develop' into develop
jhajduga Apr 9, 2025
f5809aa
Merge pull request #9 from dose3d/develop
jhajduga Apr 9, 2025
037877c
 fix: merge run-level data using G4Cache - eliminating multiple dose …
jhajduga Apr 11, 2025
5edffd8
The bulleted problems have been addressed.
jhajduga Apr 14, 2025
4d43762
Merge pull request #52 from dose3d/fix/g4cache-run-merge
jhajduga Apr 14, 2025
49d4726
fixes
barachwal Apr 15, 2025
8e7c283
SRUNet testing data (#54)
barachwal Apr 28, 2025
fcdff76
Create mdbook.yml (#59)
jhajduga May 29, 2025
d1418a8
32 introduce 3mf based geometry build based on db (#58)
jhajduga Jun 23, 2025
2a991a7
57 testing plans form nio for srunet (#61)
barachwal Jun 25, 2025
826fd9f
19 tld simulation (#62)
jhajduga Jun 25, 2025
53d6a9f
WIP
jhajduga Apr 1, 2025
921dea9
TempChanges signed as "// TEMP!!!!"
jhajduga Apr 4, 2025
548b84b
Updated:
jhajduga Apr 9, 2025
dd9a6cf
A major physiclist update for more accurate recording of the processe…
jhajduga Apr 9, 2025
3d64822
 fix: merge run-level data using G4Cache - eliminating multiple dose …
jhajduga Apr 11, 2025
ac3c90a
Optimise simulation for new physic model.
jhajduga Apr 14, 2025
6a2badd
Update.
jhajduga Jun 26, 2025
86bbcf1
Update gitignore.
jhajduga Jun 26, 2025
5a3e8f7
Wszystkie elementy symulacji działają, schemat nowej ifologi i mechan…
jhajduga Jun 26, 2025
a70e8a2
PhysicList redoo.
jhajduga Jun 27, 2025
70781a1
Conditional criteria during tree creation -> done
jhajduga Jun 27, 2025
c98ccc2
Renaming in voxelhit done.
jhajduga Jun 27, 2025
920c9a8
Working code .
jhajduga Jun 27, 2025
1d47ea2
Changes from comment in PR done.
jhajduga Jul 2, 2025
d710fb4
Merge pull request #63 from dose3d/51-the-process-of-recording-the-ty…
jhajduga Jul 2, 2025
b5f4541
Implement mask_to_matrix function to convert custom plan files (dat) …
jhajduga Jul 9, 2025
471e020
Refactor mask_to_matrix function.
jhajduga Jul 9, 2025
7273fba
Better plotting
jhajduga Jul 10, 2025
e9ee518
Ad new Logging Service to project (#65)
jhajduga Jul 21, 2025
a58f1c2
upstream catchup.....
jhajduga Jul 22, 2025
1b4ddc0
Merge branch 'develop' of github.com:dose3d/g4rt into develop
jhajduga Jul 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
59 changes: 59 additions & 0 deletions .github/workflows/mdbook.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Deploy mdBook site to Pages

on:
push:
branches: ["develop"]
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
env:
MDBOOK_VERSION: 0.4.36
steps:
- uses: actions/checkout@v4

- name: Install mdBook and Plugins
run: |
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env
rustup update
cargo install --version ${MDBOOK_VERSION} mdbook
cargo install mdbook-admonish
cargo install mdbook-mermaid
cargo install mdbook-toc
mdbook-admonish install

- name: Setup Pages
id: pages
uses: actions/configure-pages@v5

- name: Build mdBook
run: |
source $HOME/.cargo/env
mdbook build .

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./book

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.idea/
.cache/
cmake-build-debug/
cmake-build-release/
.vscode/*
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "submodules/d3df-patients"]
path = submodules/d3df-patients
url = git@github.com:Dose3D-Future/d3df-patients.git
52 changes: 40 additions & 12 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,35 +13,63 @@
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64",
"configurationProvider": "ms-vscode.cmake-tools"
},
{
"name": "linux-faculty-jakub",
"includePath": [
"/usr/local/include/*",
"~/miniforge3/envs/g4rt_devel/include/*",
"~/miniforge3/envs/g4rt_devel/include/Geant4/*",
"~/miniforge3/envs/g4rt_devel/include/python3.12/*",
"~/miniforge3/envs/g4rt_devel/include/spdlog/fmt/**",
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "~/miniforge3/envs/g4rt_devel/bin/clang++",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64",
"configurationProvider": "ms-vscode.cmake-tools",
"mergeConfigurations": false,
"browse": {
"path": [
"${workspaceFolder}/**",
"/usr/local/include/*",
"~/miniforge3/envs/g4rt_devel/include/*",
"~/miniforge3/envs/g4rt_devel/include/Geant4/*",
"~/miniforge3/envs/g4rt_devel/include/python3.12/*",
"~/miniforge3/envs/g4rt_devel/include/spdlog/fmt/*",
"${workspaceFolder}/*"
],
"limitSymbolsToIncludedHeaders": true
}
},
{
"name": "alma-jakub",
"includePath": [
"~/work/dose3d/g4rt/*",
"/usr/local/include/*",
"~/miniforge3/envs/G4ImpressU/include/*",
"~/miniforge3/envs/G4ImpressU/include/Geant4/*",
"~/miniforge3/envs/G4ImpressU/include/python3.11/*",
"~/miniforge3/envs/G4ImpressU/include/spdlog/fmt/**",
"~/miniforge3/envs/geant4/include/*",
"~/miniforge3/envs/geant4/include/Geant4/*",
"~/miniforge3/envs/geant4/include/python3.10/*",
"~/miniforge3/envs/geant4/include/spdlog/fmt/**",
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "~/miniforge3/envs/G4ImpressU/bin/g++",
"compilerPath": "~/miniforge3/envs/geant4/bin/g++",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64",
"configurationProvider": "ms-vscode.cmake-tools",
"compilerPathInCppPropertiesJson": "~/miniforge3/envs/G4ImpressU/bin/g++",
"configurationProviderInCppPropertiesJson": "ms-vscode.cmake-tools",
"mergeConfigurations": false,
"browse": {
"path": [
"~/work/dose3d/g4rt/*",
"/usr/local/include/*",
"~/miniforge3/envs/G4ImpressU/include/*",
"~/miniforge3/envs/G4ImpressU/include/Geant4/*",
"~/miniforge3/envs/G4ImpressU/include/python3.11/*",
"~/miniforge3/envs/G4ImpressU/include/spdlog/fmt/*",
"~/miniforge3/envs/geant4/include/*",
"~/miniforge3/envs/geant4/include/Geant4/*",
"~/miniforge3/envs/geant4/include/python3.10/*",
"~/miniforge3/envs/geant4/include/spdlog/fmt/*",
"${workspaceFolder}/*"
],
"limitSymbolsToIncludedHeaders": true
Expand All @@ -52,7 +80,7 @@
"includePath": [
"${workspaceFolder}/**",
"/opt/geant4/include/**",
"/home/geant4/miniconda3/envs/g4rt/include/**"
"/home/geant4/miniconda3/envs/g4rt_devel/include/**"
],
"defines": [],
"compilerPath": "/home/geant4/miniconda3/envs/dose3d/bin/g++",
Expand Down
53 changes: 34 additions & 19 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
#----------------------------------------------------------------------------
# Setup the project
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
cmake_minimum_required(VERSION 3.20 FATAL_ERROR)
project(G4rt)

#----------------------------------------------------------------------------
# Ustawienia CMake
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_COLOR_MAKEFILE ON)
set(CMAKE_COLOR_MAKEFILE ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_DEFAULT 17)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
add_compile_definitions(LOGURU_USE_FMTLIB=1)
add_compile_definitions(LOGURU_USE_FMTLIB=1
LOGURU_FILENAME_WIDTH=32
LOGURU_THREADNAME_WIDTH=16
LOGURU_SCOPE_TEXT_SIZE=256)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")

#----------------------------------------------------------------------------
# Zabronienie budowania w katalogu źródłowym
# prevent for in-source building
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
message(SEND_ERROR "In-source builds are not allowed.")
endif()
message(SEND_ERROR "In-source builds are not allowed.")
endif ()

#----------------------------------------------------------------------------
set(CMAKE_VERBOSE_MAKEFILE ON)
Expand All @@ -26,8 +30,8 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # This needs to be done universally to a

#----------------------------------------------------------------------------
if(NOT $ENV{CLHEP_INCLUDE_DIR} STREQUAL "")
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{CLHEP_INCLUDE_DIR})
endif()
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{CLHEP_INCLUDE_DIR})
endif ()
#----------------------------------------------------------------------------
SET(PROJECT_DATA_PATH "${PROJECT_SOURCE_DIR}/data")
SET(PROJECT_INSTALL_DIR "/opt/g4rt")
Expand All @@ -40,26 +44,37 @@ add_definitions(-DJOBS_PATH=\"${PROJECT_SOURCE_DIR}/jobs\")
add_definitions(-DPROJECT_PY_PATH=\"${PROJECT_SOURCE_DIR}/core/utilities/python\")
add_definitions(-DPROJECT_BINARY_PATH=\"${PROJECT_BINARY_DIR}\")

#----------------------------------------------------------------------------
option(BUILD_G4RT "Build the g4rt executable" ON)
option(BUILD_BG4RT "Build the g4rt_bworld executable" OFF)
option(BUILD_DCM2DAT "Build the g4rt_bworld executable" ON)
option(BUILD_TLD "Build the tld executable" ON)

#----------------------------------------------------------------------------
# Testing suite configuration
#
find_package(GTest REQUIRED)
include(GoogleTest)
include(CTest)

#----------------------------------------------------------------------------
# Configure the components (subprojects)
# NOTE: The order matters! The most independent ones should go first.
# If A and B really depend on each other, CMake can build such correctly,
# if you specify full path to the include directory
# If A and B really depend on each other, CMake can build such correctly,
# if you specify full path to the include directlry
add_subdirectory(externals)
add_subdirectory(core)
add_subdirectory(app)

#----------------------------------------------------------------------------
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})


#----------------------------------------------------------------------------
# Copy all scripts to the build directory
# Copy all scripts to the build directory, i.e. the directory in which we
# build g4af. This is so that we can run the executable directly because it
# relies on these scripts being in the current working directory.
#
set(RUN_SCRIPTS
scoring_pre.mac
scoring_post.mac
Expand All @@ -68,9 +83,9 @@ set(RUN_SCRIPTS
)

foreach(_script ${RUN_SCRIPTS})
configure_file(
${PROJECT_SOURCE_DIR}/scripts/${_script}
${PROJECT_BINARY_DIR}/${_script}
COPYONLY
configure_file(
${PROJECT_SOURCE_DIR}/scripts/${_script}
${PROJECT_BINARY_DIR}/${_script}
COPYONLY
)
endforeach()
endforeach()
73 changes: 73 additions & 0 deletions GEANT4_LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
Geant4 Software License
Version 1.0, 28 June 2006

Copyright (c) Copyright Holders of the Geant4 Collaboration, 1994-2006.
See http://cern.ch/geant4/license for details on the copyright holders. All
rights not expressly granted under this license are reserved.

This software includes voluntary contributions made to Geant4.
See http://cern.ch/geant4 for more information on Geant4.

Installation, use, reproduction, display, modification and redistribution of
this software, with or without modification, in source and binary forms, are
permitted on a non-exclusive basis. Any exercise of rights by you under this
license is subject to the following conditions:

1. Redistributions of this software, in whole or in part, with or without
modification, must reproduce the above copyright notice and these license
conditions in this software, the user documentation and any other
materials provided with the redistributed software.

2. The user documentation,if any,included with a redistribution,must include
the following notice:"This product includes software developed by Members
of the Geant4 Collaboration ( http://cern.ch/geant4 )."
If that is where third-party acknowledgments normally appear, this
acknowledgment must be reproduced in the modified version of this
software itself.

3. The names "Geant4" and "The Geant4 toolkit" may not be used to endorse or
promote software,or products derived therefrom, except with prior written
permission by license@geant4.org. If this software is redistributed in
modified form, the name and reference of the modified version must be
clearly distinguishable from that of this software.

4. You are under no obligation to provide anyone with any modifications of
this software that you may develop,including but not limited to bug fixes,
patches, upgrades or other enhancements or derivatives of the features,
functionality or performance of this software. However, if you publish or
distribute your modifications without contemporaneously requiring users
to enter into a separate written license agreement, then you are deemed
to have granted all Members and all Copyright Holders of the Geant4
Collaboration a license to your modifications, including modifications
protected by any patent owned by you,under the conditions of this license.

5. You may not include this software in whole or in part in any patent or
patent application in respect of any modification of this software
developed by you.


6. DISCLAIMER

THIS SOFTWARE IS PROVIDED BY THE MEMBERS AND COPYRIGHT HOLDERS OF THE GEANT4
COLLABORATION AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, OF
SATISFACTORY QUALITY, AND FITNESS FOR A PARTICULAR PURPOSE OR USE ARE
DISCLAIMED. THE MEMBERS OF THE GEANT4 COLLABORATION AND CONTRIBUTORS MAKE NO
REPRESENTATION THAT THE SOFTWARE AND MODIFICATIONS THEREOF,WILL NOT INFRINGE
ANY PATENT, COPYRIGHT, TRADE SECRET OR OTHER PROPRIETARY RIGHT.

7. LIMITATION OF LIABILITY

THE MEMBERS AND COPYRIGHT HOLDERS OF THE GEANT4 COLLABORATION AND
CONTRIBUTORS SHALL HAVE NO LIABILITY FOR DIRECT,INDIRECT,SPECIAL, INCIDENTAL,
CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES OF ANY CHARACTER INCLUDING,
WITHOUT LIMITATION, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE,
DATA OR PROFITS, OR BUSINESS INTERRUPTION, HOWEVER CAUSED AND ON ANY THEORY
OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR
OTHERWISE, ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

8. This license shall terminate with immediate effect and without notice if
you fail to comply with any of the terms of this license, or if you
institute litigation against any Member or Copyright Holder of the Geant4
Collaboration with regard to this software.
31 changes: 31 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
MIT License

Copyright (c) \[20??–2025] \[Dose3D-Future]

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

---

This project includes the use of the Geant4 simulation toolkit.
Geant4 is distributed under the Geant4 Software License (G4SL),
available at: [https://geant4.web.cern.ch/license](https://geant4.web.cern.ch/license)

Use of Geant4 within this project does not imply endorsement by CERN or the Geant4 Collaboration.
The authors of this project make no warranty with regard to the accuracy or fitness for purpose
of the simulation results generated through the use of Geant4.
Loading
Loading