/usr/include/ThePEG/StandardModel/RunningCoupling.h is in libthepeg-dev 1.8.0-1.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 | // -*- C++ -*-
//
// RunningCoupling.h is a part of ThePEG - Toolkit for HEP Event Generation
// Copyright (C) 1999-2011 Leif Lonnblad, (C) 2009 Simon Platzer
//
// 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_RunningCoupling_H
#define ThePEG_RunningCoupling_H
// This is the declaration of the RunningCoupling class.
#include "ThePEG/Interface/Interfaced.h"
#include "ThePEG/Repository/EventGenerator.h"
#include "StandardModelBase.fh"
namespace ThePEG {
/**
* RunningCoupling an abstract base class unifying the treatment
* of running couplings in ThePEG.
*
* @see \ref RunningCouplingInterfaces "The interfaces"
* defined for RunningCoupling.
* @see StandardModelBase
*/
class RunningCoupling: public Interfaced {
public:
/**
* The default constructor.
*/
RunningCoupling () : theScaleFactor(1.) {}
/**@name Methods to be implemented by a derived class */
//@{
/**
* Return the value of the coupling at a given \a scale using the
* given standard model object, \a sm.
*/
virtual double value (Energy2 scale, const StandardModelBase & sm) const = 0;
/**
* Return the number of loops contributing to
* the running this coupling. The default returns
* zero to ensure backward compatibility.
*/
virtual unsigned int nloops () const { return 0; }
//@}
/**
* Return the value of the coupling at a given \a scale using the
* StandardModelBase object used by the EventGenerator.
*/
double value(Energy2 scale) const {
return value(scale,*(generator()->standardModel()));
}
/**
* Return an overestimate to the running coupling at the
* given scale. This is defined to aid veto algorithms
* and by default returns the coupling itself, using the EventGenerators's
* StandardModelBase object.
*/
virtual double overestimateValue (Energy2 scale) const {
return value(scale);
}
/**
* Return the ratio of the exact to the overestimated value
* of the running coupling. The default implementation returns
* one in accordance with the default implementation of
* overestimateValue
*/
virtual double ratioToOverestimate (Energy2) const {
return 1.;
}
/**
* Return the scale factor, which may be used to globally
* rescale the argument of the running coupling.
*/
double scaleFactor () const { return theScaleFactor; }
public:
/** @name Functions used by the persistent I/O system. */
//@{
/**
* Function used to write out object persistently.
* @param os the persistent output stream written to.
*/
void persistentOutput(PersistentOStream & os) const;
/**
* Function used to read in object persistently.
* @param is the persistent input stream read from.
* @param version the version number of the object when written.
*/
void persistentInput(PersistentIStream & is, int version);
//@}
/**
* Standard Init function used to initialize the interface.
*/
static void Init();
private:
/**
* Describe an abstract class without persistent data.
*/
static AbstractClassDescription<RunningCoupling> initRunningCoupling;
/**
* Private and non-existent assignment operator.
*/
RunningCoupling & operator=(const RunningCoupling &);
/**
* The scale factor used to rescale the argument of
* the running coupling.
*/
double theScaleFactor;
};
/** @cond TRAITSPECIALIZATIONS */
/** This template specialization informs ThePEG about the base classes
* of RunningCoupling. */
template <>
struct BaseClassTrait<RunningCoupling,1>: public ClassTraitsType {
/** Typedef of the first base class of RunningCoupling. */
typedef Interfaced NthBase;
};
/** This template specialization informs ThePEG about the name of the
* RunningCoupling class. */
template <>
struct ClassTraits<RunningCoupling>: public ClassTraitsBase<RunningCoupling> {
/** Return a platform-independent class name */
static string className() { return "ThePEG::RunningCoupling"; }
};
/** @endcond */
}
#endif /* ThePEG_RunningCoupling_H */
|