EGSnrc C++ class library
Report PIRS-898 (2021)
Iwan Kawrakow, Ernesto Mainegra-Hing, Frederic Tessier, Reid Townson and Blake Walters
|
Ausgab object for scoring fluence at circular or rectangular fields. More...
#include <egs_fluence_scoring.h>
Public Member Functions | |
EGS_PlanarFluence (const string &Name="", EGS_ObjectFactory *f=0) | |
~EGS_PlanarFluence () | |
EGS_Float | area () |
bool | needsCall (EGS_Application::AusgabCall iarg) const |
int | hitsField (const EGS_Particle &p, EGS_Float *dist) |
void | score (const EGS_Particle &p, const int &ivoxel) |
void | describeMe () |
Sets fluence scoring object description . | |
void | initScoring (EGS_Input *inp) |
void | setApplication (EGS_Application *App) |
void | ouputPlanarFluence (EGS_ScoringArray *fT, const double &norma) |
void | ouputResults () |
void | reportResults () |
int | processEvent (EGS_Application::AusgabCall iarg) |
void | setCurrentCase (EGS_I64 ncase) |
void | resetCounter () |
bool | storeState (ostream &data) const |
bool | setState (istream &data) |
bool | addState (istream &data) |
Public Member Functions inherited from EGS_FluenceScoring | |
EGS_FluenceScoring (const string &Name="", EGS_ObjectFactory *f=0) | |
~EGS_FluenceScoring () | |
void | initScoring (EGS_Input *inp) |
void | getSensitiveRegions (EGS_Input *inp) |
void | getNumberRegions (const string &str, vector< int > ®s) |
void | getLabelRegions (const string &str, vector< int > ®s) |
void | setUpRegionFlags () |
void | describeMe () |
int | getDigits (int i) |
void | flagSecondaries (const int &iarg, const int &q) |
Public Member Functions inherited from EGS_AusgabObject | |
EGS_AusgabObject (const string &Name="", EGS_ObjectFactory *f=0) | |
Construct an ausgab object named Name. | |
EGS_AusgabObject (EGS_Input *input, EGS_ObjectFactory *f=0) | |
Construct an ausgab object from the input pointed to by inp. More... | |
virtual int | processEvent (EGS_Application::AusgabCall iarg, int ir) |
const char * | getObjectDescription () const |
Get a short description of this ausgab object. More... | |
Public Member Functions inherited from EGS_Object | |
EGS_Object (const string &Name="", EGS_ObjectFactory *f=0) | |
Create an EGS_Object named Name belonging to the object factory f. More... | |
EGS_Object (EGS_Input *inp, EGS_ObjectFactory *f=0) | |
Create an EGS_Object from the information pointed to by inp that belongs to object factory f. More... | |
const string & | getObjectName () const |
Get the object name. | |
void | setObjectName (const string &Name) |
Set the object name to Name. | |
const string & | getObjectType () const |
Get the object type. | |
virtual EGS_Object * | createObject (EGS_Input *inp) |
Create an object from the infromation pointed to by inp. More... | |
void | setName (EGS_Input *inp) |
Set the name of the object from the information provided by inp. More... | |
int | ref () |
Increase the reference count to this object. | |
int | deref () |
Decrease the reference count to this object. | |
void | setFactory (EGS_ObjectFactory *f) |
Set the factory to which the object belongs. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from EGS_AusgabObject | |
static void | createAusgabObjects (EGS_Input *) |
Create ausgab objects from the information pointed to by input. More... | |
static EGS_AusgabObject * | getAusgabObject (const string &Name) |
Get a pointer to the ausgab object named Name. More... | |
static void | addKnownAusgabObject (EGS_AusgabObject *o) |
Add a known ausgab object to the ausgab object factory. More... | |
static void | addKnownTypeId (const char *name) |
Add a known ausgab object typeid to the ausgab object factory. More... | |
static int | nObjects () |
Returns the number of ausgab objects in the internal list. | |
static EGS_AusgabObject * | getObject (int j) |
Returns the j'th ausgab object in the internal list. | |
Static Public Member Functions inherited from EGS_Object | |
static string | getUniqueName (const EGS_Object *o=0) |
Create and return a unique object name. More... | |
static void | deleteObject (EGS_Object *o) |
Delete an object. More... | |
Protected Attributes inherited from EGS_FluenceScoring | |
EGS_I64 | current_ncase |
ParticleType | scoring_charge |
ParticleType | source_charge |
EGS_ScoringArray ** | flu |
EGS_ScoringArray ** | flu_p |
EGS_ScoringArray * | fluT |
EGS_ScoringArray * | fluT_p |
vector< bool > | is_sensitive |
vector< bool > | is_source |
vector< int > | f_start |
vector< int > | f_stop |
vector< int > | f_region |
vector< int > | s_region |
string | f_regionsString |
string | s_regionsString |
int | n_scoring_regions |
int | n_source_regions |
int | nreg |
int | max_reg |
int | active_region |
bool | score_in_all_regions |
bool | source_in_all_regions |
EGS_Float | norm_u |
EGS_Float | flu_a |
EGS_Float | flu_a_i |
EGS_Float | flu_b |
EGS_Float | flu_xmin |
EGS_Float | flu_xmax |
int | flu_s |
int | flu_nbin |
EGS_Float | m_primary |
EGS_Float | m_tot |
string | particle_name |
bool | verbose |
bool | score_spe |
bool | score_primaries |
Protected Attributes inherited from EGS_AusgabObject | |
string | description |
A short ausgab object description. More... | |
EGS_Application * | app |
The application this object belongs to. | |
Protected Attributes inherited from EGS_Object | |
string | name |
The object name. | |
string | otype |
The object type. | |
int | nref |
Number of references to the object. | |
EGS_ObjectFactory * | factory |
The factory this object belongs to. | |
Ausgab object for scoring fluence at circular or rectangular fields.
A linear track-length estimator in the zero-thickness limit is used to compute fluence for either a circular field or a rectangular screen of arbitrary resolution (pixels). Rectangular fields are by default at Z = 0 directed along the positive z-axis. An affine transformation can be included to place a rectangular field anywhere in space. User can request to score primary fluence as well as differential fluence. If fluence for more than one particle type is desired, multiple AOs are required.
For charged particle fluence scoring this method can be inefficient as it checks at every single step whether a charged particle is aimed at scoring field. To improve the efficiency for charged particles, one has the option to define contributing regions from where to score. However, users must be careful to select all regions from where charged particles can cross the scoring field. This option has the added benefit of allowing to estimate the contribution to the fluence from specific regions in the geometry.
To define an EGS_PlanarFluence AO use the syntax below:
:start ausgab object: name = id-string # Arbitrary identifying string library = egs_fluence_scoring # Library name type = planar # Score on circular or square field scoring particle = photon, or electron, or positron source particle = photon, or electron, or positron # Optional. Only required to score primary fluence. # Defaults to source particles if all the same. # In the case of multiple particles, # defaults to scoring particle. Useful for # bremsstrahlung targets and radioactive sources. score primaries = yes or no # Defaults to `no`. score spectrum = yes or no # Defaults to `no`. verbose = yes or no # Defaults to `no`. normalization = norm # User-requested normalization. Defaults to 1. ######### # If scoring spectrum, define energy grid # Default: 128 linear energy bins between 1 keV and 1 MeV ######### :start energy grid: number of bins = nbins minimum kinetic energy = Emin maximum kinetic energy = Emax scale = linear or logarithmic # Defaults to `linear`. :stop energy grid: ######## # Define scoring based on type ######## :start planar scoring: # Define contributing regions contributing regions = ir1 ir2 ... irn ### Alternatively: # start contributing region = iri_1, iri_2, ..., iri_n # stop contributing region = irf_1, irf_2, ..., irf_n ### ################################ # If a circular field desired: ################################ scoring circle = x y z R scoring plane normal = ux uy uz ######################################################## # If a rectangular field desired: # #scoring rectangle = xmin xmax ymin ymax ##### # See documentation for EGS_AffineTransform ##### #:start transformation: # rotation = 2, 3 or 9 floating point numbers # translation = tx, ty, tz #:stop transformation: ########################################################## :stop planar scoring: :stop ausgab object:
Definition at line 317 of file egs_fluence_scoring.h.
EGS_PlanarFluence::EGS_PlanarFluence | ( | const string & | Name = "" , |
EGS_ObjectFactory * | f = 0 |
||
) |
EGS_PlanarFluence::~EGS_PlanarFluence | ( | ) |
Destructor.
Definition at line 421 of file egs_fluence_scoring.cpp.