#include <WavelengthDistribution.hpp>
Public Member Functions | |
virtual double | generateWavelength () const =0 |
virtual double | probability (double wavelength) const =0 |
![]() | |
template<class T > | |
T * | find (bool setup=true) const |
template<class T > | |
T * | interface (int levels=-999999, bool setup=true) const |
virtual string | itemName () const |
void | setup () |
string | typeAndName () const |
![]() | |
Item (const Item &)=delete | |
virtual | ~Item () |
void | addChild (Item *child) |
const vector< Item * > & | children () const |
virtual void | clearItemListProperty (const PropertyDef *property) |
void | destroyChild (Item *child) |
virtual bool | getBoolProperty (const PropertyDef *property) const |
virtual vector< double > | getDoubleListProperty (const PropertyDef *property) const |
virtual double | getDoubleProperty (const PropertyDef *property) const |
virtual string | getEnumProperty (const PropertyDef *property) const |
virtual int | getIntProperty (const PropertyDef *property) const |
virtual vector< Item * > | getItemListProperty (const PropertyDef *property) const |
virtual Item * | getItemProperty (const PropertyDef *property) const |
virtual string | getStringProperty (const PropertyDef *property) const |
int | getUtilityProperty (string name) const |
virtual void | insertIntoItemListProperty (const PropertyDef *property, int index, Item *item) |
Item & | operator= (const Item &)=delete |
Item * | parent () const |
virtual void | removeFromItemListProperty (const PropertyDef *property, int index) |
virtual void | setBoolProperty (const PropertyDef *property, bool value) |
virtual void | setDoubleListProperty (const PropertyDef *property, vector< double > value) |
virtual void | setDoubleProperty (const PropertyDef *property, double value) |
virtual void | setEnumProperty (const PropertyDef *property, string value) |
virtual void | setIntProperty (const PropertyDef *property, int value) |
virtual void | setItemProperty (const PropertyDef *property, Item *item) |
virtual void | setStringProperty (const PropertyDef *property, string value) |
void | setUtilityProperty (string name, int value) |
virtual string | type () const |
Protected Member Functions | |
WavelengthDistribution () | |
Random * | random () const |
void | setupSelfBefore () override |
![]() | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
![]() | |
Item () | |
Private Types | |
using | BaseType = SimulationItem |
using | ItemType = WavelengthDistribution |
Private Attributes | |
Random * | _random |
Friends | |
class | ItemRegistry |
An instance of a WavelengthDistribution subclass represents a plain wavelength probability distribution. It can used, for example, to define a weighting scheme for the wavelengths assigned to photon packets launched from a source. This abstract base class just defines an interface that must be implemented by each subclass. There are two key operations: drawing a random wavelength from the probability distribution, and returning the probability for a given wavelength.
The wavelength probability distribution is automatically normalized to unity over the wavelength range of the associated source (obtained through the SourceWavelengthRangeInterface), intersected with the intrinsic wavelength range of the distribution. Consequently, the random wavelengths returned by the generateWavelength() function will always fall inside the intersected range, and the value returned by the probability() function can be nonzero only within that same range.
|
inlineprotected |
Default constructor for abstract Item subclass WavelengthDistribution : "a wavelength probability distribution" .
|
pure virtual |
This function draws a random wavelength from the wavelength distribution. The returned value will always fall inside the intersection of the intrinsic and external wavelength ranges.
Implemented in DefaultWavelengthDistribution, DiscreteWavelengthDistribution, LinWavelengthDistribution, LogWavelengthDistribution, OligoWavelengthDistribution, and TabulatedWavelengthDistribution.
|
pure virtual |
This function returns the probability of the distribution at the given wavelength, or zero if the wavelength is out of range (the intersection of the intrinsic and external wavelength ranges).
Implemented in DefaultWavelengthDistribution, DiscreteWavelengthDistribution, LinWavelengthDistribution, LogWavelengthDistribution, OligoWavelengthDistribution, and TabulatedWavelengthDistribution.
|
inlineprotected |
This function returns the simulation's random generator as a service to subclasses.
|
overrideprotectedvirtual |
This function caches the simulation's random generator for use by subclasses.
Reimplemented from SimulationItem.