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/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 QCD evolution basis.
0017    */
0018   // *INDENT-OFF*
0019   const std::map<std::pair<int, int>, int> Gkj =
0020     {
0021       //    g         Sigma        V           T3         V3          T8         V8         T15         V15        T24          V24          T35          V35
0022       {{ 0,0}, 0}, {{ 0,1}, 1},           {{ 0,3}, 2},           {{ 0,5}, 3},           {{ 0,7}, 4},           {{ 0,9}, 5},             {{ 0,11}, 6},             // g
0023       {{ 1,0}, 7}, {{ 1,1}, 8},           {{ 1,3}, 9},           {{ 1,5},10},           {{ 1,7},11},           {{ 1,9},12},             {{ 1,11},13},             // Sigma
0024                                {{2,2},14},                                                                                                                        // V
0025       {{ 3,0},15}, {{ 3,1},16},           {{ 3,3},17},           {{ 3,5},18},           {{ 3,7},19},           {{ 3,9},20},             {{ 3,11},21},             // T3
0026                                                       {{4,4},22},                                                                                                 // V3
0027       {{ 5,0},23}, {{ 5,1},24},           {{ 5,3},25},           {{ 5,5},26},           {{ 5,7},27},           {{ 5,9},28},             {{ 5,11},29},             // T8
0028                                                                              {{6,6},30},                                                                          // V8
0029       {{ 7,0},31}, {{ 7,1},32},           {{ 7,3},33},           {{ 7,5},34},           {{ 7,7},35},           {{ 7,9},36},             {{ 7,11},37},             // T15
0030                                                                                                     {{8,8},38},                                                   // V15
0031       {{ 9,0},39}, {{ 9,1},40},           {{ 9,3},41},           {{ 9,5},42},           {{ 9,7},43},           {{ 9,9},44},             {{ 9,11},45},             // T24
0032                                                                                                                            {{10,10},46},                          // V24
0033       {{11,0},47}, {{11,1},48},           {{11,3},49},           {{11,5},50},           {{11,7},51},           {{11,9},52},             {{11,11},53},             // T35
0034                                                                                                                                                      {{12,12},54} // V35
0035     };
0036   // *INDENT-ON*
0037 
0038   /**
0039    * @defgroup ConvMap Convolution maps
0040    * Collection of convolution maps to combine sets of objects
0041    * according to the task.
0042    */
0043   ///@{
0044   ///@}
0045 
0046   /**
0047    * @defgroup EvolBases Evolution convolution maps
0048    * Collection of derived classes from ConvolutionMap that implement
0049    * the convolution map for the DGLAP evolution in the VFNS.
0050    * @ingroup ConvMap
0051    */
0052   ///@{
0053   /**
0054    * @brief The EvolutionBasisQCD class is a derived of ConvolutionMap
0055    * specialised for the DGLAP evolution of distributions using the
0056    * QCD evolution basis.
0057    */
0058   class EvolutionBasisQCD: public ConvolutionMap
0059   {
0060   public:
0061     /**
0062      * @brief The map enumerators for the operands and the
0063      * distributions.
0064      */
0065     enum Operand: int {PNSP, PNSM, PNSV, PQQ, PQG, PGQ, PGG};
0066     enum Object:  int {GLUON, SIGMA, VALENCE, T3, V3, T8, V8, T15, V15, T24, V24, T35, V35};
0067 
0068     /**
0069      * @brief The EvolutionBasisQCD constructor for the DGLAP
0070      * evolution in the QCD evolution basis with nf active flavours.
0071      * @param nf: number of active flavours
0072      */
0073     EvolutionBasisQCD(int const& nf);
0074   };
0075 
0076   /**
0077    * @brief The EvolutionOperatorBasisQCD class is a derived of
0078    * ConvolutionMap specialised for the DGLAP evolution of operators
0079    * using the QCD evolution basis.
0080    */
0081   class EvolutionOperatorBasisQCD: public ConvolutionMap
0082   {
0083   public:
0084     /**
0085      * @brief The EvolutionOperatorBasisQCD constructor
0086      * @param nf: number of active flavours
0087      */
0088     EvolutionOperatorBasisQCD(int const& nf);
0089   };
0090 
0091   /**
0092    * @brief The EvolveDistributionsBasisQCD class is a derived of
0093    * ConvolutionMap specialised to match a set of evolution operators
0094    * to a set a initial-scale distributions.
0095    */
0096   class EvolveDistributionsBasisQCD: public ConvolutionMap
0097   {
0098   public:
0099     /**
0100      * @brief The EvolveDistributionsBasisQCD constructor
0101      */
0102     EvolveDistributionsBasisQCD();
0103   };
0104   ///@}
0105 }