/usr/include/ThePEG/PDF/PDF.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 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 | // -*- C++ -*-
//
// PDF.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_PDF_H
#define ThePEG_PDF_H
// This is the declaration of the PDF class.
#include "ThePEG/PDF/PartonBinInstance.h"
namespace ThePEG {
/**
* PDF is a simple wrapper class with normal copy-semantics which
* holds a PDFBase object and a ParticleData object for which to
* determine parton densities.
*/
class PDF {
public:
/** @name Standard constructors, assignment and destructors. */
//@{
/**
* Default constructor.
*/
PDF() {}
/**
* Constructor from a given PartonBinInstance.
*/
PDF(tcPBIPtr pb) {
if ( !pb ) return;
thePDF = pb->pdf();
theParticle = pb->particleData();
}
/**
* Constructor from a given PDFBase and ParticleData object.
*/
PDF(tcPDFPtr pdf, tcPDPtr pd)
: thePDF(pdf), theParticle(pd) {}
//@}
public:
/** @name Access the parton densities. */
//@{
/**
* Return the density for the given \a parton, for a given \a
* partonScale and logarithmic momentum fraction \a l assuming the
* particle has a virtuality \a particleScale.
*/
double xfl(tcPPtr parton, Energy2 partonScale, double l,
Energy2 particleScale = ZERO) const {
return xfl(parton->dataPtr(), partonScale, l, particleScale);
}
/**
* Return the density for the given \a parton, for a given \a
* partonScale and momentum fraction \a x assuming the
* particle has a virtuality \a particleScale.
*/
double xfx(tcPPtr parton, Energy2 partonScale, double x,
double eps = 0.0, Energy2 particleScale = ZERO) const {
return xfx(parton->dataPtr(), partonScale, x, eps, particleScale);
}
/**
* Return the valence density for the given \a parton, for a given
* \a partonScale and logarithmic momentum fraction \a l assuming
* the particle has a virtuality \a particleScale.
*/
double xfvl(tcPPtr parton, Energy2 partonScale, double l,
Energy2 particleScale = ZERO) const {
return xfvl(parton->dataPtr(), partonScale, l, particleScale);
}
/**
* Return the valence density for the given \a parton, for a given
* \a partonScale and momentum fraction \a x assuming the particle
* has a virtuality \a particleScale.
*/
double xfvx(tcPPtr parton, Energy2 partonScale, double x,
double eps = 0.0, Energy2 particleScale = ZERO) const {
return xfvx(parton->dataPtr(), partonScale, x, eps, particleScale);
}
/**
* Return the density for the given \a parton, for a given \a
* partonScale and logarithmic momentum fraction \a l assuming the
* particle has a virtuality \a particleScale.
*/
double xfl(tcPDPtr parton, Energy2 partonScale, double l,
Energy2 particleScale = ZERO) const {
return thePDF?
thePDF->xfl(theParticle, parton, partonScale, l, particleScale): 0.0;
}
/**
* Return the density for the given \a parton, for a given \a
* partonScale and momentum fraction \a x assuming the
* particle has a virtuality \a particleScale.
*/
double xfx(tcPDPtr parton, Energy2 partonScale, double x,
double eps = 0.0, Energy2 particleScale = ZERO) const {
return thePDF?
thePDF->xfx(theParticle, parton, partonScale, x, eps, particleScale): 0.0;
}
/**
* Return the valence density for the given \a parton, for a given
* \a partonScale and logarithmic momentum fraction \a l assuming
* the particle has a virtuality \a particleScale.
*/
double xfvl(tcPDPtr parton, Energy2 partonScale, double l,
Energy2 particleScale = ZERO) const {
return thePDF?
thePDF->xfvl(theParticle, parton, partonScale, l, particleScale): 0.0;
}
/**
* Return the valence density for the given \a parton, for a given
* \a partonScale and momentum fraction \a x assuming the particle
* has a virtuality \a particleScale.
*/
double xfvx(tcPDPtr parton, Energy2 partonScale, double x,
double eps = 0.0, Energy2 particleScale = ZERO) const {
return thePDF?
thePDF->xfvx(theParticle, parton, partonScale, x, eps, particleScale): 0.0;
}
//@}
/**
* The parton density object.
*/
tcPDFPtr pdf() const { return thePDF; }
/**
* The particle for which the parton density is used.
*/
tcPDPtr particle() const { return theParticle; }
/**
* Compare for equality.
*/
bool operator==(const PDF& x) const {
return
pdf() == x.pdf() &&
particle() == x.particle();
}
/**
* Compare for ordering.
*/
bool operator<(const PDF& x) const {
return
pdf() == x.pdf() ?
particle() < x.particle() :
pdf() < x.pdf();
}
private:
/**
* The parton density object.
*/
tcPDFPtr thePDF;
/**
* The particle for which the parton density is used.
*/
tcPDPtr theParticle;
};
}
#endif /* ThePEG_PDF_H */
|