Back to home page

EIC code displayed by LXR

 
 

    


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

0001 //
0002 // APFEL++ 2017
0003 //
0004 // Author: Valerio Bertone: valerio.bertone@cern.ch
0005 //
0006 
0007 #pragma once
0008 
0009 #include "apfel/convolutionmap.h"
0010 
0011 namespace apfel
0012 {
0013   /**
0014    * @brief The map between pair of indices corresponding to the
0015    * position of the operator in the evolution matrix and its linear
0016    * index in the physical basis.
0017    */
0018   // *INDENT-OFF*
0019   const std::map<std::pair<int, int>, int> GkjPhys =
0020     {
0021       //     t-                b-                c-                s-                u-                u-                 g                 d+                u+                s+                c+                b+                t+
0022       {{-6+6,-6+6}, 0}, {{-6+6,-5+6}, 1}, {{-6+6,-4+6}, 2}, {{-6+6,-3+6}, 3}, {{-6+6,-2+6}, 4}, {{-6+6,-1+6}, 5},                                                                                                                               // t-
0023       {{-5+6,-6+6}, 6}, {{-5+6,-5+6}, 7}, {{-5+6,-4+6}, 8}, {{-5+6,-3+6}, 9}, {{-5+6,-2+6},10}, {{-5+6,-1+6},11},                                                                                                                               // b-
0024       {{-4+6,-6+6},12}, {{-4+6,-5+6},13}, {{-4+6,-4+6},14}, {{-4+6,-3+6},15}, {{-4+6,-2+6},16}, {{-4+6,-1+6},17},                                                                                                                               // c-
0025       {{-3+6,-6+6},18}, {{-3+6,-5+6},19}, {{-3+6,-4+6},20}, {{-3+6,-3+6},21}, {{-3+6,-2+6},22}, {{-3+6,-1+6},23},                                                                                                                               // s-
0026       {{-2+6,-6+6},24}, {{-2+6,-5+6},25}, {{-2+6,-4+6},26}, {{-2+6,-3+6},27}, {{-2+6,-2+6},28}, {{-2+6,-1+6},29},                                                                                                                               // u-
0027       {{-1+6,-6+6},30}, {{-1+6,-5+6},31}, {{-1+6,-4+6},32}, {{-1+6,-3+6},33}, {{-1+6,-2+6},34}, {{-1+6,-1+6},35},                                                                                                                               // d-
0028                                                                                                                   {{ 0+6, 0+6},36}, {{ 0+6, 1+6},37}, {{ 0+6, 2+6},38}, {{ 0+6, 3+6},39}, {{ 0+6, 4+6},40}, {{ 0+6, 5+6},41}, {{ 0+6, 6+6},42}, // g
0029                                                                                                                   {{ 1+6, 0+6},43}, {{ 1+6, 1+6},44}, {{ 1+6, 2+6},45}, {{ 1+6, 3+6},46}, {{ 1+6, 4+6},47}, {{ 1+6, 5+6},48}, {{ 1+6, 6+6},49}, // d+
0030                                                                                                                   {{ 2+6, 0+6},50}, {{ 2+6, 1+6},51}, {{ 2+6, 2+6},52}, {{ 2+6, 3+6},53}, {{ 2+6, 4+6},54}, {{ 2+6, 5+6},55}, {{ 2+6, 6+6},56}, // u+
0031                                                                                                                   {{ 3+6, 0+6},57}, {{ 3+6, 1+6},58}, {{ 3+6, 2+6},59}, {{ 3+6, 3+6},60}, {{ 3+6, 4+6},61}, {{ 3+6, 5+6},62}, {{ 3+6, 6+6},63}, // s+
0032                                                                                                                   {{ 4+6, 0+6},64}, {{ 4+6, 1+6},65}, {{ 4+6, 2+6},66}, {{ 4+6, 3+6},67}, {{ 4+6, 4+6},68}, {{ 4+6, 5+6},69}, {{ 4+6, 6+6},70}, // c+
0033                                                                                                                   {{ 5+6, 0+6},71}, {{ 5+6, 1+6},72}, {{ 5+6, 2+6},73}, {{ 5+6, 3+6},74}, {{ 5+6, 4+6},75}, {{ 5+6, 5+6},76}, {{ 5+6, 6+6},77}, // b+
0034                                                                                                                   {{ 6+6, 0+6},78}, {{ 6+6, 1+6},79}, {{ 6+6, 2+6},80}, {{ 6+6, 3+6},81}, {{ 6+6, 4+6},82}, {{ 6+6, 5+6},83}, {{ 6+6, 6+6},84}  // t+
0035     };
0036   // *INDENT-ON*
0037 
0038   /**
0039    * @defgroup PhysBases Physical convolution maps
0040    * Collection of derived classes from ConvolutionMap that implement
0041    * the convolution map for the DGLAP evolution in the VFNS in the
0042    * physical basis.
0043    * @ingroup ConvMap
0044    */
0045   ///@{
0046   /**
0047    * @brief The PhysicalBasisQCD class is a derived of ConvolutionMap
0048    * specialised for the DGLAP evolution of distributions using the
0049    * physical basis.
0050    */
0051   class PhysicalBasisQCD: public ConvolutionMap
0052   {
0053   public:
0054     /**
0055      * @brief The map enumerators for the operands and the
0056      * distributions.
0057      */
0058     enum Operand: int {PNV, PPV, PNS, PPS, PQG, PGQ, PGG};
0059     enum Object:  int {TM, BM, CM, SM, UM, DM, GLUON, DP, UP, SP, CP, BP, TP};
0060 
0061     /**
0062      * @brief The PhysicalBasisQCD constructor for the DGLAP
0063      * evolution in the physical basis with nf active flavours.
0064      * @param nf: number of active flavours
0065      */
0066     PhysicalBasisQCD(int const& nf);
0067   };
0068 
0069   /**
0070    * @brief The PhysicalOperatorBasisQCD class is a derived of
0071    * ConvolutionMap specialised for the DGLAP evolution of operators
0072    * using the physical basis.
0073    */
0074   class PhysicalOperatorBasisQCD: public ConvolutionMap
0075   {
0076   public:
0077     /**
0078      * @brief The PhysicalOperatorBasisQCD constructor
0079      * @param nf: number of active flavours
0080      */
0081     PhysicalOperatorBasisQCD(int const& nf);
0082   };
0083 
0084   /**
0085    * @brief The PhysicalEvolveDistributionsBasisQCD class is a derived
0086    * of ConvolutionMap specialised to match a set of evolution
0087    * operators to a set a initial-scale distributions in the physical
0088    * basis.
0089    */
0090   class PhysicalEvolveDistributionsBasisQCD: public ConvolutionMap
0091   {
0092   public:
0093     /**
0094      * @brief The PhysicalEvolveDistributionsBasisQCD constructor
0095      */
0096     PhysicalEvolveDistributionsBasisQCD();
0097   };
0098   ///@}
0099 }