This file is indexed.

/usr/include/ThePEG/PDF/GRVBase.h is in libthepeg-dev 1.8.0-1.

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
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
// -*- C++ -*-
//
// GRVBase.h is a part of ThePEG - Toolkit for HEP Event Generation
// Copyright (C) 1999-2011 Leif Lonnblad
//
// ThePEG is licenced under version 2 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
#ifndef ThePEG_GRVBase_H
#define ThePEG_GRVBase_H
// This is the declaration of the GRVBase class.

#include "ThePEG/PDF/PDFBase.h"

namespace ThePEG {

/**
 * GRVBase inherits from PDFBase and is used as a base class for all
 * GRV parton densities.
 *
 * @see \ref GRVBaseInterfaces "The interfaces"
 * defined for GRVBase.
 */
class GRVBase: public PDFBase {

public:

  /** @name Standard constructors and destructors. */
  //@{
  /**
   * Default constructor.
   */
  GRVBase();

  /**
   * Destructor.
   */
  virtual ~GRVBase();
  //@}

public:

  /** @name Virtual functions required by the PDFBase class. */
  //@{
  /**
   * Return true if this PDF can handle the extraction of parton from the
   * given particle, ie. if the particle is a proton or neutron.
   */
  virtual bool canHandleParticle(tcPDPtr particle) const;

  /**
   * Return the parton types which are described by these parton
   * densities.
   */
  virtual cPDVector partons(tcPDPtr p) const;

  /**
   * Return the value of the density of parton at the given a scale
   * and log fractional momentum l (the optional virtuality of the
   * incoming particle is not used).
   */
  virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
		     double l, Energy2 particleScale) const;

  /**
   * Return the valaens partof the density of parton at the given a
   * scale and log fractional momentum l (the optional virtuality of
   * the incoming particle is not used).
   */
  virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
		     double l, Energy2 particleScale) const;
  //@}

public:

  /** @name Access derived kinematical quantities. */
  //@{
  /**
   * Return last selected
   * \f$S\f$. \f$S=\log(\log(Q^2/\mu^2)/\log(Q^2/\Lambda_{QCD}^2))\f$
   */
  double S() const { return theS; }

  /**
   * Return last selected
   * \f$S^2\f$. \f$S=\log(\log(Q^2/\mu^2)/\log(Q^2/\Lambda_{QCD}^2))\f$
   */
  double S2() const { return theS2; }

  /**
   * Return last selected
   * \f$S^3\f$. \f$S=\log(\log(Q^2/\mu^2)/\log(Q^2/\Lambda_{QCD}^2))\f$
   */
  double S3() const { return theS3; }

  /**
   * Return last selected
   * \f$\sqrt{S}\f$. \f$S=\log(\log(Q^2/\mu^2)/\log(Q^2/\Lambda_{QCD}^2))\f$
   */
  double rootS() const { return theRootS; }

  /**
   * Return last selected momentum fraction, \f$x\f$.
   */
  double x() const { return thex; }

  /**
   * Return last selected logarithmic momentum fraction
   * \f$l=\log(1/x)\f$.
   */
  double lx() const { return theLx; }

  /**
   * Return one minus the last selected momentum fraction, eps\f$=1-x\f$.
   */
  double eps() const { return theEps; }

  /**
   * Return the square root of the last selected momentum fraction,
   * \f$x\f$.
   */
  double rootx() const { return theRootx; }

  //@}

