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.17;
179 (*this)[ 0.100] = 1.767e+03;
180 (*this)[ 0.126] = 1.296e+03;
181 (*this)[ 0.158] = 9.502e+02;
182 (*this)[ 0.200] = 6.991e+02;
183 (*this)[ 0.251] = 5.140e+02;
184 (*this)[ 0.316] = 3.764e+02;
185 (*this)[ 0.398] = 2.763e+02;
186 (*this)[ 0.501] = 2.188e+02;
187 (*this)[ 0.631] = 1.444e+02;
188 (*this)[ 0.794] = 1.022e+02;
189 (*this)[ 1.000] = 7.161e+01;
190 (*this)[ 1.259] = 4.958e+01;
191 (*this)[ 1.585] = 3.395e+01;
192 (*this)[ 1.995] = 2.281e+01;
193 (*this)[ 2.512] = 1.516e+01;
194 (*this)[ 3.162] = 1.002e+01;
195 (*this)[ 3.981] = 6.580e+00;
196 (*this)[ 5.012] = 4.295e+00;
197 (*this)[ 6.310] = 2.807e+00;
198 (*this)[ 7.943] = 1.819e+00;
199 (*this)[ 10.000] = 1.153e+00;
200 (*this)[ 15.000] = 4.893e-01;
201 (*this)[ 20.000] = 2.444e-01;
202 (*this)[ 25.000] = 1.472e-01;
203 (*this)[ 30.000] = 8.609e-02;
204 (*this)[ 35.000] = 5.931e-02;
205 (*this)[ 40.000] = 4.210e-02;
206 (*this)[ 45.000] = 3.067e-02;
207 (*this)[ 50.000] = 2.275e-02;
208 (*this)[ 55.000] = 1.699e-02;
209 (*this)[ 60.000] = 1.313e-02;
210 (*this)[ 65.000] = 1.046e-02;
211 (*this)[ 70.000] = 8.488e-03;
212 (*this)[ 75.000] = 6.976e-03;
213 (*this)[ 80.000] = 5.842e-03;
214 (*this)[ 85.000] = 4.953e-03;
215 (*this)[ 90.000] = 4.292e-03;
216 (*this)[ 95.000] = 3.782e-03;
217 (*this)[100.000] = 3.404e-03;
218 (*this)[105.000] = 3.116e-03;
219 (*this)[110.000] = 2.912e-03;
220 (*this)[115.000] = 2.797e-03;
221 (*this)[120.000] = 2.686e-03;
222 (*this)[125.000] = 2.571e-03;
223 (*this)[130.000] = 2.476e-03;
224 (*this)[135.000] = 2.377e-03;
225 (*this)[140.000] = 2.329e-03;
226 (*this)[145.000] = 2.313e-03;
227 (*this)[150.000] = 2.365e-03;
228 (*this)[155.000] = 2.506e-03;
229 (*this)[160.000] = 2.662e-03;
230 (*this)[165.000] = 2.835e-03;
231 (*this)[170.000] = 3.031e-03;
232 (*this)[175.000] = 3.092e-03;
233 (*this)[180.000] = 3.154e-03;
255 a = acos(
x) * 180.0 /
PI;
257 if (
a >= this->getXmax())
258 return this->rbegin()->getY();
259 else if (a <= this->getXmin())
260 return this-> begin()->getY();
292 static const double Vs = 0.0075;
293 static const double Vl = 0.0075;
294 static const double bw = 0.0017;
295 static const double bs = 1.340;
296 static const double bl = 0.312;
298 const double x = 550.0/lambda;
346 (*this)[0.200e3] = 3.07;
347 (*this)[0.205e3] = 2.53;
348 (*this)[0.210e3] = 1.99;
349 (*this)[0.215e3] = 1.65;
350 (*this)[0.220e3] = 1.31;
351 (*this)[0.225e3] = 1.1185;
352 (*this)[0.230e3] = 0.927;
353 (*this)[0.235e3] = 0.8235;
354 (*this)[0.240e3] = 0.72;
355 (*this)[0.245e3] = 0.6395;
356 (*this)[0.250e3] = 0.559;
357 (*this)[0.255e3] = 0.508;
358 (*this)[0.260e3] = 0.457;
359 (*this)[0.265e3] = 0.415;
360 (*this)[0.270e3] = 0.373;
361 (*this)[0.275e3] = 0.3305;
362 (*this)[0.280e3] = 0.288;
363 (*this)[0.285e3] = 0.2515;
364 (*this)[0.290e3] = 0.215;
365 (*this)[0.295e3] = 0.178;
366 (*this)[0.300e3] = 0.141;
367 (*this)[0.305e3] = 0.123;
368 (*this)[0.310e3] = 0.105;
369 (*this)[0.315e3] = 0.0947;
370 (*this)[0.320e3] = 0.0844;
371 (*this)[0.325e3] = 0.0761;
372 (*this)[0.330e3] = 0.0678;
373 (*this)[0.335e3] = 0.06195;
374 (*this)[0.340e3] = 0.0325;
375 (*this)[0.345e3] = 0.02645;
376 (*this)[0.350e3] = 0.0204;
377 (*this)[0.355e3] = 0.018;
378 (*this)[0.360e3] = 0.0156;
379 (*this)[0.365e3] = 0.0135;
380 (*this)[0.370e3] = 0.0114;
381 (*this)[0.375e3] = 0.011385;
382 (*this)[0.380e3] = 0.01137;
383 (*this)[0.385e3] = 0.00941;
384 (*this)[0.390e3] = 0.00851;
385 (*this)[0.395e3] = 0.00813;
386 (*this)[0.400e3] = 0.00663;
387 (*this)[0.405e3] = 0.0053;
388 (*this)[0.410e3] = 0.00473;
389 (*this)[0.415e3] = 0.00444;
390 (*this)[0.420e3] = 0.00454;
391 (*this)[0.425e3] = 0.00478;
392 (*this)[0.430e3] = 0.00495;
393 (*this)[0.435e3] = 0.0053;
394 (*this)[0.440e3] = 0.00635;
395 (*this)[0.445e3] = 0.00751;
396 (*this)[0.450e3] = 0.00922;
397 (*this)[0.455e3] = 0.00962;
398 (*this)[0.460e3] = 0.00979;
399 (*this)[0.465e3] = 0.01011;
400 (*this)[0.470e3] = 0.0106;
401 (*this)[0.475e3] = 0.0114;
402 (*this)[0.480e3] = 0.0127;
403 (*this)[0.485e3] = 0.0136;
404 (*this)[0.490e3] = 0.015;
405 (*this)[0.495e3] = 0.0173;
406 (*this)[0.500e3] = 0.0204;
407 (*this)[0.505e3] = 0.0256;
408 (*this)[0.510e3] = 0.0325;
409 (*this)[0.515e3] = 0.0396;
410 (*this)[0.520e3] = 0.0409;
411 (*this)[0.525e3] = 0.0417;
412 (*this)[0.530e3] = 0.0434;
413 (*this)[0.535e3] = 0.0452;
414 (*this)[0.540e3] = 0.0474;
415 (*this)[0.545e3] = 0.0511;
416 (*this)[0.550e3] = 0.0565;
417 (*this)[0.555e3] = 0.0596;
418 (*this)[0.560e3] = 0.0619;
419 (*this)[0.565e3] = 0.0642;
420 (*this)[0.570e3] = 0.0695;
421 (*this)[0.575e3] = 0.0772;
422 (*this)[0.580e3] = 0.0896;
423 (*this)[0.585e3] = 0.11;
424 (*this)[0.590e3] = 0.1351;
425 (*this)[0.595e3] = 0.1672;
426 (*this)[0.600e3] = 0.2224;
427 (*this)[0.605e3] = 0.2577;
428 (*this)[0.610e3] = 0.2644;
429 (*this)[0.615e3] = 0.2678;
430 (*this)[0.620e3] = 0.2755;
431 (*this)[0.625e3] = 0.2834;
432 (*this)[0.630e3] = 0.2916;
433 (*this)[0.635e3] = 0.3012;
434 (*this)[0.640e3] = 0.3108;
435 (*this)[0.645e3] = 0.325;
436 (*this)[0.650e3] = 0.34;
437 (*this)[0.655e3] = 0.371;
438 (*this)[0.660e3] = 0.41;
439 (*this)[0.665e3] = 0.429;
440 (*this)[0.670e3] = 0.439;
441 (*this)[0.675e3] = 0.448;
442 (*this)[0.680e3] = 0.465;
443 (*this)[0.685e3] = 0.486;
444 (*this)[0.690e3] = 0.516;
445 (*this)[0.695e3] = 0.559;
446 (*this)[0.700e3] = 0.624;
Double_t g1(const Double_t x)
Function.
Absorption length of pure water.
JAbsorptionLengthOfPureWater()
Default constructor.
double operator()(const double lambda) const
Absorption length of pure water.
Measurement of light scattering in water.
double operator()(const double x) const
Measurement of light scattering in water.
JPetzhold()
Default constructor.
T pow(const T &x, const double y)
Power .
static const double PI
Mathematical constants.
Auxiliary methods for light properties of deep-sea water.
double p00075(const double x)
Model specific function to describe light scattering in water (p00075).
static const double MASS_MUON
muon mass [GeV]
double rayleigh(const double x)
Auxiliary method to describe light scattering in water (Rayleigh).
static const JAbsorptionLengthOfPureWater getAbsorptionLengthOfPureWater
Function object for absorption length of pure water.
static const double X0_WATER_M
Radiation length pure water [m].
double getThetaMCS(const double E, const double x)
Get multiple Coulomb scattering angle for muon.
double f4(const double x)
Model specific function to describe light scattering in water (f4).
double henyey_greenstein(const double x)
Auxiliary method to describe light scattering in water (Heneyey-Greenstein).
static const JPetzhold petzhold
Function object for measurement of light scattering in 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]