#include <LineSED.hpp>
Public Member Functions | |
double | generateWavelength () const override |
double | integratedLuminosity (const Range &wavelengthRange) const override |
Range | intrinsicWavelengthRange () const override |
![]() | |
virtual double | generateWavelength () const =0 |
virtual double | integratedLuminosity (const Range &wavelengthRange) const =0 |
virtual Range | intrinsicWavelengthRange () const =0 |
Range | normalizationWavelengthRange () const |
![]() | |
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 | |
LineSED () | |
virtual void | getWavelengthsAndLuminosities (Array &lambdav, Array &Lv) const =0 |
void | setupSelfBefore () override |
![]() | |
SED () | |
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 = SED |
using | ItemType = LineSED |
Private Attributes | |
Array | _inlambdav |
Array | _inLv |
Array | _lambdav |
Array | _Lv |
Array | _Pv |
Friends | |
class | ItemRegistry |
LineSED is an abstract class for representing spectral energy distributions that consist of one or more discrete emission lines with zero width. Mathematically, the specific luminosity is infinite at the line wavelengths and zero everywhere else, while the integrated luminosity (over all lines in the source wavelength range) is still normalized to unity. As a result, the specific luminosity is numerically undefined. This imposes important restrictions on the use of the SED:
The subclass must provide the list of wavelengths and corresponding relative luminosities, and this abstract class handles everything else.
This item type is allowed only if the Boolean expression "Panchromatic" evaluates to true after replacing the names by true or false depending on their presence.
This item type is displayed only if the Boolean expression "Level2" evaluates to true after replacing the names by true or false depending on their presence.
|
inlineprotected |
|
overridevirtual |
This function draws a random wavelength from the normalized spectral energy distribution. For the current class, it chooses one of the line wavelengths.
Implements SED.
Reimplemented in SingleWavelengthSED.
|
protectedpure virtual |
This function must be implemented in each subclass to return the wavelengths and the corresponding relative luminosities defining the lines in the SED. The function must guarantee that both arrays have the same size. The order of the pairs (other than the correspondance between a wavelength and its luminosity) is not important. Constant scaling of the luminosities is not important because the SED will be normalized by this abstract class.
Implemented in FileLineSED, ListLineSED, and SingleWavelengthSED.
|
overridevirtual |
This function returns the normalized integrated luminosity
Implements SED.
|
overridevirtual |
This function returns the intrinsic wavelength range of the SED. For the current class, the range includes all line wavelengths.
Implements SED.
|
overrideprotectedvirtual |
This function asks the subclass to load the wavelength/luminosity pairs for one or more lines and precalculates the information needed by the other functions in this class.
Reimplemented from SimulationItem.