4#ifndef ACTSGPUPATTERNRECOGNITION_DEVICETRIPLETSEEDINGALG_H
5#define ACTSGPUPATTERNRECOGNITION_DEVICETRIPLETSEEDINGALG_H
8#include "GaudiKernel/ToolHandle.h"
23template <
typename scalar_t>
24using unit = detray::unit<scalar_t>;
47 using AthReentrantAlgorithm::AthReentrantAlgorithm;
52 virtual StatusCode
execute(
const EventContext& ctx)
const override;
60 this,
"SeedingAlgProviderTool",
"",
61 "Tool providing the appropriate backend device seeding algorithm"};
65 this,
"InputTracccPixelSpacepoints",
"",
66 "Input traccc spacepoint collection buffer"};
71 this,
"OutputTracccPixelSeeds",
"",
72 "Output traccc pixel seed collection buffer"};
78 this,
"BeamSpotKey",
"BeamSpotData",
"SG key for beam spot"};
80 this,
"AtlasFieldCacheCondObj",
"fieldCondObj",
81 "Name of the Magnetic Field conditions object key"};
86 Gaudi::Property<float>
m_zMin{
this,
"zMin", -3000.f,
"limiting location of measurements [mm]"};
87 Gaudi::Property<float>
m_zMax{
this,
"zMax", 3000.f,
"limiting location of measurements [mm]"};
88 Gaudi::Property<float>
m_rMin{
this,
"rMin", 33.f,
"limiting location of measurements [mm]"};
89 Gaudi::Property<float>
m_rMax{
this,
"rMax", 320.f,
"limiting location of measurements [mm]"};
91 "limiting location of collision region in z [mm]"};
93 "limiting location of collision region in z [mm]"};
94 Gaudi::Property<float>
m_minPt{
this,
"minPt", 900.f,
"lower pT cutoff for seeds [MeV]"};
95 Gaudi::Property<float>
m_cotThetaMax{
this,
"cotThetaMax", 27.2899f,
"cot of maximum theta angle"};
97 "minimum distance in r between two measurements within one seed [mm]"};
99 "maximum distance in r between two measurements within one seed [mm]"};
101 "maximum distance in z between two measurements within one seed [mm]"};
102 Gaudi::Property<float>
m_impactMax{
this,
"impactMax", 2.f,
"maximum impact parameter [mm]"};
104 "how many sigmas of scattering angle should be considered"};
106 "upper pt limit for scattering calculation [MeV]"};
108 "average radiation lengths of material on the length of a seed"};
110 "maximum number of seeds per middle spacepoint"};
112 "sets of consecutive phi bins to cover full deflection of minimum pT particle"};
118 "maximum distance in r from middle to bottom or top spacepoint used for the grid "
119 "phi binning [mm], deltaRMax if negative"};
125 "allowed delta between two inverted seed radii to be considered compatible [1/mm]"};
127 "impact parameter is multiplied by this factor and subtracted from the weight"};
129 "seed weight increase if a compatible seed has been found"};
131 "minimum distance between compatible seeds to be considered for weight boost [mm]"};
133 "maximum number of compatible seeds considered for the weight boost"};
135 "bottom spacepoint radius above which the weight is increased [mm]"};
137 "weight increase for a good bottom spacepoint"};
139 "top spacepoint radius below which the weight is increased [mm]"};
141 "weight increase for a good top spacepoint"};
143 "minimum weight of a seed with a good bottom spacepoint"};
145 "minimum weight of a seed with a bottom spacepoint below spBMinRadius"};
147 "bottom spacepoint radius above which the seed weight cut is not applied [mm]"};
detray::unit< scalar_t > unit
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Algorithm executing traccc triplet seeding on the GPU.
Gaudi::Property< float > m_deltaRMax
Gaudi::Property< float > m_maxPtScattering
virtual StatusCode configureTripletSeeder()
ToolHandle< IDeviceSeedingAlgProviderTool > m_seedingAlgProviderTool
Gaudi::Property< int > m_phiBinDeflectionCoverage
Gaudi::Property< float > m_goodSpTWeightIncrease
Gaudi::Property< float > m_deltaRMin
Gaudi::Property< float > m_deltaZMax
SG::ReadHandleKey< traccc::edm::spacepoint_collection::const_view > m_inputPixelSPKey
Gaudi::Property< float > m_rMin
traccc::seedfinder_config m_seedfinder
Gaudi::Property< float > m_deltaInvHelixDiameter
Gaudi::Property< float > m_zMax
Gaudi::Property< float > m_filterDeltaRMin
SG::WriteHandleKey< traccc::edm::seed_collection::buffer > m_outputPixelSeedsKey
Gaudi::Property< float > m_goodSpBMinWeight
Gaudi::Property< unsigned int > m_compatSeedLimit
traccc::seedfilter_config m_seedfilter
Gaudi::Property< float > m_sigmaScattering
Gaudi::Property< float > m_zMin
Gaudi::Property< float > m_goodSpBMinRadius
Gaudi::Property< float > m_minPt
virtual StatusCode execute(const EventContext &ctx) const override
Function executing the algorithm.
virtual StatusCode initialize() override
Function initializing the algorithm.
Gaudi::Property< unsigned int > m_maxSeedsPerSpM
Gaudi::Property< float > m_goodSpBWeightIncrease
Gaudi::Property< float > m_radLengthPerSeed
Gaudi::Property< float > m_goodSpTMaxRadius
Gaudi::Property< float > m_gridDeltaRMax
Gaudi::Property< float > m_cotThetaMax
Gaudi::Property< float > m_seedMinWeight
Gaudi::Property< float > m_compatSeedWeight
Gaudi::Property< float > m_collisionRegionMax
Gaudi::Property< float > m_rMax
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Gaudi::Property< float > m_impactWeightFactor
Gaudi::Property< float > m_spBMinRadius
Gaudi::Property< float > m_collisionRegionMin
Gaudi::Property< float > m_impactMax
An algorithm that can be simultaneously executed in multiple threads.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...