Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:17:12

0001 //
0002 // APFEL++ 2017
0003 //
0004 // Author: Valerio Bertone: valerio.bertone@cern.ch
0005 //
0006 
0007 #pragma once
0008 
0009 #include "apfel/lhtoypdfs.h"
0010 
0011 #include <string>
0012 #include <cmath>
0013 #include <vector>
0014 #include <functional>
0015 #include <map>
0016 
0017 namespace apfel
0018 {
0019   /**
0020    * @brief The EvolutionSetup structure is a collection of all
0021    * possible evolution parameters.
0022    */
0023   struct EvolutionSetup
0024   {
0025     /**
0026      * @name Enumerators of the evolution setup structure
0027      */
0028     ///@{
0029     /// Evolution theory
0030     enum EvolutionTheory: int {QCD, QCD_QED};
0031 
0032     /// Space- or time-like evolution (PDFs or FFs)
0033     enum Virtuality: int {SPACE, TIME};
0034 
0035     /// Polarisation of the evolution
0036     enum EvolPolarisation: int {UNP, POL, TRANS};
0037     ///@}
0038 
0039     /// Structure for the **subgrid** parameters
0040     struct GridParameters
0041     {
0042       int    nx;                  //!< Number of nodes
0043       double xmin;                //!< Minimum value of x
0044       int    id;                  //!< Interpolation degree
0045     };
0046 
0047     /**
0048      * @name Attributes of the struture.
0049      */
0050     ///@{
0051     std::string                 name;                //!< Identifier name of the setup
0052     double                      Q0;                  //!< Starting scale of the evolutions
0053     std::vector<GridParameters> GridParameters;      //!< Vector of the parameters of the subgrids
0054     int                         nQg;                 //!< Number of the grid in Q
0055     double                      Qmin;                //!< Lower bound of the grid in Q
0056     double                      Qmax;                //!< Upper bound of the grid in Q
0057     int                         InterDegreeQ;        //!< Interpolation degree on the grid in Q
0058     int                         PerturbativeOrder;   //!< Perturbative order of the evolution (LO, NLO, NNLO)
0059     EvolutionTheory             Theory;              //!< Evolution theory (QCD, QCD_QED)
0060     Virtuality                  Virtuality;          //!< Virtuality of the evolution (SPACE, TIME)
0061     EvolPolarisation            EvolPolarisation;    //!< Polarisation of the evolution (UNP, POL, TRANS)
0062     double                      AlphaQCDRef;         //!< Reference value of the QCD coupling
0063     double                      AlphaQEDRef;         //!< Reference value of the QED coupling
0064     double                      QRef;                //!< Reference scale of the couplings
0065     std::vector<double>         QuarkThresholds;     //!< Heavy-quark thresholds
0066     std::vector<double>         QuarkMasses;         //!< Heavy-quark masses
0067     std::vector<double>         LeptonThresholds;    //!< Charged-lepton thresholds
0068     double                      GaussAccuracy;       //!< Accuracy of the dguass integration
0069     std::vector<std::function<std::map<int, double>(double const&, double const&)>> InSet; //!< Input set of distributions at the initial scale
0070     ///@}
0071 
0072     /**
0073      * @brief the constructor
0074      */
0075     // *INDENT-OFF*
0076     EvolutionSetup():
0077       name("default"),
0078       Q0(sqrt(2)),
0079       GridParameters{{100, 1e-5, 3}, {100, 1e-1, 3}, {100, 6e-1, 3}, {80, 8.5e-1, 5}},
0080       nQg(50), Qmin(1), Qmax(1000), InterDegreeQ(3),
0081       PerturbativeOrder(2),
0082       Theory(QCD),
0083       Virtuality(SPACE),
0084       EvolPolarisation(UNP),
0085       AlphaQCDRef(0.35),
0086       AlphaQEDRef(7.496252e-3),
0087       QRef(sqrt(2)),
0088       QuarkThresholds{0, 0, 0, sqrt(2), 4.5, 175},
0089       QuarkMasses{QuarkThresholds},
0090       LeptonThresholds{0, 0, 1.777},
0091       GaussAccuracy(1e-5),
0092       InSet({LHToyPDFs})
0093     {
0094     }
0095     // *INDENT-ON*
0096   };
0097 }