LHAPDF  6.5.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Groups Pages
Paths.h
1 // -*- C++ -*-
2 //
3 // This file is part of LHAPDF
4 // Copyright (C) 2012-2022 The LHAPDF collaboration (see AUTHORS for details)
5 //
6 #pragma once
7 #ifndef LHAPDF_Paths_H
8 #define LHAPDF_Paths_H
9 
10 #include "LHAPDF/Utils.h"
11 
12 namespace LHAPDF {
13 
14 
17 
18 
21 
24  std::vector<std::string> paths();
25 
27  void setPaths(const std::string& pathstr);
29  inline void setPaths(std::vector<string> paths) {
30  setPaths(join(paths, ":"));
31  }
32 
33 
35  inline void pathsPrepend(const std::string& p) {
36  vector<string> ps = paths();
37  ps.insert(ps.begin(), p);
38  //ps.pop_back(); //< Discard the auto-added fallback path to the installed data prefix
39  setPaths(ps);
40  }
41 
42 
44  inline void pathsAppend(const std::string& p) {
45  vector<string> ps = paths();
46  //ps.pop_back(); //< Discard the auto-added fallback path to the installed data prefix
47  ps.push_back(p);
48  setPaths(ps);
49  }
50 
51 
55  std::string findFile(const std::string& target);
56 
58  std::vector<std::string> findFiles(const std::string& target);
59 
61 
62 
65 
66  inline std::string pdfmempath(const std::string& setname, int member) {
67  const string memname = setname + "_" + to_str_zeropad(member) + ".dat";
68  const string mempath = setname / memname;
69  return mempath;
70  }
71 
72  inline std::string findpdfmempath(const std::string& setname, int member) {
73  return findFile(pdfmempath(setname, member));
74  }
75 
76  inline std::string pdfsetinfopath(const std::string& setname) {
77  const string infoname = setname + ".info";
78  const string setinfo = setname / infoname;
79  return setinfo;
80  }
81 
82  inline std::string findpdfsetinfopath(const std::string& setname) {
84  return findFile(pdfsetinfopath(setname));
85  }
86 
87 
96  const std::vector<std::string>& availablePDFSets();
97 
99 
100 
101 }
102 
103 #endif
std::vector< std::string > paths()
Get the ordered list of search paths, from $LHAPDF_DATA_PATH and the install location.
void setPaths(const std::string &pathstr)
Set the search paths list as a colon-separated string.
void pathsAppend(const std::string &p)
Append to the search paths list.
Definition: Paths.h:44
std::string findpdfsetinfopath(const std::string &setname)
Definition: Paths.h:82
std::vector< std::string > findFiles(const std::string &target)
Return all locations in which a file is found.
std::string to_str_zeropad(int val, size_t nchars=4)
Format an integer val as a zero-padded string of length nchars.
Definition: Utils.h:78
void pathsPrepend(const std::string &p)
Prepend to the search paths list.
Definition: Paths.h:35
const std::vector< std::string > & availablePDFSets()
Get the names of all available PDF sets in the search path.
std::string findFile(const std::string &target)
std::string join(const std::vector< std::string > &svec, const std::string &sep)
Concatenate strings with separator strings between each element.
Definition: Utils.h:85