Skip to content

Commit

Permalink
Merge #836: add generic fluence scoring object
Browse files Browse the repository at this point in the history
This new ausgab object scores fluence in user-defined regions
(volumetric) or at a circular or rectangular field (planar) located in
an arbitrary position in space. Scoring can be done for either photons,
electrons or positrons. Scoring for multiple particle types is
accomplished by defining multiple fluence scoring ausgab objects.
  • Loading branch information
ftessier authored Jan 23, 2023
2 parents e709f36 + 14fa724 commit 1dc907a
Show file tree
Hide file tree
Showing 13 changed files with 3,150 additions and 4 deletions.
1 change: 1 addition & 0 deletions HEN_HOUSE/doc/src/pirs898-egs++/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,7 @@ INPUT = main.doxy \
common.doxy \
geometry.doxy \
sources.doxy \
aobjects.doxy \
cavity.doxy \
egs_cbct.doxy \
egs_chamber.doxy \
Expand Down
9 changes: 8 additions & 1 deletion HEN_HOUSE/doc/src/pirs898-egs++/aobjects.doxy
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,11 @@

\section ausgab_objects_general General discussion

An ausgab object is an object that blah blah blah.
An ausgab object allows accessing the simulation at specific points in the simulation
to extract information (scoring) or modify aspects of the simulation, for instance to increase
calculation efficiency by means of variance reduction techinques.
The enumerated type EGS_Application#AusgabCall links certain events with an integer-valued constant, which is
passed to the \c ausgab scoring routine of the EGS_Application class and all defined ausgab objects
if the event flag is set to \c true.

*/
3 changes: 3 additions & 0 deletions HEN_HOUSE/doc/src/pirs898-egs++/main.doxy
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@
<tr>
<td> \ref Sources "Particle sources"</td>
</tr>
<tr>
<td> \ref AusgabObjects "Ausgab objects"</td>
</tr>
<tr>
<td> \ref egspp_main "Main library"</td>
</tr>
Expand Down
3 changes: 2 additions & 1 deletion HEN_HOUSE/egs++/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ shape_libs = egs_circle egs_ellipse egs_extended_shape egs_gaussian_shape \
egs_voxelized_shape egs_spherical_shell egs_conical_shell \
egs_circle_perpendicular

aobject_libs = egs_track_scoring egs_dose_scoring egs_radiative_splitting egs_phsp_scoring
aobject_libs = egs_track_scoring egs_dose_scoring egs_radiative_splitting \
egs_phsp_scoring egs_fluence_scoring

all_libs = $(geometry_libs) $(source_libs) $(shape_libs) $(aobject_libs)
lib_objects = $(addprefix $(DSO1), $(addsuffix .$(obje), $(all_libs)))
Expand Down
4 changes: 4 additions & 0 deletions HEN_HOUSE/egs++/ausgab_objects/egs_dose_scoring/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,7 @@ $(make_depend)
test:
@echo "common_h2: $(common_h2)"
@echo "extra_dep: $(extra_dep)"

clean:
$(REMOVE) $(ABS_DSO)*$(library)*
$(REMOVE) *.o
53 changes: 53 additions & 0 deletions HEN_HOUSE/egs++/ausgab_objects/egs_fluence_scoring/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@

###############################################################################
#
# EGSnrc egs++ makefile to build fluence scoring object
# Copyright (C) 2022 National Research Council Canada
#
# This file is part of EGSnrc.
#
# EGSnrc is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# EGSnrc is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
# more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with EGSnrc. If not, see <http://www.gnu.org/licenses/>.
#
###############################################################################
#
# Author: Ernesto Mainegra-Hing, 2022
#
# Contributors:
#
###############################################################################

include $(EGS_CONFIG)
include $(SPEC_DIR)egspp.spec
include $(SPEC_DIR)egspp_$(my_machine).conf

# For extra debugging messages invoke: make MYDEFS=-DDEBUG
DEFS = $(DEF1) -DBUILD_FLUENCE_SCORING_DLL $(MYDEFS)

library = egs_fluence_scoring
lib_files = egs_fluence_scoring
my_deps = $(common_ausgab_deps)
extra_dep = $(addprefix $(DSOLIBS), $(my_deps))

include $(SPEC_DIR)egspp_libs.spec

$(make_depend)

test:
@echo "common_h2: $(common_h2)"
@echo "extra: $(extra)"
@echo "common_ausgab_deps: $(common_ausgab_deps)"
@echo $(ABS_DSO)*$(library)*
clean:
$(REMOVE) $(ABS_DSO)*$(library)*
$(REMOVE) *.o
Loading

0 comments on commit 1dc907a

Please sign in to comment.