hej is hosted by Hepforge, IPPP Durham
HEJ  2.3.0
High energy resummation for hadron colliders
PDF.hh
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <array>
12 #include <cstddef>
13 #include <memory>
14 
15 #include "HEJ/PDG_codes.hh"
16 
17 namespace LHAPDF {
18  class PDF;
19 }
20 
21 namespace HEJ {
23  class PDF {
24  public:
31  PDF(int id, ParticleID beam1, ParticleID beam2);
32 
39  PDF(std::string const & name, ParticleID beam1, ParticleID beam2);
40 
51  double pdfpt(std::size_t beam_idx, double x, double q, ParticleID id) const;
52 
58  double Halphas(double q) const;
59 
61 
65  bool inRangeQ(double q) const;
66 
68 
72  bool inRangeX(double x) const;
73 
75  int id() const;
76 
77  PDF(PDF const & other) = delete;
78  PDF & operator=(PDF const & other) = delete;
79  PDF(PDF && other) noexcept;
80  PDF & operator=(PDF && other) noexcept;
81  ~PDF();
82 
83  private:
85  std::unique_ptr<LHAPDF::PDF> pdf_;
86 
87  std::array<int, 2> beamtype_{};
88  };
89 } // namespace HEJ
Contains the Particle IDs of all relevant SM particles.
Class for interaction with a PDF set.
Definition: PDF.hh:23
PDF & operator=(PDF &&other) noexcept
Moving allowed.
PDF(std::string const &name, ParticleID beam1, ParticleID beam2)
PDF Constructor.
bool inRangeQ(double q) const
Check if the energy scale is within the range covered by the PDF set.
bool inRangeX(double x) const
Check if the momentum fraction is within the range covered by the PDF set.
double Halphas(double q) const
Value of the strong coupling at the given scale.
double pdfpt(std::size_t beam_idx, double x, double q, ParticleID id) const
Calculate the pdf value x*f(x, q)
PDF & operator=(PDF const &other)=delete
Copy not possible.
PDF(PDF &&other) noexcept
Moving allowed.
PDF(int id, ParticleID beam1, ParticleID beam2)
PDF Constructor.
int id() const
PDF id of the current set.
PDF(PDF const &other)=delete
Copy not possible.
std::string name(EventType type)
Event type names.
Definition: event_types.hh:57
ParticleID
The possible particle identities. We use PDG IDs as standard.
Definition: PDG_codes.hh:25
Main HEJ 2 Namespace.
Definition: mainpage.dox:1
Definition: PDF.hh:17