Bug Summary

File:generators/kkmc/tauola/IBSD_LHN.cc
Warning:line 69, column 16
Value stored to 'PkPnu_sq' during its initialization is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-unknown-linux-gnu -O3 -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name IBSD_LHN.cc -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=cplusplus -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/data/b2soft/buildbot/development/build -fcoverage-compilation-dir=/data/b2soft/buildbot/development/build -resource-dir /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/lib/clang/21 -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/include/c++ -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/include/c++/x86_64-redhat-linux -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/include/c++/backward -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/include -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/include/python3.12 -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/include/CLHEP -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/include/Geant4 -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/include -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/include/root -isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/include/belle_legacy -I include/ -D _PACKAGE_="generators" -D G4UI_USE_TCSH -D RaveDllExport= -D HAS_SQLITE -D HAS_CALLGRIND -I include -I /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/include/libxml2 -internal-isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/bin/../lib64/gcc/x86_64-redhat-linux/15.2.0/../../../../include/c++ -internal-isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/bin/../lib64/gcc/x86_64-redhat-linux/15.2.0/../../../../include/c++/x86_64-redhat-linux -internal-isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/bin/../lib64/gcc/x86_64-redhat-linux/15.2.0/../../../../include/c++/backward -internal-isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/lib/clang/21/include -internal-isystem /usr/local/include -internal-isystem /cvmfs/belle.cern.ch/el9/externals/v02-04-01/Linux_x86_64/common/bin/../lib64/gcc/x86_64-redhat-linux/15.2.0/../../../../x86_64-redhat-linux/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-missing-braces -Wno-unused-command-line-argument -std=c++20 -fdeprecated-macro -ferror-limit 19 -fgnuc-version=4.2.1 -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -vectorize-loops -vectorize-slp -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /scan_build/2026-06-21-004344-2340617-1 -x c++ generators/kkmc/tauola/IBSD_LHN.cc
1#include <TDatabasePDG.h>
2#include <math.h>
3#include <cstdlib>
4#include <cstdio>
5#include <iostream>
6#include <cmath>
7#include <complex>
8
9extern "C" void pigamma_left_(//const double& Mtau, const double& Mpi, const double& m_rho, const double& Gamma_rho,const double& m_a1,const double& Gamma_a1,
10 const double& CV_LL, const double& CV_LR, const double& CS_RL, const double& CS_RR,
11 const int& ONOF_IB, const int& ONOF_V, const int& ONOF_A,
12 const double *ptau, const double *pnu, const double *ppi, const double *k, double &omega, double *hj);
13
14
15void pigamma_left_(//const double& Mtau, const double& Mpi, const double& m_rho, const double& Gamma_rho,const double& m_a1,const double& Gamma_a1,
16 const double& CV_LL, const double& CV_LR, const double& CS_RL, const double& CS_RR,
17 const int& ONOF_IB, const int& ONOF_V, const int& ONOF_A,
18 const double* ptau, const double* pnu, const double* ppi, const double* k, double& omega, double* hj)
19{
20
21 // Physical constants
22 //const double Mtau = 1.77693; // PDG
23 const double Mtau = TDatabasePDG::Instance()->GetParticle("tau+")->Mass();
24 //const double Mpi = 0.139568; // PDG
25 const double Mpi = TDatabasePDG::Instance()->GetParticle("pi+")->Mass();
26 //const double m_rho = 0.7749; // Belle, PRD 78, 2008, 072006
27 const double m_rho = TDatabasePDG::Instance()->GetParticle("rho+")->Mass();
28 //const double Gamma_rho = 0.1486;
29 const double Gamma_rho = TDatabasePDG::Instance()->GetParticle("rho+")->Width();
30 //const double m_a1 = 1.23; // COMPASS Phys.Rev.D 98 (2018) 9, 092003
31 const double m_a1 = TDatabasePDG::Instance()->GetParticle("a_1+")->Mass();
32 //const double Gamma_a1 = 0.38;
33 const double Gamma_a1 = TDatabasePDG::Instance()->GetParticle("a_1+")->Width();
34 //const double M_u = 2.16e-3; // Mass of up quark in GeV
35 const double M_u = TDatabasePDG::Instance()->GetParticle("u")->Mass();
36 //const double M_d = 4.67e-3; // Mass of down quark in GeV
37 const double M_d = TDatabasePDG::Instance()->GetParticle("d")->Mass();
38 const double M_Borel = 3.35; // arXiv:2010.00549 [hep-ph]
39 const double f_pi = 0.092;
40
41 // Wilson coefficients (real as requested)
42 // const double CV_LL = 0.0;
43 // const double CV_LR = 0.0;
44 // const double CS_RL = 0.0;
45 // const double CS_RR = 0.0;
46 const std::complex<double> I(0.0, 1.0);
47
48 // Compute scalar products using Minkowski metric
49 const double PpiPtau = ptau[3] * ppi[3] - ptau[2] * ppi[2] - ptau[1] * ppi[1] - ptau[0] * ppi[0];
50 const double PnuPpi = pnu[3] * ppi[3] - pnu[2] * ppi[2] - pnu[1] * ppi[1] - pnu[0] * ppi[0];
51 const double PnuPtau = ptau[3] * pnu[3] - ptau[2] * pnu[2] - ptau[1] * pnu[1] - ptau[0] * pnu[0];
52 const double PkPtau = k[3] * ptau[3] - k[2] * ptau[2] - k[1] * ptau[1] - k[0] * ptau[0];
53 const double PkPpi = k[3] * ppi[3] - k[2] * ppi[2] - k[1] * ppi[1] - k[0] * ppi[0];
54 const double PkPnu = k[3] * pnu[3] - k[2] * pnu[2] - k[1] * pnu[1] - k[0] * pnu[0];
55
56 const double t = (k[3] + ppi[3]) * (k[3] + ppi[3]) - (k[2] + ppi[2]) * (k[2] + ppi[2]) - (k[1] + ppi[1]) * (k[1] + ppi[1]) - (k[0] + ppi[0]) * (k[0] + ppi[0]);
57
58 // F_V^π(t)
59 const std::complex<double> FV_pi = (f_pi / (m_rho * m_rho - t - I * m_rho * Gamma_rho)) * std::exp((m_rho * m_rho) / (M_Borel * M_Borel));
60 // F_A^π(t)
61 const std::complex<double> FA_pi = (f_pi / (m_a1 * m_a1 - t - I * m_a1 * Gamma_a1)) * std::exp((m_a1 * m_a1) / (M_Borel * M_Borel));
62
63 const double Mtau_sq = Mtau * Mtau;
64 const double Mpi_sq = Mpi * Mpi;
65 const double fpi_sq = (f_pi) * (f_pi);
66 const double PpiPtau_sq = PpiPtau * PpiPtau;
67 const double PkPtau_sq = PkPtau * PkPtau;
68 const double PkPpi_sq = PkPpi * PkPpi;
69 const double PkPnu_sq = PkPnu * PkPnu;
Value stored to 'PkPnu_sq' during its initialization is never read
70 const double PnuPpi_sq = PnuPpi * PnuPpi;
71 const double PnuPtau_sq = PnuPtau * PnuPtau;
72 const double Mtau_3 = Mtau_sq * Mtau;
73
74 // Compute decay amplitude squared |A|^2
75 // -----------------------------------------------------------------------------------------------------
76 //
77 // |A_L|^2 = |A_L^IB|^2 + |A_L^V|^2 + |A_L^A|^2
78 // + 2Re(A_L^V A_L^A*) + 2Re(A_L^IB A_L^V*) + 2Re(A_L^IB A_L^A*)
79 //
80 // -----------------------------------------------------------------------------------------------------
81
82 // common combination of wilson coefficients and form factors
83
84
85 const double mass_coeff = Mpi_sq / (Mtau * (M_u + M_d));
86 const double CL_sum = 1.0 + CV_LL + CV_LR;
87 const double CL_diff = 1.0 + CV_LL - CV_LR;
88 const double CL_IB = CL_diff + mass_coeff * (CS_RL - CS_RR);
89
90 // Declare variables
91 double p1[3], p2[3], p3[3];
92 double h1[3], h2[3], h3[3], h4[3], h5[3], h6[3];
93
94 // Compute omega, h_j for |A_L^IB|^2
95
96
97 // \omega = |CL_IB|^2 f^2_\pi m_\tau^2 \left\{-m_\pi^2\frac{p_\nu \cdot p_\tau}{(k\cdot p_\pi)^2}
98 // + \frac{(k\cdot p_\tau + m_\tau^2)(k\cdot p_\nu - p_\nu\cdot p_\tau) }{(k\cdot p_\tau)^2} + \frac{2 \,(p_\nu\cdot p_\tau) (p_\pi\cdot p_\tau) + (k\cdot p_\tau) (p_\nu \cdot p_\pi) - (k\cdot p_\nu) (p_\pi \cdot p_\tau)}{(k\cdot p_\pi) (k\cdot p_\tau)}\right\},
99 //
100 double omega_1 = (CL_IB * CL_IB) * fpi_sq * Mtau_sq * (-Mpi_sq * (PnuPtau / PkPpi_sq) + ((PkPtau + Mtau_sq) * (PkPnu - PnuPtau) / PkPtau_sq) +
101 ((2.0 * PnuPtau * PpiPtau + PkPtau * PnuPpi - PkPnu * PpiPtau) / (PkPpi * PkPtau)));
102
103 // Compute h for each spatial component j = 1,2,3
104 for (int j = 0; j < 3; j++) {
105 // p_\nu^j \left(\frac{m_\pi^2}{(k\cdot p_\pi)^2} + \frac{m_\tau^2}{(k\cdot p_\tau)^2} -
106 // \frac{2 \,p_\pi\cdot p_\tau}{(k\cdot p_\pi) (k\cdot p_\tau)}\right)
107 p1[j] = pnu[j] * (Mpi_sq / PkPpi_sq + Mtau_sq / PkPtau_sq - 2.0 * PpiPtau / (PkPpi * PkPtau));
108 // k^j \left(\frac{p_\nu\cdot p_\tau - k\cdot p_\nu}{(k\cdot p_\tau)^2}
109 // - \frac{p_\nu \cdot p_\pi}{(k\cdot p_\pi )(k\cdot p_\tau)}\right)
110 p2[j] = k[j] * ((PnuPtau - PkPnu) / PkPtau_sq - PnuPpi / (PkPpi * PkPtau));
111 // p_\pi^j \frac{k\cdot p_\nu}{(k\cdot p_\pi)(k\cdot p_\tau)}
112 p3[j] = ppi[j] * PkPnu / (PkPpi * PkPtau);
113
114 h1[j] = (-(CL_IB * CL_IB) * fpi_sq * Mtau_3 / omega_1) * (p1[j] + p2[j] + p3[j]);
115 }
116
117 // compute omega, h_j for |A_L^V|^2
118
119 // \omega = 2 |(1+C^V_{LL} + C^V_{LR})F_V^{(\pi)}|^2 \left[(k\cdot p_\nu)(k \cdot p_\pi)(p_\pi\cdot p_\tau)
120 // - m_\pi^2 (k\cdot p_\nu)(k \cdot p_\tau) + (k\cdot p_\pi)(k\cdot p_\tau)(p_\nu\cdot p_\pi) \right],
121
122 const double common_sd = (PkPnu * PkPpi * PpiPtau) - (Mpi_sq * PkPnu * PkPtau) + (PkPpi * PkPtau * PnuPpi);
123 double omega_2 = 2.0 * (CL_sum * CL_sum) * std::norm(FV_pi) * common_sd;
124
125 // Compute h for each spatial component j = 1,2,3
126 for (int j = 0; j < 3; j++) {
127 // k^j \left\{m_\pi^2 (k\cdot p_\nu) - (k\cdot p_\pi)(p_\nu\cdot p_\pi)\right\}
128 p1[j] = k[j] * (Mpi_sq * PkPnu - PkPpi * PnuPpi); // j-1 ----> J
129 // p_\pi^j (k\cdot p_\nu)(k\cdot p_\pi)
130 p2[j] = ppi[j] * PkPnu * PkPpi;
131 // 2 |(1+C^V_{LL} + C^V_{LR})F_V^{(\pi)}|^2 \,\frac{m_\tau}{\omega}[p1[j] - p2[j]]
132
133 h2[j] = (2.0 * (CL_sum * CL_sum) * std::norm(FV_pi) * Mtau / omega_2) * (p1[j] - p2[j]);
134 }
135
136 // compute omega, h_j for |A_L^A|^2
137
138 // \omega = 2 |(1+C^V_{LL} - C^V_{LR})F_A^{(\pi)}|^2 \left[(k\cdot p_\nu)(k \cdot p_\pi)(p_\pi\cdot p_\tau) -
139 // m_\pi^2 (k\cdot p_\nu)(k \cdot p_\tau) + (k\cdot p_\pi)(k\cdot p_\tau)(p_\nu\cdot p_\pi) \right],
140
141 double omega_3 = 2.0 * (CL_diff * CL_diff) * std::norm(FA_pi) * common_sd;
142
143 // Compute h for each spatial component j = 1,2,3
144
145 for (int j = 0; j < 3; j++) {
146 // k^j \left\{m_\pi^2 (k\cdot p_\nu) - (k\cdot p_\pi)(p_\nu\cdot p_\pi)\right\}
147 p1[j] = k[j] * (Mpi_sq * PkPnu - PkPpi * PnuPpi);
148 // p_\pi^j (k\cdot p_\nu)(k\cdot p_\pi)
149 p2[j] = ppi[j] * PkPnu * PkPpi;
150 // h^j = 2 |(1+C^V_{LL} - C^V_{LR})F_A^{(\pi)}|^2 \,\frac{m_\tau}{\omega} [p1[j]- p2[j]]
151
152 h3[j] = (2.0 * (CL_diff * CL_diff) * std::norm(FA_pi) * Mtau / omega_3) * (p1[j] - p2[j]);
153 }
154
155 // compute interference terms 2Re(A_L^V A_L^A*)
156
157 // \omega = 4 \operatorname{Re}[F_V^{(\pi)}F_A^{(\pi)\ast} (1+C^V_{LL} + C^V_{LR})(1+C^V_{LL} - C^V_{LR})^\ast]
158 // \left[(k\cdot p_\nu)(k \cdot p_\pi)(p_\pi\cdot p_\tau) - (k\cdot p_\pi)(k\cdot p_\tau)(p_\nu\cdot p_\pi) \right],
159
160 const double re_va = CL_sum * CL_diff * std::real(FV_pi * std::conj(FA_pi));
161 const double common_va = (PkPnu * PkPpi * PpiPtau) - (PkPpi * PkPtau * PnuPpi);
162 double omega_4 = 4.0 * re_va * common_va;
163
164 // Compute each spatial component j = 1,2,3
165 for (int j = 0; j < 3; j++) {
166 // k^j (k\cdot p_\pi)(p_\nu\cdot p_\pi)
167 p1[j] = k[j] * PkPpi * PnuPpi;
168 // p_\pi^j (k\cdot p_\nu)(k\cdot p_\pi)
169 p2[j] = ppi[j] * PkPnu * PkPpi;
170
171 // 4 \operatorname{Re}[F_V^{(\pi)}F_A^{(\pi)\ast} (1+C^V_{LL} + C^V_{LR})(1+C^V_{LL} - C^V_{LR})^\ast]\frac{m_\tau}{\omega}
172 // [p1[j] - p2[j]]
173
174 h4[j] = (4.0 * re_va * Mtau / omega_4) * (p1[j] - p2[j]);
175 }
176
177 // compute interference terms 2Re(A_L^IB A_L^V*)
178
179 // \omega = 2\operatorname{Re} [F_V^{(\pi)} (1+C^V_{LL} - C^V_{LR})(1+C^V_{LL} + C^V_{LR})^\ast] f_\pi m_\tau^2
180 // \frac{(k\cdot p_\nu)(k\cdot p_\pi)}{k\cdot p_\tau},
181
182 const double re_iv = CL_diff * CL_IB * std::real(FV_pi);
183 double omega_5 = 2.0 * re_iv * f_pi * Mtau_sq * (PkPnu * PkPpi / PkPtau);
184
185 // Compute each spatial component j = 1,2,3
186
187 for (int j = 0; j < 3; j++) {
188 // k^j\left\{(p_\pi\cdot p_\tau)(k\cdot p_\nu) - (p_\pi\cdot p_\tau)(p_\nu\cdot p_\tau) + m_\tau^2\, p_\nu\cdot p_\pi\right\}
189 p1[j] = k[j] * ((PpiPtau * PkPnu) - (PpiPtau * PnuPtau) + (Mtau_sq * PnuPpi));
190 // p_\pi^j \left\{(k\cdot p_\nu)(k\cdot p_\tau) + m_\tau^2\, k\cdot p_\nu - (k\cdot p_\tau) (p_\nu\cdot p_\tau)\right\}
191 p2[j] = ppi[j] * ((PkPnu * PkPtau) + Mtau_sq * PkPnu - PkPtau * PnuPtau);
192
193 // h^j = \frac{2\operatorname{Re} [F_V^{(\pi)} (1+C^V_{LL} - C^V_{LR})(1+C^V_{LL} + C^V_{LR})^\ast]f_\pi}{k\cdot p_\tau}\frac{m_\tau}{\omega}[ p1[j] - p2[j]]
194
195 h5[j] = ((2.0 * re_iv * f_pi * Mtau) / (PkPtau * omega_5)) * (p1[j] - p2[j]);
196 }
197
198 // compute interference terms 2Re(A_L^IB A_L^A*)
199
200 // \omega =\frac{ 2 f_\pi m_\tau^2 |1+C^V_{LL} - C^V_{LR}|^2 \operatorname{Re}(F_A^{(\pi)}) }{(k\cdot p_\pi)(k\cdot p_\tau)}
201 // \left[ (k\cdot p_\nu)\left\{(k\cdot p_\pi)^2 + (k\cdot p_\pi)(p_\pi \cdot p_\tau) - m_\pi^2\, k\cdot p_\tau\right\}
202 // + (k\cdot p_\pi)(k\cdot p_\tau)(p_\nu\cdot p_\pi) - (k\cdot p_\pi)^2 (p_\nu \cdot p_\tau)\right],
203
204 const double re_ia = CL_diff * CL_IB * std::real(FA_pi);
205 double omega_6 = ((2.0 * f_pi * Mtau_sq * re_ia) / (PkPpi * PkPtau)) *
206 ((PkPnu * ( PkPpi_sq + (PkPpi * PpiPtau) - (Mpi_sq * PkPtau))) + (PkPpi * PkPtau * PnuPpi) - ( PkPpi_sq * PnuPtau));
207
208 // Compute each spatial component j = 1,2,3
209
210 for (int j = 0; j < 3; j++) {
211 // k^j\left\{-m_\pi^2\, (k\cdot p_\tau) (p_\nu\cdot p_\tau) + (k\cdot p_\pi)(p_\pi\cdot p_\tau)(p_\nu \cdot p_\tau - k\cdot p_\nu)\right\}
212 p1[j] = k[j] * (-Mpi_sq * PkPtau * PnuPtau + PkPpi * PpiPtau * (PnuPtau - PkPnu));
213 // p_\nu^j \left\{m_\pi^2 (k\cdot p_\tau)^2 - 2(k\cdot p_\tau)(k\cdot p_\pi)(p_\pi\cdot p_\tau) + m_\tau^2\, (k\cdot p_\pi)(k\cdot p_\pi) \right\}
214 p2[j] = pnu[j] * (Mpi_sq * PkPtau_sq - 2.0 * PkPtau * PkPpi * PpiPtau + Mtau_sq * PkPpi_sq);
215 // p_\pi^j \left\{(k\cdot p_\tau)(k\cdot p_\pi)(k\cdot p_\nu + p_\nu \cdot p_\tau)\right\}
216 p3[j] = ppi[j] * (PkPtau * PkPpi * (PkPnu + PnuPtau));
217
218 // h^j = -\frac{2 f_\pi \operatorname{Re}(F_A^{(\pi)} CL_diff CL_IB^*)}{(k\cdot p_\pi)(k\cdot p_\tau)}\frac{m_\tau}{\omega} [p1[j] + p2[j] + p3[j]]
219
220 h6[j] = ((-2.0 * f_pi * re_ia * Mtau) / (PkPpi * PkPtau * omega_6)) * (p1[j] + p2[j] + p3[j]);
221 }
222
223 // Turn on or off
224 omega_1*=ONOF_IB;
225 omega_2*=ONOF_V;
226 omega_3*=ONOF_A;
227 omega_4*=ONOF_V*ONOF_A;
228 omega_5*=ONOF_IB*ONOF_V;
229 omega_6*=ONOF_IB*ONOF_A;
230
231 // Sum total amplitude
232 omega = omega_1 + omega_2 + omega_3 + omega_4 + omega_5 + omega_6;
233
234 for (int j = 0; j < 3 ; j++ ){
235 hj[j] = (omega_1*h1[j] + omega_2*h2[j] + omega_3*h3[j] + omega_4*h4[j] + omega_5*h5[j] + omega_6*h6[j] ) / omega;
236 }
237
238 const double E_cut=0.01;// 10 MeV in tau rest frame
239 if(k[3]<E_cut) omega=0.0;
240
241 return;
242}