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 evolution basis used for QCDxQED evolution.
0017    */
0018   // *INDENT-OFF*
0019   const std::map<std::pair<int, int>, int> GkjQCDQED =
0020     {
0021       //tau^+          mu^+           e^+            t^+            c^+            u^+            b^+            s^+            d^+            g              gamma
0022       {{0,0},0},     {{0,1},1},     {{0,2},2},     {{0,3},3},     {{0,4},4},     {{0,5},5},     {{0,6},6},     {{0,7},7},     {{0,8},8},     {{0,9},9},     {{0,10},10},   // tau^+
0023       {{1,0},11},    {{1,1},12},    {{1,2},13},    {{1,3},14},    {{1,4},15},    {{1,5},16},    {{1,6},17},    {{1,7},18},    {{1,8},19},    {{1,9},20},    {{1,10},21},   // mu^+
0024       {{2,0},22},    {{2,1},23},    {{2,2},24},    {{2,3},25},    {{2,4},26},    {{2,5},27},    {{2,6},28},    {{2,7},29},    {{2,8},30},    {{2,9},31},    {{2,10},32},   // e^+
0025       {{3,0},33},    {{3,1},34},    {{3,2},35},    {{3,3},36},    {{3,4},37},    {{3,5},38},    {{3,6},39},    {{3,7},40},    {{3,8},41},    {{3,9},42},    {{3,10},43},   // t^+
0026       {{4,0},44},    {{4,1},45},    {{4,2},46},    {{4,3},47},    {{4,4},48},    {{4,5},49},    {{4,6},50},    {{4,7},51},    {{4,8},52},    {{4,9},53},    {{4,10},54},   // c^+
0027       {{5,0},55},    {{5,1},56},    {{5,2},57},    {{5,3},58},    {{5,4},59},    {{5,5},60},    {{5,6},61},    {{5,7},62},    {{5,8},63},    {{5,9},64},    {{5,10},65},   // u^+
0028       {{6,0},66},    {{6,1},67},    {{6,2},68},    {{6,3},69},    {{6,4},70},    {{6,5},71},    {{6,6},72},    {{6,7},73},    {{6,8},74},    {{6,9},75},    {{6,10},76},   // b^+
0029       {{7,0},77},    {{7,1},78},    {{7,2},79},    {{7,3},80},    {{7,4},81},    {{7,5},82},    {{7,6},83},    {{7,7},84},    {{7,8},85},    {{7,9},86},    {{7,10},87},   // s^+
0030       {{8,0},88},    {{8,1},89},    {{8,2},90},    {{8,3},91},    {{8,4},92},    {{8,5},93},    {{8,6},94},    {{8,7},95},    {{8,8},96},    {{8,9},97},    {{8,10},98},   // d^+
0031       {{9,0},99},    {{9,1},100},   {{9,2},101},   {{9,3},102},   {{9,4},103},   {{9,5},104},   {{9,6},105},   {{9,7},106},   {{9,8},107},   {{9,9},108},   {{9,10},109},  // g
0032       {{10,0},110},  {{10,1},111},  {{10,2},112},  {{10,3},113},  {{10,4},114},  {{10,5},115},  {{10,6},116},  {{10,7},117},  {{10,8},118},  {{10,9},119},  {{10,10},120}, // gamma
0033       //d^-            s^-            b^-            u^-            c^-            t^-
0034       {{11,11},121}, {{11,12},122}, {{11,13},123}, {{11,14},124}, {{11,15},125}, {{11,16},126}, // d^-
0035       {{12,11},127}, {{12,12},128}, {{12,13},129}, {{12,14},130}, {{12,15},131}, {{12,16},132}, // s^-
0036       {{13,11},133}, {{13,12},134}, {{13,13},135}, {{13,14},136}, {{13,15},137}, {{13,16},138}, // b^-
0037       {{14,11},139}, {{14,12},140}, {{14,13},141}, {{14,14},142}, {{14,15},143}, {{14,16},144}, // u^-
0038       {{15,11},145}, {{15,12},146}, {{15,13},147}, {{15,14},148}, {{15,15},149}, {{15,16},150}, // c^-
0039       {{16,11},151}, {{16,12},152}, {{16,13},153}, {{16,14},154}, {{16,15},155}, {{16,16},156}, // t^-
0040       //e^-            mu^-           tau^-
0041       {{17,17},157},                               // e^-
0042                      {{18,18},158},                // mu^-
0043                                     {{19,19},159}  // tau^-
0044     };
0045   // *INDENT-ON*
0046 
0047   /**
0048    * @defgroup EvolBasesQCDQED Evolution convolution maps for QCDxQED
0049    * Collection of derived classes from ConvolutionMap that implement
0050    * the convolution map for the DGLAP QCDxQED evolution in the VFNS.
0051    * @ingroup ConvMap
0052    */
0053   ///@{
0054   /**
0055    * @brief The EvolutionBasisQCDQED class is a derived of ConvolutionMap
0056    * specialised for the DGLAP evolution of distributions using the
0057    * physical basis.
0058    */
0059   class EvolutionBasisQCDQED: public ConvolutionMap
0060   {
0061   public:
0062     /**
0063      * @brief The map enumerators for the operands and the
0064      * distributions.
0065      */
0066     enum Operand: int {PPDD, PPUU, PPLL, PMDD, PMUU, PMLL,
0067                        PPSDD, PPSDU, PPSDL, PPSUD, PPSUU, PPSUL, PPSLD, PPSLU, PPSLL, PPV,
0068                        PDg, PUg, PDgm, PUgm, PLgm,
0069                        PgD, PgU, PgmD, PgmU, PgmL,
0070                        Pgg, Pggm, Pgmg, Pgmgm
0071                       };
0072     enum Object:  int {TAUP, MUP, EP, TP, CP, UP, BP, SP, DP, GLUON, PHOTON, DM, SM, BM, UM, CM, TM, EM, MUM, TAUM};
0073 
0074     /**
0075      * @brief The EvolutionBasisQCDQED constructor for the DGLAP
0076      * evolution in the evolution basis for QCDxQED evolution.
0077      * @param nd: number of active down-type quarks below threshold
0078      * @param nu: number of active up-type quarks below threshold
0079      * @param nl: number of active leptons below threshold
0080      */
0081     EvolutionBasisQCDQED(int const& nd, int const& nu, int const& nl);
0082   };
0083 
0084   /**
0085    * @brief The EvolutionOperatorBasisQCDQED class is a derived of
0086    * ConvolutionMap specialised for the DGLAP QCDxQED evolution of
0087    * operators.
0088    */
0089   class EvolutionOperatorBasisQCDQED: public ConvolutionMap
0090   {
0091   public:
0092     /**
0093      * @brief The EvolutionOperatorBasisQCDQED constructor
0094      * @param nd: number of active down-type quarks below threshold
0095      * @param nu: number of active up-type quarks below threshold
0096      * @param nl: number of active leptons below threshold
0097      */
0098     EvolutionOperatorBasisQCDQED(int const& nd, int const& nu, int const& nl);
0099   };
0100 
0101   /**
0102    * @brief The EvolveDistributionsBasisQCDQED class is a derived of
0103    * ConvolutionMap specialised to match a set of evolution operators
0104    * to a set a initial-scale distributions for QCDxQED evolution.
0105    */
0106   class EvolveDistributionsBasisQCDQED: public ConvolutionMap
0107   {
0108   public:
0109     /**
0110      * @brief The EvolveDistributionsBasisQCDQED constructor
0111      */
0112     EvolveDistributionsBasisQCDQED();
0113   };
0114   ///@}
0115 }