This file is indexed.

/usr/include/ThePEG/MatrixElement/Amplitude.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
// -*- C++ -*-
//
// Amplitude.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_Amplitude_H
#define ThePEG_Amplitude_H
// This is the declaration of the Amplitude class.


#include "ThePEG/Handlers/HandlerBase.h"
#include "ThePEG/PDT/ParticleData.h"
#include "ThePEG/EventRecord/Particle.h"

namespace ThePEG {

/**
 * The Amplitude class is the abstract base class for all the classes
 * representing complex amplitudes associated with either a hard
 * 2\f$\rightarrow\f$ N subprocess or a decay 1\f$\rightarrow\f$ N
 * process.  The returned value should be dimensionless suitable
 * scaled by the total invariant mass squared (shat), which is always
 * computable from the specified momenta of the particles in the
 * vertex.  Notice that the amplitude for splitting
 * 1\f$\rightarrow\f$ N processes is instead represented in other
 * classes (derived from the SplitFun class).
 *
 * @see \ref AmplitudeInterfaces "The interfaces"
 * defined for Amplitude.
 */
class Amplitude: public HandlerBase {

  /** @name Main virtual functions to be overridden by sub-classes. */
  //@{
  /**
   * Return the amplitude. Given the ParticleData objects in \a
   * particles, their \a momenta and \a helicities of all the
   * particles in the vertex, return the complex amplitude.  The
   * convention is the order of the vectors is that first there is the
   * incoming particle(s) and then the outgoing ones.  For the
   * helicities, the convention is to number them starting from 0 (no
   * negative values, because they are used as vector indeces), for
   * example, for a massive particle of spin S, 0 <= helicity <= 2*S.
   * The returned value should be dimensionless suitable scaled by the
   * total invariant mass squared (\f$\hat{s}\f$), which is always
   * computable from the specified \a momenta of the particles in the
   * vertex.
   */
  virtual Complex value(const tcPDVector & particles,
			const vector<Lorentz5Momentum> & momenta, 
			const vector<int> & helicities) = 0;

  /**
   * Return an overestimated amplitude. Same as value(const tcPDVector
   * &, const vector<Lorentz5Momentum> &, const vector<int> &), but it
   * provides an overestimate of the complex amplitude, that is:
   * <code>abs( overestimaValue() ) >= abs(value()) </code> The
   * default definition just returns value(), but it can be overriden
   * by derived classes.
   */
  virtual Complex overestimateValue(const tcPDVector & particles,
				    const vector<Lorentz5Momentum> & momenta, 
				    const vector<int> & helicities);
  //@}

  /** @name Alternative interface to main virtual functions. */
  //@{
  /**
   * Return the amplitude. Calls value(const tcPDVector &, const
   * vector<Lorentz5Momentum> &, const vector<int> &) and should not
   * be overridden.
   */

  Complex value(const PVector & particles, const vector<int> & helicities);

  /**
   * Return an overestimated amplitude. Calls overestimateValue(const
   * tcPDVector &, const vector<Lorentz5Momentum> &, const vector<int>
   * &)
   */
  Complex overestimateValue(const PVector & particles,
			    const vector<int> & helicities);
  //@}

public:

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

  /**
   * Describe an abstract base class with persistent data.
   */
  static AbstractNoPIOClassDescription<Amplitude> initAmplitude;

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

};

}


namespace ThePEG {

/** @cond TRAITSPECIALIZATIONS */

/**
 * This template specialization informs ThePEG about the
 * base class of Amplitude.
 */
template <>
struct BaseClassTrait<Amplitude,1>: public ClassTraitsType {
  /** Typedef of the base class of Amplitude. */
  typedef HandlerBase NthBase;
};

/**
 * This template specialization informs ThePEG about the name of the
 * Amplitude class.
 */
template <>
struct ClassTraits<Amplitude>: public ClassTraitsBase<Amplitude> {
  /** Return the class name. */
  static string className() { return "ThePEG::Amplitude"; }
};

/** @endcond */

}

#endif /* ThePEG_Amplitude_H */