ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::GridTripletSeedingTool Class Reference

#include <GridTripletSeedingTool.h>

Inheritance diagram for ActsTrk::GridTripletSeedingTool:
Collaboration diagram for ActsTrk::GridTripletSeedingTool:

Public Member Functions

 GridTripletSeedingTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
StatusCode createSeeds (const EventContext &ctx, const std::vector< const xAOD::SpacePointContainer * > &spacePointCollections, const Eigen::Vector3f &beamSpotPos, float bFieldInZ, ActsTrk::SeedContainer &seedContainer) const override

Protected Attributes

Gaudi::Property< bool > m_seedQualitySelection
Gaudi::Property< float > m_minPt
Gaudi::Property< float > m_cotThetaMax
Gaudi::Property< float > m_zMin
Gaudi::Property< float > m_zMax
Gaudi::Property< float > m_deltaRMax
Gaudi::Property< float > m_impactMax
Gaudi::Property< std::vector< float > > m_zBinEdges
Gaudi::Property< std::vector< float > > m_rBinEdges
Gaudi::Property< float > m_gridRMax
Gaudi::Property< float > m_gridPhiMin
Gaudi::Property< float > m_gridPhiMax
Gaudi::Property< int > m_phiBinDeflectionCoverage
Gaudi::Property< int > m_maxPhiBins
Gaudi::Property< float > m_rMax
Gaudi::Property< float > m_binSizeR
Gaudi::Property< float > m_deltaRMin
Gaudi::Property< float > m_deltaRMinTopSP
Gaudi::Property< float > m_deltaRMaxTopSP
Gaudi::Property< float > m_deltaRMinBottomSP
Gaudi::Property< float > m_deltaRMaxBottomSP
Gaudi::Property< float > m_deltaZMax
Gaudi::Property< float > m_collisionRegionMin
Gaudi::Property< float > m_collisionRegionMax
Gaudi::Property< bool > m_useHVCollisionRegion
Gaudi::Property< float > m_hvCollisionRegionTolerance
Gaudi::Property< float > m_sigmaScattering
Gaudi::Property< float > m_maxPtScattering
Gaudi::Property< float > m_radLengthPerSeed
Gaudi::Property< int > m_maxSeedsPerSpM
Gaudi::Property< bool > m_interactionPointCut
Gaudi::Property< std::vector< size_t > > m_zBinsCustomLooping
Gaudi::Property< std::vector< std::size_t > > m_rBinsCustomLooping
Gaudi::Property< bool > m_useVariableMiddleSPRange
Gaudi::Property< std::vector< std::vector< double > > > m_rRangeMiddleSP
Gaudi::Property< float > m_deltaRMiddleMinSPRange
Gaudi::Property< float > m_deltaRMiddleMaxSPRange
Gaudi::Property< bool > m_seedConfirmation
Gaudi::Property< float > m_seedConfCentralZMin
Gaudi::Property< float > m_seedConfCentralZMax
Gaudi::Property< float > m_seedConfCentralRMax
Gaudi::Property< size_t > m_seedConfCentralNTopLargeR
Gaudi::Property< size_t > m_seedConfCentralNTopSmallR
Gaudi::Property< float > m_seedConfCentralMinBottomRadius
Gaudi::Property< float > m_seedConfCentralMaxZOrigin
Gaudi::Property< float > m_seedConfCentralMinImpact
Gaudi::Property< float > m_seedConfForwardZMin
Gaudi::Property< float > m_seedConfForwardZMax
Gaudi::Property< float > m_seedConfForwardRMax
Gaudi::Property< size_t > m_seedConfForwardNTopLargeR
Gaudi::Property< size_t > m_seedConfForwardNTopSmallR
Gaudi::Property< float > m_seedConfForwardMinBottomRadius
Gaudi::Property< float > m_seedConfForwardMaxZOrigin
Gaudi::Property< float > m_seedConfForwardMinImpact
Gaudi::Property< bool > m_useDetailedDoubleMeasurementInfo
Gaudi::Property< float > m_toleranceParam
Gaudi::Property< float > m_maxStripDeltaCotTheta
Gaudi::Property< float > m_phiMin
Gaudi::Property< float > m_phiMax
Gaudi::Property< float > m_rMin {this, "rMin", 0 * Acts::UnitConstants::mm, ""}
Gaudi::Property< float > m_zAlign
Gaudi::Property< float > m_rAlign
Gaudi::Property< float > m_sigmaError {this, "sigmaError", 5, ""}
Gaudi::Property< float > m_impactWeightFactor
Gaudi::Property< float > m_zOriginWeightFactor {this, "zOriginWeightFactor", 1.}
Gaudi::Property< float > m_compatSeedWeight
Gaudi::Property< std::size_t > m_compatSeedLimit
Gaudi::Property< float > m_seedWeightIncrement
Gaudi::Property< float > m_numSeedIncrement
Gaudi::Property< bool > m_seedConfirmationInFilter
Gaudi::Property< std::size_t > m_maxSeedsPerSpMConf
Gaudi::Property< std::size_t > m_maxQualitySeedsPerSpMConf
Gaudi::Property< bool > m_useDeltaRorTopRadius
Gaudi::Property< float > m_deltaInvHelixDiameter
Gaudi::Property< float > m_absDeltaEtaWeightFactor
Gaudi::Property< float > m_absDeltaEtaMinImpact
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsTop
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsBottom
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsTop
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsBottom
Gaudi::Property< int > m_numPhiNeighbors
Gaudi::Property< bool > m_useExperimentCuts
Gaudi::Property< bool > m_doubletDPhiCut
Gaudi::Property< float > m_doubletDPhiD0Max
Gaudi::Property< float > m_doubletDPhiCap
Gaudi::Property< float > m_doubletDPhiConst
Gaudi::Property< float > m_doubletDPhiSlope
Gaudi::Property< int > m_stateVectorReserveSize
Gaudi::Property< float > m_expCutrMin

Private Member Functions

const Acts::Logger & logger () const
 Private access to the logger.
bool spacePointSelectionFunction (const xAOD::SpacePoint *sp, float r) const
bool doubletSelectionFunction (const Acts::ConstSpacePointProxy2 &middle, const Acts::ConstSpacePointProxy2 &other, float cotTheta, bool isBottomCandidate) const
std::pair< float, float > retrieveRadiusRangeForMiddle (const Acts::ConstSpacePointProxy2 &spM, const Acts::Range1D< float > &rMiddleSpRange) const

Private Attributes

Acts::CylindricalSpacePointGrid2::Config m_gridCfg
Acts::DoubletSeedFinder::Config m_bottomDoubletFinderCfg
Acts::DoubletSeedFinder::Config m_topDoubletFinderCfg
Acts::TripletSeedFinder::Config m_tripletFinderCfg
Acts::BroadTripletSeedFilter::Config m_filterCfg
std::optional< Acts::TripletSeeder > m_finder
std::unique_ptr< const Acts::Logger > m_logger
 logging instance
std::unique_ptr< const Acts::Logger > m_loggerFilter
const PixelIDm_pixelId {nullptr}
SG::ReadHandleKey< xAOD::VertexContainerm_inputHoughVtxKey {this, "inputHoughVtx", "", "input vertex container"}

Detailed Description

Definition at line 29 of file GridTripletSeedingTool.h.

Constructor & Destructor Documentation

◆ GridTripletSeedingTool()

ActsTrk::GridTripletSeedingTool::GridTripletSeedingTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 12 of file GridTripletSeedingTool.cxx.

15 : base_class(type, name, parent) {}

Member Function Documentation

◆ createSeeds()

StatusCode ActsTrk::GridTripletSeedingTool::createSeeds ( const EventContext & ctx,
const std::vector< const xAOD::SpacePointContainer * > & spacePointCollections,
const Eigen::Vector3f & beamSpotPos,
float bFieldInZ,
ActsTrk::SeedContainer & seedContainer ) const
override

Definition at line 438 of file GridTripletSeedingTool.cxx.

