This file is indexed.

/usr/include/CLHEP/Random/RandBreitWigner.h is in libclhep-dev 2.1.4.1+dfsg-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
// $Id: RandBreitWigner.h,v 1.5 2010/06/16 17:24:53 garren Exp $
// -*- C++ -*-
//
// -----------------------------------------------------------------------
//                             HEP Random
//                        --- RandBreitWigner ---
//                           class header file
// -----------------------------------------------------------------------
// This file is part of Geant4 (simulation toolkit for HEP).
//
// Class defining methods for shooting numbers according to the
// Breit-Wigner distribution algorithms (plain or mean^2).
// Default values are set: mean=1, gamma=.2, cut=1.
// Plain algorithm is used for shootArray() and fireArray().
// Plain algorithm with default values is used for operator()(). 

// =======================================================================
// Gabriele Cosmo - Created: 5th September 1995
//                - Added methods to shoot arrays: 28th July 1997
// J.Marraffino   - Added default arguments as attributes and
//                  operator() with arguments: 16th Feb 1998
// M Fischler      - put and get to/from streams 12/10/04
// =======================================================================

#ifndef RandBreitWigner_h
#define RandBreitWigner_h 1

#include "CLHEP/Random/defs.h"
#include "CLHEP/Random/RandFlat.h"
#include "CLHEP/Utility/memory.h"

namespace CLHEP {

/**
 * @author <Gabriele.Cosmo@cern.ch>
 * @ingroup random
 */
class RandBreitWigner : public HepRandom {

public:

  inline RandBreitWigner ( HepRandomEngine& anEngine, double a=1.0,
                                       double b=0.2 );
  inline RandBreitWigner ( HepRandomEngine* anEngine, double a=1.0,
                                       double b=0.2 );
  // These constructors should be used to instantiate a RandBreitWigner
  // distribution object defining a local engine for it.
  // The static generator will be skipped using the non-static methods
  // defined below.
  // If the engine is passed by pointer the corresponding engine object
  // will be deleted by the RandBreitWigner destructor.
  // If the engine is passed by reference the corresponding engine object
  // will not be deleted by the RandBreitWigner destructor.

  virtual ~RandBreitWigner();
  // Destructor

  // Static methods to shoot random values using the static generator

  static  double shoot( double a=1.0, double b=0.2 );

  static  double shoot( double a, double b, double c );

  static  double shootM2( double a=1.0, double b=0.2 );

  static  double shootM2( double a, double b, double c );

  static  void shootArray ( const int size, double* vect);

  static  void shootArray ( const int size, double* vect,
                            double a, double b );

  static  void shootArray ( const int size, double* vect,
                            double a, double b, double c );
                           
  //  Static methods to shoot random values using a given engine
  //  by-passing the static generator.

  static  double shoot( HepRandomEngine* anEngine, double a=1.0,
                           double b=0.2 );
  static  double shoot( HepRandomEngine* anEngine, double a,
                           double b, double c );
  static  double shootM2( HepRandomEngine* anEngine, double a=1.0,
                             double b=0.2 );
  static  double shootM2( HepRandomEngine* anEngine, double a,
                             double b, double c );
  static  void shootArray ( HepRandomEngine* anEngine,
                            const int size, double* vect );
  static  void shootArray ( HepRandomEngine* anEngine,
                            const int size, double* vect,
                            double a, double b );
  static  void shootArray ( HepRandomEngine* anEngine,
                            const int size, double* vect,
                            double a, double b, double c );

  //  Methods using the localEngine to shoot random values, by-passing
  //  the static generator. These methods respect distribution parameters
  //  passed by the user at instantiation unless superseded by actual
  //  arguments in the call.

  double fire();

  double fire( double a, double b );

  double fire( double a, double b, double c );

  double fireM2();

  double fireM2( double a, double b );

  double fireM2( double a, double b, double c );

  void fireArray ( const int size, double* vect);

  void fireArray ( const int size, double* vect,
                   double a, double b );

  void fireArray ( const int size, double* vect,
                   double a, double b, double c );
  double operator()();
  double operator()( double a, double b );
  double operator()( double a, double b, double c );

  // Save and restore to/from streams
  
  std::ostream & put ( std::ostream & os ) const;
  std::istream & get ( std::istream & is );

  std::string name() const;
  HepRandomEngine & engine();

  static std::string distributionName() {return "RandBreitWigner";}  
  // Provides the name of this distribution class
         
private:

  shared_ptr<HepRandomEngine> localEngine;
  double defaultA;
  double defaultB;

};

}  // namespace CLHEP

#ifdef ENABLE_BACKWARDS_COMPATIBILITY
//  backwards compatibility will be enabled ONLY in CLHEP 1.9
using namespace CLHEP;
#endif

#include "CLHEP/Random/RandBreitWigner.icc"

#endif