This file is indexed.

/usr/include/CLHEP/GenericFunctions/Psi2Hydrogen.icc is in libclhep-dev 2.1.4.1-1.2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// -*- C++ -*-
// $Id: 
#include "CLHEP/GenericFunctions/Psi2Hydrogen.hh"
#include "CLHEP/GenericFunctions/AssociatedLegendre.hh"
#include "CLHEP/GenericFunctions/AssociatedLaguerre.hh"
#include "CLHEP/GenericFunctions/Power.hh"
#include "CLHEP/GenericFunctions/Exponential.hh"
#include "CLHEP/GenericFunctions/FixedConstant.hh"
#include "CLHEP/GenericFunctions/Psi2Hydrogen.hh"
#include "CLHEP/GenericFunctions/Variable.hh"
#include "CLHEP/GenericFunctions/Power.hh"
#include <assert.h>
#include <cmath>      // for pow()

namespace Genfun {
FUNCTION_OBJECT_IMP(Psi2Hydrogen)

// This is the product n (n-1) (n-1)... 
inline double factorial (int n) {
  if (n<=1) return 1.0;
  else return n*factorial(n-1);
}

//
inline
Psi2Hydrogen::Psi2Hydrogen(unsigned int n, unsigned int l, unsigned int m):
  _n(n),
  _l(l),
  _m(m)
{
  assert(m<=l);
  create();
}

inline
Psi2Hydrogen::~Psi2Hydrogen() {
  delete _function;
}

inline
Psi2Hydrogen::Psi2Hydrogen(const Psi2Hydrogen & right):
_n(right._n),
_l(right._l),
_m(right._m)
{
  create();
}

inline
double Psi2Hydrogen::operator() (const Argument & a) const {
  assert (a.dimension()==3);
  return (*_function)(a);
}

inline
double Psi2Hydrogen::operator() (double x) const {
  std::cerr
    << "Warning. Psi2Hydrogen called with scalar argument"
    << std::endl;
  assert(0);
  return 0;
}

inline
unsigned int Psi2Hydrogen::n() const {
  return _n;
} 

inline
unsigned int Psi2Hydrogen::l() const {
  return _l;
}

inline
unsigned int Psi2Hydrogen::m() const {
  return _m;
}


inline
void Psi2Hydrogen::create() {
  FixedConstant I(1.0);
  Variable r;
  double asq = pow(2.0/_n, 3.0)*factorial(_n-_l-1)/(2.0*_n*factorial(_n+_l));
  GENFUNCTION ar = (2.0/_n)*r;
  AssociatedLegendre P(_l, _m);
  AssociatedLaguerre L(_n-_l-1, 2*_l+1);
  Exponential exp;
  Power pow2L(2*_l);
  
  _function = (asq*exp(ar)*pow2L(ar)*L(ar)*L(ar)%(P*P)%(I*I)).clone();

}
}