442 {
443 (void)ctx;
444
445 auto gridCfg = m_gridCfg;
446 gridCfg.bFieldInZ = bFieldInZ;
447
448 Acts::CylindricalSpacePointGrid2 grid(gridCfg,
449 logger().cloneWithSuffix("Grid"));
450
451 std::size_t totalSpacePoints = 0;
452 for (const xAOD::SpacePointContainer* spacePoints : spacePointCollections) {
453 totalSpacePoints += spacePoints->size();
454 }
455
456 std::vector<const xAOD::SpacePoint*> selectedXAODSpacePoints;
457 std::vector<float> selectedSpacePointsR;
458 selectedXAODSpacePoints.reserve(totalSpacePoints);
459 selectedSpacePointsR.reserve(totalSpacePoints);
460
461 for (const xAOD::SpacePointContainer* spacePoints : spacePointCollections) {
462 for (const xAOD::SpacePoint* sp : *spacePoints) {
463 float x = static_cast<float>(sp->x() - beamSpotPos[0]);
464 float y = static_cast<float>(sp->y() - beamSpotPos[1]);
465 float z = static_cast<float>(sp->z());
466 float r = std::hypot(x, y);
467 float phi = std::atan2(y, x);
468
470 continue;
471 }
472
473 grid.insert(selectedXAODSpacePoints.size(), phi, z, r);
474 selectedXAODSpacePoints.push_back(sp);
475 selectedSpacePointsR.push_back(r);
476 }
477 }
478
479 for (std::size_t i = 0; i < grid.numberOfBins(); ++i) {
480 std::ranges::sort(
481 grid.at(i), [&](Acts::SpacePointIndex2 a, Acts::SpacePointIndex2 b) {
482 return selectedSpacePointsR[a] < selectedSpacePointsR[b];
483 });
484 }
485
486 Acts::SpacePointContainer2 selectedSpacePoints;
487 selectedSpacePoints.createColumns(
488 Acts::SpacePointColumns::CopyFromIndex |
489 Acts::SpacePointColumns::PackedXY | Acts::SpacePointColumns::PackedZR |
490 Acts::SpacePointColumns::VarianceZ | Acts::SpacePointColumns::VarianceR);
492 selectedSpacePoints.createColumns(Acts::SpacePointColumns::Strip);
493 }
494 selectedSpacePoints.reserve(grid.numberOfSpacePoints());
495 std::vector<Acts::SpacePointIndexRange2> gridSpacePointRanges;
496 gridSpacePointRanges.reserve(grid.numberOfBins());
497 for (std::size_t i = 0; i < grid.numberOfBins(); ++i) {
498 std::uint32_t begin = selectedSpacePoints.size();
499 for (const Acts::SpacePointIndex2 spIndex : grid.at(i)) {
500 const xAOD::SpacePoint* sp = selectedXAODSpacePoints[spIndex];
501
502 auto newSp = selectedSpacePoints.createSpacePoint();
503 newSp.copyFromIndex() = spIndex;
504 newSp.xy() =
505 std::array<float, 2>{static_cast<float>(sp->x() - beamSpotPos[0]),
506 static_cast<float>(sp->y() - beamSpotPos[1])};
507 newSp.zr() = std::array<float, 2>{static_cast<float>(sp->z()),
508 selectedSpacePointsR[spIndex]};
509 newSp.varianceZ() = static_cast<float>(sp->varianceZ());
510 newSp.varianceR() = static_cast<float>(sp->varianceR());
512 Eigen::Vector3f topStripVector =
513 sp->topHalfStripLength() * sp->topStripDirection();
514 Eigen::Vector3f bottomStripVector =
515 sp->bottomHalfStripLength() * sp->bottomStripDirection();
516 Eigen::Vector3f stripCenterDistance = sp->stripCenterDistance();
517 Eigen::Vector3f topStripCenter = sp->topStripCenter();
518
519 newSp.topStripVector() = std::array<float, 3>{
520 topStripVector.x(), topStripVector.y(), topStripVector.z()};
521 newSp.bottomStripVector() =
522 std::array<float, 3>{bottomStripVector.x(), bottomStripVector.y(),
523 bottomStripVector.z()};
524 newSp.stripCenterDistance() = std::array<float, 3>{
525 stripCenterDistance.x(), stripCenterDistance.y(),
526 stripCenterDistance.z()};
527 newSp.topStripCenter() = std::array<float, 3>{
528 topStripCenter.x(), topStripCenter.y(), topStripCenter.z()};
529 }
530 }
531 std::uint32_t end = selectedSpacePoints.size();
532 gridSpacePointRanges.emplace_back(begin, end);
533 }
534
535 // clear temporary
536 selectedSpacePointsR = {};
537
538 ACTS_VERBOSE("Number of space points after selection "
539 << selectedSpacePoints.size() << " out of " << totalSpacePoints);
540
541 // Compute radius range. We rely on the fact the grid is storing the proxies
542 // with a sorting in the radius
543 const Acts::Range1D<float> rRange = [&]() -> Acts::Range1D<float> {
544 float minRange = std::numeric_limits<float>::max();
545 float maxRange = std::numeric_limits<float>::lowest();
546 for (const Acts::SpacePointIndexRange2& range : gridSpacePointRanges) {
547 if (range.first == range.second) {
548 continue;
549 }
550 auto first = selectedSpacePoints[range.first];
551 auto last = selectedSpacePoints[range.second - 1];
552 minRange = std::min(first.zr()[1], minRange);
553 maxRange = std::max(last.zr()[1], maxRange);
554 }
555 return {minRange, maxRange};
556 }();
557
558 auto bottomDoubletFinderCfg = m_bottomDoubletFinderCfg;
559
561 SG::ReadHandle<xAOD::VertexContainer> inputHoughVtx = SG::makeHandle(m_inputHoughVtxKey, ctx);
562 ATH_CHECK(inputHoughVtx.isValid());
563
564 for(const auto* vtx: *inputHoughVtx)
565 {
566 if(vtx->vertexType() == xAOD::VxType::PriVtx)
567 {
568 bottomDoubletFinderCfg.collisionRegionMin = vtx->z() - m_hvCollisionRegionTolerance;
569 bottomDoubletFinderCfg.collisionRegionMax = vtx->z() + m_hvCollisionRegionTolerance;
570 break;
571 }
572 }
573 // in case HoughVtx is not found and inputHoughVtx is empty, keep the original collision region
574 }
575
576 auto bottomDoubletFinder =
577 Acts::DoubletSeedFinder::create(Acts::DoubletSeedFinder::DerivedConfig(
578 bottomDoubletFinderCfg, bFieldInZ));
579 auto topDoubletFinder = Acts::DoubletSeedFinder::create(
580 Acts::DoubletSeedFinder::DerivedConfig(m_topDoubletFinderCfg, bFieldInZ));
581 auto tripletFinder = Acts::TripletSeedFinder::create(
582 Acts::TripletSeedFinder::DerivedConfig(m_tripletFinderCfg, bFieldInZ));
583
584 // variable middle SP radial region of interest
585 const Acts::Range1D<float> rMiddleSpRange(
586 std::floor(rRange.min() / 2) * 2 + m_deltaRMiddleMinSPRange,
587 std::floor(rRange.max() / 2) * 2 - m_deltaRMiddleMaxSPRange);
588
589 Acts::BroadTripletSeedFilter::State filterState;
590 Acts::BroadTripletSeedFilter::Cache filterCache;
591 Acts::TripletSeeder::Cache cache;
592
593 Acts::BroadTripletSeedFilter filter(m_filterCfg, filterState, filterCache,
595
596 std::vector<Acts::SpacePointContainer2::ConstRange> bottomSpRanges;
597 std::optional<Acts::SpacePointContainer2::ConstRange> middleSpRange;
598 std::vector<Acts::SpacePointContainer2::ConstRange> topSpRanges;
599
600 Acts::SeedContainer2 tmpSeedContainer;
601
602 for (const auto [bottom, middle, top] : grid.binnedGroup()) {
603 ACTS_VERBOSE("Process middle bin " << middle);
604 if (middle >= gridSpacePointRanges.size()) {
605 ATH_MSG_ERROR("Grid Binned Group returned an unreasonable middle bin");
606 return StatusCode::FAILURE;
607 }
608
609 bottomSpRanges.clear();
610 topSpRanges.clear();
611
612 std::ranges::transform(
613 bottom, std::back_inserter(bottomSpRanges),
614 [&](std::size_t b) -> Acts::SpacePointContainer2::ConstRange {
615 return selectedSpacePoints.range(gridSpacePointRanges[b]).asConst();
616 });
617 middleSpRange =
618 selectedSpacePoints.range(gridSpacePointRanges[middle]).asConst();
619 std::ranges::transform(
620 top, std::back_inserter(topSpRanges),
621 [&](std::size_t t) -> Acts::SpacePointContainer2::ConstRange {
622 return selectedSpacePoints.range(gridSpacePointRanges[t]).asConst();
623 });
624
625 // we compute this here since all middle space point candidates belong to
626 // the same z-bin
627 auto firstMiddleSp = middleSpRange->front();
628 auto radiusRangeForMiddle =
629 retrieveRadiusRangeForMiddle(firstMiddleSp, rMiddleSpRange);
630
631 ACTS_VERBOSE("Validity range (radius) for the middle space point is ["
632 << radiusRangeForMiddle.first << ", "
633 << radiusRangeForMiddle.second << "]");
634
635 m_finder->createSeedsFromGroups(
636 cache, *bottomDoubletFinder, *topDoubletFinder, *tripletFinder, filter,
637 selectedSpacePoints, bottomSpRanges, *middleSpRange, topSpRanges,
638 radiusRangeForMiddle, tmpSeedContainer);
639 }
640
641 // Selection function - temporary implementation
642 // need change from ACTS for final implementation
643 // To be used only on PPP
644 auto selectionFunction =
645 [&filterState](const Acts::MutableSeedProxy2& seed) -> bool {
646 float seedQuality = seed.quality();
647 float bottomQuality =
648 filterState.bestSeedQualityMap.at(seed.spacePointIndices()[0]);
649 float middleQuality =
650 filterState.bestSeedQualityMap.at(seed.spacePointIndices()[1]);
651 float topQuality =
652 filterState.bestSeedQualityMap.at(seed.spacePointIndices()[2]);
653
654 return bottomQuality <= seedQuality || middleQuality <= seedQuality ||
655 topQuality <= seedQuality;
656 };
657
658 seedContainer.reserve(seedContainer.size() + tmpSeedContainer.size());
659
660 // Select and convert the seeds
661 for (Acts::MutableSeedProxy2 seed : tmpSeedContainer) {
662 if (m_seedQualitySelection && !selectionFunction(seed)) {
663 continue;
664 }
665
666 seedContainer.push_back(
667 Acts::ConstSeedProxy2(seed), [&](const Acts::SpacePointIndex2 spIndex) {
668 const Acts::SpacePointIndex2 originalIndex =
669 selectedSpacePoints.at(spIndex).copyFromIndex();
670 return selectedXAODSpacePoints[originalIndex];
671 });
672 }
673
674 return StatusCode::SUCCESS;
675}
Scalar phi() const
phi method
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
static Double_t sp
static Double_t a
@ top
#define y
#define x
#define z
bool spacePointSelectionFunction(const xAOD::SpacePoint *sp, float r) const
Acts::TripletSeedFinder::Config m_tripletFinderCfg
Gaudi::Property< bool > m_seedQualitySelection
Acts::DoubletSeedFinder::Config m_bottomDoubletFinderCfg
std::pair< float, float > retrieveRadiusRangeForMiddle(const Acts::ConstSpacePointProxy2 &spM, const Acts::Range1D< float > &rMiddleSpRange) const
Acts::DoubletSeedFinder::Config m_topDoubletFinderCfg
std::optional< Acts::TripletSeeder > m_finder
Acts::BroadTripletSeedFilter::Config m_filterCfg
Gaudi::Property< bool > m_useDetailedDoubleMeasurementInfo
Acts::CylindricalSpacePointGrid2::Config m_gridCfg
Gaudi::Property< float > m_deltaRMiddleMaxSPRange
Gaudi::Property< bool > m_useHVCollisionRegion
Gaudi::Property< float > m_hvCollisionRegionTolerance
Gaudi::Property< float > m_deltaRMiddleMinSPRange
const Acts::Logger & logger() const
Private access to the logger.
std::unique_ptr< const Acts::Logger > m_loggerFilter
SG::ReadHandleKey< xAOD::VertexContainer > m_inputHoughVtxKey
Gaudi::Property< bool > m_useExperimentCuts
virtual bool isValid() override final
Can the handle be successfully dereferenced?
int r
Definition globals.cxx:22
bool first
Definition DeMoScan.py:534
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
const IIntersectionCache * cache() const
Retrieve the associated cache block, if it exists.
@ PriVtx
Primary vertex.
SpacePointContainer_v1 SpacePointContainer
Define the version of the space point container.
Seed push_back(SpacePointRange spacePoints, float quality, float vertexZ)
void reserve(std::size_t size, float averageSpacePoints=3) noexcept
std::size_t size() const noexcept