protected:

  /**
   * Setup the \a l\f$=\log{1/x}\f$ and \a scale \f$Q^2\f$ to be used
   * in the following call to uv(), dv)=, etc.
   */
  virtual void setup(double l, Energy2 scale) const = 0;

  /**
   * Setup the \a l\f$=\log{1/x}\f$ and \a scale \f$Q^2\f$ to be used
   * in the following call to uv(), dv)=, etc.
   */
  void setup(double l, Energy2 scale, Energy2 mu2, Energy2 lam2) const;

  /**
   * The form of the valens density functions.
   */
  double valens(double N, double ak, double bk,
		double a, double b, double c, double d) const;

  /**
   * The form of the light sea and gluon density
   * functions.
   */
  double lightsea(double al, double be, double ak, double bk, double a,
		  double b, double c, double d, double e, double es) const;

  /**
   * The form of the heavy sea density functions.
   */
  double heavysea(double sth, double al, double be, double ak, double ag,
		  double b, double d, double e, double es) const;

  /**
   * Return the value of the u valens density for the values previously given
   * by setup().
   */
  virtual double uv() const = 0;

  /**
   * Return the value of the d valens density for the values previously given
   * by setup().
   */
  virtual double dv() const = 0;

  /**
   * Return the value of the difference between the u and d sea
   * densities for the values previously given by setup().
   */
  virtual double del() const = 0;

  /**
   * Return the value of the average u and d sea densities for the
   * values previously given by setup().
   */
  virtual double udb() const = 0;

  /**
   * Return the value of the s density for the values previously given by
   * setup().
   */
  virtual double sb() const = 0;

  /**
   * Return the value of the c density for the values previously given by
   * setup().
   */
  virtual double cb() const = 0;

  /**
   * Return the value of the b density for the values previously given by
   * setup().
   */
  virtual double bb() const = 0;

  /**
   * Return the value of the gluon densities for the values previously
   * given by setup().
   */
  virtual double gl() const = 0;

  /**
   * fuv() returns the saved values from the quv() functions if
   * present. Otherwise uv() is called, saved and returned.
   */
  double fuv() const { return uvSave >= 0.0? uvSave: ( uvSave = uv() ); }

  /**
   * fdv() returns the saved values from the dv() functions if
   * present. Otherwise dv() is called, saved and returned.
   */
  double fdv() const { return dvSave >= 0.0? dvSave: ( dvSave = dv() ); }

  /**
   * fdel() returns the saved values from the del() functions if
   * present. Otherwise del() is called, saved and returned.
   */
  double fdel() const { return delSave >= 0.0? delSave: ( delSave = del() ); }

  /**
   * fudb() returns the saved values from the udb() functions if
   * present. Otherwise udb() is called, saved and returned.
   */
  double fudb() const { return udbSave >= 0.0? udbSave: ( udbSave = udb() ); }

  /**
   * fsb() returns the saved values from the sb() functions if
   * present. Otherwise sb() is called, saved and returned.
   */
  double fsb() const { return sbSave >= 0.0? sbSave: ( sbSave = sb() ); }

  /**
   * fcb() returns the saved values from the cb() functions if
   * present. Otherwise cb() is called, saved and returned.
   */
  double fcb() const { return cbSave >= 0.0? cbSave: ( cbSave = cb() ); }

  /**
   * fbb() returns the saved values from the bb() functions if
   * present. Otherwise bb() is called, saved and returned.
   */
  double fbb() const { return bbSave >= 0.0? bbSave: ( bbSave = bb() ); }

  /**
   * fgl() returns the saved values from the gl() functions if
   * present. Otherwise gl() is called, saved and returned.
   */
  double fgl() const { return glSave >= 0.0? glSave: ( glSave = gl() ); }

public:

  /**
   * Standard Init function used to initialize the interface.
   */
  static void Init();

private:

  /**
   * The last selected logarithmic momentum fraction
   * \f$l=\log(1/x)\f$.
   */
  mutable double theLx;

  /**
   * THe last selected momentum fraction, \f$x\f$.
   */
  mutable double thex;

  /**
   * One minus the last selected momentum fraction, eps\f$=1-x\f$.
   */
  mutable double theEps;

  /**
   * The square root of the last selected momentum fraction, \f$x\f$.
   */
  mutable double theRootx;

  /**
   * The last selected scale.
   */
  mutable Energy2 Q2;

  /**
   * The last used \f$\Lambda_{QCD}^2\f$.
   */
  mutable Energy2 theLam2;

  /**
   * The last used \f$\mu^2\f$.
   */
  mutable Energy2 theMu2;

  /**
   * The last selected
   * \f$S\f$. \f$S=\log(\log(Q^2/\mu^2)/\log(Q^2/\Lambda_{QCD}^2))\f$
   */
  mutable double theS;

  /**
   * Return last selected \f$S^2\f$.
   */
  mutable double theS2;

  /**
   * Return last selected \f$S^3\f$.
   */
  mutable double theS3;

  /**
   * Return last selected \f$\sqrt{S}\f$.
   */
  mutable double theRootS;

  /**
   * Saved values from the different functions.
   */
  mutable double uvSave;

  /**
   * Saved values from the different functions.
   */
  mutable double dvSave;

  /**
   * Saved values from the different functions.
   */
  mutable double delSave;

  /**
   * Saved values from the different functions.
   */
  mutable double udbSave;

  /**
   * Saved values from the different functions.
   */
  mutable double sbSave;

  /**
   * Saved values from the different functions.
   */
  mutable double cbSave;

  /**
   * Saved values from the different functions.
   */
  mutable double bbSave;

  /**
   * Saved values from the different functions.
   */
  mutable double glSave;

private:

  /**
   *  Private and non-existent assignment operator.
   */
  GRVBase & operator=(const GRVBase &);

};

}

#endif /* ThePEG_GRVBase_H */