Jpp  18.3.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
ANTARES Namespace Reference

Name space for Antares. More...

Functions

const JK40RatesgetK40Rates ()
 Get K40 rates. More...
 
double getAmbientPressure ()
 Get ambient pressure. More...
 
double getPhotocathodeArea ()
 Get photo-cathode area of PMT. More...
 
double getAbsorptionLength (const double lambda)
 Get absorption length. More...
 
double getScatteringLength (const double lambda)
 Get scattering length. More...
 
double getScatteringProbability (const double x)
 Function to describe light scattering in water. More...
 
double genova (const double x)
 Angular acceptance of PMT (Genova). More...
 
double gamelle (const double x)
 Angular acceptance of PMT (Gamelle). More...
 
double getAngularAcceptance (const double x)
 Get angular acceptance of PMT. More...
 
double getQE (const double lambda, const bool option)
 Get quantum efficiency of PMT. More...
 
double getQE (const double lambda)
 Get quantum efficiency of PMT. More...
 
double getPhotocathodeArea2D (const double x, const double lambda)
 Get effective photo-cathode area of PMT. More...
 
void setClock ()
 Set clock. More...
 

Detailed Description

Name space for Antares.

Function Documentation

const JK40Rates& ANTARES::getK40Rates ( )
inline

Get K40 rates.

Returns
K40 rates [Hz]

Definition at line 27 of file Antares.hh.

28  {
29  static const JK40Rates rates_Hz(70e3, { 25.0 });
30 
31  return rates_Hz;
32  }
double ANTARES::getAmbientPressure ( )
inline

Get ambient pressure.

Returns
pressure [Atm]

Definition at line 40 of file Antares.hh.

41  {
42  return 240.0; // ambient pressure [Atm]
43  }
double ANTARES::getPhotocathodeArea ( )
inline

Get photo-cathode area of PMT.

Returns
photo-cathode area [m^2]

Definition at line 51 of file Antares.hh.

52  {
53  return 440e-4; // photo-cathode area [m^2]
54  }
double ANTARES::getAbsorptionLength ( const double  lambda)
inline

Get absorption length.

Parameters
lambdawavelength of light [nm]
Returns
absorption length [m]

values taken from:

afs/in2p3.fr/home/throng/antares/src/km3/v3r6/src/hit-ini_optic.f

Definition at line 63 of file Antares.hh.

64  {
65  typedef std::map<double, double> map_t;
66 
67  static map_t zmap;
68 
69  if (zmap.empty()) {
70  /**
71  * values taken from:
72  *
73  * afs/in2p3.fr/home/throng/antares/src/km3/v3r6/src/hit-ini_optic.f
74  */
75  //static const double a0 = 0.971;
76  static const double a0 = 1.0;
77 
78  zmap[620.0] = 0.0;
79  zmap[610.0] = a0/0.2890;
80  zmap[600.0] = a0/0.2440;
81  zmap[590.0] = a0/0.1570;
82  zmap[580.0] = a0/0.1080;
83  zmap[570.0] = a0/0.0799;
84  zmap[560.0] = a0/0.0708;
85  zmap[550.0] = a0/0.0638;
86  zmap[540.0] = a0/0.0558;
87  zmap[530.0] = a0/0.0507;
88  zmap[520.0] = a0/0.0477;
89  zmap[510.0] = a0/0.0357;
90  zmap[500.0] = a0/0.0257;
91  zmap[490.0] = a0/0.0196;
92  zmap[480.0] = a0/0.0182;
93  zmap[470.0] = a0/0.0182;
94  zmap[460.0] = a0/0.0191;
95  zmap[450.0] = a0/0.0200;
96  zmap[440.0] = a0/0.0218;
97  zmap[430.0] = a0/0.0237;
98  zmap[420.0] = a0/0.0255;
99  zmap[410.0] = a0/0.0291;
100  zmap[400.0] = a0/0.0325;
101  zmap[390.0] = a0/0.0363;
102  zmap[380.0] = a0/0.0415;
103  zmap[370.0] = a0/0.0473;
104  zmap[360.0] = a0/0.0528;
105  zmap[350.0] = a0/0.0629;
106  zmap[340.0] = a0/0.0710;
107  zmap[330.0] = a0/0.0792;
108  zmap[320.0] = a0/0.0946;
109  zmap[310.0] = a0/0.1090;
110  zmap[300.0] = a0/0.1390;
111  zmap[290.0] = 0.0;
112  }
113 
114  const double x = lambda;
115 
116  if (x > zmap.begin()->first && x < zmap.rbegin()->first) {
117 
118  map_t::const_iterator i = zmap.lower_bound(x);
119  map_t::const_iterator j = i;
120 
121  --j;
122 
123  if (i == zmap.begin()) {
124  ++i;
125  ++j;
126  }
127 
128  const double x1 = i->first;
129  const double x2 = j->first;
130 
131  const double y1 = i->second;
132  const double y2 = j->second;
133 
134  return y1 + (y2 - y1) * (x - x1) / (x2 - x1);
135 
136  } else
137 
138  return 0.0;
139  }
int j
Definition: JPolint.hh:792
double ANTARES::getScatteringLength ( const double  lambda)
inline