◆ doubletSelectionFunction()

bool ActsTrk::GridTripletSeedingTool::doubletSelectionFunction ( const Acts::ConstSpacePointProxy2 & middle,
const Acts::ConstSpacePointProxy2 & other,
float cotTheta,
bool isBottomCandidate ) const
private

Definition at line 347 of file GridTripletSeedingTool.cxx.

350 {
351 if (m_doubletDPhiCut) {
352 // per-pair azimuthal-swing bound: the hit azimuth of a track with impact
353 // parameter d0 swings between two radii by asin(d0/rInner) -
354 // asin(d0/rOuter) on top of the curvature rotation. The grid phi-bin
355 // widening only knows the full radial span; this applies the exact
356 // per-pair bound before the doublet enters the triplet stage.
357 // NB: this container only fills the packed coordinate columns, so the
358 // packed accessors xy()/zr() must be used here.
359 const float rM = middle.zr()[1];
360 const float rO = other.zr()[1];
361 const float rInner = std::min(rM, rO);
362 const float rOuter = std::max(rM, rO);
363 const float d0 =
364 m_doubletDPhiD0Max < 0.f ? m_impactMax.value() : m_doubletDPhiD0Max.value();
365
366 const std::array<float, 2>& xyM = middle.xy();
367 const std::array<float, 2>& xyO = other.xy();
368 float dPhi = std::atan2(xyO[1], xyO[0]) - std::atan2(xyM[1], xyM[0]);
369 if (dPhi > std::numbers::pi_v<float>) {
370 dPhi -= 2.f * std::numbers::pi_v<float>;
371 } else if (dPhi < -std::numbers::pi_v<float>) {
372 dPhi += 2.f * std::numbers::pi_v<float>;
373 }
374
375 const float swing =
376 std::asin(std::min(1.f, d0 / std::max(rInner, 1.f))) -
377 std::asin(std::min(1.f, d0 / std::max(rOuter, 1.f)));
378 const float bound = m_doubletDPhiConst +
379 m_doubletDPhiSlope * (rOuter - rInner) +
380 std::min(m_doubletDPhiCap.value(), swing);
381
382 if (std::abs(dPhi) > bound) {
383 return false;
384 }
385 }
386
387 if (!m_useExperimentCuts) {
388 return true;
389 }
390
391 // We remove some doublets that have the middle space point in some specific
392 // areas This should eventually be moved inside ACTS and allow a veto
393 // mechanism according to the user desire. As of now we cannot really do this
394 // since we define a range of validity of the middle candidate, and if we want
395 // to veto some sub-regions inside it, we need to do it here.
396 if (std::abs(middle.zr()[0]) > 1500 and middle.zr()[1] > 100 and
397 middle.zr()[1] < 150) {
398 return false;
399 }
400
401 // We remove here some seeds, in case the bottom space point radius is
402 // too small (i.e. < fastTrackingRMin)
403
404 // This operation is done only within a specific eta window
405 // Instead of eta we use the doublet cottheta
406 static constexpr float cotThetaEta120 = 1.5095;
407 static constexpr float cotThetaEta360 = 18.2855;
408
409 float absCotTheta = std::abs(cotTheta);
410 if (isBottomCandidate && other.zr()[1] < m_expCutrMin &&
411 absCotTheta > cotThetaEta120 && absCotTheta < cotThetaEta360) {
412 return false;
413 }
414
415 return true;
416}
Gaudi::Property< float > m_doubletDPhiSlope
Gaudi::Property< float > m_doubletDPhiCap
Gaudi::Property< float > m_doubletDPhiD0Max
Gaudi::Property< float > m_doubletDPhiConst
bool dPhi(const xAOD::TauJet &tau, const xAOD::CaloVertexedTopoCluster &cluster, float &out)

◆ initialize()

StatusCode ActsTrk::GridTripletSeedingTool::initialize ( )
overridevirtual

Definition at line 17 of file GridTripletSeedingTool.cxx.

17 {
18 ATH_MSG_DEBUG("Initializing " << name() << "...");
19
20 ATH_MSG_DEBUG("Properties Summary:");
26
27 ATH_MSG_DEBUG(" * Used by space point grid config:");
28 ATH_MSG_DEBUG(" " << m_minPt);
31 ATH_MSG_DEBUG(" " << m_zMin);
32 ATH_MSG_DEBUG(" " << m_zMax);
40
41 ATH_MSG_DEBUG(" * Used by seed finder config:");
42 ATH_MSG_DEBUG(" " << m_minPt);
45 ATH_MSG_DEBUG(" " << m_zMin);
46 ATH_MSG_DEBUG(" " << m_zMax);
48 ATH_MSG_DEBUG(" " << m_rMax);
63 }
75 } else if (not m_rRangeMiddleSP.empty())
95 }
98 ATH_MSG_DEBUG(" " << m_phiMin);
99 ATH_MSG_DEBUG(" " << m_phiMax);
100 ATH_MSG_DEBUG(" " << m_rMin);
101 ATH_MSG_DEBUG(" " << m_zAlign);
102 ATH_MSG_DEBUG(" " << m_rAlign);
104
105 ATH_MSG_DEBUG(" * Used by seed filter config:");
129 }
136
137 // Make the logger && Propagate to ACTS routines
138 m_logger = makeActsAthenaLogger(this, "Acts");
139
140 if (m_zBinEdges.size() - 1 != m_zBinNeighborsTop.size() &&
141 not m_zBinNeighborsTop.empty()) {
142 ATH_MSG_ERROR("Inconsistent config zBinNeighborsTop");
143 return StatusCode::FAILURE;
144 }
145
146 if (m_zBinEdges.size() - 1 != m_zBinNeighborsBottom.size() &&
147 not m_zBinNeighborsBottom.empty()) {
148 ATH_MSG_ERROR("Inconsistent config zBinNeighborsBottom");
149 return StatusCode::FAILURE;
150 }
151
152 if (m_rBinEdges.size() - 1 != m_rBinNeighborsTop.size() &&
153 not m_rBinNeighborsTop.empty()) {
154 ATH_MSG_ERROR("Inconsistent config rBinNeighborsTop");
155 return StatusCode::FAILURE;
156 }
157
158 if (m_rBinEdges.size() - 1 != m_rBinNeighborsBottom.size() &&
159 not m_rBinNeighborsBottom.empty()) {
160 ATH_MSG_ERROR("Inconsistent config rBinNeighborsBottom");
161 return StatusCode::FAILURE;
162 }
163
164 if (m_zBinsCustomLooping.size() != 0) {
165 // zBinsCustomLooping can contain a number of elements <= to the total
166 // number of bin in zBinEdges
167 for (std::size_t i : m_zBinsCustomLooping) {
168 if (i >= m_zBinEdges.size()) {
170 "Inconsistent config zBinsCustomLooping contains bins that are not "
171 "in zBinEdges");
172 return StatusCode::FAILURE;
173 }
174 }
175 }
176
177 if (m_rBinsCustomLooping.size() != 0) {
178 for (std::size_t i : m_rBinsCustomLooping) {
179 if (i >= m_rBinEdges.size()) {
181 "Inconsistent config rBinsCustomLooping contains bins that are not "
182 "in rBinEdges");
183 return StatusCode::FAILURE;
184 }
185 }
186 }
187
188 m_gridCfg.minPt = m_minPt;
189 m_gridCfg.rMin = 0;
190 m_gridCfg.rMax = m_gridRMax;
191 m_gridCfg.zMin = m_zMin;
192 m_gridCfg.zMax = m_zMax;
193 m_gridCfg.deltaRMax = m_deltaRMax;
194 m_gridCfg.cotThetaMax = m_cotThetaMax;
195 m_gridCfg.impactMax = m_impactMax;
196 m_gridCfg.phiMin = m_gridPhiMin;
197 m_gridCfg.phiMax = m_gridPhiMax;
198 m_gridCfg.phiBinDeflectionCoverage = m_phiBinDeflectionCoverage;
199 m_gridCfg.maxPhiBins = m_maxPhiBins;
200 m_gridCfg.zBinEdges = m_zBinEdges;
201 m_gridCfg.rBinEdges = m_rBinEdges;
202 m_gridCfg.bFieldInZ = 0; // will be set later
203 m_gridCfg.bottomBinFinder = Acts::GridBinFinder<3ul>(
205 m_rBinNeighborsBottom.value());
206 m_gridCfg.topBinFinder = Acts::GridBinFinder<3ul>(m_numPhiNeighbors.value(),
207 m_zBinNeighborsTop.value(),
208 m_rBinNeighborsTop.value());
209 m_gridCfg.navigation[0ul] = {};
210 m_gridCfg.navigation[1ul] = m_zBinsCustomLooping;
211 m_gridCfg.navigation[2ul] = m_rBinsCustomLooping;
212
213 m_bottomDoubletFinderCfg.spacePointsSortedByRadius = true;
214 m_bottomDoubletFinderCfg.candidateDirection = Acts::Direction::Backward();
225 m_bottomDoubletFinderCfg.helixCutTolerance = 1.;
227 m_bottomDoubletFinderCfg.experimentCuts
229 this);
230 }
231
232 m_topDoubletFinderCfg = m_bottomDoubletFinderCfg; // copy the bottom cuts
233 m_topDoubletFinderCfg.candidateDirection = Acts::Direction::Forward();
236
238 m_tripletFinderCfg.sortedByCotTheta = true;
240 m_tripletFinderCfg.sigmaScattering = m_sigmaScattering;
241 m_tripletFinderCfg.radLengthPerSeed = m_radLengthPerSeed;
243 m_tripletFinderCfg.helixCutTolerance = 1.;
244 m_tripletFinderCfg.toleranceParam = m_toleranceParam;
246 m_filterCfg.deltaInvHelixDiameter = m_deltaInvHelixDiameter;
247 m_filterCfg.deltaRMin = m_deltaRMin;
248 m_filterCfg.compatSeedWeight = m_compatSeedWeight;
249 m_filterCfg.impactWeightFactor = m_impactWeightFactor;
250 m_filterCfg.zOriginWeightFactor = m_zOriginWeightFactor;
251 m_filterCfg.maxSeedsPerSpM = m_maxSeedsPerSpM;
252 m_filterCfg.compatSeedLimit = m_compatSeedLimit;
253 m_filterCfg.seedWeightIncrement = m_seedWeightIncrement;
254 m_filterCfg.numSeedIncrement = m_numSeedIncrement;
255 m_filterCfg.seedConfirmation = m_seedConfirmationInFilter;
256 m_filterCfg.centralSeedConfirmationRange.zMinSeedConf = m_seedConfCentralZMin;
257 m_filterCfg.centralSeedConfirmationRange.zMaxSeedConf = m_seedConfCentralZMax;
258 m_filterCfg.centralSeedConfirmationRange.rMaxSeedConf = m_seedConfCentralRMax;
259 m_filterCfg.centralSeedConfirmationRange.nTopForLargeR =
261 m_filterCfg.centralSeedConfirmationRange.nTopForSmallR =
263 m_filterCfg.centralSeedConfirmationRange.seedConfMinBottomRadius =
265 m_filterCfg.centralSeedConfirmationRange.seedConfMaxZOrigin =
267 m_filterCfg.centralSeedConfirmationRange.minImpactSeedConf =
269 m_filterCfg.forwardSeedConfirmationRange.zMinSeedConf = m_seedConfForwardZMin;
270 m_filterCfg.forwardSeedConfirmationRange.zMaxSeedConf = m_seedConfForwardZMax;
271 m_filterCfg.forwardSeedConfirmationRange.rMaxSeedConf = m_seedConfForwardRMax;
272 m_filterCfg.forwardSeedConfirmationRange.nTopForLargeR =
274 m_filterCfg.forwardSeedConfirmationRange.nTopForSmallR =
276 m_filterCfg.forwardSeedConfirmationRange.seedConfMinBottomRadius =
278 m_filterCfg.forwardSeedConfirmationRange.seedConfMaxZOrigin =
280 m_filterCfg.forwardSeedConfirmationRange.minImpactSeedConf =
282 m_filterCfg.maxSeedsPerSpMConf = m_maxSeedsPerSpMConf;
283 m_filterCfg.maxQualitySeedsPerSpMConf = m_maxQualitySeedsPerSpMConf;
284 m_filterCfg.useDeltaRinsteadOfTopRadius = m_useDeltaRorTopRadius;
285 m_filterCfg.absDeltaEtaWeightFactor = m_absDeltaEtaWeightFactor;
286 m_filterCfg.absDeltaEtaMinImpact = m_absDeltaEtaMinImpact;
287
288
289 m_finder = Acts::TripletSeeder(logger().cloneWithSuffix("Finder"));
290
291 m_loggerFilter = logger().cloneWithSuffix("Filter");
292
293 ATH_CHECK(detStore()->retrieve(m_pixelId, "PixelID"));
294
295 return StatusCode::SUCCESS;
296}
#define ATH_MSG_DEBUG(x)
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Gaudi::Property< bool > m_useDeltaRorTopRadius
Gaudi::Property< float > m_seedConfForwardMinImpact
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsTop
Gaudi::Property< float > m_impactWeightFactor
Gaudi::Property< float > m_collisionRegionMax
Gaudi::Property< float > m_seedConfCentralMinBottomRadius
Gaudi::Property< int > m_phiBinDeflectionCoverage
Gaudi::Property< float > m_zOriginWeightFactor
Gaudi::Property< std::size_t > m_maxSeedsPerSpMConf
Gaudi::Property< float > m_maxPtScattering
Gaudi::Property< bool > m_useVariableMiddleSPRange
Gaudi::Property< float > m_toleranceParam
Gaudi::Property< float > m_maxStripDeltaCotTheta
Gaudi::Property< float > m_deltaRMaxBottomSP
Gaudi::Property< float > m_seedConfForwardMinBottomRadius
Gaudi::Property< float > m_compatSeedWeight
Gaudi::Property< std::vector< std::vector< double > > > m_rRangeMiddleSP
Gaudi::Property< float > m_deltaRMinTopSP
Gaudi::Property< float > m_seedConfForwardZMin
Gaudi::Property< std::vector< std::pair< int, int > > > m_rBinNeighborsBottom
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsBottom
Gaudi::Property< float > m_gridPhiMin
Gaudi::Property< bool > m_interactionPointCut
Gaudi::Property< size_t > m_seedConfCentralNTopSmallR
Gaudi::Property< std::vector< float > > m_rBinEdges
Gaudi::Property< float > m_seedConfForwardRMax
Gaudi::Property< std::vector< std::pair< int, int > > > m_zBinNeighborsTop
Gaudi::Property< float > m_deltaInvHelixDiameter
Gaudi::Property< float > m_collisionRegionMin
Gaudi::Property< float > m_seedConfCentralMaxZOrigin
Gaudi::Property< float > m_seedConfCentralMinImpact
Gaudi::Property< std::size_t > m_maxQualitySeedsPerSpMConf
Gaudi::Property< float > m_gridPhiMax
Gaudi::Property< std::vector< float > > m_zBinEdges
Gaudi::Property< bool > m_seedConfirmation
Gaudi::Property< float > m_seedConfForwardMaxZOrigin
Gaudi::Property< float > m_seedWeightIncrement
bool doubletSelectionFunction(const Acts::ConstSpacePointProxy2 &middle, const Acts::ConstSpacePointProxy2 &other, float cotTheta, bool isBottomCandidate) const
Gaudi::Property< float > m_radLengthPerSeed
Gaudi::Property< float > m_absDeltaEtaMinImpact
Gaudi::Property< float > m_absDeltaEtaWeightFactor
Gaudi::Property< float > m_cotThetaMax
Gaudi::Property< float > m_deltaRMinBottomSP
Gaudi::Property< size_t > m_seedConfCentralNTopLargeR
Gaudi::Property< float > m_seedConfForwardZMax
Gaudi::Property< bool > m_seedConfirmationInFilter
Gaudi::Property< std::vector< std::size_t > > m_rBinsCustomLooping
Gaudi::Property< float > m_seedConfCentralRMax
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Gaudi::Property< float > m_sigmaScattering
Gaudi::Property< std::vector< size_t > > m_zBinsCustomLooping
Gaudi::Property< float > m_seedConfCentralZMax
Gaudi::Property< float > m_deltaRMaxTopSP
Gaudi::Property< std::size_t > m_compatSeedLimit
Gaudi::Property< size_t > m_seedConfForwardNTopSmallR
Gaudi::Property< float > m_seedConfCentralZMin
Gaudi::Property< float > m_numSeedIncrement
Gaudi::Property< size_t > m_seedConfForwardNTopLargeR
unsigned long ul

◆ logger()

const Acts::Logger & ActsTrk::GridTripletSeedingTool::logger ( ) const
inlineprivate

Private access to the logger.

Definition at line 387 of file GridTripletSeedingTool.h.

387{ return *m_logger; }

◆ retrieveRadiusRangeForMiddle()

std::pair< float, float > ActsTrk::GridTripletSeedingTool::retrieveRadiusRangeForMiddle ( const Acts::ConstSpacePointProxy2 & spM,
const Acts::Range1D< float > & rMiddleSpRange ) const
private

Definition at line 418 of file GridTripletSeedingTool.cxx.

420 {
422 return {rMiddleSpRange.min(), rMiddleSpRange.max()};
423 }
424 if (m_rRangeMiddleSP.empty()) {
425 throw std::runtime_error(
426 "m_rRangeMiddleSP is empty, please check the configuration.");
427 }
428
429 // get zBin position of the middle SP
430 auto pVal =
431 std::lower_bound(m_zBinEdges.begin(), m_zBinEdges.end(), spM.zr()[0]);
432 int zBin = std::distance(m_zBinEdges.begin(), pVal);
433 // protects against zM at the limit of zBinEdges
434 zBin == 0 ? zBin : --zBin;
435 return {m_rRangeMiddleSP[zBin][0], m_rRangeMiddleSP[zBin][1]};
436}

◆ spacePointSelectionFunction()

bool ActsTrk::GridTripletSeedingTool::spacePointSelectionFunction ( const xAOD::SpacePoint * sp,
float r ) const
private

Definition at line 298 of file GridTripletSeedingTool.cxx.

299 {
300 float zabs = std::abs(sp->z());
301 float absCotTheta = zabs / r;
302
303 // checking configuration to remove pixel space points
304 Identifier identifier = m_pixelId->wafer_id(sp->elementIdList().at(0));
305 if (m_pixelId->is_barrel(identifier)) {
306 if (zabs > 200 && r < 40)
307 return false;
308
309 return true;
310 }
311
312 // Inner layers
313 // Below 1.20 - accept all
314 static constexpr float cotThetaEta120 = 1.5095;
315 if (absCotTheta < cotThetaEta120)
316 return true;
317
318 // Below 3.40 - remove if too close to beamline
319 static constexpr float cotThetaEta340 = 14.9654;
320 if (absCotTheta < cotThetaEta340 && r < m_expCutrMin)
321 return false;
322
323 // Outer layers
324 // Above 2.20
325 static constexpr float cotThetaEta220 = 4.4571;
326 if (absCotTheta > cotThetaEta220 && r > 260.)
327 return false;
328
329 // Above 2.60
330 static constexpr float cotThetaEta260 = 6.6947;
331 if (absCotTheta > cotThetaEta260 && r > 200.)
332 return false;
333
334 // Above 3.20
335 static constexpr float cotThetaEta320 = 12.2459;
336 if (absCotTheta > cotThetaEta320 && r > 140.)
337 return false;
338
339 // Above 4.00
340 static constexpr float cotThetaEta400 = 27.2899;
341 if (absCotTheta > cotThetaEta400)
342 return false;
343
344 return true;
345}

Member Data Documentation

◆ m_absDeltaEtaMinImpact

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_absDeltaEtaMinImpact
protected
Initial value:
{
this, "absDeltaEtaMinImpact", 2. * Acts::UnitConstants::mm,
"minimum impact parameter to apply abs(delta-eta) weight"}

Definition at line 292 of file GridTripletSeedingTool.h.

292 {
293 this, "absDeltaEtaMinImpact", 2. * Acts::UnitConstants::mm,
294 "minimum impact parameter to apply abs(delta-eta) weight"};

◆ m_absDeltaEtaWeightFactor

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_absDeltaEtaWeightFactor
protected
Initial value:
{
this, "absDeltaEtaWeightFactor", 0.,
"weight factor for abs(delta-eta) penalty between seed direction and "
"beamspot-to-PCA direction (0 = disabled, typical LRT value: 10)"}

Definition at line 288 of file GridTripletSeedingTool.h.

288 {
289 this, "absDeltaEtaWeightFactor", 0.,
290 "weight factor for abs(delta-eta) penalty between seed direction and "
291 "beamspot-to-PCA direction (0 = disabled, typical LRT value: 10)"};

◆ m_binSizeR

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_binSizeR
protected
Initial value:
{
this, "binSizeR", 1. * Acts::UnitConstants::mm,
"defining radial bin for space point sorting"}

Definition at line 95 of file GridTripletSeedingTool.h.

95 {
96 this, "binSizeR", 1. * Acts::UnitConstants::mm,
97 "defining radial bin for space point sorting"};

◆ m_bottomDoubletFinderCfg

Acts::DoubletSeedFinder::Config ActsTrk::GridTripletSeedingTool::m_bottomDoubletFinderCfg
private

Definition at line 373 of file GridTripletSeedingTool.h.

◆ m_collisionRegionMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_collisionRegionMax
protected
Initial value:
{
this, "collisionRegionMax", 200. * Acts::UnitConstants::mm,
"limiting location of collision region in z"}

Definition at line 120 of file GridTripletSeedingTool.h.

120 {
121 this, "collisionRegionMax", 200. * Acts::UnitConstants::mm,
122 "limiting location of collision region in z"};

◆ m_collisionRegionMin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_collisionRegionMin
protected
Initial value:
{
this, "collisionRegionMin", -200. * Acts::UnitConstants::mm,
"limiting location of collision region in z"}

Definition at line 117 of file GridTripletSeedingTool.h.

117 {
118 this, "collisionRegionMin", -200. * Acts::UnitConstants::mm,
119 "limiting location of collision region in z"};

◆ m_compatSeedLimit

Gaudi::Property<std::size_t> ActsTrk::GridTripletSeedingTool::m_compatSeedLimit
protected
Initial value:
{
this, "compatSeedLimit", 3,
"how often do you want to increase the weight of a seed for finding a "
"compatible seed"}

Definition at line 262 of file GridTripletSeedingTool.h.

262 {
263 this, "compatSeedLimit", 3,
264 "how often do you want to increase the weight of a seed for finding a "
265 "compatible seed"};

◆ m_compatSeedWeight

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_compatSeedWeight
protected
Initial value:
{
this, "compatSeedWeight", 100.,
"seed weight increased by this value if a compatible seed has been "
"found"}

Definition at line 258 of file GridTripletSeedingTool.h.

258 {
259 this, "compatSeedWeight", 100.,
260 "seed weight increased by this value if a compatible seed has been "
261 "found"};

◆ m_cotThetaMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_cotThetaMax
protected
Initial value:
{this, "cotThetaMax", 27.2899,
"cot of maximum theta angle"}

Definition at line 52 of file GridTripletSeedingTool.h.

52 {this, "cotThetaMax", 27.2899,
53 "cot of maximum theta angle"};

◆ m_deltaInvHelixDiameter

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaInvHelixDiameter
protected
Initial value:
{
this, "deltaInvHelixDiameter", 0.00003 * 1. / Acts::UnitConstants::mm,
"the allowed delta between two inverted seed radii for them to be "
"considered compatible"}

Definition at line 284 of file GridTripletSeedingTool.h.

284 {
285 this, "deltaInvHelixDiameter", 0.00003 * 1. / Acts::UnitConstants::mm,
286 "the allowed delta between two inverted seed radii for them to be "
287 "considered compatible"};

◆ m_deltaRMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaRMax
protected
Initial value:
{
this, "deltaRMax", 280. * Acts::UnitConstants::mm,
"maximum distance in r between two measurements within one "
"seed"}

Definition at line 58 of file GridTripletSeedingTool.h.

58 {
59 this, "deltaRMax", 280. * Acts::UnitConstants::mm,
60 "maximum distance in r between two measurements within one "
61 "seed"};

◆ m_deltaRMaxBottomSP

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaRMaxBottomSP
protected
Initial value:
{
this, "deltaRMaxBottomSP", 150. * Acts::UnitConstants::mm,
"maximum distance in r between middle and top SP"}

Definition at line 111 of file GridTripletSeedingTool.h.

111 {
112 this, "deltaRMaxBottomSP", 150. * Acts::UnitConstants::mm,
113 "maximum distance in r between middle and top SP"};

◆ m_deltaRMaxTopSP

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaRMaxTopSP
protected
Initial value:
{
this, "deltaRMaxTopSP", 280. * Acts::UnitConstants::mm,
"maximum distance in r between middle and top SP"}

Definition at line 105 of file GridTripletSeedingTool.h.

105 {
106 this, "deltaRMaxTopSP", 280. * Acts::UnitConstants::mm,
107 "maximum distance in r between middle and top SP"};

◆ m_deltaRMiddleMaxSPRange

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaRMiddleMaxSPRange
protected
Initial value:
{
this, "deltaRMiddleMaxSPRange", 10., "delta R for middle SP range (max)"}

Definition at line 176 of file GridTripletSeedingTool.h.

176 {
177 this, "deltaRMiddleMaxSPRange", 10., "delta R for middle SP range (max)"};

◆ m_deltaRMiddleMinSPRange

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaRMiddleMinSPRange
protected
Initial value:
{
this, "deltaRMiddleMinSPRange", 10., "delta R for middle SP range (min)"}

Definition at line 174 of file GridTripletSeedingTool.h.

174 {
175 this, "deltaRMiddleMinSPRange", 10., "delta R for middle SP range (min)"};

◆ m_deltaRMin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaRMin
protected
Initial value:
{
this, "deltaRMin", 20. * Acts::UnitConstants::mm,
"minimum distance in r between two measurements within one "
"seed"}

Definition at line 98 of file GridTripletSeedingTool.h.

98 {
99 this, "deltaRMin", 20. * Acts::UnitConstants::mm,
100 "minimum distance in r between two measurements within one "
101 "seed"};

◆ m_deltaRMinBottomSP

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaRMinBottomSP
protected
Initial value:
{
this, "deltaRMinBottomSP", 6. * Acts::UnitConstants::mm,
"minimum distance in r between middle and top SP"}

Definition at line 108 of file GridTripletSeedingTool.h.

108 {
109 this, "deltaRMinBottomSP", 6. * Acts::UnitConstants::mm,
110 "minimum distance in r between middle and top SP"};

◆ m_deltaRMinTopSP

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaRMinTopSP
protected
Initial value:
{
this, "deltaRMinTopSP", 6. * Acts::UnitConstants::mm,
"minimum distance in r between middle and top SP"}

Definition at line 102 of file GridTripletSeedingTool.h.

102 {
103 this, "deltaRMinTopSP", 6. * Acts::UnitConstants::mm,
104 "minimum distance in r between middle and top SP"};

◆ m_deltaZMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_deltaZMax
protected
Initial value:
{
this, "deltaZMax", 600,
"maximum distance in z between two measurements within one seed"}

Definition at line 114 of file GridTripletSeedingTool.h.

114 {
115 this, "deltaZMax", 600,
116 "maximum distance in z between two measurements within one seed"};

◆ m_doubletDPhiCap

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_doubletDPhiCap
protected
Initial value:
{this, "doubletDPhiCap", 10.,
"cap on the displaced phi-swing term [rad]"}

Definition at line 357 of file GridTripletSeedingTool.h.

357 {this, "doubletDPhiCap", 10.,
358 "cap on the displaced phi-swing term [rad]"};

◆ m_doubletDPhiConst

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_doubletDPhiConst
protected
Initial value:
{this, "doubletDPhiConst", 0.015,
"constant term of the prompt doublet phi window [rad]"}

Definition at line 359 of file GridTripletSeedingTool.h.

359 {this, "doubletDPhiConst", 0.015,
360 "constant term of the prompt doublet phi window [rad]"};

◆ m_doubletDPhiCut

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_doubletDPhiCut
protected
Initial value:
{this, "doubletDPhiCut", false,
"apply the per-pair azimuthal-swing doublet cut"}

Definition at line 353 of file GridTripletSeedingTool.h.

353 {this, "doubletDPhiCut", false,
354 "apply the per-pair azimuthal-swing doublet cut"};

◆ m_doubletDPhiD0Max

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_doubletDPhiD0Max
protected
Initial value:
{this, "doubletDPhiD0Max", -1.,
"impact parameter bounding the doublet phi swing; negative uses impactMax"}

Definition at line 355 of file GridTripletSeedingTool.h.

355 {this, "doubletDPhiD0Max", -1.,
356 "impact parameter bounding the doublet phi swing; negative uses impactMax"};

◆ m_doubletDPhiSlope

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_doubletDPhiSlope
protected
Initial value:
{this, "doubletDPhiSlope", 2.0e-4,
"curvature term of the prompt doublet phi window [rad/mm]"}

Definition at line 361 of file GridTripletSeedingTool.h.

361 {this, "doubletDPhiSlope", 2.0e-4,
362 "curvature term of the prompt doublet phi window [rad/mm]"};

◆ m_expCutrMin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_expCutrMin
protected
Initial value:
{this, "SpSelectionExpCutrMin",
45. * Acts::UnitConstants::mm}

Definition at line 368 of file GridTripletSeedingTool.h.

368 {this, "SpSelectionExpCutrMin",
369 45. * Acts::UnitConstants::mm};

◆ m_filterCfg

Acts::BroadTripletSeedFilter::Config ActsTrk::GridTripletSeedingTool::m_filterCfg
private

Definition at line 376 of file GridTripletSeedingTool.h.

◆ m_finder

