1#ifndef __JPHYSICS_JPHYSICSSUPPORTKIT__
2#define __JPHYSICS_JPHYSICSSUPPORTKIT__
48 const double p = sqrt((E + M) * (E - M));
49 const double beta = p / E;
51 return THETA_MCS * Q * sqrt(x/X0) * (1.0 + 0.038*log(x/X0)) / (beta*p);
82 const double a0 = (1.0 - g*g) / (4*PI);
83 const double y = 1.0 + g*g - 2.0*g*x;
85 return a0 / (y*sqrt(y));
97 static const double g = 0.924;
114 const double a0 = 1.0 / (1.0 + a/3.0) / (4*PI);
116 return a0 * (1.0 + a*x*x);
138 inline double f4(
const double x)
140 static const double g1 = 0.77;
141 static const double g2 = 0.00;
142 static const double f = 1.00;
156 static const double g = 0.924;
157 static const double f = 0.25;
180 f1[ 0.100] = 1.767e+03;
181 f1[ 0.126] = 1.296e+03;
182 f1[ 0.158] = 9.502e+02;
183 f1[ 0.200] = 6.991e+02;
184 f1[ 0.251] = 5.140e+02;
185 f1[ 0.316] = 3.764e+02;
186 f1[ 0.398] = 2.763e+02;
187 f1[ 0.501] = 2.188e+02;
188 f1[ 0.631] = 1.444e+02;
189 f1[ 0.794] = 1.022e+02;
190 f1[ 1.000] = 7.161e+01;
191 f1[ 1.259] = 4.958e+01;
192 f1[ 1.585] = 3.395e+01;
193 f1[ 1.995] = 2.281e+01;
194 f1[ 2.512] = 1.516e+01;
195 f1[ 3.162] = 1.002e+01;
196 f1[ 3.981] = 6.580e+00;
197 f1[ 5.012] = 4.295e+00;
198 f1[ 6.310] = 2.807e+00;
199 f1[ 7.943] = 1.819e+00;
200 f1[ 10.000] = 1.153e+00;
201 f1[ 15.000] = 4.893e-01;
202 f1[ 20.000] = 2.444e-01;
203 f1[ 25.000] = 1.472e-01;
204 f1[ 30.000] = 8.609e-02;
205 f1[ 35.000] = 5.931e-02;
206 f1[ 40.000] = 4.210e-02;
207 f1[ 45.000] = 3.067e-02;
208 f1[ 50.000] = 2.275e-02;
209 f1[ 55.000] = 1.699e-02;
210 f1[ 60.000] = 1.313e-02;
211 f1[ 65.000] = 1.046e-02;
212 f1[ 70.000] = 8.488e-03;
213 f1[ 75.000] = 6.976e-03;
214 f1[ 80.000] = 5.842e-03;
215 f1[ 85.000] = 4.953e-03;
216 f1[ 90.000] = 4.292e-03;
217 f1[ 95.000] = 3.782e-03;
218 f1[100.000] = 3.404e-03;
219 f1[105.000] = 3.116e-03;
220 f1[110.000] = 2.912e-03;
221 f1[115.000] = 2.797e-03;
222 f1[120.000] = 2.686e-03;
223 f1[125.000] = 2.571e-03;
224 f1[130.000] = 2.476e-03;
225 f1[135.000] = 2.377e-03;
226 f1[140.000] = 2.329e-03;
227 f1[145.000] = 2.313e-03;
228 f1[150.000] = 2.365e-03;
229 f1[155.000] = 2.506e-03;
230 f1[160.000] = 2.662e-03;
231 f1[165.000] = 2.835e-03;
232 f1[170.000] = 3.031e-03;
233 f1[175.000] = 3.092e-03;
234 f1[180.000] = 3.154e-03;
242 return f1. begin()->getY();
244 return f1.rbegin()->getY();
246 const double a = acos(x) * 180.0 / PI;
248 if (a < f1. begin()->getX())
249 return f1. begin()->getY();
250 else if (a > f1.rbegin()->getX())
251 return f1.rbegin()->getY();
276 static const double Vs = 0.0075;
277 static const double Vl = 0.0075;
278 static const double bw = 0.0017;
279 static const double bs = 1.340;
280 static const double bl = 0.312;
282 const double x = 550.0/lambda;
376 if (lambda > f1.getXmin() && lambda < f1.getXmax())
377 return 1.0 / f1(lambda);
422 f1[0.225e3] = 1.1185;
424 f1[0.235e3] = 0.8235;
426 f1[0.245e3] = 0.6395;
432 f1[0.275e3] = 0.3305;
434 f1[0.285e3] = 0.2515;
440 f1[0.315e3] = 0.0947;
441 f1[0.320e3] = 0.0844;
442 f1[0.325e3] = 0.0761;
443 f1[0.330e3] = 0.0678;
444 f1[0.335e3] = 0.06195;
445 f1[0.340e3] = 0.0325;
446 f1[0.345e3] = 0.02645;
447 f1[0.350e3] = 0.0204;
449 f1[0.360e3] = 0.0156;
450 f1[0.365e3] = 0.0135;
451 f1[0.370e3] = 0.0114;
452 f1[0.375e3] = 0.011385;
453 f1[0.380e3] = 0.01137;
454 f1[0.385e3] = 0.00941;
455 f1[0.390e3] = 0.00851;
456 f1[0.395e3] = 0.00813;
457 f1[0.400e3] = 0.00663;
458 f1[0.405e3] = 0.0053;
459 f1[0.410e3] = 0.00473;
460 f1[0.415e3] = 0.00444;
461 f1[0.420e3] = 0.00454;
462 f1[0.425e3] = 0.00478;
463 f1[0.430e3] = 0.00495;
464 f1[0.435e3] = 0.0053;
465 f1[0.440e3] = 0.00635;
466 f1[0.445e3] = 0.00751;
467 f1[0.450e3] = 0.00922;
468 f1[0.455e3] = 0.00962;
469 f1[0.460e3] = 0.00979;
470 f1[0.465e3] = 0.01011;
471 f1[0.470e3] = 0.0106;
472 f1[0.475e3] = 0.0114;
473 f1[0.480e3] = 0.0127;
474 f1[0.485e3] = 0.0136;
476 f1[0.495e3] = 0.0173;
477 f1[0.500e3] = 0.0204;
478 f1[0.505e3] = 0.0256;
479 f1[0.510e3] = 0.0325;
480 f1[0.515e3] = 0.0396;
481 f1[0.520e3] = 0.0409;
482 f1[0.525e3] = 0.0417;
483 f1[0.530e3] = 0.0434;
484 f1[0.535e3] = 0.0452;
485 f1[0.540e3] = 0.0474;
486 f1[0.545e3] = 0.0511;
487 f1[0.550e3] = 0.0565;
488 f1[0.555e3] = 0.0596;
489 f1[0.560e3] = 0.0619;
490 f1[0.565e3] = 0.0642;
491 f1[0.570e3] = 0.0695;
492 f1[0.575e3] = 0.0772;
493 f1[0.580e3] = 0.0896;
495 f1[0.590e3] = 0.1351;
496 f1[0.595e3] = 0.1672;
497 f1[0.600e3] = 0.2224;
498 f1[0.605e3] = 0.2577;
499 f1[0.610e3] = 0.2644;
500 f1[0.615e3] = 0.2678;
501 f1[0.620e3] = 0.2755;
502 f1[0.625e3] = 0.2834;
503 f1[0.630e3] = 0.2916;
504 f1[0.635e3] = 0.3012;
505 f1[0.640e3] = 0.3108;
522 if (lambda > f1.getXmin() && lambda < f1.getXmax())
523 return 1.0 / f1(lambda);
Double_t g1(const Double_t x)
Function.
Auxiliary methods for light properties of deep-sea water.
double henyey_greenstein(const double g, const double x)
Auxiliary method to describe light scattering in water (Henyey-Greenstein).
double p00075(const double x)
Model specific function to describe light scattering in water (p00075).
double getThetaMCS(const double E, const double x, const double X0, const double M, const double Q)
Get multiple Coulomb scattering angle.
double petzhold(const double x)
Model specific function to describe light scattering in water (Petzhold).
double rayleigh(const double a, const double x)
Auxiliary method to describe light scattering in water (Rayleigh).
static const double X0_WATER_M
Radiation length pure water [m].
double getAbsorptionLengthSmithAndBaker(const double lambda)
Absorption length of deep-sea water according Smith & Baker.
double f4(const double x)
Model specific function to describe light scattering in water (f4).
double getAbsorptionLengthOfPureWater(const double lambda)
Absorption length of pure water.
static const double THETA_MCS
Multiple Coulomb scattering constant [GeV].
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for scattering lengths of deep-sea water.
double Lis_large
inverse scattering length due to large particles [m^-1]
JMobley(const double lambda)
Constructor.
double Lis_small
inverse scattering length due to small particles [m^-1]
double Lis_pure
inverse scattering length due to pure water [m^-1]