a void type method storing properly the magic numbers for the implementation of the evolutor
1454{
1455 gslpp::matrix<double> mtmp(
nops, 0.);
1456 std::vector<std::vector<gslpp::matrix<double> > > vtmp2;
1457 std::vector<gslpp::matrix<double> > vtmp;
1459 vtmp.push_back(mtmp);
1461 vtmp2.push_back(vtmp);
1462 Expanded<gslpp::matrix<double> > res(vtmp2);
1463
1464
1465
1466
1468 double b0, b0e, b5, alsM, eta, omega, lambda;
1469 std::map< std::vector<uint>, double >::iterator itr;
1470
1471
1472
1473
1474
1478
1479 omega = 2. * b0 * alsM / 4. / M_PI;
1480
1481 for (itr =
vM0vi[nnf].begin(); itr !=
vM0vi[nnf].end(); ++itr)
1482 {
1483 const std::vector<uint> &v = itr->first;
1484 const uint &a = v[0];
1485 const uint &b = v[1];
1486 const uint &i = v[2];
1487
1488 res.setMatrixElement(
QCD0,
QED0, a, b, res.getOrd(
QCD0,
QED0)(a, b) + itr->second * pow(eta,
ai[nnf].at(i)));
1489 }
1490
1491 for (itr =
vM1vi[nnf].begin(); itr !=
vM1vi[nnf].end(); ++itr)
1492 {
1493 const std::vector<uint> &v = itr->first;
1494 const uint &a = v[0];
1495 const uint &b = v[1];
1496 const uint &i = v[2];
1497 const uint &j = v[3];
1498
1499 res.setMatrixElement(
QCD1,
QED0, a, b, res.getOrd(
QCD1,
QED0)(a, b) + omega * itr->second *
f_f(nnf, i, j, -1, eta));
1500 }
1501
1502 for (itr =
vM2vi[nnf].begin(); itr !=
vM2vi[nnf].end(); ++itr)
1503 {
1504 const std::vector<uint> &v = itr->first;
1505 const uint &a = v[0];
1506 const uint &b = v[1];
1507 const uint &i = v[2];
1508 const uint &j = v[3];
1509
1510 res.setMatrixElement(
QCD2,
QED0, a, b, res.getOrd(
QCD2,
QED0)(a, b) + omega * omega * itr->second *
f_f(nnf, i, j, -2, eta));
1511 }
1512
1513 for (itr =
vM11vi[nnf].begin(); itr !=
vM11vi[nnf].end(); ++itr)
1514 {
1515 const std::vector<uint> &v = itr->first;
1516 const uint &a = v[0];
1517 const uint &b = v[1];
1518 const uint &i = v[2];
1519 const uint &j = v[3];
1520 const uint &p = v[4];
1521
1522 res.setMatrixElement(
QCD2,
QED0, a, b, res.getOrd(
QCD2,
QED0)(a, b) + omega * omega * itr->second *
f_g(nnf, i, p, j, -1, -1, eta));
1523 }
1524
1526 {
1530
1531 for (itr =
vM3vi[nnf].begin(); itr !=
vM3vi[nnf].end(); ++itr)
1532 {
1533 const std::vector<uint> &v = itr->first;
1534 const uint &a = v[0];
1535 const uint &b = v[1];
1536 const uint &i = v[2];
1537 const uint &j = v[3];
1538 const double &term = itr->second;
1539
1540 res.setMatrixElement(
QCD0,
QED1, a, b, res.getOrd(
QCD0,
QED1)(a, b) + lambda * term *
f_f(nnf, i, j, 1, eta));
1541 res.setMatrixElement(
QCD0,
QED2, a, b, res.getOrd(
QCD0,
QED2)(a, b) + lambda * lambda * term * (
f_f(nnf, i, j, 2, eta) -
f_f(nnf, i, j, 1, eta)));
1542 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) + omega * lambda * lambda * b5 * term *
f_r(nnf, i, j, 1, eta));
1543 }
1544
1545 for (itr =
vM4vi[nnf].begin(); itr !=
vM4vi[nnf].end(); ++itr)
1546 {
1547 const std::vector<uint> &v = itr->first;
1548 const uint &a = v[0];
1549 const uint &b = v[1];
1550 const uint &i = v[2];
1551 const uint &j = v[3];
1552 const double &term = itr->second;
1553
1554 res.setMatrixElement(
QCD1,
QED1, a, b, res.getOrd(
QCD1,
QED1)(a, b) + omega * lambda * term *
f_f(nnf, i, j, 0, eta));
1555 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) - omega * lambda * lambda * term *
f_f(nnf, i, j, 0, eta));
1556 }
1557
1558 for (itr =
vM5vi[nnf].begin(); itr !=
vM5vi[nnf].end(); ++itr)
1559 {
1560 const std::vector<uint> &v = itr->first;
1561 const uint &a = v[0];
1562 const uint &b = v[1];
1563 const uint &i = v[2];
1564 const uint &j = v[3];
1565
1566 res.setMatrixElement(
QCD2,
QED1, a, b, res.getOrd(
QCD2,
QED1)(a, b) + omega * omega * lambda * itr->second *
f_f(nnf, i, j, -1, eta));
1567 }
1568
1569 for (itr =
vM6vi[nnf].begin(); itr !=
vM6vi[nnf].end(); ++itr)
1570 {
1571 const std::vector<uint> &v = itr->first;
1572 const uint &a = v[0];
1573 const uint &b = v[1];
1574 const uint &i = v[2];
1575 const uint &j = v[3];
1576
1577 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) + omega * lambda * lambda * itr->second *
f_f(nnf, i, j, 1, eta));
1578 }
1579
1580 for (itr =
vM33vi[nnf].begin(); itr !=
vM33vi[nnf].end(); ++itr)
1581 {
1582 const std::vector<uint> &v = itr->first;
1583 const uint &a = v[0];
1584 const uint &b = v[1];
1585 const uint &i = v[2];
1586 const uint &j = v[3];
1587 const uint &p = v[4];
1588
1589 res.setMatrixElement(
QCD0,
QED2, a, b, res.getOrd(
QCD0,
QED2)(a, b) + lambda * lambda * itr->second *
f_g(nnf, i, p, j, 1, 1, eta));
1590 }
1591
1592 for (itr =
vM13vi[nnf].begin(); itr !=
vM13vi[nnf].end(); ++itr)
1593 {
1594 const std::vector<uint> &v = itr->first;
1595 const uint &a = v[0];
1596 const uint &b = v[1];
1597 const uint &i = v[2];
1598 const uint &j = v[3];
1599 const uint &p = v[4];
1600 const double &term = itr->second;
1601
1602 res.setMatrixElement(
QCD1,
QED1, a, b, res.getOrd(
QCD1,
QED1)(a, b) + omega * lambda * term *
f_g(nnf, i, p, j, -1, 1, eta));
1603 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) + omega * lambda * lambda * term * (
f_g(nnf, i, p, j, -1, 2, eta) -
f_g(nnf, i, p, j, -1, 1, eta)));
1604 }
1605
1606 for (itr =
vM31vi[nnf].begin(); itr !=
vM31vi[nnf].end(); ++itr)
1607 {
1608 const std::vector<uint> &v = itr->first;
1609 const uint &a = v[0];
1610 const uint &b = v[1];
1611 const uint &i = v[2];
1612 const uint &j = v[3];
1613 const uint &p = v[4];
1614 const double &term = itr->second;
1615
1616 res.setMatrixElement(
QCD1,
QED1, a, b, res.getOrd(
QCD1,
QED1)(a, b) + omega * lambda * term *
f_g(nnf, i, p, j, 1, -1, eta));
1617 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) + omega * lambda * lambda * term * (
f_g(nnf, i, p, j, 2, -1, eta) -
f_g(nnf, i, p, j, 1, -1, eta)));
1618 }
1619
1620 for (itr =
vM34vi[nnf].begin(); itr !=
vM34vi[nnf].end(); ++itr)
1621 {
1622 const std::vector<uint> &v = itr->first;
1623 const uint &a = v[0];
1624 const uint &b = v[1];
1625 const uint &i = v[2];
1626 const uint &j = v[3];
1627 const uint &p = v[4];
1628
1629 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) + omega * lambda * lambda * itr->second *
f_g(nnf, i, p, j, 1, 0, eta));
1630 }
1631
1632 for (itr =
vM43vi[nnf].begin(); itr !=
vM43vi[nnf].end(); ++itr)
1633 {
1634 const std::vector<uint> &v = itr->first;
1635 const uint &a = v[0];
1636 const uint &b = v[1];
1637 const uint &i = v[2];
1638 const uint &j = v[3];
1639 const uint &p = v[4];
1640
1641 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) + omega * lambda * lambda * itr->second *
f_g(nnf, i, p, j, 0, 1, eta));
1642 }
1643
1644 for (itr =
vM23vi[nnf].begin(); itr !=
vM23vi[nnf].end(); ++itr)
1645 {
1646 const std::vector<uint> &v = itr->first;
1647 const uint &a = v[0];
1648 const uint &b = v[1];
1649 const uint &i = v[2];
1650 const uint &j = v[3];
1651 const uint &p = v[4];
1652
1653 res.setMatrixElement(
QCD2,
QED1, a, b, res.getOrd(
QCD2,
QED1)(a, b) + omega * omega * lambda * itr->second *
f_g(nnf, i, p, j, -2, 1, eta));
1654 }
1655
1656 for (itr =
vM32vi[nnf].begin(); itr !=
vM32vi[nnf].end(); ++itr)
1657 {
1658 const std::vector<uint> &v = itr->first;
1659 const uint &a = v[0];
1660 const uint &b = v[1];
1661 const uint &i = v[2];
1662 const uint &j = v[3];
1663 const uint &p = v[4];
1664
1665 res.setMatrixElement(
QCD2,
QED1, a, b, res.getOrd(
QCD2,
QED1)(a, b) + omega * omega * lambda * itr->second *
f_g(nnf, i, p, j, 1, -2, eta));
1666 }
1667
1668 for (itr =
vM14vi[nnf].begin(); itr !=
vM14vi[nnf].end(); ++itr)
1669 {
1670 const std::vector<uint> &v = itr->first;
1671 const uint &a = v[0];
1672 const uint &b = v[1];
1673 const uint &i = v[2];
1674 const uint &j = v[3];
1675 const uint &p = v[4];
1676
1677 res.setMatrixElement(
QCD2,
QED1, a, b, res.getOrd(
QCD2,
QED1)(a, b) + omega * omega * lambda * itr->second *
f_g(nnf, i, p, j, -1, 0, eta));
1678 }
1679
1680 for (itr =
vM41vi[nnf].begin(); itr !=
vM41vi[nnf].end(); ++itr)
1681 {
1682 const std::vector<uint> &v = itr->first;
1683 const uint &a = v[0];
1684 const uint &b = v[1];
1685 const uint &i = v[2];
1686 const uint &j = v[3];
1687 const uint &p = v[4];
1688
1689 res.setMatrixElement(
QCD2,
QED1, a, b, res.getOrd(
QCD2,
QED1)(a, b) + omega * omega * lambda * itr->second *
f_g(nnf, i, p, j, 0, -1, eta));
1690 }
1691
1692 for (itr =
vM113vi[nnf].begin(); itr !=
vM113vi[nnf].end(); ++itr)
1693 {
1694 const std::vector<uint> &v = itr->first;
1695 const uint &a = v[0];
1696 const uint &b = v[1];
1697 const uint &i = v[2];
1698 const uint &j = v[3];
1699 const uint &p = v[4];
1700 const uint &q = v[5];
1701
1702 res.setMatrixElement(
QCD2,
QED1, a, b, res.getOrd(
QCD2,
QED1)(a, b) + omega * omega * lambda * itr->second *
f_h(nnf, i, p, q, j, -1, -1, 1, eta));
1703 }
1704
1705 for (itr =
vM131vi[nnf].begin(); itr !=
vM131vi[nnf].end(); ++itr)
1706 {
1707 const std::vector<uint> &v = itr->first;
1708 const uint &a = v[0];
1709 const uint &b = v[1];
1710 const uint &i = v[2];
1711 const uint &j = v[3];
1712 const uint &p = v[4];
1713 const uint &q = v[5];
1714
1715 res.setMatrixElement(
QCD2,
QED1, a, b, res.getOrd(
QCD2,
QED1)(a, b) + omega * omega * lambda * itr->second *
f_h(nnf, i, p, q, j, -1, 1, -1, eta));
1716 }
1717
1718 for (itr =
vM311vi[nnf].begin(); itr !=
vM311vi[nnf].end(); ++itr)
1719 {
1720 const std::vector<uint> &v = itr->first;
1721 const uint &a = v[0];
1722 const uint &b = v[1];
1723 const uint &i = v[2];
1724 const uint &j = v[3];
1725 const uint &p = v[4];
1726 const uint &q = v[5];
1727
1728 res.setMatrixElement(
QCD2,
QED1, a, b, res.getOrd(
QCD2,
QED1)(a, b) + omega * omega * lambda * itr->second *
f_h(nnf, i, p, q, j, 1, -1, -1, eta));
1729 }
1730
1731 for (itr =
vM133vi[nnf].begin(); itr !=
vM133vi[nnf].end(); ++itr)
1732 {
1733 const std::vector<uint> &v = itr->first;
1734 const uint &a = v[0];
1735 const uint &b = v[1];
1736 const uint &i = v[2];
1737 const uint &j = v[3];
1738 const uint &p = v[4];
1739 const uint &q = v[5];
1740
1741 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) + omega * lambda * lambda * itr->second *
f_h(nnf, i, p, q, j, -1, 1, 1, eta));
1742 }
1743
1744 for (itr =
vM313vi[nnf].begin(); itr !=
vM313vi[nnf].end(); ++itr)
1745 {
1746 const std::vector<uint> &v = itr->first;
1747 const uint &a = v[0];
1748 const uint &b = v[1];
1749 const uint &i = v[2];
1750 const uint &j = v[3];
1751 const uint &p = v[4];
1752 const uint &q = v[5];
1753
1754 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) + omega * lambda * lambda * itr->second *
f_h(nnf, i, p, q, j, 1, -1, 1, eta));
1755 }
1756
1757 for (itr =
vM331vi[nnf].begin(); itr !=
vM331vi[nnf].end(); ++itr)
1758 {
1759 const std::vector<uint> &v = itr->first;
1760 const uint &a = v[0];
1761 const uint &b = v[1];
1762 const uint &i = v[2];
1763 const uint &j = v[3];
1764 const uint &p = v[4];
1765 const uint &q = v[5];
1766
1767 res.setMatrixElement(
QCD1,
QED2, a, b, res.getOrd(
QCD1,
QED2)(a, b) + omega * lambda * lambda * itr->second *
f_h(nnf, i, p, q, j, 1, 1, -1, eta));
1768 }
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1810 {
1811 if (fabs(res.getOrd(
QCD0,
QED0)(a, b)) < EPS) res.setMatrixElement(
QCD0,
QED0, a, b, 0.);
1812 if (fabs(res.getOrd(
QCD1,
QED0)(a, b)) < EPS) res.setMatrixElement(
QCD1,
QED0, a, b, 0.);
1813 if (fabs(res.getOrd(
QCD2,
QED0)(a, b)) < EPS) res.setMatrixElement(
QCD2,
QED0, a, b, 0.);
1814 if (fabs(res.getOrd(
QCD0,
QED1)(a, b)) < EPS) res.setMatrixElement(
QCD0,
QED1, a, b, 0.);
1815 if (fabs(res.getOrd(
QCD0,
QED2)(a, b)) < EPS) res.setMatrixElement(
QCD0,
QED2, a, b, 0.);
1816 if (fabs(res.getOrd(
QCD1,
QED1)(a, b)) < EPS) res.setMatrixElement(
QCD1,
QED1, a, b, 0.);
1817 if (fabs(res.getOrd(
QCD1,
QED2)(a, b)) < EPS) res.setMatrixElement(
QCD1,
QED2, a, b, 0.);
1818 if (fabs(res.getOrd(
QCD2,
QED1)(a, b)) < EPS) res.setMatrixElement(
QCD2,
QED1, a, b, 0.);
1819 }
1820 } else
1823 {
1824 if (fabs(res.getOrd(
QCD0,
QED0)(a, b)) < EPS) res.setMatrixElement(
QCD0,
QED0, a, b, 0.);
1825 if (fabs(res.getOrd(
QCD1,
QED0)(a, b)) < EPS) res.setMatrixElement(
QCD1,
QED0, a, b, 0.);
1826 if (fabs(res.getOrd(
QCD2,
QED0)(a, b)) < EPS) res.setMatrixElement(
QCD2,
QED0, a, b, 0.);
1827 }
1828
1830}
double f_h(uint nf, uint i, uint p, uint q, uint j, int k, int l, int m, double eta)
auxiliary function h - eq. (53) of Huber, Lunghi, Misiak, Wyler, hep-ph/0512066
double f_f(uint nf, uint i, uint j, int k, double eta)
auxiliary function f - eq. (50) of Huber, Lunghi, Misiak, Wyler, hep-ph/0512066
double f_r(uint nf, uint i, uint j, int k, double eta)
auxiliary function r - eq. (51) of Huber, Lunghi, Misiak, Wyler, hep-ph/0512066
double f_g(uint nf, uint i, uint p, uint j, int k, int l, double eta)
auxiliary function g - eq. (52) of Huber, Lunghi, Misiak, Wyler, hep-ph/0512066
const double Ale(double mu, orders order, bool Nf_thr=true) const
The running electromagnetic coupling in the scheme.
const double Als(const double mu, const orders order, const bool Nf_thr, const bool qed_flag) const
The running QCD coupling in the scheme including QED corrections.
Expanded< gslpp::matrix< double > > wilson