From 447c61edc78fe79d394ed6af5939010e787c8421 Mon Sep 17 00:00:00 2001 From: niccolo Date: Wed, 27 Mar 2024 14:38:50 +0100 Subject: [PATCH 1/6] Implement new approx for a_Qg_30 --- src/MatchingCondition.cc | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/MatchingCondition.cc b/src/MatchingCondition.cc index 1b3c139..19b764b 100644 --- a/src/MatchingCondition.cc +++ b/src/MatchingCondition.cc @@ -39,13 +39,13 @@ MatchingCondition::MatchingCondition( entry2_ = entry2; // check version - if (version != "exact" && version != "improved" && version != "original") { - cout << "Error: version must be 'exact', 'improved' or 'original'! Got " + if (version != "exact" && version != "improved" && version != "original" && version != "blumline") { + cout << "Error: version must be 'exact', 'improved', 'blumline' or 'original'! Got " << version << endl; exit(-1); } - if (entry2 == 'q' && version == "improved") { + if (entry2 == 'q' && (version == "improved" || version == "blumline")) { cout << "Error: quark channel doesn't have 'improved' version!" << endl; exit(-1); } @@ -75,6 +75,10 @@ Value MatchingCondition::MuIndependentNfIndependentTerm(double x) const { int low_id; if (version_ == "exact") return Value(a_Qg_30(x, 0)); + else if (version_ == "blumline") + // This version doesn't have an uncertainty band + // so returning the same value three times + return Value(a_Qg_30(x, 2)); else if (version_ == "improved") low_id = -1; else @@ -284,9 +288,19 @@ double MatchingCondition::a_Qg_30(double x, int v) const { -2658.323 * L12 - 7449.948 * L1 - 7460.002 * (2. - x) + 3178.819 * L2 + 4710.725 / x + 1548.891 / x * L ); + } else if (v == 2) { + double L14 = L13 * L1; + double L15 = L14 * L1; + double L3 = L2 * L; + double L4 = L3 * L; + double L5 = L4 * L; + return - 5882.68 + 8956.65 / x + 10318.5 * x - 8363.19 * x * x + 737.165 * L1 + - 332.537 * L12 + 4.3802 * L13 - 8.20988 * L14 + 3.7037 * L15 + 11013.4 * L + + (1548.89 * L) / x + 6558.74 * x * L - 720.048 * L2 + 514.091 * L3 - 21.7593 * L4 + + 4.84444 * L5 - 274.207 * (-L1 + L) - 274.207 * (-1 + x - x * L1 + x * L); } else { cout << "Error in MatchingCondition::a_Qg_30: Choose either v=0, v=1, " - "v=-1 or v=-12" + "v=-1, v=-12 or v=2" << endl; exit(-1); } From f10a2728bffd763ac16d964b817d3516d86201f5 Mon Sep 17 00:00:00 2001 From: niccolo Date: Wed, 27 Mar 2024 14:41:06 +0100 Subject: [PATCH 2/6] add dacs --- src/MatchingCondition.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/MatchingCondition.cc b/src/MatchingCondition.cc index 19b764b..4bbdbcd 100644 --- a/src/MatchingCondition.cc +++ b/src/MatchingCondition.cc @@ -254,8 +254,9 @@ vector MatchingCondition::NotOrdered(double x) const { // // v = 0 : exact result // v = 1 : Eq. (3.49) of Ref. [arXiv:1205.5727] -// v = 2 : Eq. (16) Ref. of [arXiv:1701.05838] +// v = -1 : Eq. (16) Ref. of [arXiv:1701.05838] // v = -12 : Eq. (3.50) of Ref. [arXiv:1205.5727] +// v = 2 : approximation from [arXiv:2403.00513] //------------------------------------------------------------------------------------------// double MatchingCondition::a_Qg_30(double x, int v) const { From c6ad656d78e8e89dafb9006df45f78c0bcb49227 Mon Sep 17 00:00:00 2001 From: niccolo Date: Wed, 27 Mar 2024 14:43:23 +0100 Subject: [PATCH 3/6] Add roba --- src/MatchingCondition.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MatchingCondition.cc b/src/MatchingCondition.cc index 4bbdbcd..e742940 100644 --- a/src/MatchingCondition.cc +++ b/src/MatchingCondition.cc @@ -46,7 +46,7 @@ MatchingCondition::MatchingCondition( } if (entry2 == 'q' && (version == "improved" || version == "blumline")) { - cout << "Error: quark channel doesn't have 'improved' version!" << endl; + cout << "Error: quark channel doesn't have 'improved' or 'blumline' version!" << endl; exit(-1); } From 0a3b3ae9fdb0bc8caba02c92db1004b8e0723ff6 Mon Sep 17 00:00:00 2001 From: niccolo Date: Wed, 27 Mar 2024 16:09:58 +0100 Subject: [PATCH 4/6] Add commented stuff --- src/HighEnergyCoefficientFunction.cc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/HighEnergyCoefficientFunction.cc b/src/HighEnergyCoefficientFunction.cc index f658389..80c3137 100644 --- a/src/HighEnergyCoefficientFunction.cc +++ b/src/HighEnergyCoefficientFunction.cc @@ -225,6 +225,31 @@ Value PowerTermsCoefficientFunction::fxBand( return Value(central, lower, higher); } +// In this way the error is enormous + +// Value PowerTermsCoefficientFunction::fxBand( +// double x, double m2Q2, double m2mu2, int nf +// ) const { + +// double central = (highenergy_->fx(x, m2Q2, m2mu2, nf)) +// - (highenergyhighscale_->fx(x, m2Q2, m2mu2, nf)); + +// vector tmp1 = highenergy_->fxBand(x, m2Q2, m2mu2, nf).ToVect(); +// vector tmp2 = highenergyhighscale_->fxBand(x, m2Q2, m2mu2, nf).ToVect(); + +// double tmp, higher = central, lower = central; +// for(double he : tmp1) { +// for (double hehs : tmp2) { +// tmp = he - hehs; + +// if(tmp > higher) higher = tmp; +// if(tmp < lower) lower = tmp; +// } +// } + +// return Value(central, higher, lower); +// } + //==========================================================================================// // High energy limit of the gluon coefficient function for F2 at O(as^2). // From dbff1afc70e7cda212fd96da98944c5c5fbdfd8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Laurenti?= Date: Wed, 27 Mar 2024 16:20:57 +0100 Subject: [PATCH 5/6] Call clang-format --- src/MatchingCondition.cc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/MatchingCondition.cc b/src/MatchingCondition.cc index e742940..17c136d 100644 --- a/src/MatchingCondition.cc +++ b/src/MatchingCondition.cc @@ -39,14 +39,18 @@ MatchingCondition::MatchingCondition( entry2_ = entry2; // check version - if (version != "exact" && version != "improved" && version != "original" && version != "blumline") { - cout << "Error: version must be 'exact', 'improved', 'blumline' or 'original'! Got " + if (version != "exact" && version != "improved" && version != "original" + && version != "blumline") { + cout << "Error: version must be 'exact', 'improved', 'blumline' or " + "'original'! Got " << version << endl; exit(-1); } if (entry2 == 'q' && (version == "improved" || version == "blumline")) { - cout << "Error: quark channel doesn't have 'improved' or 'blumline' version!" << endl; + cout << "Error: quark channel doesn't have 'improved' or 'blumline' " + "version!" + << endl; exit(-1); } @@ -295,10 +299,12 @@ double MatchingCondition::a_Qg_30(double x, int v) const { double L3 = L2 * L; double L4 = L3 * L; double L5 = L4 * L; - return - 5882.68 + 8956.65 / x + 10318.5 * x - 8363.19 * x * x + 737.165 * L1 - - 332.537 * L12 + 4.3802 * L13 - 8.20988 * L14 + 3.7037 * L15 + 11013.4 * L - + (1548.89 * L) / x + 6558.74 * x * L - 720.048 * L2 + 514.091 * L3 - 21.7593 * L4 - + 4.84444 * L5 - 274.207 * (-L1 + L) - 274.207 * (-1 + x - x * L1 + x * L); + return -5882.68 + 8956.65 / x + 10318.5 * x - 8363.19 * x * x + + 737.165 * L1 - 332.537 * L12 + 4.3802 * L13 - 8.20988 * L14 + + 3.7037 * L15 + 11013.4 * L + (1548.89 * L) / x + + 6558.74 * x * L - 720.048 * L2 + 514.091 * L3 - 21.7593 * L4 + + 4.84444 * L5 - 274.207 * (-L1 + L) + - 274.207 * (-1 + x - x * L1 + x * L); } else { cout << "Error in MatchingCondition::a_Qg_30: Choose either v=0, v=1, " "v=-1, v=-12 or v=2" From 1e7f4952e4e2c6a60528d0b3c37a013f5a3d8267 Mon Sep 17 00:00:00 2001 From: niccolo Date: Wed, 27 Mar 2024 17:35:53 +0100 Subject: [PATCH 6/6] Add commented parts --- src/HighEnergyCoefficientFunction.cc | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/HighEnergyCoefficientFunction.cc b/src/HighEnergyCoefficientFunction.cc index 80c3137..0d5edb7 100644 --- a/src/HighEnergyCoefficientFunction.cc +++ b/src/HighEnergyCoefficientFunction.cc @@ -209,7 +209,7 @@ Value PowerTermsCoefficientFunction::fxBand( double x, double m2Q2, double m2mu2, int nf ) const { // TODO: in this way the error is very small: should take all the - // combinations + // combinations? double central = (highenergy_->fx(x, m2Q2, m2mu2, nf)) - (highenergyhighscale_->fx(x, m2Q2, m2mu2, nf)); double higher = @@ -234,6 +234,30 @@ Value PowerTermsCoefficientFunction::fxBand( // double central = (highenergy_->fx(x, m2Q2, m2mu2, nf)) // - (highenergyhighscale_->fx(x, m2Q2, m2mu2, nf)); +// Value tmp1 = highenergy_->fxBand(x, m2Q2, m2mu2, nf); +// Value tmp2 = highenergyhighscale_->fxBand(x, m2Q2, m2mu2, nf); + +// double delta_he_up = tmp1.GetHigher() - tmp1.GetCentral(); +// double delta_he_down = tmp1.GetCentral() - tmp1.GetLower(); + +// double delta_hehs_up = tmp2.GetHigher() - tmp2.GetCentral(); +// double delta_hehs_down = tmp2.GetCentral() - tmp2.GetLower(); + +// double err_up = sqrt(delta_he_up*delta_he_up + delta_hehs_up*delta_hehs_up); +// double err_down = sqrt(delta_he_down*delta_he_down + delta_hehs_down*delta_hehs_down); + +// return Value(central, central + err_up, central - err_down); +// } + +// In this way the error is enormous + +// Value PowerTermsCoefficientFunction::fxBand( +// double x, double m2Q2, double m2mu2, int nf +// ) const { + +// double central = (highenergy_->fx(x, m2Q2, m2mu2, nf)) +// - (highenergyhighscale_->fx(x, m2Q2, m2mu2, nf)); + // vector tmp1 = highenergy_->fxBand(x, m2Q2, m2mu2, nf).ToVect(); // vector tmp2 = highenergyhighscale_->fxBand(x, m2Q2, m2mu2, nf).ToVect();