10 #include <utl/VRandomSampler.h>
11 #include <utl/RandomSamplerFromPDF.h>
12 #include <utl/PhysicalConstants.h>
13 #include <utl/TabulatedFunction.h>
15 #include <atm/VRayleighModel.h>
22 VRayleighModel::~VRayleighModel()
24 delete fAngularDistribution;
29 VRayleighModel::EvaluateScatteringAngleDistribution(
const utl::Point&
p,
const double wLength)
32 const double angleMin = 0*
deg;
33 const double angleMax = 360*
deg;
35 const double delta = (angleMax - angleMin) / (n-1);
38 for (
int i = 0; i < n; ++i) {
39 const double angle = angleMin + delta * i;
40 const double prob = EvaluateScatteringAngle(p, angle, wLength);
43 delete fAngularDistribution;
45 return *fAngularDistribution;
Class to hold collection (x,y) points and provide interpolation between them.
void PushBack(const double x, const double y)
Class to shoot random numbers given by a user-defined distribution function.