Jpp  19.1.0-rc.1
the software that should make you happy
JNeutrino.hh
Go to the documentation of this file.
1 #ifndef __JPHYSICS__JNEUTRINO__
2 #define __JPHYSICS__JNEUTRINO__
3 
5 
6 
7 /**
8  * \author mdejong
9  */
10 
11 namespace JPHYSICS {}
12 namespace JPP { using namespace JPHYSICS; }
13 
14 namespace JPHYSICS {
15 
16  namespace {
17 
20 
21  /**
22  * Base class for neutrino cross sections.
23  */
24  class JCrossSection :
25  public JSplineFunction1D_t
26  {
27  /**
28  * Auxiliary class to transform cross section.
29  * The value of the cross section will be divided by the neutrino energy.
30  */
31  class transformer :
32  public JCollectionElementTransformer<value_type>
33  {
34  public:
35  /**
36  * Transformation of elements.
37  *
38  * \param element input element
39  * \return output element
40  */
41  virtual value_type operator()(const value_type& element) const
42  {
43  return value_type(element.getX(), element.getY() / element.getX());
44  }
45  };
46 
47  public:
48  /**
49  * Transformation of cross section.
50  */
51  void transform()
52  {
53  JSplineFunction1D_t::transform(transformer());
54  }
55 
56 
57  /**
58  * Cross section.
59  *
60  * \param E neutrino energy [GeV]
61  * \return cross section [cm^2]
62  */
63  double operator()(const double& E) const
64  {
65  return JSplineFunction1D_t::operator()(E) * E;
66  }
67  };
68 
69 
70  /**
71  * Charged current neutrino cross section [cm^2] as a function of neutrino energy [GeV]
72  */
73  class JCCnu :
74  public JCrossSection
75  {
76  public:
77  JCCnu()
78  {
79  insert(value_type(1.000000e+00, 8.389700e-39));
80  insert(value_type(1.258925e+00, 1.056200e-38));
81  insert(value_type(1.584893e+00, 1.329600e-38));
82  insert(value_type(1.995262e+00, 1.673800e-38));
83  insert(value_type(2.511886e+00, 2.106200e-38));
84  insert(value_type(3.162278e+00, 2.647200e-38));
85  insert(value_type(3.981072e+00, 3.321900e-38));
86  insert(value_type(5.011872e+00, 4.158400e-38));
87  insert(value_type(6.309573e+00, 5.194600e-38));
88  insert(value_type(7.943282e+00, 6.475700e-38));
89  insert(value_type(1.000000e+01, 8.077200e-38));
90  insert(value_type(1.258925e+01, 1.002100e-37));
91  insert(value_type(1.584893e+01, 1.244900e-37));
92  insert(value_type(1.995262e+01, 1.546200e-37));
93  insert(value_type(2.511886e+01, 1.920300e-37));
94  insert(value_type(3.162278e+01, 2.385400e-37));
95  insert(value_type(3.981072e+01, 2.964300e-37));
96  insert(value_type(5.011872e+01, 3.685300e-37));
97  insert(value_type(6.309573e+01, 4.584200e-37));
98  insert(value_type(7.943282e+01, 5.705400e-37));
99  insert(value_type(1.000000e+02, 7.104300e-37));
100  insert(value_type(1.258925e+02, 8.851000e-37));
101  insert(value_type(1.584893e+02, 1.103100e-36));
102  insert(value_type(1.995262e+02, 1.375300e-36));
103  insert(value_type(2.511886e+02, 1.714800e-36));
104  insert(value_type(3.162278e+02, 2.138200e-36));
105  insert(value_type(3.981072e+02, 2.665600e-36));
106  insert(value_type(5.011872e+02, 3.321600e-36));
107  insert(value_type(6.309573e+02, 4.136100e-36));
108  insert(value_type(7.943282e+02, 5.145200e-36));
109  insert(value_type(1.000000e+03, 6.391600e-36));
110  insert(value_type(1.258925e+03, 7.926500e-36));
111  insert(value_type(1.584893e+03, 9.808600e-36));
112  insert(value_type(1.995262e+03, 1.210600e-35));
113  insert(value_type(2.511886e+03, 1.489500e-35));
114  insert(value_type(3.162278e+03, 1.826200e-35));
115  insert(value_type(3.981072e+03, 2.229900e-35));
116  insert(value_type(5.011872e+03, 2.710600e-35));
117  insert(value_type(6.309573e+03, 3.278900e-35));
118  insert(value_type(7.943282e+03, 3.945700e-35));
119  insert(value_type(1.000000e+04, 4.722400e-35));
120  insert(value_type(1.258925e+04, 5.620500e-35));
121  insert(value_type(1.584893e+04, 6.648500e-35));
122  insert(value_type(1.995262e+04, 7.825500e-35));
123  insert(value_type(2.511886e+04, 9.161700e-35));
124  insert(value_type(3.162278e+04, 1.067100e-34));
125  insert(value_type(3.981072e+04, 1.236900e-34));
126  insert(value_type(5.011872e+04, 1.427300e-34));
127  insert(value_type(6.309573e+04, 1.640200e-34));
128  insert(value_type(7.943282e+04, 1.877800e-34));
129  insert(value_type(1.000000e+05, 2.142300e-34));
130  insert(value_type(1.258925e+05, 2.436600e-34));
131  insert(value_type(1.584893e+05, 2.763600e-34));
132  insert(value_type(1.995262e+05, 3.126500e-34));
133  insert(value_type(2.511886e+05, 3.529000e-34));
134  insert(value_type(3.162278e+05, 3.975000e-34));
135  insert(value_type(3.981072e+05, 4.467800e-34));
136  insert(value_type(5.011872e+05, 5.014200e-34));
137  insert(value_type(6.309573e+05, 5.618400e-34));
138  insert(value_type(7.943282e+05, 6.285700e-34));
139  insert(value_type(1.000000e+06, 7.022600e-34));
140  insert(value_type(1.258925e+06, 7.835100e-34));
141  insert(value_type(1.584893e+06, 8.730400e-34));
142  insert(value_type(1.995262e+06, 9.716100e-34));
143  insert(value_type(2.511886e+06, 1.080000e-33));
144  insert(value_type(3.162278e+06, 1.199500e-33));
145  insert(value_type(3.981072e+06, 1.330300e-33));
146  insert(value_type(5.011872e+06, 1.473700e-33));
147  insert(value_type(6.309573e+06, 1.630900e-33));
148  insert(value_type(7.943282e+06, 1.803000e-33));
149  insert(value_type(1.000000e+07, 1.991100e-33));
150  insert(value_type(1.258925e+07, 2.196800e-33));
151  insert(value_type(1.584893e+07, 2.421200e-33));
152  insert(value_type(1.995262e+07, 2.666000e-33));
153  insert(value_type(2.511886e+07, 2.932900e-33));
154  insert(value_type(3.162278e+07, 3.223400e-33));
155  insert(value_type(3.981072e+07, 3.538700e-33));
156  insert(value_type(5.011872e+07, 3.882500e-33));
157  insert(value_type(6.309573e+07, 4.256000e-33));
158  insert(value_type(7.943282e+07, 4.661700e-33));
159  insert(value_type(1.000000e+08, 5.101900e-33));
160  insert(value_type(1.258925e+08, 5.579500e-33));
161  insert(value_type(1.584893e+08, 6.097300e-33));
162  insert(value_type(1.995262e+08, 6.658300e-33));
163  insert(value_type(2.511886e+08, 7.266200e-33));
164  insert(value_type(3.162278e+08, 7.924400e-33));
165  insert(value_type(3.981072e+08, 8.636900e-33));
166  insert(value_type(5.011872e+08, 9.408000e-33));
167  insert(value_type(6.309573e+08, 1.024200e-32));
168  insert(value_type(7.943282e+08, 1.114500e-32));
169  insert(value_type(1.000000e+09, 1.212200e-32));
170  insert(value_type(1.258925e+09, 1.317700e-32));
171  insert(value_type(1.584893e+09, 1.431900e-32));
172  insert(value_type(1.995262e+09, 1.555400e-32));
173  insert(value_type(2.511886e+09, 1.689800e-32));
174  insert(value_type(3.162278e+09, 1.834200e-32));
175  insert(value_type(3.981072e+09, 1.989400e-32));
176  insert(value_type(5.011872e+09, 2.158100e-32));
177  insert(value_type(6.309573e+09, 2.340500e-32));
178  insert(value_type(7.943282e+09, 2.537800e-32));
179  insert(value_type(1.000000e+10, 2.751000e-32));
180  insert(value_type(1.258925e+10, 2.981600e-32));
181  insert(value_type(1.584893e+10, 3.230800e-32));
182  insert(value_type(1.995262e+10, 3.500300e-32));
183  insert(value_type(2.511886e+10, 3.791600e-32));
184  insert(value_type(3.162278e+10, 4.106600e-32));
185  insert(value_type(3.981072e+10, 4.447200e-32));
186  insert(value_type(5.011872e+10, 4.815500e-32));
187  insert(value_type(6.309573e+10, 5.213700e-32));
188  insert(value_type(7.943282e+10, 5.644300e-32));
189  insert(value_type(1.000000e+11, 6.109800e-32));
190  insert(value_type(1.258925e+11, 6.613300e-32));
191  insert(value_type(1.584893e+11, 7.157700e-32));
192  insert(value_type(1.995262e+11, 7.748000e-32));
193  insert(value_type(2.511886e+11, 8.384900e-32));
194  insert(value_type(3.162278e+11, 9.073300e-32));
195  insert(value_type(3.981072e+11, 9.818100e-32));
196  insert(value_type(5.011872e+11, 1.062400e-31));
197  insert(value_type(6.309573e+11, 1.149400e-31));
198  insert(value_type(7.943282e+11, 1.243700e-31));
199  insert(value_type(1.000000e+12, 1.345600e-31));
200 
201  transform();
202  compile();
203  }
204  };
205 
206 
207  /**
208  * Neutral current neutrino cross section [cm^2] as a function of neutrino energy [GeV]
209  */
210  class JNCnu :
211  public JCrossSection
212  {
213  public:
214  JNCnu()
215  {
216  insert(value_type(1.000000e+00, 2.585300e-39));
217  insert(value_type(1.258925e+00, 3.254700e-39));
218  insert(value_type(1.584893e+00, 4.097300e-39));
219  insert(value_type(1.995262e+00, 5.157900e-39));
220  insert(value_type(2.511886e+00, 6.490500e-39));
221  insert(value_type(3.162278e+00, 8.158200e-39));
222  insert(value_type(3.981072e+00, 1.023900e-38));
223  insert(value_type(5.011872e+00, 1.281900e-38));
224  insert(value_type(6.309573e+00, 1.601700e-38));
225  insert(value_type(7.943282e+00, 1.997200e-38));
226  insert(value_type(1.000000e+01, 2.492000e-38));
227  insert(value_type(1.258925e+01, 3.092600e-38));
228  insert(value_type(1.584893e+01, 3.843400e-38));
229  insert(value_type(1.995262e+01, 4.775200e-38));
230  insert(value_type(2.511886e+01, 5.932800e-38));
231  insert(value_type(3.162278e+01, 7.372800e-38));
232  insert(value_type(3.981072e+01, 9.165900e-38));
233  insert(value_type(5.011872e+01, 1.140100e-37));
234  insert(value_type(6.309573e+01, 1.418800e-37));
235  insert(value_type(7.943282e+01, 1.766800e-37));
236  insert(value_type(1.000000e+02, 2.201300e-37));
237  insert(value_type(1.258925e+02, 2.744000e-37));
238  insert(value_type(1.584893e+02, 3.422200e-37));
239  insert(value_type(1.995262e+02, 4.269600e-37));
240  insert(value_type(2.511886e+02, 5.328400e-37));
241  insert(value_type(3.162278e+02, 6.650400e-37));
242  insert(value_type(3.981072e+02, 8.300000e-37));
243  insert(value_type(5.011872e+02, 1.035600e-36));
244  insert(value_type(6.309573e+02, 1.291600e-36));
245  insert(value_type(7.943282e+02, 1.609800e-36));
246  insert(value_type(1.000000e+03, 2.004200e-36));
247  insert(value_type(1.258925e+03, 2.492000e-36));
248  insert(value_type(1.584893e+03, 3.093300e-36));
249  insert(value_type(1.995262e+03, 3.831600e-36));
250  insert(value_type(2.511886e+03, 4.734100e-36));
251  insert(value_type(3.162278e+03, 5.831800e-36));
252  insert(value_type(3.981072e+03, 7.159000e-36));
253  insert(value_type(5.011872e+03, 8.754000e-36));
254  insert(value_type(6.309573e+03, 1.065800e-35));
255  insert(value_type(7.943282e+03, 1.291400e-35));
256  insert(value_type(1.000000e+04, 1.556900e-35));
257  insert(value_type(1.258925e+04, 1.867100e-35));
258  insert(value_type(1.584893e+04, 2.226900e-35));
259  insert(value_type(1.995262e+04, 2.639600e-35));
260  insert(value_type(2.511886e+04, 3.114200e-35));
261  insert(value_type(3.162278e+04, 3.654800e-35));
262  insert(value_type(3.981072e+04, 4.267600e-35));
263  insert(value_type(5.011872e+04, 4.959200e-35));
264  insert(value_type(6.309573e+04, 5.737200e-35));
265  insert(value_type(7.943282e+04, 6.609800e-35));
266  insert(value_type(1.000000e+05, 7.586100e-35));
267  insert(value_type(1.258925e+05, 8.676600e-35));
268  insert(value_type(1.584893e+05, 9.892700e-35));
269  insert(value_type(1.995262e+05, 1.124700e-34));
270  insert(value_type(2.511886e+05, 1.275300e-34));
271  insert(value_type(3.162278e+05, 1.442800e-34));
272  insert(value_type(3.981072e+05, 1.628700e-34));
273  insert(value_type(5.011872e+05, 1.834400e-34));
274  insert(value_type(6.309573e+05, 2.063000e-34));
275  insert(value_type(7.943282e+05, 2.316000e-34));
276  insert(value_type(1.000000e+06, 2.596000e-34));
277  insert(value_type(1.258925e+06, 2.905500e-34));
278  insert(value_type(1.584893e+06, 3.247200e-34));
279  insert(value_type(1.995262e+06, 3.624300e-34));
280  insert(value_type(2.511886e+06, 4.041600e-34));
281  insert(value_type(3.162278e+06, 4.499500e-34));
282  insert(value_type(3.981072e+06, 5.003200e-34));
283  insert(value_type(5.011872e+06, 5.556600e-34));
284  insert(value_type(6.309573e+06, 6.164300e-34));
285  insert(value_type(7.943282e+06, 6.830900e-34));
286  insert(value_type(1.000000e+07, 7.561300e-34));
287  insert(value_type(1.258925e+07, 8.361100e-34));
288  insert(value_type(1.584893e+07, 9.235800e-34));
289  insert(value_type(1.995262e+07, 1.019200e-33));
290  insert(value_type(2.511886e+07, 1.123600e-33));
291  insert(value_type(3.162278e+07, 1.237400e-33));
292  insert(value_type(3.981072e+07, 1.361600e-33));
293  insert(value_type(5.011872e+07, 1.496300e-33));
294  insert(value_type(6.309573e+07, 1.643400e-33));
295  insert(value_type(7.943282e+07, 1.803400e-33));
296  insert(value_type(1.000000e+08, 1.977400e-33));
297  insert(value_type(1.258925e+08, 2.166300e-33));
298  insert(value_type(1.584893e+08, 2.371500e-33));
299  insert(value_type(1.995262e+08, 2.594100e-33));
300  insert(value_type(2.511886e+08, 2.835600e-33));
301  insert(value_type(3.162278e+08, 3.097300e-33));
302  insert(value_type(3.981072e+08, 3.381000e-33));
303  insert(value_type(5.011872e+08, 3.688400e-33));
304  insert(value_type(6.309573e+08, 4.021300e-33));
305  insert(value_type(7.943282e+08, 4.381800e-33));
306  insert(value_type(1.000000e+09, 4.772000e-33));
307  insert(value_type(1.258925e+09, 5.194500e-33));
308  insert(value_type(1.584893e+09, 5.651600e-33));
309  insert(value_type(1.995262e+09, 6.146400e-33));
310  insert(value_type(2.511886e+09, 6.681700e-33));
311  insert(value_type(3.162278e+09, 7.264700e-33));
312  insert(value_type(3.981072e+09, 7.891200e-33));
313  insert(value_type(5.011872e+09, 8.565500e-33));
314  insert(value_type(6.309573e+09, 9.298900e-33));
315  insert(value_type(7.943282e+09, 1.009200e-32));
316  insert(value_type(1.000000e+10, 1.095100e-32));
317  insert(value_type(1.258925e+10, 1.187900e-32));
318  insert(value_type(1.584893e+10, 1.288400e-32));
319  insert(value_type(1.995262e+10, 1.397000e-32));
320  insert(value_type(2.511886e+10, 1.514600e-32));
321  insert(value_type(3.162278e+10, 1.641700e-32));
322  insert(value_type(3.981072e+10, 1.779300e-32));
323  insert(value_type(5.011872e+10, 1.928200e-32));
324  insert(value_type(6.309573e+10, 2.089200e-32));
325  insert(value_type(7.943282e+10, 2.263400e-32));
326  insert(value_type(1.000000e+11, 2.451900e-32));
327  insert(value_type(1.258925e+11, 2.655800e-32));
328  insert(value_type(1.584893e+11, 2.877300e-32));
329  insert(value_type(1.995262e+11, 3.116100e-32));
330  insert(value_type(2.511886e+11, 3.374500e-32));
331  insert(value_type(3.162278e+11, 3.654000e-32));
332  insert(value_type(3.981072e+11, 3.956600e-32));
333  insert(value_type(5.011872e+11, 4.284000e-32));
334  insert(value_type(6.309573e+11, 4.638100e-32));
335  insert(value_type(7.943282e+11, 5.021600e-32));
336  insert(value_type(1.000000e+12, 5.436400e-32));
337 
338  transform();
339  compile();
340  }
341  };
342 
343 
344  /**
345  * Charged current anti-neutrino cross section [cm^2] as a function of neutrino energy [GeV]
346  */
347  class JCCnubar :
348  public JCrossSection
349  {
350  public:
351  JCCnubar()
352  {
353  insert(value_type(1.000000e+00, 3.745100e-39));
354  insert(value_type(1.258925e+00, 4.714800e-39));
355  insert(value_type(1.584893e+00, 5.935500e-39));
356  insert(value_type(1.995262e+00, 7.472200e-39));
357  insert(value_type(2.511886e+00, 9.406700e-39));
358  insert(value_type(3.162278e+00, 1.184100e-38));
359  insert(value_type(3.981072e+00, 1.490200e-38));
360  insert(value_type(5.011872e+00, 1.874300e-38));
361  insert(value_type(6.309573e+00, 2.355500e-38));
362  insert(value_type(7.943282e+00, 2.957300e-38));
363  insert(value_type(1.000000e+01, 3.715800e-38));
364  insert(value_type(1.258925e+01, 4.646600e-38));
365  insert(value_type(1.584893e+01, 5.815800e-38));
366  insert(value_type(1.995262e+01, 7.274700e-38));
367  insert(value_type(2.511886e+01, 9.095600e-38));
368  insert(value_type(3.162278e+01, 1.137000e-37));
369  insert(value_type(3.981072e+01, 1.421500e-37));
370  insert(value_type(5.011872e+01, 1.777700e-37));
371  insert(value_type(6.309573e+01, 2.224400e-37));
372  insert(value_type(7.943282e+01, 2.784900e-37));
373  insert(value_type(1.000000e+02, 3.489200e-37));
374  insert(value_type(1.258925e+02, 4.375100e-37));
375  insert(value_type(1.584893e+02, 5.490000e-37));
376  insert(value_type(1.995262e+02, 6.894000e-37));
377  insert(value_type(2.511886e+02, 8.662500e-37));
378  insert(value_type(3.162278e+02, 1.089000e-36));
379  insert(value_type(3.981072e+02, 1.369600e-36));
380  insert(value_type(5.011872e+02, 1.722800e-36));
381  insert(value_type(6.309573e+02, 2.167000e-36));
382  insert(value_type(7.943282e+02, 2.725300e-36));
383  insert(value_type(1.000000e+03, 3.425500e-36));
384  insert(value_type(1.258925e+03, 4.302700e-36));
385  insert(value_type(1.584893e+03, 5.398600e-36));
386  insert(value_type(1.995262e+03, 6.764200e-36));
387  insert(value_type(2.511886e+03, 8.460200e-36));
388  insert(value_type(3.162278e+03, 1.055900e-35));
389  insert(value_type(3.981072e+03, 1.314500e-35));
390  insert(value_type(5.011872e+03, 1.631600e-35));
391  insert(value_type(6.309573e+03, 2.018400e-35));
392  insert(value_type(7.943282e+03, 2.487300e-35));
393  insert(value_type(1.000000e+04, 3.052500e-35));
394  insert(value_type(1.258925e+04, 3.729000e-35));
395  insert(value_type(1.584893e+04, 4.528100e-35));
396  insert(value_type(1.995262e+04, 5.478200e-35));
397  insert(value_type(2.511886e+04, 6.592800e-35));
398  insert(value_type(3.162278e+04, 7.891800e-35));
399  insert(value_type(3.981072e+04, 9.395700e-35));
400  insert(value_type(5.011872e+04, 1.112700e-34));
401  insert(value_type(6.309573e+04, 1.310800e-34));
402  insert(value_type(7.943282e+04, 1.536300e-34));
403  insert(value_type(1.000000e+05, 1.791900e-34));
404  insert(value_type(1.258925e+05, 2.080100e-34));
405  insert(value_type(1.584893e+05, 2.404100e-34));
406  insert(value_type(1.995262e+05, 2.767000e-34));
407  insert(value_type(2.511886e+05, 3.172100e-34));
408  insert(value_type(3.162278e+05, 3.623300e-34));
409  insert(value_type(3.981072e+05, 4.123600e-34));
410  insert(value_type(5.011872e+05, 4.679200e-34));
411  insert(value_type(6.309573e+05, 5.294300e-34));
412  insert(value_type(7.943282e+05, 5.973800e-34));
413  insert(value_type(1.000000e+06, 6.723800e-34));
414  insert(value_type(1.258925e+06, 7.550300e-34));
415  insert(value_type(1.584893e+06, 8.460000e-34));
416  insert(value_type(1.995262e+06, 9.460400e-34));
417  insert(value_type(2.511886e+06, 1.055900e-33));
418  insert(value_type(3.162278e+06, 1.176900e-33));
419  insert(value_type(3.981072e+06, 1.309200e-33));
420  insert(value_type(5.011872e+06, 1.454000e-33));
421  insert(value_type(6.309573e+06, 1.612500e-33));
422  insert(value_type(7.943282e+06, 1.785900e-33));
423  insert(value_type(1.000000e+07, 1.975300e-33));
424  insert(value_type(1.258925e+07, 2.182100e-33));
425  insert(value_type(1.584893e+07, 2.407700e-33));
426  insert(value_type(1.995262e+07, 2.653600e-33));
427  insert(value_type(2.511886e+07, 2.921400e-33));
428  insert(value_type(3.162278e+07, 3.212900e-33));
429  insert(value_type(3.981072e+07, 3.529100e-33));
430  insert(value_type(5.011872e+07, 3.873700e-33));
431  insert(value_type(6.309573e+07, 4.247900e-33));
432  insert(value_type(7.943282e+07, 4.654300e-33));
433  insert(value_type(1.000000e+08, 5.095200e-33));
434  insert(value_type(1.258925e+08, 5.573400e-33));
435  insert(value_type(1.584893e+08, 6.091700e-33));
436  insert(value_type(1.995262e+08, 6.653300e-33));
437  insert(value_type(2.511886e+08, 7.261600e-33));
438  insert(value_type(3.162278e+08, 7.920200e-33));
439  insert(value_type(3.981072e+08, 8.633100e-33));
440  insert(value_type(5.011872e+08, 9.404600e-33));
441  insert(value_type(6.309573e+08, 1.023900e-32));
442  insert(value_type(7.943282e+08, 1.114200e-32));
443  insert(value_type(1.000000e+09, 1.211900e-32));
444  insert(value_type(1.258925e+09, 1.317500e-32));
445  insert(value_type(1.584893e+09, 1.431700e-32));
446  insert(value_type(1.995262e+09, 1.555200e-32));
447  insert(value_type(2.511886e+09, 1.689600e-32));
448  insert(value_type(3.162278e+09, 1.834000e-32));
449  insert(value_type(3.981072e+09, 1.989200e-32));
450  insert(value_type(5.011872e+09, 2.158000e-32));
451  insert(value_type(6.309573e+09, 2.340400e-32));
452  insert(value_type(7.943282e+09, 2.537700e-32));
453  insert(value_type(1.000000e+10, 2.750900e-32));
454  insert(value_type(1.258925e+10, 2.981500e-32));
455  insert(value_type(1.584893e+10, 3.230700e-32));
456  insert(value_type(1.995262e+10, 3.500200e-32));
457  insert(value_type(2.511886e+10, 3.791600e-32));
458  insert(value_type(3.162278e+10, 4.106600e-32));
459  insert(value_type(3.981072e+10, 4.447200e-32));
460  insert(value_type(5.011872e+10, 4.815400e-32));
461  insert(value_type(6.309573e+10, 5.213700e-32));
462  insert(value_type(7.943282e+10, 5.644200e-32));
463  insert(value_type(1.000000e+11, 6.109800e-32));
464  insert(value_type(1.258925e+11, 6.613300e-32));
465  insert(value_type(1.584893e+11, 7.157700e-32));
466  insert(value_type(1.995262e+11, 7.747900e-32));
467  insert(value_type(2.511886e+11, 8.384900e-32));
468  insert(value_type(3.162278e+11, 9.073300e-32));
469  insert(value_type(3.981072e+11, 9.818100e-32));
470  insert(value_type(5.011872e+11, 1.062400e-31));
471  insert(value_type(6.309573e+11, 1.149400e-31));
472  insert(value_type(7.943282e+11, 1.243700e-31));
473  insert(value_type(1.000000e+12, 1.345600e-31));
474 
475  transform();
476  compile();
477  }
478  };
479 
480 
481  /**
482  * Neutral current anti-neutrino cross section [cm^2] as a function of neutrino energy [GeV]
483  */
484  class JNCnubar :
485  public JCrossSection
486  {
487  public:
488  JNCnubar()
489  {
490  insert(value_type(1.000000e+00, 1.336700e-39));
491  insert(value_type(1.258925e+00, 1.682800e-39));
492  insert(value_type(1.584893e+00, 2.118500e-39));
493  insert(value_type(1.995262e+00, 2.666900e-39));
494  insert(value_type(2.511886e+00, 3.357100e-39));
495  insert(value_type(3.162278e+00, 4.224800e-39));
496  insert(value_type(3.981072e+00, 5.314100e-39));
497  insert(value_type(5.011872e+00, 6.677900e-39));
498  insert(value_type(6.309573e+00, 8.383300e-39));
499  insert(value_type(7.943282e+00, 1.051200e-38));
500  insert(value_type(1.000000e+01, 1.319200e-38));
501  insert(value_type(1.258925e+01, 1.647400e-38));
502  insert(value_type(1.584893e+01, 2.059500e-38));
503  insert(value_type(1.995262e+01, 2.573300e-38));
504  insert(value_type(2.511886e+01, 3.214200e-38));
505  insert(value_type(3.162278e+01, 4.014600e-38));
506  insert(value_type(3.981072e+01, 5.015000e-38));
507  insert(value_type(5.011872e+01, 6.267100e-38));
508  insert(value_type(6.309573e+01, 7.836000e-38));
509  insert(value_type(7.943282e+01, 9.803500e-38));
510  insert(value_type(1.000000e+02, 1.227400e-37));
511  insert(value_type(1.258925e+02, 1.537700e-37));
512  insert(value_type(1.584893e+02, 1.927800e-37));
513  insert(value_type(1.995262e+02, 2.418500e-37));
514  insert(value_type(2.511886e+02, 3.035900e-37));
515  insert(value_type(3.162278e+02, 3.812500e-37));
516  insert(value_type(3.981072e+02, 4.789400e-37));
517  insert(value_type(5.011872e+02, 6.017900e-37));
518  insert(value_type(6.309573e+02, 7.561300e-37));
519  insert(value_type(7.943282e+02, 9.498800e-37));
520  insert(value_type(1.000000e+03, 1.192700e-36));
521  insert(value_type(1.258925e+03, 1.496800e-36));
522  insert(value_type(1.584893e+03, 1.876500e-36));
523  insert(value_type(1.995262e+03, 2.349700e-36));
524  insert(value_type(2.511886e+03, 2.937600e-36));
525  insert(value_type(3.162278e+03, 3.665600e-36));
526  insert(value_type(3.981072e+03, 4.563500e-36));
527  insert(value_type(5.011872e+03, 5.666200e-36));
528  insert(value_type(6.309573e+03, 7.013500e-36));
529  insert(value_type(7.943282e+03, 8.651300e-36));
530  insert(value_type(1.000000e+04, 1.063000e-35));
531  insert(value_type(1.258925e+04, 1.300700e-35));
532  insert(value_type(1.584893e+04, 1.584400e-35));
533  insert(value_type(1.995262e+04, 1.918300e-35));
534  insert(value_type(2.511886e+04, 2.314500e-35));
535  insert(value_type(3.162278e+04, 2.778200e-35));
536  insert(value_type(3.981072e+04, 3.317600e-35));
537  insert(value_type(5.011872e+04, 3.941400e-35));
538  insert(value_type(6.309573e+04, 4.658500e-35));
539  insert(value_type(7.943282e+04, 5.478700e-35));
540  insert(value_type(1.000000e+05, 6.412200e-35));
541  insert(value_type(1.258925e+05, 7.470000e-35));
542  insert(value_type(1.584893e+05, 8.663900e-35));
543  insert(value_type(1.995262e+05, 1.000600e-34));
544  insert(value_type(2.511886e+05, 1.151100e-34));
545  insert(value_type(3.162278e+05, 1.319300e-34));
546  insert(value_type(3.981072e+05, 1.506900e-34));
547  insert(value_type(5.011872e+05, 1.715100e-34));
548  insert(value_type(6.309573e+05, 1.946700e-34));
549  insert(value_type(7.943282e+05, 2.203400e-34));
550  insert(value_type(1.000000e+06, 2.487600e-34));
551  insert(value_type(1.258925e+06, 2.801500e-34));
552  insert(value_type(1.584893e+06, 3.148100e-34));
553  insert(value_type(1.995262e+06, 3.530100e-34));
554  insert(value_type(2.511886e+06, 3.952500e-34));
555  insert(value_type(3.162278e+06, 4.415400e-34));
556  insert(value_type(3.981072e+06, 4.924200e-34));
557  insert(value_type(5.011872e+06, 5.482600e-34));
558  insert(value_type(6.309573e+06, 6.095200e-34));
559  insert(value_type(7.943282e+06, 6.766500e-34));
560  insert(value_type(1.000000e+07, 7.501500e-34));
561  insert(value_type(1.258925e+07, 8.305700e-34));
562  insert(value_type(1.584893e+07, 9.184500e-34));
563  insert(value_type(1.995262e+07, 1.014400e-33));
564  insert(value_type(2.511886e+07, 1.119200e-33));
565  insert(value_type(3.162278e+07, 1.233400e-33));
566  insert(value_type(3.981072e+07, 1.357900e-33));
567  insert(value_type(5.011872e+07, 1.492900e-33));
568  insert(value_type(6.309573e+07, 1.640300e-33));
569  insert(value_type(7.943282e+07, 1.800600e-33));
570  insert(value_type(1.000000e+08, 1.974800e-33));
571  insert(value_type(1.258925e+08, 2.164000e-33));
572  insert(value_type(1.584893e+08, 2.369300e-33));
573  insert(value_type(1.995262e+08, 2.592100e-33));
574  insert(value_type(2.511886e+08, 2.833800e-33));
575  insert(value_type(3.162278e+08, 3.095700e-33));
576  insert(value_type(3.981072e+08, 3.379500e-33));
577  insert(value_type(5.011872e+08, 3.687100e-33));
578  insert(value_type(6.309573e+08, 4.020100e-33));
579  insert(value_type(7.943282e+08, 4.380700e-33));
580  insert(value_type(1.000000e+09, 4.771000e-33));
581  insert(value_type(1.258925e+09, 5.193600e-33));
582  insert(value_type(1.584893e+09, 5.650800e-33));
583  insert(value_type(1.995262e+09, 6.145600e-33));
584  insert(value_type(2.511886e+09, 6.681000e-33));
585  insert(value_type(3.162278e+09, 7.264100e-33));
586  insert(value_type(3.981072e+09, 7.890700e-33));
587  insert(value_type(5.011872e+09, 8.565000e-33));
588  insert(value_type(6.309573e+09, 9.298500e-33));
589  insert(value_type(7.943282e+09, 1.009200e-32));
590  insert(value_type(1.000000e+10, 1.095000e-32));
591  insert(value_type(1.258925e+10, 1.187900e-32));
592  insert(value_type(1.584893e+10, 1.288300e-32));
593  insert(value_type(1.995262e+10, 1.397000e-32));
594  insert(value_type(2.511886e+10, 1.514600e-32));
595  insert(value_type(3.162278e+10, 1.641700e-32));
596  insert(value_type(3.981072e+10, 1.779300e-32));
597  insert(value_type(5.011872e+10, 1.928100e-32));
598  insert(value_type(6.309573e+10, 2.089200e-32));
599  insert(value_type(7.943282e+10, 2.263400e-32));
600  insert(value_type(1.000000e+11, 2.451900e-32));
601  insert(value_type(1.258925e+11, 2.655800e-32));
602  insert(value_type(1.584893e+11, 2.877300e-32));
603  insert(value_type(1.995262e+11, 3.116100e-32));
604  insert(value_type(2.511886e+11, 3.374500e-32));
605  insert(value_type(3.162278e+11, 3.654000e-32));
606  insert(value_type(3.981072e+11, 3.956600e-32));
607  insert(value_type(5.011872e+11, 4.284000e-32));
608  insert(value_type(6.309573e+11, 4.638100e-32));
609  insert(value_type(7.943282e+11, 5.021600e-32));
610  insert(value_type(1.000000e+12, 5.436400e-32));
611 
612  transform();
613  compile();
614  }
615  };
616  }
617 
618  static const JCCnu cc_nu; //!< Function object for charged current neutrino cross section [cm^2] as a function of neutrino energy [GeV]
619 
620  static const JNCnu nc_nu; //!< Function object for neutral current neutrino cross section [cm^2] as a function of neutrino energy [GeV]
621  static const JCCnubar cc_nubar; //!< Function object for charged current anti-neutrino cross section [cm^2] as a function of neutrino energy [GeV]
622  static const JNCnubar nc_nubar; //!< Function object for neutral current anti-neutrino cross section [cm^2] as a function of neutrino energy [GeV]
623 }
624 
625 #endif
Auxiliary methods for light properties of deep-sea water.
static const JNCnu nc_nu
Function object for neutral current neutrino cross section [cm^2] as a function of neutrino energy [G...
Definition: JNeutrino.hh:620
static const JCCnubar cc_nubar
Function object for charged current anti-neutrino cross section [cm^2] as a function of neutrino ener...
Definition: JNeutrino.hh:621
static const JCCnu cc_nu
Function object for charged current neutrino cross section [cm^2] as a function of neutrino energy [G...
Definition: JNeutrino.hh:618
static const JNCnubar nc_nubar
Function object for neutral current anti-neutrino cross section [cm^2] as a function of neutrino ener...
Definition: JNeutrino.hh:622
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Interface for transformation of collection of elements.
Definition: JTransformer.hh:18
result_type operator()(const argument_type x) const
Function value evaluation.
Definition: JFunctional.hh:348
Type definition of a spline interpolation method based on a JCollection with double result type.