Jpp 21.0.0-rc.1-88-g0130508c4
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 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 269 of file JPDFSupportkit.hh.

Member Typedef Documentation

◆ pF

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

Definition at line 262 of file JPDFSupportkit.hh.

Constructor & Destructor Documentation

◆ JScatteringProbability()

JPHYSICS::JScatteringProbability::JScatteringProbability ( )
inline

Default constructor.

Definition at line 276 of file JPDFSupportkit.hh.

277 {
278 (*this)["default"] = NAMESPACE::getScatteringProbability;
279 (*this)["f4"] = f4;
280 (*this)["p00075"] = p00075;
281 (*this)["petzhold"] = petzhold;
282 }
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 335 of file JPDFSupportkit.hh.

336 {
337 return (1.0 - get_weight()) * rayleigh(x) + get_weight() * (*get_function())(x);
338 }
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 ( )
inlinestatic

Get reference to weight.

Returns
weight

Definition at line 346 of file JPDFSupportkit.hh.

347 {
348 static double weight = 1.0;
349
350 return weight;
351 }

◆ get_function()

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

Get reference to global functon.

Returns
function

Definition at line 359 of file JPDFSupportkit.hh.

360 {
362
363 return f1;
364 }

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 292 of file JPDFSupportkit.hh.

293 {
294 using namespace std;
295
296 for (string option; in >> option >> JScatteringProbability::get_weight(); ) {
297
298 JScatteringProbability::const_iterator p = scattering.find(option);
299
300 if (p != scattering.end())
302 else
303 in.setstate(ios_base::badbit);
304 }
305
306 return in;
307 }

◆ 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 317 of file JPDFSupportkit.hh.

318 {
319 for (const_iterator i = scattering.begin(); i != scattering.end(); ++i) {
320 if (i->second == JScatteringProbability::get_function()) {
321 out << i->first << ' ';
322 }
323 }
324
326 }

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