/usr/include/Pythia8/Pythia8/LHAPDFInterface.h is in libpythia8-dev 8.1.86-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 | // LHAPDFInterface.h is a part of the PYTHIA event generator.
// Copyright (C) 2014 Torbjorn Sjostrand.
// PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
// Please respect the MCnet Guidelines, see GUIDELINES for details.
// Header file for the LHAPDF f77 external linkage to C++.
// All required code is contained here, i.e. there is no matching .cc file.
#ifndef Pythia8_LHAPDFInterface_H
#define Pythia8_LHAPDFInterface_H
namespace Pythia8 {
//==========================================================================
// Declare the LHAPDF f77 subroutines that are needed.
extern "C" {
extern void initpdfsetm_(int&, const char*, int);
extern void initpdfsetbynamem_(int&, const char*, int);
extern void initpdfm_(int&, int&);
extern void evolvepdfm_(int&, double&, double&, double*);
extern void evolvepdfphotonm_(int&, double&, double&, double*, double&);
extern void setlhaparm_(const char*, int);
}
//==========================================================================
// Interfaces to the above routines, to make the C++ calls similar to f77.
class LHAPDFInterface {
public:
// Initialize set with full pathname, allowing multiple sets.
static void initPDFsetM( int& nSet, string name) {
const char* cName = name.c_str(); int lenName = name.length();
initpdfsetm_( nSet, cName, lenName);
}
// Initialize set with simple name, allowing multiple sets.
static void initPDFsetByNameM( int& nSet, string name) {
const char* cName = name.c_str(); int lenName = name.length();
initpdfsetbynamem_( nSet, cName, lenName);
}
// Initialize member of set.
static void initPDFM(int& nSet, int member) {
initpdfm_(nSet, member);
}
// Evaluate x f_i(x, Q).
static void evolvePDFM( int& nSet, double x, double Q, double* xfArray) {
evolvepdfm_( nSet, x, Q, xfArray);
}
// Evaluate x f_i(x, Q) including photon
static void evolvePDFPHOTONM( int& nSet, double x, double Q,
double* xfArray, double& xPhoton) {
evolvepdfphotonm_( nSet, x, Q, xfArray, xPhoton);
}
// Extrapolate PDF set beyond boundaries, or freeze them there.
static void setPDFparm(string name) {
const char* cName = name.c_str(); int lenName = name.length();
setlhaparm_( cName, lenName);
}
};
//==========================================================================
} // end namespace Pythia8
#endif // Pythia8_LHAPDFInterface_H
|