std::optional<Acts::TripletSeeder> ActsTrk::GridTripletSeedingTool::m_finder
private

Definition at line 378 of file GridTripletSeedingTool.h.

◆ m_gridCfg

Acts::CylindricalSpacePointGrid2::Config ActsTrk::GridTripletSeedingTool::m_gridCfg
private

Definition at line 372 of file GridTripletSeedingTool.h.

◆ m_gridPhiMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_gridPhiMax
protected
Initial value:
{this, "gridPhiMax",
std::numbers::pi_v<float>,
"phi max for space point grid formation"}

Definition at line 82 of file GridTripletSeedingTool.h.

82 {this, "gridPhiMax",
83 std::numbers::pi_v<float>,
84 "phi max for space point grid formation"};

◆ m_gridPhiMin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_gridPhiMin
protected
Initial value:
{this, "gridPhiMin",
-std::numbers::pi_v<float>,
"phi min for space point grid formation"}

Definition at line 79 of file GridTripletSeedingTool.h.

79 {this, "gridPhiMin",
80 -std::numbers::pi_v<float>,
81 "phi min for space point grid formation"};

◆ m_gridRMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_gridRMax
protected
Initial value:
{
this, "gridRMax", 320. * Acts::UnitConstants::mm,
"radial extension of subdetector to be used in grid building"}

Definition at line 76 of file GridTripletSeedingTool.h.

76 {
77 this, "gridRMax", 320. * Acts::UnitConstants::mm,
78 "radial extension of subdetector to be used in grid building"};

◆ m_hvCollisionRegionTolerance

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_hvCollisionRegionTolerance
protected
Initial value:
{
this, "hvCollisionRegionTolerance", 10. * Acts::UnitConstants::mm,
"size of collision region when using Hough vertex"}

Definition at line 126 of file GridTripletSeedingTool.h.

126 {
127 this, "hvCollisionRegionTolerance", 10. * Acts::UnitConstants::mm,
128 "size of collision region when using Hough vertex"};

◆ m_impactMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_impactMax
protected
Initial value:
{this, "impactMax",
2. * Acts::UnitConstants::mm,
"maximum impact parameter"}

Definition at line 62 of file GridTripletSeedingTool.h.

62 {this, "impactMax",
63 2. * Acts::UnitConstants::mm,
64 "maximum impact parameter"};

◆ m_impactWeightFactor

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_impactWeightFactor
protected
Initial value:
{
this, "impactWeightFactor", 100.,
"the impact parameters (d0) is multiplied by this factor and subtracted "
"from weight"}

Definition at line 253 of file GridTripletSeedingTool.h.

253 {
254 this, "impactWeightFactor", 100.,
255 "the impact parameters (d0) is multiplied by this factor and subtracted "
256 "from weight"};

◆ m_inputHoughVtxKey

SG::ReadHandleKey<xAOD::VertexContainer> ActsTrk::GridTripletSeedingTool::m_inputHoughVtxKey {this, "inputHoughVtx", "", "input vertex container"}
private

Definition at line 399 of file GridTripletSeedingTool.h.

399{this, "inputHoughVtx", "", "input vertex container"};

◆ m_interactionPointCut

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_interactionPointCut
protected
Initial value:
{
this, "interactionPointCut", true,
"Enable cut on the compatibility between interaction point and SPs"}

Definition at line 144 of file GridTripletSeedingTool.h.

144 {
145 this, "interactionPointCut", true,
146 "Enable cut on the compatibility between interaction point and SPs"};

◆ m_logger

std::unique_ptr<const Acts::Logger> ActsTrk::GridTripletSeedingTool::m_logger
private

logging instance

Definition at line 381 of file GridTripletSeedingTool.h.

◆ m_loggerFilter

std::unique_ptr<const Acts::Logger> ActsTrk::GridTripletSeedingTool::m_loggerFilter
private

Definition at line 382 of file GridTripletSeedingTool.h.

◆ m_maxPhiBins

Gaudi::Property<int> ActsTrk::GridTripletSeedingTool::m_maxPhiBins
protected
Initial value:
{this, "maxPhiBins", 200,
"max number of bins"}

Definition at line 89 of file GridTripletSeedingTool.h.

89 {this, "maxPhiBins", 200,
90 "max number of bins"};

◆ m_maxPtScattering

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_maxPtScattering
protected
Initial value:
{
this, "maxPtScattering", 10e6,
"Upper pt limit for scattering calculation"}

Definition at line 132 of file GridTripletSeedingTool.h.

132 {
133 this, "maxPtScattering", 10e6,
134 "Upper pt limit for scattering calculation"};

◆ m_maxQualitySeedsPerSpMConf

Gaudi::Property<std::size_t> ActsTrk::GridTripletSeedingTool::m_maxQualitySeedsPerSpMConf
protected
Initial value:
{
this, "maxQualitySeedsPerSpMConf", 5,
"Maximum number of quality seeds for each middle-bottom SP-duplet in "
"seed confirmation."}

Definition at line 277 of file GridTripletSeedingTool.h.

277 {
278 this, "maxQualitySeedsPerSpMConf", 5,
279 "Maximum number of quality seeds for each middle-bottom SP-duplet in "
280 "seed confirmation."};

◆ m_maxSeedsPerSpM

Gaudi::Property<int> ActsTrk::GridTripletSeedingTool::m_maxSeedsPerSpM
protected
Initial value:
{
this, "maxSeedsPerSpM", 4,
"In dense environments many seeds may be found per middle space point. "
"Only seeds with the highest weight will be kept if this limit is "
"reached."}

Definition at line 139 of file GridTripletSeedingTool.h.

139 {
140 this, "maxSeedsPerSpM", 4,
141 "In dense environments many seeds may be found per middle space point. "
142 "Only seeds with the highest weight will be kept if this limit is "
143 "reached."};

◆ m_maxSeedsPerSpMConf

Gaudi::Property<std::size_t> ActsTrk::GridTripletSeedingTool::m_maxSeedsPerSpMConf
protected
Initial value:
{
this, "maxSeedsPerSpMConf", 5,
"Maximum number of lower quality seeds in seed confirmation."}

Definition at line 274 of file GridTripletSeedingTool.h.

274 {
275 this, "maxSeedsPerSpMConf", 5,
276 "Maximum number of lower quality seeds in seed confirmation."};

◆ m_maxStripDeltaCotTheta

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_maxStripDeltaCotTheta
protected
Initial value:
{
this, "maxStripDeltaCotTheta", 1e10f,
"maximum allowed |cotTheta_bottom - cotTheta_top| pre-filter for strip "
"triplets before expensive coordinate checks"}

Definition at line 236 of file GridTripletSeedingTool.h.

236 {
237 this, "maxStripDeltaCotTheta", 1e10f,
238 "maximum allowed |cotTheta_bottom - cotTheta_top| pre-filter for strip "
239 "triplets before expensive coordinate checks"};

◆ m_minPt

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_minPt
protected
Initial value:
{this, "minPt", 900. * Acts::UnitConstants::MeV,
"lower pT cutoff for seeds"}

Definition at line 50 of file GridTripletSeedingTool.h.

50 {this, "minPt", 900. * Acts::UnitConstants::MeV,
51 "lower pT cutoff for seeds"};

◆ m_numPhiNeighbors

Gaudi::Property<int> ActsTrk::GridTripletSeedingTool::m_numPhiNeighbors
protected
Initial value:
{
this, "numPhiNeighbors", 1,
"number of phi bin neighbors at each side of the current bin that will "
"be used to search for SPs"}

Definition at line 342 of file GridTripletSeedingTool.h.

342 {
343 this, "numPhiNeighbors", 1,
344 "number of phi bin neighbors at each side of the current bin that will "
345 "be used to search for SPs"};

◆ m_numSeedIncrement

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_numSeedIncrement
protected
Initial value:
{
this, "numSeedIncrement", 10e6,
"increment in seed weight is applied if the number of compatible seeds "
"is larger than numSeedIncrement"}

Definition at line 268 of file GridTripletSeedingTool.h.

268 {
269 this, "numSeedIncrement", 10e6,
270 "increment in seed weight is applied if the number of compatible seeds "
271 "is larger than numSeedIncrement"};

◆ m_phiBinDeflectionCoverage

Gaudi::Property<int> ActsTrk::GridTripletSeedingTool::m_phiBinDeflectionCoverage
protected
Initial value:
{
this, "phiBinDeflectionCoverage", 3,
"sets of consecutive phi bins to cover full deflection of minimum pT "
"particle"}

Definition at line 85 of file GridTripletSeedingTool.h.

85 {
86 this, "phiBinDeflectionCoverage", 3,
87 "sets of consecutive phi bins to cover full deflection of minimum pT "
88 "particle"};

◆ m_phiMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_phiMax
protected
Initial value:
{this, "phiMax", std::numbers::pi_v<float>,
""}

Definition at line 243 of file GridTripletSeedingTool.h.

243 {this, "phiMax", std::numbers::pi_v<float>,
244 ""};

◆ m_phiMin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_phiMin
protected
Initial value:
{this, "phiMin", -std::numbers::pi_v<float>,
""}

Definition at line 241 of file GridTripletSeedingTool.h.

241 {this, "phiMin", -std::numbers::pi_v<float>,
242 ""};

◆ m_pixelId

const PixelID* ActsTrk::GridTripletSeedingTool::m_pixelId {nullptr}
private

Definition at line 384 of file GridTripletSeedingTool.h.

384{nullptr};

◆ m_radLengthPerSeed

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_radLengthPerSeed
protected
Initial value:
{
this, "radLengthPerSeed", 0.098045,
"average radiation lengths of material on the length of a seed. used for "
"scattering"}

Definition at line 135 of file GridTripletSeedingTool.h.

135 {
136 this, "radLengthPerSeed", 0.098045,
137 "average radiation lengths of material on the length of a seed. used for "
138 "scattering"};

◆ m_rAlign

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_rAlign
protected
Initial value:
{this, "rAlign", 0 * Acts::UnitConstants::mm,
""}

Definition at line 248 of file GridTripletSeedingTool.h.

248 {this, "rAlign", 0 * Acts::UnitConstants::mm,
249 ""};

◆ m_rBinEdges

