EGSnrc C++ class library  Report PIRS-898 (2021)
Iwan Kawrakow, Ernesto Mainegra-Hing, Frederic Tessier, Reid Townson and Blake Walters
Public Member Functions | List of all members
EGS_PlanarFluence Class Reference

Ausgab object for scoring fluence at circular or rectangular fields. More...

#include <egs_fluence_scoring.h>

Inheritance diagram for EGS_PlanarFluence:
EGS_FluenceScoring EGS_AusgabObject EGS_Object

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 > &regs)
 
void getLabelRegions (const string &str, vector< int > &regs)
 
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_ObjectcreateObject (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_AusgabObjectgetAusgabObject (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_AusgabObjectgetObject (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_ScoringArrayfluT
 
EGS_ScoringArrayfluT_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_Applicationapp
 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_ObjectFactoryfactory
 The factory this object belongs to.
 

Detailed Description

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:
Todo:
Store results in a 2D binary file for visualization

Definition at line 317 of file egs_fluence_scoring.h.

Constructor & Destructor Documentation

EGS_PlanarFluence::EGS_PlanarFluence ( const string &  Name = "",
EGS_ObjectFactory f = 0 
)

Constructors

Definition at line 408 of file egs_fluence_scoring.cpp.

References EGS_Object::otype.

EGS_PlanarFluence::~EGS_PlanarFluence ( )

Destructor.

Definition at line 421 of file egs_fluence_scoring.cpp.


The documentation for this class was generated from the following files: