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