#include <NetzerAngularDistribution.hpp>

Public Member Functions | |
| double | generateInclinationCosine () const override |
| double | probabilityForInclinationCosine (double costheta) const override |
Public Member Functions inherited from AxAngularDistribution | |
| int | dimension () const override |
| Direction | generateDirection () const override |
| virtual double | generateInclinationCosine () const =0 |
| double | probabilityForDirection (Direction bfk) const override |
| virtual double | probabilityForInclinationCosine (double costheta) const =0 |
| double | symmetryX () const |
| double | symmetryY () const |
| double | symmetryZ () const |
| virtual int | dimension () const =0 |
| virtual Direction | generateDirection () const =0 |
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 |
Public Member Functions inherited from AngularDistributionInterface | |
| virtual | ~AngularDistributionInterface () |
| virtual double | probabilityForDirection (Direction bfk) const =0 |
Protected Member Functions | |
| NetzerAngularDistribution () | |
| void | setupSelfBefore () override |
Protected Member Functions inherited from AxAngularDistribution | |
| AxAngularDistribution () | |
| void | setupSelfBefore () override |
Protected Member Functions inherited from AngularDistribution | |
| AngularDistribution () | |
| Random * | random () const |
| void | setupSelfBefore () override |
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 () | |
Protected Member Functions inherited from AngularDistributionInterface | |
| AngularDistributionInterface () | |
Private Types | |
| using | BaseType = AxAngularDistribution |
| using | ItemType = NetzerAngularDistribution |
Private Attributes | |
| Array | _costhetav |
| Array | _Xv |
Friends | |
| class | ItemRegistry |
The NetzerAngularDistribution class describes anisotropic AGN accretion disk emission as proposed by Netzer (1987, MNRAS.225...55N, eq (5)):
\[L(\theta)\propto \begin{cases} \cos\theta\,(2\cos\theta+1) & 0\le\theta\le\pi/2 \\ \cos\theta\,(2\cos\theta-1) & \pi/2\le\theta\le\pi \end{cases} \]
The accretion disk is assumed to be approximated by a point source. The emission pattern is axisymmetric relative to an arbitrary symmetry axis configured in the base class.
|
inlineprotected |
Default constructor for concrete Item subclass NetzerAngularDistribution : "a Netzer AGN accretion disk emission profile" .
|
overridevirtual |
This function generates a random inclination cosine \(\cos\theta\) according to the Netzer luminosity profile, with \(\theta\) determined from the cumulative distribution calculated during setup.
Implements AxAngularDistribution.
|
overridevirtual |
This function returns the normalized probability for a given inclination cosine \(\cos\theta\) according to the Netzer luminosity profile. It simply implements a properly normalized version of the function \(L(\theta)\) defined in the header of this class, subject to the normalization
\[ \frac{1}{4\pi} \iint p({\bf{k}})\, {\text{d}}\Omega = 1 \]
Implements AxAngularDistribution.
|
overrideprotectedvirtual |
This function contructs a vector with the cumulative distribution of the anisotropic luminosity as a function of \(\theta\). For the Netzer luminosity function \(L(\theta)\) defined in the header of this class, the cumulative distribution is given by
\[ X(\theta) \propto \int_0^\theta L(\theta') \sin\theta' \,{\mathrm{d}}\theta' \]
which, after proper normalization, leads to
\[ X(\theta) = \begin{cases} \frac{1}{2} - \frac{2}{7}\cos^3\theta - \frac{3}{14}\cos^2\theta & 0\le\theta\le\pi/2 \\ \frac{1}{2} - \frac{2}{7}\cos^3\theta + \frac{3}{14}\cos^2\theta & \pi/2\le\theta\le\pi \end{cases} \]
Reimplemented from AxAngularDistribution.