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 *);
149 int &q,
int &latch, EGS_Float &E, EGS_Float &wt,
151 EGS_Float getEmax()
const {
154 EGS_Float getFluence()
const {
157 bool storeState(ostream &data)
const {
160 bool setState(istream &data) {
163 bool addState(istream &data) {
169 void resetCounter() {
173 bool isValid()
const {
177 void setCutout(EGS_Float xmin, EGS_Float xmax, EGS_Float ymin,
185 void containsDynamic(
bool &hasdynamic);
190 FinishFunction finish;
192 SampleFunction sample;
193 MotionSampleFunction motionsample;
198 string the_file_name;
206 EGS_Float Xmin, Xmax, Ymin, Ymax;
207 EGS_Float wmin, wmax;
210 int q_save, latch_save;
211 EGS_Float E_save, wt_save, time_save;
215 int n_reuse_photon, n_reuse_electron;
216 int i_reuse_photon, i_reuse_electron;
221 EGS_Float tei,txi,tyi,tzi,tui,tvi,twi,twti,ttimei;
222 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,...