This file is indexed.

/usr/include/ThePEG/Handlers/CascadeHandler.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
// -*- C++ -*-
//
// CascadeHandler.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_CascadeHandler_H
#define ThePEG_CascadeHandler_H
// This is the declaration of the CascadeHandler class.

#include "StepHandler.h"
#include "ThePEG/Handlers/LastXCombInfo.h"
#include "ThePEG/PDF/PDF.h"

namespace ThePEG {


/**
 * The CascadeHandler is the base class of all handlers implementing
 * perturbative partonic cascade models. It is derived from the more
 * general StepHandler class, and implements the handle() function to
 * do some standard initialization before calling the main cascade()
 * function.
 *
 * @see \ref CascadeHandlerInterfaces "The interfaces"
 * defined for CascadeHandler.
 * @see StepHandler
 * @see EventHandler
 * @see SubProcessHandler
 */
class CascadeHandler: public StepHandler, public LastXCombInfo<> {

public:

  /** @name Standard constructors and destructors. */
  //@{
  /**
   * The destructor.
   */
  virtual ~CascadeHandler();
  //@}

public:

  /** @name Virtual functions required by the StepHandler class. */
  //@{
  /**
    * The main function called by the EventHandler class to
    * perform a step.
    * @param eh the EventHandler in charge of the Event generation.
    * @param tagged if not empty these are the only particles which should
    * be considered by the StepHandler.
    * @param hint a Hint object with possible information from previously
    * performed steps.
    * @throws Veto if the StepHandler requires the current step to be
    * discarded.
    * @throws Stop if the generation of the current Event should be stopped
    * after this call.
    * @throws Exception if something goes wrong.
    */
  virtual void handle(EventHandler & eh, const tPVector & tagged,
		      const Hint & hint);
  //@}

  /**
   * The main function to be overwritten by sub-classes. It is called
   * by handle() after storing some information which is then
   * available through simple access functions.
   */
  virtual void cascade() = 0;

  /**
   * The CascadeHandler can be used inside the process generation to
   * do so-called CKKW reweighting of the hard sub-process. In this
   * case this function is called after information about the
   * sub-process is made available through the LastXCombInfo base
   * class. Only the function belonging to the primary CascadeHandler
   * for the event to be generated is called. Sub-classes may
   * implement it to give a suitable weight in return. The
   * CascadeHandler may store information about the generated
   * sub-process to be used in the subsequent cascade. It is however
   * not guaranteed that the reweightCKKW() will have been called for
   * the subprocess handed to the handle() function. This default
   * implementation of the function simply return one. The current
   * sub-process is mixed together with other processes with a
   * multiplicity of outgoing particles between \a minMult and \a
   * maxMult.
   */
  virtual double reweightCKKW(int minMult, int maxMult);

public:

  /** @name Access information stored by the handle() function. */
  //@{
  /**
   * Return the vector of tagged particles which should be
   * showered. It the vector is empty, the patons from the current
   * sub-process is supposed to be showered.
   */
  const tPVector & tagged() const { return *theTagged; }

  /**
   * Return the int provided in the current call to handle().
   */
  const Hint & hint() const { return *theHint; }

  /**
   * Return references to the PDF used by the first incoming particle.
   */
  const PDF & firstPDF() const { return pdfs().first; }

  /**
   * Return references to the PDF used by the first incoming particle.
   */
  const PDF & secondPDF() const { return pdfs().second; }

  /**
   * Return references to the currently used PDF's.
   */
  const pair<PDF,PDF> & pdfs() const { return thePDFs; }

  /**
   * Set alternative PDFBase objects to be used for cascade.
   */
  void resetPDFs(const pair<tcPDFPtr,tcPDFPtr> & pdfpair);

  /**
   * Set the XComb object with information about the sub-process
   * generation.
   */
  void setXComb(tXCombPtr xc);
  //@}

public:

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

private:

  /**
   * Store the tagged argument given to handle().
   */
  const tPVector * theTagged;

  /**
   * Store the Hint arguments given to handle().
   */
  const Hint * theHint;

  /**
   * The pdfs used to extract the incoming partons.
   */
  pair<PDF,PDF> thePDFs;

private:

  /**
   * The static object used to initialize the description of this class.
   * Indicates that this is an abstract class without persistent data.
   */
  static AbstractNoPIOClassDescription<CascadeHandler> initCascadeHandler;

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

};

/** @cond TRAITSPECIALIZATIONS */

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

/** This template specialization informs ThePEG about the name of
 *  the CascadeHandler class and the shared object where it is defined. */
template <>
struct ClassTraits<CascadeHandler>: public ClassTraitsBase<CascadeHandler> {
  /** Return a platform-independent class name */
  static string className() { return "ThePEG::CascadeHandler"; }
};

/** @endcond */

}

#endif /* ThePEG_CascadeHandler_H */