|
EGSnrc C++ class library
Report PIRS-898 (2021)
Iwan Kawrakow, Ernesto Mainegra-Hing, Frederic Tessier, Reid Townson and Blake Walters
|
A single cone that may be open (i.e. extends to infinity or closed by a plane perpendicular to the cone axis. More...
#include <egs_cones.h>
Public Member Functions | |
| EGS_SimpleCone (const EGS_Vector &Xo, const EGS_Vector &A, EGS_Float Gamma, const EGS_Float *distance=0, const string &N="") | |
| EGS_SimpleCone (const EGS_Vector &Xo, const EGS_Vector &A, EGS_Float dz, EGS_Float Rtop, EGS_Float Rbottom, bool Open=true, const string &N="") | |
| bool | isInside (const EGS_Vector &x) |
| int | isWhere (const EGS_Vector &x) |
| int | inside (const EGS_Vector &x) |
| int | howfar (int ireg, const EGS_Vector &x, const EGS_Vector &u, EGS_Float &t, int *newmed=0, EGS_Vector *normal=0) |
| EGS_Float | hownear (int ireg, const EGS_Vector &x) |
| const string & | getType () const |
| void | printInfo () const |
| EGS_Vector | getApex () const |
| EGS_Vector | getAxis () const |
| EGS_Float | getGamma () const |
| EGS_Float | getRadius (const EGS_Vector &x) const |
Public Member Functions inherited from EGS_BaseGeometry | |
| EGS_BaseGeometry (const string &Name) | |
| Construct a geometry named Name. More... | |
| virtual | ~EGS_BaseGeometry () |
| Destructor. More... | |
| bool | isConvex () const |
| Is the geometry convex? More... | |
| virtual void | getNextGeom (EGS_RandomGenerator *rndm) |
| virtual EGS_Float | howfarToOutside (int ireg, const EGS_Vector &x, const EGS_Vector &u) |
| virtual EGS_Float | getVolume (int ireg) |
| Calculates the volume of region ireg. More... | |
| virtual EGS_Float | getBound (int idir, int ind) |
| Returns region boundaries in direction determined by idir. More... | |
| virtual int | getNRegDir (int idir) |
| int | regions () const |
| Returns the number of local regions in this geometry. More... | |
| virtual bool | isRealRegion (int ireg) const |
| Returnes true if ireg is a real region, false otherwise. More... | |
| virtual int | medium (int ireg) const |
| Returns the medium index in region ireg. More... | |
| virtual int | getMaxStep () const |
| Returns the maximum number of steps through the geometry. More... | |
| virtual int | computeIntersections (int ireg, int n, const EGS_Vector &x, const EGS_Vector &u, EGS_GeometryIntersections *isections) |
| Calculates intersection distances to region boundaries. More... | |
| void | setMedium (const string &Name) |
| Set all regions to a medium with name Name. More... | |
| void | setMedium (int start, int end, const string &Name, int delta=1) |
| Set every delta'th region between start and end to the medium named Name. More... | |
| void | setMedium (int imed) |
| Set all regions to a medium with index imed. More... | |
| void | setMedium (int istart, int iend, int imed, int delta=1) |
| Set every delta'th region between start and end (inclusive) to imed. More... | |
| void | setMedia (EGS_Input *inp) |
| Set the media in the geometry from the input pointed to by inp. More... | |
| bool | hasRhoScaling () const |
| Does this geometry object have a mass density scaling feature? | |
| virtual EGS_Float | getRelativeRho (int ireg) const |
| Get the relative mass density in region ireg. | |
| virtual void | setRelativeRho (int start, int end, EGS_Float rho) |
| Set the relative mass density in regions. More... | |
| virtual void | setRelativeRho (EGS_Input *) |
| Set the relative mass density from an user input. More... | |
| EGS_Float | getMediumRho (int ind) const |
| virtual void | setApplication (EGS_Application *app) |
| bool | hasBScaling () const |
| Does this geometry object have a B field scaling feature? | |
| virtual EGS_Float | getBScaling (int ireg) const |
| Get the B field scaling factor in region ireg. | |
| virtual void | setBScaling (int start, int end, EGS_Float bf) |
| Set the B field scaling factor in regions. More... | |
| virtual void | setBScaling (EGS_Input *) |
| Set the B field scaling factor from an user input. More... | |
| const string & | getName () const |
| Get the name of this geometry. More... | |
| void | setDebug (bool deb) |
| Turn debugging on. More... | |
| void | setName (EGS_Input *inp) |
| Set the name of the geometry from the input inp. More... | |
| void | setBoundaryTolerance (EGS_Input *inp) |
| Set the value of the boundary tolerance from the input inp. More... | |
| void | setBoundaryTolerance (EGS_Float tol) |
| Set the value of the boundary tolerance from argument. | |
| virtual bool | hasBooleanProperty (int ireg, EGS_BPType prop) const |
| Is the boolean property prop set for region ireg ? | |
| virtual void | setBooleanProperty (EGS_BPType prop) |
| Set the boolean properties of the entire geometry to prop. More... | |
| virtual void | addBooleanProperty (int bit) |
| Add a boolean property for the entire geometry by setting the bit'th bit. More... | |
| virtual void | setBooleanProperty (EGS_BPType prop, int start, int end, int step=1) |
| Set the boolean properties of every step'th region between start and end (inclusive) to prop. More... | |
| virtual void | addBooleanProperty (int bit, int start, int end, int step=1) |
| Add a boolean property to every step'th region between start and end (inclusive) by setting the bit'th bit. More... | |
| int | ref () |
| Increase the reference count to this geometry. More... | |
| int | deref () |
| Decrease the reference count to this geometry. More... | |
| EGS_Float | getBoundaryTolerance () |
| Get the value of the boundary tolerance. | |
| virtual void | getNumberRegions (const string &str, vector< int > ®s) |
| Get a list of all the regions labeled with a number. | |
| virtual void | getLabelRegions (const string &str, vector< int > ®s) |
| Get the list of all regions labeled with str. | |
| virtual const string & | getLabelName (const int i) |
| Get the name of the i-th explicit label in the geometry. | |
| virtual int | getLabelCount () |
| Get the number of explicit labels in the geometry. | |
| int | setLabels (EGS_Input *input) |
| Set the labels from an input block. | |
| int | setLabels (const string &inp) |
| Set the labels from an input string. | |
| virtual void | updatePosition (EGS_Float time) |
| virtual void | containsDynamic (bool &hasdynamic) |
Protected Attributes | |
| EGS_Vector | xo |
| EGS_Vector | a |
| EGS_Float | gamma |
| EGS_Float | g12 |
| EGS_Float | g12i |
| EGS_Float | d1 |
| EGS_Float | Ro |
| EGS_Float | Ro2 |
| bool | open |
| bool | is_cyl |
Protected Attributes inherited from EGS_BaseGeometry | |
| int | nreg |
| Number of local regions in this geometry. More... | |
| string | name |
| Name of this geometry. More... | |
| short * | region_media |
| Array of media indeces. More... | |
| int | med |
| Medium index. More... | |
| bool | has_rho_scaling |
| Does this geometry have relative mass density scvaling? | |
| EGS_Float * | rhor |
| Array with relative mass densities. | |
| bool | has_B_scaling |
| Does this geometry has B field scaling factor? | |
| bool | has_Ref_rho |
| EGS_Float * | bfactor |
| Array with B field scaling factors. | |
| EGS_Float | rhoRef |
| Reference density for B field scaling. | |
| int | nref |
| Number of references to this geometry. More... | |
| bool | debug |
| Debugging flag. More... | |
| bool | is_convex |
| Is this geometry convex? More... | |
| EGS_BPType | bproperty |
| A bit mask of boolean properties for the entire geometry. More... | |
| EGS_BPType * | bp_array |
| An array of boolean properties on a region by region basis. More... | |
| EGS_Float | boundaryTolerance |
| Boundary tolerance for geometries that need it. | |
| EGS_Float | halfBoundaryTolerance |
| vector< label > | labels |
| Labels. More... | |
| EGS_Application * | app |
| The application this object belongs to. | |
Static Protected Attributes | |
| static string | type = "EGS_SimpleCone" |
Static Protected Attributes inherited from EGS_BaseGeometry | |
| static int | error_flag = 0 |
| Set to non-zero status if a geometry problem is encountered. | |
Additional Inherited Members | |
Static Public Member Functions inherited from EGS_BaseGeometry | |
| static int | findRegion (EGS_Float xp, int np, const EGS_Float *p) |
| Find the bin to which xp belongs, given np bin edges p. More... | |
| static int | nMedia () |
| Get the number of media registered so far by all geometries. More... | |
| static const char * | getMediumName (int ind) |
| Get the name of medium with index ind. More... | |
| static int | addMedium (const string &medname) |
| Add a medium or get the index of an existing medium. More... | |
| static int | getMediumIndex (const string &medname) |
| Get the index of a medium named medname. More... | |
| static EGS_BaseGeometry * | createGeometry (EGS_Input *) |
| Create a geometry (or geometries) from a given input. More... | |
| static EGS_BaseGeometry * | createSingleGeometry (EGS_Input *inp) |
| Create a single geometry from the input inp. More... | |
| static void | clearGeometries () |
| Clears (deletes) all geometries in the currently active geometry list. More... | |
| static EGS_BaseGeometry * | getGeometry (const string &Name) |
| Get a pointer to the geometry named Name. More... | |
| static EGS_BaseGeometry ** | getGeometries () |
| static int | getNGeometries () |
| static string | getUniqueName () |
| Get a unique geometry name. More... | |
| static void | describeGeometries () |
| Describes all existing geometries. More... | |
| static void | setActiveGeometryList (int list) |
| Set the currently active geometry list. | |
| static int | getLastError () |
| static void | resetErrorFlag () |
Protected Member Functions inherited from EGS_BaseGeometry | |
| virtual void | setMedia (EGS_Input *inp, int nmed, const int *med_ind) |
| Set media. More... | |
A single cone that may be open (i.e. extends to infinity or closed by a plane perpendicular to the cone axis.
The EGS_SimpleCone class models a single cone and is therefore a special case of the EGS_ConeSet geometry. The reasons for having a separate class for this case are i) It is conceptually simpler and was implemented first ii) Its geometry methods are slightly faster than the methods of an EGS_ConeSet representing a single cone iii) It provides the additional possibility of the cone being closed (i.e. its extent limited by a plane perpendicular to the cone axis). An EGS_SimpleCone object is defined using
library = egs_cones type = EGS_SimpleCone apex = Ox, Oy, Oz # Position of the cone apex axis = ax, ay, az # the cone axis opening angle = angle in degrees or opening angle in radian = angle in radians height = cone height in cm
The height key is optional and results in a cone extending to infinity, if missing.
A simple example:
:start geometry definition:
:start geometry:
name = my_simple_cone
library = egs_cones
type = EGS_SimpleCone
apex = 0 0 3
axis = 0 0 -1
height = 4
opening angle = 30 # deg
:start media input:
media = water
:stop media input:
:stop geometry:
simulation geometry = my_simple_cone
:stop geometry definition:
Definition at line 126 of file egs_cones.h.
1.9.1