10 #include <generators/evtgen/models/EvtBCLFF.h>
11 #include <generators/evtgen/EvtGenInterface.h>
12 #include <framework/utilities/FileSystem.h>
14 #include <EvtGenBase/EvtId.hh>
15 #include <EvtGenBase/EvtPDL.hh>
17 #include <gtest/gtest.h>
28 class EvtBCLFFTest :
public ::testing::Test {
54 EvtId B0 = EvtPDL::getId(
"B0");
55 EvtId M = EvtPDL::getId(
"pi+");
56 const auto mB = EvtPDL::getMeanMass(B0);
57 const auto mB2 = mB * mB;
58 const auto mM = EvtPDL::getMeanMass(M);
59 const auto mM2 = mM * mM;
60 const auto q2min = 0.0;
61 const auto q2max = mB2 + mM2 - 2 * mB * mM;
64 double arguments[] = {0.419, -0.495, -0.43, 0.22, 0.510, -1.700, 1.53, 4.52};
66 EvtBCLFF bclff(nArguments, arguments);
71 bclff.getscalarff(B0, M, q2min, 0, &fplus, &fzero);
73 ASSERT_NEAR(0.253, fplus, 0.003);
74 ASSERT_NEAR(0.253, fzero, 0.003);
76 bclff.getscalarff(B0, M, q2max, 0, &fplus, &fzero);
78 ASSERT_NEAR(7.620, fplus, 0.003);
79 ASSERT_NEAR(1.006, fzero, 0.003);
85 TEST_F(EvtBCLFFTest, Vector)
87 EvtId B0 = EvtPDL::getId(
"B0");
88 EvtId M = EvtPDL::getId(
"rho+");
89 const auto mB = EvtPDL::getMeanMass(B0);
90 const auto mB2 = mB * mB;
91 const auto mM = EvtPDL::getMeanMass(M);
92 const auto mM2 = mM * mM;
93 const auto q2min = 0.0;
94 const auto q2max = mB2 + mM2 - 2 * mB * mM;
97 double arguments[] = { -0.833, 1.331, 0.262, 0.394, 0.163, 0.297, 0.759, 0.465, 0.327, -0.86 , 1.802};
99 EvtBCLFF bclFF(nArguments, arguments);
106 bclFF.getvectorff(B0, M, q2min, 0, &A1, &A2, &V, &A0);
108 ASSERT_NEAR(0.356, A0, 0.003);
109 ASSERT_NEAR(0.262, A1, 0.003);
110 ASSERT_NEAR(0.327, V, 0.003);
112 bclFF.getvectorff(B0, M, q2max, 0, &A1, &A2, &V, &A0);
114 ASSERT_NEAR(2.123, A0, 0.003);
115 ASSERT_NEAR(0.497, A1, 0.003);
116 ASSERT_NEAR(2.014, V, 0.003);