Get scattering length.

Parameters
lambdawavelength of light [nm]
Returns
scattering length [m]

Definition at line 148 of file Antares.hh.

149  {
150  typedef std::map<double, double> map_t;
151 
152  static map_t zmap;
153 
154  if (zmap.empty()) {
155 
156  zmap[200.0] = 0.0;
157  zmap[307.0] = 19.7132;
158  zmap[330.0] = 23.8280;
159  zmap[350.0] = 27.6075;
160  zmap[370.0] = 31.5448;
161  zmap[390.0] = 35.6151;
162  zmap[410.0] = 39.7971;
163  zmap[430.0] = 44.0726;
164  zmap[450.0] = 48.4261;
165  zmap[470.0] = 52.8447;
166  zmap[490.0] = 57.3172;
167  zmap[510.0] = 61.8344;
168  zmap[530.0] = 66.3884;
169  zmap[550.0] = 70.9723;
170  zmap[570.0] = 75.5804;
171  zmap[590.0] = 80.2077;
172  zmap[610.0] = 84.8497;
173  zmap[650.0] = 95.0;
174  }
175 
176  const double x = lambda;
177 
178  if (x > zmap.begin()->first && x < zmap.rbegin()->first) {
179 
180  map_t::const_iterator i = zmap.lower_bound(x);
181  map_t::const_iterator j = i;
182 
183  --j;
184 
185  if (i == zmap.begin()) {
186  ++i;
187  ++j;
188  }
189 
190  const double x1 = i->first;
191  const double x2 = j->first;
192 
193  const double y1 = i->second;
194  const double y2 = j->second;
195 
196  return y1 + (y2 - y1) * (x - x1) / (x2 - x1);
197 
198  } else
199 
200  return 0.0;
201  }
int j
Definition: JPolint.hh:792
double ANTARES::getScatteringProbability ( const double  x)
inline

Function to describe light scattering in water.

Parameters
xcosine scattering angle
Returns
probability

Definition at line 210 of file Antares.hh.

211  {
212  return JPHYSICS::p00075(x);
213  }
double p00075(const double x)
Model specific function to describe light scattering in water (p00075).
double ANTARES::genova ( const double  x)
inline

Angular acceptance of PMT (Genova).

Parameters
xcosine of angle of incidence
Returns
probability

Definition at line 222 of file Antares.hh.

223  {
224  static const double a0 = 0.3265;
225  static const double a1 = 0.6144;
226  static const double a2 = -0.0343;
227  static const double a3 = -0.0641;
228  static const double a4 = 0.2988;
229  static const double a5 = -0.1422;
230 
231  const double z = -x;
232 
233  double y = 0.0;
234 
235  if (z < -0.65)
236  y = 0.0;
237  else
238  y = a0 + z*(a1 + z*(a2 + z*(a3 + z*(a4 + z*a5))));
239 
240  return y;
241  }
double ANTARES::gamelle ( const double  x)
inline

Angular acceptance of PMT (Gamelle).

Parameters
xcosine angle of incidence
Returns
probability

Definition at line 250 of file Antares.hh.

251  {
252  static const double a0 = 59.115;
253  static const double a1 = 0.52258;
254  static const double a2 = 0.60944E-02;
255  static const double a3 = -0.16955E-03;
256  static const double a4 = 0.60929E-06;
257 
258  double y = 0.0;
259 
260  if (x > +0.36)
261  y = 0.0;
262  else if (x < -1.00)
263  y = 1.0;
264  else {
265 
266  const double z = acos(-x)*57.29578 + 57.75;
267 
268  y = (a0 + z*(a1 + z*(a2 + z*(a3 + z*a4)))) / 84.0;
269  }
270 
271  return y;
272  }
double ANTARES::getAngularAcceptance ( const double  x)
inline

Get angular acceptance of PMT.

Parameters
xcosine of angle of incidence
Returns
probability

Definition at line 281 of file Antares.hh.

282  {
283  return genova(x);
284  }
double genova(const double x)
Angular acceptance of PMT (Genova).
Definition: Antares.hh:222
double ANTARES::getQE ( const double  lambda,
const bool  option 
)
inline

Get quantum efficiency of PMT.

Parameters
lambdawavelength of photon [nm]
optioninclude absorption in glass and gel (if true, otherwise not)
Returns
quantum efficiency

Definition at line 294 of file Antares.hh.

