7 #include <cuda_runtime.h>
26 double *__restrict__
phits,
30 constexpr uint32_t hitsInFit =
N;
48 auto tuple_idx = local_idx +
offset;
54 assert(tkid < foundNtuplets->nOnes());
64 for (
unsigned int i = 0;
i < hitsInFit; ++
i) {
69 .detParams(
hhp->detectorIndex(
hit))
74 hits_ge.col(
i) << ge[0], ge[1], ge[2], ge[3], ge[4], ge[5];
79 assert(fast_fit(0) == fast_fit(0));
80 assert(fast_fit(1) == fast_fit(1));
81 assert(fast_fit(2) == fast_fit(2));
82 assert(fast_fit(3) == fast_fit(3));
90 double *__restrict__
phits,
92 double *__restrict__ pfast_fit_input,
104 auto tuple_idx = local_idx +
offset;
132 double *__restrict__
phits,
134 double *__restrict__ pfast_fit_input,
147 auto tuple_idx = local_idx +
offset;
162 results->stateAtBS.copyFromCircle(
163 circle_fit[local_idx].par, circle_fit[local_idx].cov, line_fit.par, line_fit.cov, 1.f /
float(
bField), tkid);
165 results->eta(tkid) = asinhf(line_fit.par(0));
166 results->chi2(tkid) = (circle_fit[local_idx].chi2 + line_fit.chi2) / (2 *
N - 5);
169 printf(
"kernelLineFit size %d for %d hits circle.par(0,1,2): %d %f,%f,%f\n",
173 circle_fit[local_idx].par(0),
174 circle_fit[local_idx].par(1),
175 circle_fit[local_idx].par(2));
176 printf(
"kernelLineFit line.par(0,1): %d %f,%f\n", tkid, line_fit.par(0), line_fit.par(1));
177 printf(
"kernelLineFit chi2 cov %f/%f %e,%e,%e,%e,%e\n",
178 circle_fit[local_idx].
chi2,
180 circle_fit[local_idx].cov(0, 0),
181 circle_fit[local_idx].cov(1, 1),
182 circle_fit[local_idx].cov(2, 2),