Gaudi::Property<std::vector<float> > ActsTrk::GridTripletSeedingTool::m_rBinEdges
protected
Initial value:
{
this,
"rBinEdges",
{0., 1100 * Acts::UnitConstants::mm},
"enable non equidistant binning in radius"}

Definition at line 71 of file GridTripletSeedingTool.h.

71 {
72 this,
73 "rBinEdges",
74 {0., 1100 * Acts::UnitConstants::mm},
75 "enable non equidistant binning in radius"};

◆ m_rBinNeighborsBottom

Gaudi::Property<std::vector<std::pair<int, int> > > ActsTrk::GridTripletSeedingTool::m_rBinNeighborsBottom
protected
Initial value:
{
this,
"rBinNeighborsBottom",
{{0, 0}},
"vector containing the map of radius bins in the bottom layers"}

Definition at line 337 of file GridTripletSeedingTool.h.

337 {
338 this,
339 "rBinNeighborsBottom",
340 {{0, 0}},
341 "vector containing the map of radius bins in the bottom layers"};

◆ m_rBinNeighborsTop

Gaudi::Property<std::vector<std::pair<int, int> > > ActsTrk::GridTripletSeedingTool::m_rBinNeighborsTop
protected
Initial value:
{
this,
"rBinNeighborsTop",
{{0, 0}},
"vector containing the map of radius bins in the top layers"}

Definition at line 332 of file GridTripletSeedingTool.h.

332 {
333 this,
334 "rBinNeighborsTop",
335 {{0, 0}},
336 "vector containing the map of radius bins in the top layers"};

◆ m_rBinsCustomLooping

Gaudi::Property<std::vector<std::size_t> > ActsTrk::GridTripletSeedingTool::m_rBinsCustomLooping
protected
Initial value:
{
this, "rBinsCustomLooping", {1}, "defines order of r bins for looping"}

Definition at line 152 of file GridTripletSeedingTool.h.

152 {
153 this, "rBinsCustomLooping", {1}, "defines order of r bins for looping"};

◆ m_rMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_rMax
protected
Initial value:
{this, "rMax", 320. * Acts::UnitConstants::mm,
"limiting location of measurements"}

Definition at line 93 of file GridTripletSeedingTool.h.

93 {this, "rMax", 320. * Acts::UnitConstants::mm,
94 "limiting location of measurements"};

◆ m_rMin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_rMin {this, "rMin", 0 * Acts::UnitConstants::mm, ""}
protected

Definition at line 245 of file GridTripletSeedingTool.h.

245{this, "rMin", 0 * Acts::UnitConstants::mm, ""};

◆ m_rRangeMiddleSP

Gaudi::Property<std::vector<std::vector<double> > > ActsTrk::GridTripletSeedingTool::m_rRangeMiddleSP
protected
Initial value:
{
this,
"rRangeMiddleSP",
{{40.0, 90.0},
{40.0, 90.0},
{40.0, 200.0},
{46.0, 200.0},
{46.0, 200.0},
{46.0, 250.0},
{46.0, 250.0},
{46.0, 250.0},
{46.0, 200.0},
{46.0, 200.0},
{40.0, 200.0},
{40.0, 90.0},
{40.0, 90.0}},
"radial range for middle SP"}

Definition at line 157 of file GridTripletSeedingTool.h.

157 {
158 this,
159 "rRangeMiddleSP",
160 {{40.0, 90.0},
161 {40.0, 90.0},
162 {40.0, 200.0},
163 {46.0, 200.0},
164 {46.0, 200.0},
165 {46.0, 250.0},
166 {46.0, 250.0},
167 {46.0, 250.0},
168 {46.0, 200.0},
169 {46.0, 200.0},
170 {40.0, 200.0},
171 {40.0, 90.0},
172 {40.0, 90.0}},
173 "radial range for middle SP"};

◆ m_seedConfCentralMaxZOrigin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfCentralMaxZOrigin
protected
Initial value:
{
this, "seedConfCentralMaxZOrigin", 150 * Acts::UnitConstants::mm,
"Maximum zOrigin in seed confirmation"}

Definition at line 198 of file GridTripletSeedingTool.h.

198 {
199 this, "seedConfCentralMaxZOrigin", 150 * Acts::UnitConstants::mm,
200 "Maximum zOrigin in seed confirmation"};

◆ m_seedConfCentralMinBottomRadius

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfCentralMinBottomRadius
protected
Initial value:
{
this, "seedConfCentralMinBottomRadius", 60 * Acts::UnitConstants::mm,
"Minimum radius for bottom SP in seed confirmation"}

Definition at line 195 of file GridTripletSeedingTool.h.

195 {
196 this, "seedConfCentralMinBottomRadius", 60 * Acts::UnitConstants::mm,
197 "Minimum radius for bottom SP in seed confirmation"};

◆ m_seedConfCentralMinImpact

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfCentralMinImpact
protected
Initial value:
{
this, "seedConfCentralMinImpact", 1. * Acts::UnitConstants::mm,
"Minimum impact parameter for seed confirmation"}

Definition at line 201 of file GridTripletSeedingTool.h.

201 {
202 this, "seedConfCentralMinImpact", 1. * Acts::UnitConstants::mm,
203 "Minimum impact parameter for seed confirmation"};

◆ m_seedConfCentralNTopLargeR

Gaudi::Property<size_t> ActsTrk::GridTripletSeedingTool::m_seedConfCentralNTopLargeR
protected
Initial value:
{
this, "seedConfCentralNTopLargeR", 1,
"nTop for large R central seed confirmation"}

Definition at line 189 of file GridTripletSeedingTool.h.

189 {
190 this, "seedConfCentralNTopLargeR", 1,
191 "nTop for large R central seed confirmation"};

◆ m_seedConfCentralNTopSmallR

Gaudi::Property<size_t> ActsTrk::GridTripletSeedingTool::m_seedConfCentralNTopSmallR
protected
Initial value:
{
this, "seedConfCentralNTopSmallR", 2,
"nTop for small R central seed confirmation"}

Definition at line 192 of file GridTripletSeedingTool.h.

192 {
193 this, "seedConfCentralNTopSmallR", 2,
194 "nTop for small R central seed confirmation"};

◆ m_seedConfCentralRMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfCentralRMax
protected
Initial value:
{
this, "seedConfCentralRMax", 140. * Acts::UnitConstants::mm,
"maximum r for central seed confirmation "}

Definition at line 186 of file GridTripletSeedingTool.h.

186 {
187 this, "seedConfCentralRMax", 140. * Acts::UnitConstants::mm,
188 "maximum r for central seed confirmation "};

◆ m_seedConfCentralZMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfCentralZMax
protected
Initial value:
{
this, "seedConfCentralZMax", 250. * Acts::UnitConstants::mm,
"maximum z for central seed confirmation "}

Definition at line 183 of file GridTripletSeedingTool.h.

183 {
184 this, "seedConfCentralZMax", 250. * Acts::UnitConstants::mm,
185 "maximum z for central seed confirmation "};

◆ m_seedConfCentralZMin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfCentralZMin
protected
Initial value:
{
this, "seedConfCentralZMin", -250. * Acts::UnitConstants::mm,
"minimum z for central seed confirmation "}

Definition at line 180 of file GridTripletSeedingTool.h.

180 {
181 this, "seedConfCentralZMin", -250. * Acts::UnitConstants::mm,
182 "minimum z for central seed confirmation "};

◆ m_seedConfForwardMaxZOrigin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfForwardMaxZOrigin
protected
Initial value:
{
this, "seedConfForwardMaxZOrigin", 150 * Acts::UnitConstants::mm,
"Maximum zOrigin in seed confirmation"}

Definition at line 222 of file GridTripletSeedingTool.h.

222 {
223 this, "seedConfForwardMaxZOrigin", 150 * Acts::UnitConstants::mm,
224 "Maximum zOrigin in seed confirmation"};

◆ m_seedConfForwardMinBottomRadius

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfForwardMinBottomRadius
protected
Initial value:
{
this, "seedConfForwardMinBottomRadius", 60 * Acts::UnitConstants::mm,
"Minimum radius for bottom SP in seed confirmation"}

Definition at line 219 of file GridTripletSeedingTool.h.

219 {
220 this, "seedConfForwardMinBottomRadius", 60 * Acts::UnitConstants::mm,
221 "Minimum radius for bottom SP in seed confirmation"};

◆ m_seedConfForwardMinImpact

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfForwardMinImpact
protected
Initial value:
{
this, "seedConfForwardMinImpact", 1. * Acts::UnitConstants::mm,
"Minimum impact parameter for seed confirmation"}

Definition at line 225 of file GridTripletSeedingTool.h.

225 {
226 this, "seedConfForwardMinImpact", 1. * Acts::UnitConstants::mm,
227 "Minimum impact parameter for seed confirmation"};

◆ m_seedConfForwardNTopLargeR

Gaudi::Property<size_t> ActsTrk::GridTripletSeedingTool::m_seedConfForwardNTopLargeR
protected
Initial value:
{
this, "seedConfForwardNTopLargeR", 1,
"nTop for large R forward seed confirmation"}

Definition at line 213 of file GridTripletSeedingTool.h.

213 {
214 this, "seedConfForwardNTopLargeR", 1,
215 "nTop for large R forward seed confirmation"};

◆ m_seedConfForwardNTopSmallR

Gaudi::Property<size_t> ActsTrk::GridTripletSeedingTool::m_seedConfForwardNTopSmallR
protected
Initial value:
{
this, "seedConfForwardNTopSmallR", 2,
"nTop for small R forward seed confirmation"}

Definition at line 216 of file GridTripletSeedingTool.h.

216 {
217 this, "seedConfForwardNTopSmallR", 2,
218 "nTop for small R forward seed confirmation"};

◆ m_seedConfForwardRMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfForwardRMax
protected
Initial value:
{
this, "seedConfForwardRMax", 140. * Acts::UnitConstants::mm,
"maximum r for forward seed confirmation "}

Definition at line 210 of file GridTripletSeedingTool.h.

210 {
211 this, "seedConfForwardRMax", 140. * Acts::UnitConstants::mm,
212 "maximum r for forward seed confirmation "};

◆ m_seedConfForwardZMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfForwardZMax
protected
Initial value:
{
this, "seedConfForwardZMax", 3000. * Acts::UnitConstants::mm,
"maximum z for forward seed confirmation "}

