#include <NestedLogWavelengthGrid.hpp>
Public Member Functions | |
double | maxWavelengthBaseGrid () const |
double | maxWavelengthSubGrid () const |
double | minWavelengthBaseGrid () const |
double | minWavelengthSubGrid () const |
int | numWavelengthsBaseGrid () const |
int | numWavelengthsSubGrid () const |
Public Member Functions inherited from DisjointWavelengthGrid | |
int | bin (double lambda) const override |
vector< int > | bins (double lambda) const override |
const Array & | dlambdav () const |
double | effectiveWidth (int ell) const override |
Array | extdlambdav () const |
Array | extlambdav () const |
const Array & | lambdav () const |
double | leftBorder (int ell) const override |
int | numBins () const override |
double | rightBorder (int ell) const override |
double | transmission (int ell, double lambda) const override |
double | wavelength (int ell) const override |
Public Member Functions inherited from WavelengthGrid | |
virtual int | bin (double lambda) const =0 |
virtual vector< int > | bins (double lambda) const =0 |
virtual double | effectiveWidth (int ell) const =0 |
virtual double | leftBorder (int ell) const =0 |
virtual int | numBins () const =0 |
virtual double | rightBorder (int ell) const =0 |
virtual double | transmission (int ell, double lambda) const =0 |
virtual double | wavelength (int ell) const =0 |
Range | wavelengthRange () const |
Public Member Functions inherited from SimulationItem | |
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 |
Public Member Functions inherited from Item | |
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 | |
NestedLogWavelengthGrid () | |
void | setupSelfBefore () override |
Protected Member Functions inherited from DisjointWavelengthGrid | |
DisjointWavelengthGrid () | |
void | setupSelfAfter () override |
void | setWavelengthBins (const Array &lambdav, double relativeHalfWidth, bool constantWidth=false) |
void | setWavelengthBorders (const Array &borderv, bool logScale) |
void | setWavelengthRange (const Array &lambdav, bool logScale) |
void | setWavelengthSegments (const Array &bordcharv) |
void | setWavelengthSegments (const vector< double > &borderv, const vector< double > &characv) |
Protected Member Functions inherited from WavelengthGrid | |
WavelengthGrid () | |
Protected Member Functions inherited from SimulationItem | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
Protected Member Functions inherited from Item | |
Item () | |
Private Types | |
using | BaseType = DisjointWavelengthGrid |
using | ItemType = NestedLogWavelengthGrid |
Private Attributes | |
double | _maxWavelengthBaseGrid |
double | _maxWavelengthSubGrid |
double | _minWavelengthBaseGrid |
double | _minWavelengthSubGrid |
int | _numWavelengthsBaseGrid |
int | _numWavelengthsSubGrid |
Friends | |
class | ItemRegistry |
NestedLogWavelengthGrid is a subclass of the DisjointWavelengthGrid class representing hybrid grids consisting of a logarithmically distributed wavelength grid in which another, more compact logarithmic grid is embedded. It can be very useful to get higher-resolution spectra in a particular wavelength grid while still covering a broad wavelength range.
The characteristic wavelengths of the bins in each of the two grids (low-resolution grid and high-resolution subgrid) are equally distributed (in log space) between and including the specified minimum and maximum wavelength. The outermost bins are given the same width as the inner bins (in log space), which implies that the outermost bin borders are placed beyond the specified minimum and maximum wavelength. The grids must have at least two bins, which then have the specified minimum and maximum wavelength as their respective characteristic wavelength.
|
inlineprotected |
Default constructor for concrete Item subclass NestedLogWavelengthGrid : "a nested logarithmic wavelength grid" .
|
inline |
This function returns the value of the discoverable double property maxWavelengthBaseGrid : "the longest wavelength of the low-resolution grid" .
This property represents a physical quantity of type "wavelength" .
The minimum value for this property is "1 pm" .
The maximum value for this property is "1 m" .
|
inline |
This function returns the value of the discoverable double property maxWavelengthSubGrid : "the longest wavelength of the high-resolution subgrid" .
This property represents a physical quantity of type "wavelength" .
The minimum value for this property is "1 pm" .
The maximum value for this property is "1 m" .
|
inline |
This function returns the value of the discoverable double property minWavelengthBaseGrid : "the shortest wavelength of the low-resolution grid" .
This property represents a physical quantity of type "wavelength" .
The minimum value for this property is "1 pm" .
The maximum value for this property is "1 m" .
|
inline |
This function returns the value of the discoverable double property minWavelengthSubGrid : "the shortest wavelength of the high-resolution subgrid" .
This property represents a physical quantity of type "wavelength" .
The minimum value for this property is "1 pm" .
The maximum value for this property is "1 m" .
|
inline |
This function returns the value of the discoverable integer property numWavelengthsBaseGrid : "the number of wavelength grid points in the low-resolution grid" .
The minimum value for this property is "2" .
The default value for this property is given by the conditional value expression "25" .
|
inline |
This function returns the value of the discoverable integer property numWavelengthsSubGrid : "the number of wavelength grid points in the high-resolution subgrid" .
The minimum value for this property is "2" .
The default value for this property is given by the conditional value expression "25" .
|
overrideprotectedvirtual |
This function constructs the list of characteristic wavelengths. First, \(N\) wavelength grid points are distributed logarithmically between \(\lambda_{\text{min}}\) and \(\lambda_{\text{max}}\). Next, \(N_{\text{zoom}}\) wavelength grid points are distributed logarithmically between \(\lambda_{\text{zoom,min}}\) and \(\lambda_{\text{zoom,max}}\). Both sets of wavelength grids are subsequently merged and overlapping grid points are removed.
Reimplemented from SimulationItem.