45 #ifndef EGS_RADIATIVE_SPLITTING_
46 #define EGS_RADIATIVE_SPLITTING_
55 #ifdef BUILD_RADIATIVE_SPLITTING_DLL
56 #define EGS_RADIATIVE_SPLITTING_EXPORT __declspec(dllexport)
58 #define EGS_RADIATIVE_SPLITTING_EXPORT __declspec(dllimport)
60 #define EGS_RADIATIVE_SPLITTING_LOCAL
64 #ifdef HAVE_VISIBILITY
65 #define EGS_RADIATIVE_SPLITTING_EXPORT __attribute__ ((visibility ("default")))
66 #define EGS_RADIATIVE_SPLITTING_LOCAL __attribute__ ((visibility ("hidden")))
68 #define EGS_RADIATIVE_SPLITTING_EXPORT
69 #define EGS_RADIATIVE_SPLITTING_LOCAL
116 else if (nsplit > 1) {
120 wthin = nsplit ? 1./nsplit : 1.0;
142 bool is_phat = (app->top_p.wt - wthin) >
epsilon;
143 bool is_primary = app->top_p.latch == 0 ? true :
false;
149 (is_primary || is_phat)) {
150 app->setRadiativeSplitting(nsplit);
156 app->setRadiativeSplitting(1);
157 app->setLatch(app->getNpOld()+1,1);
166 app->splitTopParticleIsotropically(nsplit);
Base class for advanced EGSnrc C++ applications.
AusgabCall
Possible calls to the user scoring function ausgab().
@ BeforeBrems
before a bremsstrahlung interaction
@ AfterBrems
after a bremsstrahlung interaction
@ AfterAnnihRest
after annihilation at rest
@ AfterAnnihFlight
after annihilation in flight
@ FluorescentEvent
a fluorescent transition just occured
@ BeforeAnnihRest
before annihilation at rest
@ BeforeAnnihFlight
before annihilation in flight
virtual void setApplication(EGS_Application *App)
Set the application this object belongs to.
virtual int processEvent(EGS_Application::AusgabCall iarg)=0
Process an ausgab call for event iarg.
virtual bool needsCall(EGS_Application::AusgabCall iarg) const
Is the ausgab call iarg relevant for this object?
A radiative splitting object: header.
void setSplitting(const int &n_s)
EGS_Application class header file.
EGS_AusgabObject interface class header file.
EGS_BaseGeometry class header file.
EGS_ScoringSingle and EGS_ScoringArray class header file.
const EGS_Float epsilon
The epsilon constant for floating point comparisons.