Definition at line 207 of file GridTripletSeedingTool.h.

207 {
208 this, "seedConfForwardZMax", 3000. * Acts::UnitConstants::mm,
209 "maximum z for forward seed confirmation "};

◆ m_seedConfForwardZMin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedConfForwardZMin
protected
Initial value:
{
this, "seedConfForwardZMin", -3000. * Acts::UnitConstants::mm,
"minimum z for forward seed confirmation "}

Definition at line 204 of file GridTripletSeedingTool.h.

204 {
205 this, "seedConfForwardZMin", -3000. * Acts::UnitConstants::mm,
206 "minimum z for forward seed confirmation "};

◆ m_seedConfirmation

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_seedConfirmation
protected
Initial value:
{this, "seedConfirmation", true,
"run seed confirmation"}

Definition at line 178 of file GridTripletSeedingTool.h.

178 {this, "seedConfirmation", true,
179 "run seed confirmation"};

◆ m_seedConfirmationInFilter

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_seedConfirmationInFilter
protected
Initial value:
{
this, "seedConfirmationInFilter", true, "run seed confirmation"}

Definition at line 272 of file GridTripletSeedingTool.h.

272 {
273 this, "seedConfirmationInFilter", true, "run seed confirmation"};

◆ m_seedQualitySelection

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_seedQualitySelection
protected
Initial value:
{
this, "doSeedQualitySelection", true,
"Select seed according to quality criteria"}

Definition at line 44 of file GridTripletSeedingTool.h.

44 {
45 this, "doSeedQualitySelection", true,
46 "Select seed according to quality criteria"};

◆ m_seedWeightIncrement

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_seedWeightIncrement
protected
Initial value:
{
this, "seedWeightIncrement", 0., "increment in seed weight if needed"}

Definition at line 266 of file GridTripletSeedingTool.h.

266 {
267 this, "seedWeightIncrement", 0., "increment in seed weight if needed"};

◆ m_sigmaError

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_sigmaError {this, "sigmaError", 5, ""}
protected

Definition at line 250 of file GridTripletSeedingTool.h.

250{this, "sigmaError", 5, ""};

◆ m_sigmaScattering

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_sigmaScattering
protected
Initial value:
{
this, "sigmaScattering", 2.,
"how many sigmas of scattering angle should be considered"}

Definition at line 129 of file GridTripletSeedingTool.h.

129 {
130 this, "sigmaScattering", 2.,
131 "how many sigmas of scattering angle should be considered"};

◆ m_stateVectorReserveSize

Gaudi::Property<int> ActsTrk::GridTripletSeedingTool::m_stateVectorReserveSize
protected
Initial value:
{
this, "stateVectorReserveSize", 500,
"Size of the initial Seeding State internal vectors"}

Definition at line 364 of file GridTripletSeedingTool.h.

364 {
365 this, "stateVectorReserveSize", 500,
366 "Size of the initial Seeding State internal vectors"};

◆ m_toleranceParam

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_toleranceParam
protected
Initial value:
{
this, "toleranceParam", 1.1 * Acts::UnitConstants::mm,
"tolerance parameter used to check the compatibility of SPs coordinates "
"in xyz"}

Definition at line 232 of file GridTripletSeedingTool.h.

232 {
233 this, "toleranceParam", 1.1 * Acts::UnitConstants::mm,
234 "tolerance parameter used to check the compatibility of SPs coordinates "
235 "in xyz"};

◆ m_topDoubletFinderCfg

Acts::DoubletSeedFinder::Config ActsTrk::GridTripletSeedingTool::m_topDoubletFinderCfg
private

Definition at line 374 of file GridTripletSeedingTool.h.

◆ m_tripletFinderCfg

Acts::TripletSeedFinder::Config ActsTrk::GridTripletSeedingTool::m_tripletFinderCfg
private

Definition at line 375 of file GridTripletSeedingTool.h.

◆ m_useDeltaRorTopRadius

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_useDeltaRorTopRadius
protected
Initial value:
{
this, "useDeltaRorTopRadius", true,
"use deltaR (top radius - middle radius) instead of top radius"}

Definition at line 281 of file GridTripletSeedingTool.h.

281 {
282 this, "useDeltaRorTopRadius", true,
283 "use deltaR (top radius - middle radius) instead of top radius"};

◆ m_useDetailedDoubleMeasurementInfo

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_useDetailedDoubleMeasurementInfo
protected
Initial value:
{
this, "useDetailedDoubleMeasurementInfo", false,
"enable use of double measurement details"}

Definition at line 228 of file GridTripletSeedingTool.h.

228 {
229 this, "useDetailedDoubleMeasurementInfo", false,
230 "enable use of double measurement details"};

◆ m_useExperimentCuts

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_useExperimentCuts
protected
Initial value:
{this, "useExperimentCuts", false,
""}

Definition at line 347 of file GridTripletSeedingTool.h.

347 {this, "useExperimentCuts", false,
348 ""};

◆ m_useHVCollisionRegion

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_useHVCollisionRegion
protected
Initial value:
{
this, "useHVCollisionRegion", false,
"restrict collision region by Hough vertex position"}

Definition at line 123 of file GridTripletSeedingTool.h.

123 {
124 this, "useHVCollisionRegion", false,
125 "restrict collision region by Hough vertex position"};

◆ m_useVariableMiddleSPRange

Gaudi::Property<bool> ActsTrk::GridTripletSeedingTool::m_useVariableMiddleSPRange
protected
Initial value:
{
this, "useVariableMiddleSPRange", true,
"Enable variable range to search for middle SPs"}

Definition at line 154 of file GridTripletSeedingTool.h.

154 {
155 this, "useVariableMiddleSPRange", true,
156 "Enable variable range to search for middle SPs"};

◆ m_zAlign

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_zAlign
protected
Initial value:
{this, "zAlign", 0 * Acts::UnitConstants::mm,
""}

Definition at line 246 of file GridTripletSeedingTool.h.

246 {this, "zAlign", 0 * Acts::UnitConstants::mm,
247 ""};

◆ m_zBinEdges

Gaudi::Property<std::vector<float> > ActsTrk::GridTripletSeedingTool::m_zBinEdges
protected
Initial value:
{
this,
"zBinEdges",
{-3000., -2700., -2500., -1400., -925., -500., -250., 250., 500., 925.,
1400., 2500., 2700, 3000.},
"enable non equidistant binning in z"}

Definition at line 65 of file GridTripletSeedingTool.h.

65 {
66 this,
67 "zBinEdges",
68 {-3000., -2700., -2500., -1400., -925., -500., -250., 250., 500., 925.,
69 1400., 2500., 2700, 3000.},
70 "enable non equidistant binning in z"};

◆ m_zBinNeighborsBottom

Gaudi::Property<std::vector<std::pair<int, int> > > ActsTrk::GridTripletSeedingTool::m_zBinNeighborsBottom
protected
Initial value:
{
this,
"zBinNeighborsBottom",
{{0, 0},
{0, 1},
{0, 1},
{0, 1},
{0, 1},
{0, 1},
{0, 0},
{-1, 0},
{-1, 0},
{-1, 0},
{-1, 0},
{-1, 0},
{0, 0}},
"vector containing the map of z bins in the top layers"}

Definition at line 315 of file GridTripletSeedingTool.h.

315 {
316 this,
317 "zBinNeighborsBottom",
318 {{0, 0},
319 {0, 1},
320 {0, 1},
321 {0, 1},
322 {0, 1},
323 {0, 1},
324 {0, 0},
325 {-1, 0},
326 {-1, 0},
327 {-1, 0},
328 {-1, 0},
329 {-1, 0},
330 {0, 0}},
331 "vector containing the map of z bins in the top layers"};

◆ m_zBinNeighborsTop

Gaudi::Property<std::vector<std::pair<int, int> > > ActsTrk::GridTripletSeedingTool::m_zBinNeighborsTop
protected
Initial value:
{
this,
"zBinNeighborsTop",
{{0, 0},
{-1, 0},
{-2, 0},
{-1, 0},
{-1, 0},
{-1, 0},
{-1, 1},
{0, 1},
{0, 1},
{0, 1},
{0, 2},
{0, 1},
{0, 0}},
"vector containing the map of z bins in the top layers"}

Definition at line 298 of file GridTripletSeedingTool.h.

298 {
299 this,
300 "zBinNeighborsTop",
301 {{0, 0},
302 {-1, 0},
303 {-2, 0},
304 {-1, 0},
305 {-1, 0},
306 {-1, 0},
307 {-1, 1},
308 {0, 1},
309 {0, 1},
310 {0, 1},
311 {0, 2},
312 {0, 1},
313 {0, 0}},
314 "vector containing the map of z bins in the top layers"};

◆ m_zBinsCustomLooping

Gaudi::Property<std::vector<size_t> > ActsTrk::GridTripletSeedingTool::m_zBinsCustomLooping
protected
Initial value:
{
this,
"zBinsCustomLooping",
{2, 3, 4, 5, 12, 11, 10, 9, 7, 6, 8},
"defines order of z bins for looping"}

Definition at line 147 of file GridTripletSeedingTool.h.

147 {
148 this,
149 "zBinsCustomLooping",
150 {2, 3, 4, 5, 12, 11, 10, 9, 7, 6, 8},
151 "defines order of z bins for looping"};

◆ m_zMax

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_zMax
protected
Initial value:
{this, "zMax", 3000. * Acts::UnitConstants::mm,
"limiting location of measurements"}

Definition at line 56 of file GridTripletSeedingTool.h.

56 {this, "zMax", 3000. * Acts::UnitConstants::mm,
57 "limiting location of measurements"};

◆ m_zMin

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_zMin
protected
Initial value:
{this, "zMin", -3000. * Acts::UnitConstants::mm,
"limiting location of measurements"}

Definition at line 54 of file GridTripletSeedingTool.h.

54 {this, "zMin", -3000. * Acts::UnitConstants::mm,
55 "limiting location of measurements"};

◆ m_zOriginWeightFactor

Gaudi::Property<float> ActsTrk::GridTripletSeedingTool::m_zOriginWeightFactor {this, "zOriginWeightFactor", 1.}
protected

Definition at line 257 of file GridTripletSeedingTool.h.

257{this, "zOriginWeightFactor", 1.};

The documentation for this class was generated from the following files: