Jpp 20.0.0-195-g190c9e876
the software that should make you happy
Loading...
Searching...
No Matches
JPHYSICS::JScatteringProbability Struct Reference

Auxiliary data structure to customize scattering probability. More...

#include <JPDFSupportkit.hh>

Inheritance diagram for JPHYSICS::JScatteringProbability:
JPHYSICS::JScatteringProbability_t std::map< std::string, JScatteringProbability_t::pF >

Public Types

typedef double(*) pF(const double)
 

Public Member Functions

 JScatteringProbability ()
 Default constructor.
 

Static Public Member Functions

static double getScatteringProbability (const double x)
 Get scattering probability.
 

Static Private Member Functions

static double & get_weight ()
 Get reference to weight.
 
static pFget_function ()
 Get reference to global functon.
 

Friends

std::istream & operator>> (std::istream &in, JScatteringProbability &scattering)
 Read scattering probability from input stream.
 
std::ostream & operator<< (std::ostream &out, const JScatteringProbability &scattering)
 Write scattering probability to output stream.
 

Detailed Description

Auxiliary data structure to customize scattering probability.

Definition at line 254 of file JPDFSupportkit.hh.

Member Typedef Documentation

◆ pF

double(*) JPHYSICS::JScatteringProbability_t::pF(const double)
inherited

Definition at line 247 of file JPDFSupportkit.hh.

Constructor & Destructor Documentation

◆ JScatteringProbability()

JPHYSICS::JScatteringProbability::JScatteringProbability ( )
inline

Default constructor.

Definition at line 261 of file JPDFSupportkit.hh.

262 {
263 (*this)["default"] = NAMESPACE::getScatteringProbability;
264 (*this)["f4"] = f4;
265 (*this)["p00075"] = p00075;
266 (*this)["petzhold"] = petzhold;
267 }
double p00075(const double x)
Model specific function to describe light scattering in water (p00075).
double petzhold(const double x)
Model specific function to describe light scattering in water (Petzhold).
double f4(const double x)
Model specific function to describe light scattering in water (f4).
double getScatteringProbability(const double x)

Member Function Documentation

◆ getScatteringProbability()

static double JPHYSICS::JScatteringProbability::getScatteringProbability ( const double x)
inlinestatic

Get scattering probability.

Parameters
xcosine scattering angle
Returns
probability

Definition at line 320 of file JPDFSupportkit.hh.

321 {
322 return (1.0 - get_weight()) * rayleigh(x) + get_weight() * (*get_function())(x);
323 }
double rayleigh(const double a, const double x)
Auxiliary method to describe light scattering in water (Rayleigh).
static double & get_weight()
Get reference to weight.
static pF & get_function()
Get reference to global functon.

◆ get_weight()

static double & JPHYSICS::JScatteringProbability::get_weight ( )
inlinestaticprivate

Get reference to weight.

Returns
weight

Definition at line 331 of file JPDFSupportkit.hh.

332 {
333 static double weight = 1.0;
334
335 return weight;
336 }

◆ get_function()

static pF & JPHYSICS::JScatteringProbability::get_function ( )
inlinestaticprivate

Get reference to global functon.

Returns
function

Definition at line 344 of file JPDFSupportkit.hh.

345 {
347
348 return f1;
349 }

Friends And Related Symbol Documentation

◆ operator>>

std::istream & operator>> ( std::istream & in,
JScatteringProbability & scattering )
friend

Read scattering probability from input stream.

Parameters
ininput stream
scatteringscattering probability
Returns
input stream

Definition at line 277 of file JPDFSupportkit.hh.

278 {
279 using namespace std;
280
281 for (string option; in >> option >> JScatteringProbability::get_weight(); ) {
282
283 JScatteringProbability::const_iterator p = scattering.find(option);
284
285 if (p != scattering.end())
287 else
288 in.setstate(ios_base::badbit);
289 }
290
291 return in;
292 }

◆ operator<<

std::ostream & operator<< ( std::ostream & out,
const JScatteringProbability & scattering )
friend

Write scattering probability to output stream.

Parameters
outoutput stream
scatteringscattering probability
Returns
output stream

Definition at line 302 of file JPDFSupportkit.hh.

303 {
304 for (const_iterator i = scattering.begin(); i != scattering.end(); ++i) {
305 if (i->second == JScatteringProbability::get_function()) {
306 out << i->first << ' ';
307 }
308 }
309
311 }

The documentation for this struct was generated from the following file: