ebook img

CRunDec: a C++ package for running and decoupling of the strong coupling and quark masses PDF

0.11 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview CRunDec: a C++ package for running and decoupling of the strong coupling and quark masses

SFB/CPP-12-03 TTP12-02 CRunDec: a C++ package for running and decoupling of the strong coupling and quark masses 2 Barbara Schmidt and Matthias Steinhauser 1 0 Institut fu¨r Theoretische Teilchenphysik 2 Karlsruhe Institute of Technology (KIT) n a 76128 Karlsruhe, Germany J 0 3 ] h p Abstract - p In this paper we present the C++ package CRunDec which implements all relevant formulae e h needed for the running and decoupling for the strong coupling constant and light quark [ masses. Furthermore, several formulae are implemented which can be used to transform the 1 heavy quark masses among different renormalization schemes. CRunDec is the C++ version v on the Mathematica package RunDec containing several updates and improvements. 9 4 PACS numbers: 12.38.-t 12.38.Bx 14.65.-q 1 6 . 1 0 2 1 : v i X r a Preprint submitted to Elsevier Program summary Title of program: CRunDec Available from: http://www-ttp.physik.uni-karlsruhe.de/Progdata/ttp12/ttp12-02/ Computer for which the program is designed and others on which it is operable: Any computer where a C++ compiler is running. Operating system or monitorunder whichthe program has been tested: Linux, Windows No. of bytes in distributed program including test data etc.: 85000 Distribution format: source code Keywords: Quantum Chromodynamics, running coupling constant, running quark mass, on-shell mass, MS mass, decoupling of heavy particles Nature of physical problem: The value for the coupling constant of Quantum Chro- modynamics, α(nf)(µ), depends on the considered energy scale, µ, and the number of s active quarkflavours, n . Thesameapplies tolight quarkmasses, m(nf)(µ), iftheyare, f q e.g., evaluated in the MS scheme. In the program CRunDec all relevant formulae are collected and various procedures are provided which allow for a convenient evaluation of α(nf)(µ) and m(nf)(µ) using the state-of-the-art correction terms. s q Method of solution: CRunDec is implemented in C++. For the solution of the differential equations an adaptive Runge-Kutta procedure has been implemented. Restrictions on the complexity of the problem: It could bethat for anunphysical choice of the input parameters the results are nonsensical. Typical running time: In general the run time for the individual operations is below a millisecond. 1. Introduction Among the fundamental quantities of Quantum Chromodynamics there are certainly the anomalous dimensions which control the scale dependence of the parameters and fields. In this context a particular role is taken over by the beta function and anomalous mass dimension in the MS scheme which govern the running of the strong coupling constant α s and the quark masses m . Every time a flavour threshold is crossed in the running process q decoupling relations have to be applied which guarantee that the heavy quark is integrated out from the theory. More than ten years ago the Mathematica package RunDec has been written [1] which incorporates all relevant formulae. However, for many application it is more convenient to have the running and decoupling routines available in the framework of 2 a commonly used programming language and not within a computer algebra system. Thus we have decided to convert the most important routines to C++ adding at the same time new routines and improving others w.r.t. the Mathematica version. In what follows we describe the C++ file CRunDec which constitutes a C++ class and contains the functions known from RunDec as public components. The use of CRunDec does not require any knowledge about object oriented programming. The following skeletons exemplify the usage and can easily be adapted to the problem at hand. It is possible to work with pointers to an object of the type CRunDec and access the member functions correspondingly: #include <iostream> #include "CRunDec.h" using namespace std; int main(){ CRunDec * <pointer> = new CRunDec(); double <result> = <pointer> -> <function>(<parameters>); return(0); } Alternatively also the following realization is possible: #include <iostream> #include "CRunDec.h" using namespace std; int main(){ CRunDec <object>; double <result> = <object>.<function>(<parameters>); return(0); } Explicit examples will be given below. The remainder of the paper is organized as follows: In the next Section all available functions are described, Section 3 contains typical examples which exemplify the usage of CRunDec. 2. Structure of CRunDec All public components of the C++ class CRunDec consist of functions which have the same name as the corresponding function in the Mathematica version [1]. In the following we list the function header (including the variable names; see also Tab. 1) which — together with the description in the Appendix of Ref. [1] — specifies both the usage and the purpose of the function. There are some additions implemented in CRunDec which are also described. Let us mention that all functions listed in Subsections 2.2–2.4 are overloaded w.r.t. the argument n (number of active flavours). I.e., this argument can be omitted in case n is f f 3 symbol in C++ code mathematical symbol meaning asmu, asmu0, asmu1 α (µ), α (µ ), α (µ ) strong coupling constant s s 0 s 1 mq, mq0 m (µ), m (µ ) MS quark mass q q 0 mOS, mMS M , m on-shell and MS quark mass q q mRI mRI regularization invariant mass mRGI mˆ renormalization group invariant mass Mth M heavy quark mass th mu, mu0, mu1 µ, µ , µ renormalization scale 0 1 muth µ decoupling scale th nf n number of active flavours f nloops — number of loops Table 1: Meaning of the variables used in the function headers. specified in the declaration of the CRunDec object (see also examples in Section 3). In this context two auxiliary functions are quite useful: GetNf() returns the specified number of active flavours and SetNf(int nf) can be used to set the number of active flavours. 2.1. Input parameters For convenience of the user some frequently used input parameters are pre-defined in the file CRunDec.h and can be used during the calculation. They read [2, 3, 4, 5] #define asMz 0.1183 #define Mz 91.18 #define Mt 173.2 #define Mb 4.8 #define Mc 1.5 #define muc 1.279 #define mub 4.163 #define Mtau 1.777 If not stated otherwise these numbers are used in the examples presented in Section 3. In case other numerical values shall be used it is straightforward to redefine the preprocessor variables. The examples given in the appendix of Ref. [1] can be reproduced with #define asMz 0.118 #define Mz 91.18 #define Mt 175. #define Mb 4.7 #define Mc 1.6 #define muc 1.2 #define mub 3.97 #define Mtau 1.777 4 2.2. Functions related to the running of α and m s q • double LamExpl(double asmu, double mu, int nf, int nloops); • double LamImpl(double asmu, double mu, int nf, int nloops); • double AlphasLam(double Lambda, double mu, int nf, int nloops); • double AlphasExact(double asmu0, double mu0, double mu1, int nf, int nloops); • double mMS2mMS(double mq0, double asmu0, double asmu1, int nf, int nloops); • AsmMS AsmMSrunexact(double mq0, double asmu0, double mu0, double mu, int nf, int nloops); The function AsmMSrunexact is new in CRunDec. It solves simultaneously the differential equations for α and m with initial values m (µ ) and α (µ ) and n active quark flavours. s q q 0 s 0 f ThereturntypeofAsmMSrunexact isastructwithtwodoublecomponents, α (µ)andm (µ). s q The corresponding code in CRunDec looks as follows: struct AsmMS { double Asexact; double mMSexact; }; For convenience of the user there is a pre-defined variable AsmMS AM. Both components of AM are initialized to zero when creating a CRunDec object. 2.3. Functions relating different mass definitions • double mOS2mMS(double mOS, double mq[], double asmu, double mu, int nf, int nloops); • double mMS2mOS(double mMS, double mq[], double asmu, double mu, int nf, int nloops); • double mOS2mMSrun(double mOS, double mq[], double asmu, double mu, int nf,int nloops); • double mMS2mOSrun(double mMS, double mq[], double asmu, double mu, int nf,int nloops); • double mOS2mMSit(double mOS, double mq[], double asmu, double mu, int nf,int nloops); • double mOS2mSI(double mOS, double mq[], double asM, int nf, int nloops); 5 • double mMS2mSI(double mMS, double asmu, double mu, int nf, int nloops); • double mMS2mRI(double mMS, double asmu, int nf, int nloops); • double mRI2mMS(double mRI, double asmu, int nf, int nloops);1 • double mMS2mRGI(double mMS, double asmu, int nf, int nloops); • double mRGI2mMS(double mRGI, double asmu, int nf, int nloops); • double mMS2mRGImod(double mMS, double asmu, int nf, int nloops); Note that the light-quark-mass effects can be taken into account with the help of the array mq[] which is defined as double mq[4]; By default all elements of mq[] are zero. In case non-zero values are needed the array has to be filled before the corresponding function is called. In CRunDec the implementation of mMS2mSI has been modified as compared to the Mathematica version. It is now based on AsmMSrunexact and avoids the computation of Λ in intermediate steps which is perturbatively morestable, inparticular forlower renor- QCD malization scales. Similar modifications have been performed in mMS2mOSrun. The function mMS2mRGImod is new in CRunDec. It is defined in analogy to mMS2mRGI, however, the more commonly used convention has been adopted where the function c(x) in Eq. (11) of Ref. [1] is evaluated for x = 2β α /π instead of x = α /π. 0 s s 2.4. Functions related to the decoupling of heavy quarks As compared to the Mathematica version CRunDec contains the decoupling relations only for the case of on-shell heavy quarks which are most relevant for the practical purposes. Furthermore, the functions DecLambdaUp and DecLambdaDown have not been implemented in the C++ version since it is recommended to use AlL2AlH and AlH2AlL in case a flavour threshold is crossed during the running of α . s • double DecAsDownOS(double asmu, double Mth, double muth, int nf, int nloops); • double DecAsUpOS(double asmu, double Mth, double muth, int nf, int nloops); • double DecMqDownOS(double mq, double asmu, double Mth, double muth, int nf, int nloops); 1Note a typo in the example to mRI2mMS in the Appendix of Ref. [1]: mRI2mMS[175,0.107,175,6,3] should read mRI2mMS[175,0.107,6,3]. 6 • double DecMqUpOS(double mq, double asmu, double Mth, double muth, int nf, int nloops); In CRunDec the functions DecAsDownOS and DecAsUpOS also contain the four-loop decou- pling relations which have been computed in Refs. [6, 7]. Note that in the functions of this subsection the parameters n refers to the number of flavours in the effective theory [1]. f 2.5. Functions related to the combination of running and decoupling • double AlL2AlH(double asmu0, double mu0, TriplenfMmu decpar[], double mu1, int nloops); • double AlH2AlL(double asmu0, double mu0, TriplenfMmu decpar[], double mu1, int nloops); • double mL2mH(double mq0, double asmu0, double mu0, TriplenfMmu decpar[], double mu1, int nloops); • double mH2mL(double mq0, double asmu0, double mu0, TriplenfMmu decpar[], double mu1, int nloops); The parameters governing the decoupling are contained in the array decpar[] where each element contains the triple {n ,M ,µ } which is realized in the structure f th th struct TriplenfMmu { int nf; double Mth; double muth; }; There is a pre-defined variable TriplenfMmu nfMmu[4]; which can be used when calling the above functions. Note that the components of decpar are set to zero at the end of the above functions. In CRunDec we refrain to implement the function AsRunDec which automatically deter- mines the number of active flavours for the initial and final energy scale and performs the corresponding running and decoupling steps. In practice it turns out that the decoupling of the heavy quark with mass M at the scale µ = M is not convenient for all applications. th th th Furthermore, there are ambiguities as far as the number of active flavours is concerned in case α (M ) has to be evaluated using AsRunDec. Thus, it is recommended to use AlL2AlH s th and AlH2AlL instead. 3. Typical examples In this section we present some typical examples which exemplify the usage of CRunDec. In the following we only display the part of the code related to CRunDec; the complete programs can be found in the file example.cc which comes together with CRunDec. 7 Running of α from M to M with five active flavours s t b It is either possible to create a CRunDec object where five active flavours are already specified CRunDec* pObjnf5 = new CRunDec(5); or leave n unspecified f CRunDec* pObj = new CRunDec(); In the former case α(5)(M ) is computed from α(5)(M ) = 0.108 via s b s t pObjnf5 -> AlphasExact(0.108,Mz,Mb,4); whereas in the latter case one has pObj -> AlphasExact(0.108,Mz,Mb,5,4); In both evaluations four-loop accuracy is assumed leading to the result α(4)(M ) = 0.183. s b The number of active flavours for the object pObjnf5 can be obtained with the help of pObjnf5 -> GetNf(); and pObj -> SetNf(5); sets n = 5 for pObj. f Compute α(5)(M ) from α(3)(M ) s Z s τ Assuming avalueofthestrongcouplingasextractedformτ decayasα(3)(M ) = 0.332[8] s τ the task is the computation of α(5)(M ). If the decoupling of the charm and bottom quark s Z is performed for µ = 2M and µ = M , respectively, one has to specify th c th b CRunDec crundec; crundec.nfMmu[0].nf = 4; crundec.nfMmu[0].Mth = Mc; crundec.nfMmu[0].muth = 2*Mc; crundec.nfMmu[1].nf = 5; crundec.nfMmu[1].Mth = Mb; crundec.nfMmu[1].muth = Mb; Afterwards α(5)(M ) is computed via s Z crundec.AlL2AlH(0.332, Mtau,crundec.nfMmu,Mz,4); where four-loop accuracy for the running (corresponding to three-loop decoupling relations) has been assumed. As a result one obtains α(5)(M ) = 0.1200. s Z 8 Compute m (m ) from m (10 GeV) b b b InRef.[2]theMSbottomquarkmasshasbeenextractedforµ = 10GeVasm (10GeV) = b 3.610±0.016 GeV. The scale-invariant mass m (m ) can been computed with four-loop ac- b b curacy via CRunDec cmpasmb(5); double asmu = cmpasmb.AlphasExact(0.1189,Mz,10,4); cmpasmb.mMS2mSI(3.610,asmu,10,5,4); where α(5)(M ) = 0.1189 has been used. The result reads m (m ) = 4.163 GeV. In the s Z b b Mathematica version of RunDec it is not recommended to use mMS2mSI since in intermediate steps Λ is used and thus the final result does not have the required precision. QCD Compute m (m ) from the top quark on-shell mass t t The on-shell top quark mass has been measured at the Tevatron experiments D0 and CDF to M = 173.2±0.9 GeV [4]. If this value shall be transformed to m (m ) one proceeds t t t in the following way CRunDec cmpmt(6); double MtOS = 173.2; cmpmt.nfMmu[0].nf = 6; cmpmt.nfMmu[0].Mth = MtOS; cmpmt.nfMmu[0].muth = MtOS; double as6Mt = cmpmt.AlL2AlH(asMz,Mz,cmpmt.nfMmu,MtOS,4); double mtMt = cmpmt.mOS2mMS(MtOS,cmpmt.mq,as6Mt,MtOS,3); double mtmt = cmpmt.mMS2mSI(mtMt,as6Mt,MtOS,4); The final result reads m (m ) = 164.0 GeV. t t Compute on-shell charm and bottom quark mass from m (m ) and m (m ) c c b b After defining a pointer (pObjnf5) to a CRunDec object with five active flavours (as in the example above) one obtains α(5)(m (m )) via s b b double alpha5mub = pObjnf5 -> AlphasExact(asMz, Mz, mub, 4); and subsequently the on-shell mass M with two and three-loop accuracy with the help of b double mbOS2 = pObjnf5 -> mMS2mOS(mub, pObjnf5->mq, alpha5mub, mub, 2); double mbOS3 = pObjnf5 -> mMS2mOS(mub, pObjnf5->mq, alpha5mub, mub, 3); The results read M = 4.762 GeV and M = 4.909 GeV, respectively. b b In the case of the charm quark one proceeds in analogy by evaluating in a first step α(4)(m (m )) s c c 9 pObjnf5 -> nfMmu[0].nf = 4; pObjnf5 -> nfMmu[0].Mth = Mc; pObjnf5 -> nfMmu[0].muth = 2*Mc; double alpha4muc = pObjnf5 -> AlH2AlL(asMz, Mz, pObjnf5 -> nfMmu, mub, 4); and afterwards the on-shell mass M to two and three loops c double mcOS2 = pObjnf5 -> mMS2mOS(muc, pObjnf5->mq, alpha4muc, muc, 2); double mcOS3 = pObjnf5 -> mMS2mOS(muc, pObjnf5->mq, alpha4muc, muc, 3); leading to M = 1.494 GeV and M = 1.573 GeV. c c Acknowledgements We thank Konstantin Chetyrkin and Johann Ku¨hn for discussions and useful comments. This work was supported by the BMBF through Grant No. 05H09VKE. References References [1] K. G. Chetyrkin, J. H. Ku¨hn and M. Steinhauser, Comput. Phys. Commun. 133 (2000) 43 [arXiv:hep-ph/0004189]. [2] K. G. Chetyrkin, J. H. Ku¨hn, A. Maier, P. Maierhofer, P. Marquard, M. Steinhauser and C. Sturm, Phys. Rev. D 80 (2009) 074010 [arXiv:0907.2110[hep-ph]]. [3] K. Nakamura et al. [Particle Data Group], J. Phys. G 37 (2010) 075021. [4] M. Lancaster [Tevatron Electroweak Working Group and for the CDF and D0 Collaborations], arXiv:1107.5255[hep-ex]. [5] S. Bethke, A. H. Hoang, S. Kluth, J. Schieck, I. W. Stewart, S. Aoki, M. Beneke and S. Bethke et al., arXiv:1110.0016[hep-ph]. [6] Y. Schr¨oder and M. Steinhauser, JHEP 0601 (2006) 051 [arXiv:hep-ph/0512058]. [7] K. G. Chetyrkin, J. H. Ku¨hn and C. Sturm, Nucl. Phys. B 744 (2006) 121 [arXiv:hep-ph/0512060]. [8] P. A. Baikov, K. G. Chetyrkin and J. H. Ku¨hn, Phys. Rev. Lett. 101 (2008) 012002 [arXiv:0801.1821 [hep-ph]]. 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.