306 {
307
308 segments.clear();
309
310 ATH_MSG_DEBUG(
"In LegendreSegmentFinderTool::findSegments()");
312 << ", current output segments: " << segments.size());
313
314
315 std::vector<HitInfo> hitInfos;
317
318 if (hitInfos.size() < 2) {
319 ATH_MSG_DEBUG(
"Not enough hits for temporary Legendre segment finding");
320 return StatusCode::SUCCESS;
321 }
322
323
325
328 <<
"seedTheta=" <<
pars.seedTheta
329 <<
" seedR=" <<
pars.seedR
330 <<
" thetaMin=" <<
pars.thetaMin
331 <<
" thetaMax=" <<
pars.thetaMax
332 <<
" rMin=" <<
pars.rMin
333 <<
" rMax=" <<
pars.rMax);
334 }
335
336
337 std::vector<std::vector<BinCell>>
bins;
339
340
344 return StatusCode::SUCCESS;
345 }
346
347
350 ATH_MSG_DEBUG(
"Failed to convert temporary Legendre maximum into a line estimate");
351 return StatusCode::SUCCESS;
352 }
353
354 const float thetaMaxCenter =
355 pars.thetaMin + (
static_cast<float>(maxBin.thetaBin) + 0.5f) *
m_thetaRes;
356 const float rMaxCenter =
357 pars.rMin + (
static_cast<float>(maxBin.rBin) + 0.5f) *
m_rRes;
358
359
360 const BinCell& bestCell =
bins[maxBin.thetaBin][maxBin.rBin];
361 if (
m_doRefit && bestCell.zVals.size() >= 2) {
363 if (refit.valid) {
365 }
366 }
367
369 << "theta=" << thetaMaxCenter
370 << " r=" << rMaxCenter
373 <<
" chi2=" <<
fit.chi2
374 << " nHits=" << bestCell.zVals.size());
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394 ATH_MSG_DEBUG(
"Temporary LegendreSegmentFinderTool finished without populating the final segment container");
395
396 return StatusCode::SUCCESS;
397 }
#define ATH_CHECK
Evaluate an expression and check for errors.