295  {
296  class tuple {
297  public:
298  tuple(const double __QE,
299  const double __l_gel,
300  const double __l_glass) :
301  QE (__QE),
302  l_gel (__l_gel),
303  l_glass(__l_glass)
304  {}
305 
306  double QE; // Quantum efficiiency
307  double l_gel; // gel absorption length [cm]
308  double l_glass; // glass absorption length [cm]
309  };
310 
311  static const tuple ntuple[] = {
312  tuple(0.000e-2, 0.00, 0.00),
313  tuple(1.988e-2, 100.81, 148.37),
314  tuple(2.714e-2, 99.94, 142.87),
315  tuple(3.496e-2, 99.89, 135.64),
316  tuple(4.347e-2, 96.90, 134.58),
317  tuple(5.166e-2, 96.42, 138.27),
318  tuple(6.004e-2, 94.36, 142.40),
319  tuple(6.885e-2, 89.09, 147.16),
320  tuple(8.105e-2, 90.10, 151.80),
321  tuple(10.13e-2, 86.95, 150.88),
322  tuple(13.03e-2, 85.88, 145.68),
323  tuple(15.29e-2, 84.49, 139.70),
324  tuple(16.37e-2, 81.08, 126.55),
325  tuple(17.11e-2, 78.18, 118.86),
326  tuple(17.86e-2, 76.48, 113.90),
327  tuple(18.95e-2, 74.55, 116.08),
328  tuple(20.22e-2, 72.31, 109.23),
329  tuple(21.26e-2, 68.05, 81.63),
330  tuple(22.10e-2, 66.91, 65.66),
331  tuple(22.65e-2, 64.48, 77.30),
332  tuple(23.07e-2, 62.53, 73.02),
333  tuple(23.14e-2, 59.38, 81.25),
334  tuple(23.34e-2, 56.64, 128.04),
335  tuple(22.95e-2, 53.29, 61.84),
336  tuple(22.95e-2, 48.96, 19.23),
337  tuple(22.74e-2, 45.71, 27.21),
338  tuple(23.48e-2, 41.88, 18.09),
339  tuple(22.59e-2, 37.14, 8.41),
340  tuple(20.61e-2, 30.49, 3.92),
341  tuple(17.68e-2, 23.08, 1.82),
342  tuple(13.18e-2, 15.60, 0.84),
343  tuple(7.443e-2, 8.00, 0.39),
344  tuple(2.526e-2, 0.00, 0.17),
345  tuple(0.000e-2, 0.00, 0.00)
346  };
347 
348  static const double cola = 0.9; // collection efficiency
349  static const double x_glass = 1.5; // glass thickness [cm]
350  static const double x_gel = 1.0; // gel thickness [cm]
351 
352  // ntuple
353  static const int N = sizeof(ntuple) / sizeof(ntuple[0]) - 1;
354 
355  static const double xmax = 620.0; // maximal wavelength [nm] (tuple[ 0 ])
356  static const double xmin = 290.0; // minimal wavelength [nm] (tuple[N-1])
357 
358  const double x = lambda;
359 
360  double y = 0.0;
361 
362  if (x > xmin && x < xmax) {
363 
364  const int i = (int) (N * (x - xmax) / (xmin - xmax));
365  const int j = (i == N ? i - 1 : i + 1);
366 
367  const double x1 = xmax + i * (xmin - xmax) / N;
368  const double x2 = xmax + j * (xmin - xmax) / N;
369 
370  const double dx = (x - x1) / (x1 - x2);
371 
372  const double QE = ntuple[i].QE + (ntuple[i].QE - ntuple[j].QE ) * dx;
373  const double l_gel = ntuple[i].l_gel + (ntuple[i].l_gel - ntuple[j].l_gel ) * dx;
374  const double l_glass = ntuple[i].l_glass + (ntuple[i].l_glass - ntuple[j].l_glass) * dx;
375 
376  y = cola * QE;
377 
378  if (option) {
379 
380  if (l_glass > 0.0 && l_gel > 0.0)
381  y *= exp(-x_glass/l_glass) * exp(-x_gel/l_gel);
382  else
383  y = 0.0;
384  }
385  }
386 
387  return y;
388  }
const double xmax
Definition: JQuadrature.cc:24
const double xmin
Definition: JQuadrature.cc:23
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:40
int j
Definition: JPolint.hh:792
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
double ANTARES::getQE ( const double  lambda)
inline

Get quantum efficiency of PMT.

Parameters
lambdawavelength of photon [nm]
Returns
quantum efficiency

Definition at line 397 of file Antares.hh.

398  {
399  return getQE(lambda, true);
400  }
double getQE(const double R, const double mu)
Get QE for given ratio of hit probabilities and expectation value of the number of photo-electrons...
double ANTARES::getPhotocathodeArea2D ( const double  x,
const double  lambda 
)
inline

Get effective photo-cathode area of PMT.

Parameters
xcosine of angle of incidence
lambdawavelength of photon [nm]
Returns
photo-cathode area [m^2]

Definition at line 410 of file Antares.hh.

411  {
412  return getPhotocathodeArea() * getQE(lambda) * getAngularAcceptance(x);
413  }
double getQE(const double R, const double mu)
Get QE for given ratio of hit probabilities and expectation value of the number of photo-electrons...
double getPhotocathodeArea()
Get photo-cathode area of PMT.
Definition: Antares.hh:51
double getAngularAcceptance(const double x)
Angular acceptence of PMT.
Definition: JDrawLED.cc:68
void ANTARES::setClock ( )
inline

Set clock.

Definition at line 297 of file JDAQClock.hh.

298  {
300  }
Auxiliary class to set DAQ system clock parameters.
Definition: JDAQClock.hh:27