Skip to content

scarrazza/nnpdfdriver

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

nnpdfdriver

NNPDF stand-alone drivers for C++ and Fortran77 which can be easily included in any program. The drivers use as input the official LHAPDF5 and LHAPDF6 (c++) grids at lhapdf.hepforge.org/.

Download

Checkout the latest release at https://github.com/scarrazza/nnpdfdriver/releases

Compile

cd nnpdfdriver/cpp or nnpdfdriver/fortran
make

Run

# run example
./testcode

Code example

/**
 * NNPDF tutorial: Loading and using a NNPDF grid with the NNPDF Driver.
 *
 * Compile with:
 * g++ -O3 tutorial.cc NNPDFDriver.cc -o prog
 *
 * Author: The NNPDF Collaboration - 2014
 */
 
#include "iostream"
#include "cmath"
#include "NNPDFDriver.h"
using namespace std;
 
int main()
{
  NNPDFDriver *nnpdf = new NNPDFDriver("NNPDF23_nlo_as_0119.LHgrid");
  nnpdf->initPDF(0); // initialize PDF member
 
  // or use the fast option: grid name + replica number
  // NNPDFDriver *nnpdf = new NNPDFDriver("NNPDF23_nlo_as_0119.LHgrid", 0);
 
  double x = 0.1, Q = sqrt(2);
  int f = 0;
  cout << nnpdf->xfx(x,Q,f) << endl; // prints the gluon x*PDF
 
  delete *nnpdf;                 
   
  return 0;
}

A minimilist fortran interface is provided

  void initnnset_(const char* setname); // set the PDF name
  void initpdf_(int *mem); // change member
  double nnxfx_(double *x, double *Q, int *id); // return x*PDF