40 #ifndef EGS_BEAM_SOURCE_
41 #define EGS_BEAM_SOURCE_
53 #ifdef BUILD_BEAM_SOURCE_DLL
54 #define EGS_BEAM_SOURCE_EXPORT __declspec(dllexport)
56 #define EGS_BEAM_SOURCE_EXPORT __declspec(dllimport)
58 #define EGS_BEAM_SOURCE_LOCAL
62 #ifdef HAVE_VISIBILITY
63 #define EGS_BEAM_SOURCE_EXPORT __attribute__ ((visibility ("default")))
64 #define EGS_BEAM_SOURCE_LOCAL __attribute__ ((visibility ("hidden")))
66 #define EGS_BEAM_SOURCE_EXPORT
67 #define EGS_BEAM_SOURCE_LOCAL
73 typedef void (*InitFunction)(
const int *,
const int *,
const int *,
74 const char *,
const char *,
const char *,
75 const char *,
const char *, int,int,int,int,int);
76 typedef void (*FinishFunction)();
77 typedef void (*SampleFunction)(EGS_Float *, EGS_Float *, EGS_Float *,
78 EGS_Float *, EGS_Float *, EGS_Float *, EGS_Float *, EGS_Float *,
79 EGS_I32 *, EGS_I32 *, EGS_I64 *, EGS_I32 *);
80 typedef void (*MotionSampleFunction)(EGS_Float *, EGS_Float *, EGS_Float *,
81 EGS_Float *, EGS_Float *, EGS_Float *, EGS_Float *, EGS_Float *,
82 EGS_I32 *, EGS_I32 *, EGS_I64 *, EGS_I32 *, EGS_Float *);
83 typedef void (*MaxEnergyFunction)(EGS_Float *);
147 int &q,
int &latch, EGS_Float &E, EGS_Float &wt,
149 EGS_Float getEmax()
const {
152 EGS_Float getFluence()
const {
155 bool storeState(ostream &data)
const {
158 bool setState(istream &data) {
161 bool addState(istream &data) {
167 void resetCounter() {
171 bool isValid()
const {
175 void setCutout(EGS_Float xmin, EGS_Float xmax, EGS_Float ymin,
183 void containsDynamic(
bool &hasdynamic);
188 FinishFunction finish;
190 SampleFunction sample;
191 MotionSampleFunction motionsample;
196 string the_file_name;
204 EGS_Float Xmin, Xmax, Ymin, Ymax;
205 EGS_Float wmin, wmax;
208 int q_save, latch_save;
209 EGS_Float E_save, wt_save, time_save;
213 int n_reuse_photon, n_reuse_electron;
214 int i_reuse_photon, i_reuse_electron;
219 EGS_Float tei,txi,tyi,tzi,tui,tvi,twi,twti,ttimei;
220 int tqi,tlatchi,tiphati;
Base source class. All particle sources must be derived from this class.
A BEAM simulation source.
bool time_stored
true if time index stored
EGS_Library * lib
The BEAMnrc user code library.
A class for dynamically loading shared libraries.
Base random number generator class. All random number generators should be derived from this class.
A class representing 3D vectors.
EGS_BaseSource class header file.
Global egspp functions header file.
EGS_RandomGenerator class header file.
EGS_Vector methods for the manipulation of 3D vectors in cartesian co-ordinates.
bool EGS_EXPORT egsStoreI64(ostream &data, EGS_I64 n)
Writes the 64 bit integer n to the output stream data and returns true on success,...
bool EGS_EXPORT egsGetI64(istream &data, EGS_I64 &n)
Reads a 64 bit integer from the stream data and assigns it to n. Returns true on success,...