1 #ifndef __JPHYSICS_JPHYSICSSUPPORTKIT__
2 #define __JPHYSICS_JPHYSICSSUPPORTKIT__
16 namespace JPP {
using namespace JPHYSICS; }
37 const double a0 = (1.0 - g*g) / (4*
PI);
38 const double y = 1.0 + g*g - 2.0*g*
x;
40 return a0 / (y*sqrt(y));
52 static const double g = 0.924;
69 const double a0 = 1.0 / (1.0 + a/3.0) / (4*
PI);
71 return a0 * (1.0 + a*x*
x);
93 inline double f4(
const double x)
95 static const double g1 = 0.77;
96 static const double g2 = 0.00;
97 static const double f = 1.00;
111 static const double g = 0.924;
112 static const double f = 0.17;
130 static JPolint1Function1D_t f1;
134 f1[ 0.100] = 1.767e+03;
135 f1[ 0.126] = 1.296e+03;
136 f1[ 0.158] = 9.502e+02;
137 f1[ 0.200] = 6.991e+02;
138 f1[ 0.251] = 5.140e+02;
139 f1[ 0.316] = 3.764e+02;
140 f1[ 0.398] = 2.763e+02;
141 f1[ 0.501] = 2.188e+02;
142 f1[ 0.631] = 1.444e+02;
143 f1[ 0.794] = 1.022e+02;
144 f1[ 1.000] = 7.161e+01;
145 f1[ 1.259] = 4.958e+01;
146 f1[ 1.585] = 3.395e+01;
147 f1[ 1.995] = 2.281e+01;
148 f1[ 2.512] = 1.516e+01;
149 f1[ 3.162] = 1.002e+01;
150 f1[ 3.981] = 6.580e+00;
151 f1[ 5.012] = 4.295e+00;
152 f1[ 6.310] = 2.807e+00;
153 f1[ 7.943] = 1.819e+00;
154 f1[ 10.000] = 1.153e+00;
155 f1[ 15.000] = 4.893e-01;
156 f1[ 20.000] = 2.444e-01;
157 f1[ 25.000] = 1.472e-01;
158 f1[ 30.000] = 8.609e-02;
159 f1[ 35.000] = 5.931e-02;
160 f1[ 40.000] = 4.210e-02;
161 f1[ 45.000] = 3.067e-02;
162 f1[ 50.000] = 2.275e-02;
163 f1[ 55.000] = 1.699e-02;
164 f1[ 60.000] = 1.313e-02;
165 f1[ 65.000] = 1.046e-02;
166 f1[ 70.000] = 8.488e-03;
167 f1[ 75.000] = 6.976e-03;
168 f1[ 80.000] = 5.842e-03;
169 f1[ 85.000] = 4.953e-03;
170 f1[ 90.000] = 4.292e-03;
171 f1[ 95.000] = 3.782e-03;
172 f1[100.000] = 3.404e-03;
173 f1[105.000] = 3.116e-03;
174 f1[110.000] = 2.912e-03;
175 f1[115.000] = 2.797e-03;
176 f1[120.000] = 2.686e-03;
177 f1[125.000] = 2.571e-03;
178 f1[130.000] = 2.476e-03;
179 f1[135.000] = 2.377e-03;
180 f1[140.000] = 2.329e-03;
181 f1[145.000] = 2.313e-03;
182 f1[150.000] = 2.365e-03;
183 f1[155.000] = 2.506e-03;
184 f1[160.000] = 2.662e-03;
185 f1[165.000] = 2.835e-03;
186 f1[170.000] = 3.031e-03;
187 f1[175.000] = 3.092e-03;
188 f1[180.000] = 3.154e-03;
194 const double a = acos(x) * 180.0 /
PI;
196 if (
a >= f1.getXmax())
197 return f1.rbegin()->getY();
198 if (
a <= f1.getXmin())
199 return f1. begin()->getY();
237 (*this)[0.200e3] = 3.07;
238 (*this)[0.205e3] = 2.53;
239 (*this)[0.210e3] = 1.99;
240 (*this)[0.215e3] = 1.65;
241 (*this)[0.220e3] = 1.31;
242 (*this)[0.225e3] = 1.1185;
243 (*this)[0.230e3] = 0.927;
244 (*this)[0.235e3] = 0.8235;
245 (*this)[0.240e3] = 0.72;
246 (*this)[0.245e3] = 0.6395;
247 (*this)[0.250e3] = 0.559;
248 (*this)[0.255e3] = 0.508;
249 (*this)[0.260e3] = 0.457;
250 (*this)[0.265e3] = 0.415;
251 (*this)[0.270e3] = 0.373;
252 (*this)[0.275e3] = 0.3305;
253 (*this)[0.280e3] = 0.288;
254 (*this)[0.285e3] = 0.2515;
255 (*this)[0.290e3] = 0.215;
256 (*this)[0.295e3] = 0.178;
257 (*this)[0.300e3] = 0.141;
258 (*this)[0.305e3] = 0.123;
259 (*this)[0.310e3] = 0.105;
260 (*this)[0.315e3] = 0.0947;
261 (*this)[0.320e3] = 0.0844;
262 (*this)[0.325e3] = 0.0761;
263 (*this)[0.330e3] = 0.0678;
264 (*this)[0.335e3] = 0.06195;
265 (*this)[0.340e3] = 0.0325;
266 (*this)[0.345e3] = 0.02645;
267 (*this)[0.350e3] = 0.0204;
268 (*this)[0.355e3] = 0.018;
269 (*this)[0.360e3] = 0.0156;
270 (*this)[0.365e3] = 0.0135;
271 (*this)[0.370e3] = 0.0114;
272 (*this)[0.375e3] = 0.011385;
273 (*this)[0.380e3] = 0.01137;
274 (*this)[0.385e3] = 0.00941;
275 (*this)[0.390e3] = 0.00851;
276 (*this)[0.395e3] = 0.00813;
277 (*this)[0.400e3] = 0.00663;
278 (*this)[0.405e3] = 0.0053;
279 (*this)[0.410e3] = 0.00473;
280 (*this)[0.415e3] = 0.00444;
281 (*this)[0.420e3] = 0.00454;
282 (*this)[0.425e3] = 0.00478;
283 (*this)[0.430e3] = 0.00495;
284 (*this)[0.435e3] = 0.0053;
285 (*this)[0.440e3] = 0.00635;
286 (*this)[0.445e3] = 0.00751;
287 (*this)[0.450e3] = 0.00922;
288 (*this)[0.455e3] = 0.00962;
289 (*this)[0.460e3] = 0.00979;
290 (*this)[0.465e3] = 0.01011;
291 (*this)[0.470e3] = 0.0106;
292 (*this)[0.475e3] = 0.0114;
293 (*this)[0.480e3] = 0.0127;
294 (*this)[0.485e3] = 0.0136;
295 (*this)[0.490e3] = 0.015;
296 (*this)[0.495e3] = 0.0173;
297 (*this)[0.500e3] = 0.0204;
298 (*this)[0.505e3] = 0.0256;
299 (*this)[0.510e3] = 0.0325;
300 (*this)[0.515e3] = 0.0396;
301 (*this)[0.520e3] = 0.0409;
302 (*this)[0.525e3] = 0.0417;
303 (*this)[0.530e3] = 0.0434;
304 (*this)[0.535e3] = 0.0452;
305 (*this)[0.540e3] = 0.0474;
306 (*this)[0.545e3] = 0.0511;
307 (*this)[0.550e3] = 0.0565;
308 (*this)[0.555e3] = 0.0596;
309 (*this)[0.560e3] = 0.0619;
310 (*this)[0.565e3] = 0.0642;
311 (*this)[0.570e3] = 0.0695;
312 (*this)[0.575e3] = 0.0772;
313 (*this)[0.580e3] = 0.0896;
314 (*this)[0.585e3] = 0.11;
315 (*this)[0.590e3] = 0.1351;
316 (*this)[0.595e3] = 0.1672;
317 (*this)[0.600e3] = 0.2224;
318 (*this)[0.605e3] = 0.2577;
319 (*this)[0.610e3] = 0.2644;
320 (*this)[0.615e3] = 0.2678;
321 (*this)[0.620e3] = 0.2755;
322 (*this)[0.625e3] = 0.2834;
323 (*this)[0.630e3] = 0.2916;
324 (*this)[0.635e3] = 0.3012;
325 (*this)[0.640e3] = 0.3108;
326 (*this)[0.645e3] = 0.325;
327 (*this)[0.650e3] = 0.34;
328 (*this)[0.655e3] = 0.371;
329 (*this)[0.660e3] = 0.41;
330 (*this)[0.665e3] = 0.429;
331 (*this)[0.670e3] = 0.439;
332 (*this)[0.675e3] = 0.448;
333 (*this)[0.680e3] = 0.465;
334 (*this)[0.685e3] = 0.486;
335 (*this)[0.690e3] = 0.516;
336 (*this)[0.695e3] = 0.559;
337 (*this)[0.700e3] = 0.624;
double f4(const double x)
Model specific function to describe light scattering in water (f4).
static const JAbsorptionLengthOfPureWater getAbsorptionLengthOfPureWater
Function object for absorption length of pure water.
double operator()(const double lambda) const
Absorption length of pure water.
double rayleigh(const double a, const double x)
Auxiliary method to describe light scattering in water (Rayleigh).
double petzhold(const double x)
Measurement of light scattering in water.
Absorption length of pure water.
static const double PI
Mathematical constants.
JAbsorptionLengthOfPureWater()
double p00075(const double x)
Model specific function to describe light scattering in water (p00075).
double henyey_greenstein(const double g, const double x)
Auxiliary method to describe light scattering in water (Henyey-Greenstein).
Double_t g1(const Double_t x)
Function.