ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::GbtsSeedingTool Class Referencefinal

#include <GbtsSeedingTool.h>

Inheritance diagram for ActsTrk::GbtsSeedingTool:
Collaboration diagram for ActsTrk::GbtsSeedingTool:

Public Member Functions

 GbtsSeedingTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~GbtsSeedingTool ()=default
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

Private Member Functions

void printGbtsConfig () const
 prints all current config settings used either with default settings or properties changed by the gaudi options tells what the defaults in the config are
StatusCode prepareConfiguration ()
 sets configs based on gaudi properties defined below
StatusCode readConnections (const std::vector< Acts::Experimental::GbtsLayerDescription > &layers, const std::vector< GbtsTechnology > &technologies, std::vector< Acts::Experimental::GbtsLayerConnection > &connections, float &etaBinWidth) const
 Reads the connection table and keeps the connections this pass is for: both layers have to be layers this detector has, of one technology, and that technology has to be one the pass asked for.
StatusCode readTauLookupTable (Acts::Experimental::detail::GbtsTauLookupTable &tauLookupTable) const
 Reads the tau lookup table the cluster width cuts need: per line a cluster width, the bulk tau bounds and the near-edge ones.
const Acts::Logger & logger () const
 Private access to the logger.

Private Attributes

std::unique_ptr< const Acts::Logger > m_logger
 logging instance
Acts::Experimental::GraphBasedTrackSeeder::Config m_finderCfg
 steering for seeding algorithm
Acts::Experimental::GbtsTrackingFilter::Config m_filterCfg
 steering for track filter
std::optional< Acts::Experimental::GraphBasedTrackSeeder > m_finder
 the actual seed fining algorithm
std::optional< Acts::Experimental::GbtsTrackingFilter > m_filter
 the seed filter
std::optional< Acts::Experimental::GbtsRoiDescriptor > m_internalRoi
 region of interest for pixel seeding
const std::vector< short > * m_stripHashToLayer = nullptr
 Wafer hash to dense GBTS layer index, one map per technology.
const std::vector< short > * m_pixelHashToLayer = nullptr
ToolHandle< IGbtsLayerToolm_layerTool {this, "layerTool", "ActsTrk::GbtsLayerTool/ActsGbtsLayerTool"}
 Builds the GBTS layers out of the ITk readout geometry.
Gaudi::Property< std::string > m_connectorInputFile {this, "connectorInputFile","binTables_ITK_RUN4.txt", "input file for making connector object"}
Gaudi::Property< bool > m_pixelConnections {this, "usePixelConnections", true, "keep the pixel to pixel connections of the table"}
Gaudi::Property< bool > m_stripConnections {this, "useStripConnections", false, "keep the strip to strip connections of the table"}
Gaudi::Property< std::string > m_lutFile {this, "lutInputFile", "gbts_ml_pixel_barrel_loose.lut", "file to LUT"}
Gaudi::Property< bool > m_LRTmode {this, "LRTmode", false, "whether strip or pixel hits are used"}
Gaudi::Property< bool > m_useML {this, "useML", true, "use the cluster width of the spacepoint"}
Gaudi::Property< bool > m_matchBeforeCreate {this, "matchBeforeCreate", true, "need to check what this does"}
Gaudi::Property< bool > m_useOldTunings {this, "useOldTunings", false, "use the tunings for 900MeV cut"}
Gaudi::Property< bool > m_beamSpotCorrection {this, "beamSpotCorrection", true, "apply primary vertex corrections to spacepoints"}
Gaudi::Property< bool > m_validateTriplets {this, "ValidateTriplets", true, "extra validation on pT and d0 performed to connected barrel edges"}
Gaudi::Property< bool > m_useAdaptiveCuts {this, "UseAdaptiveCuts", true, "allows for larger accpetance of candidate edges that skip layers"}
Gaudi::Property< bool > m_addTriplets {this, "addTriplets", false, "add seeds with three spacepoints in a defined eta region"}
Gaudi::Property< bool > m_useEtaBinning {this, "useEtaBinning",true, "bool to use eta binning from geometry structure"}
Gaudi::Property< bool > m_doubletFilterRZ {this, "doubletFilterRZ",true, "bool applies new Z cuts on doublets"}
Gaudi::Property< float > m_etaBinWidthOverride {this, "etaBinOverride", 0.0f, "apply custom binning for connections"}
Gaudi::Property< float > m_nMaxPhiSlice {this, "nMaxPhiSlice",53, "used to calculate phi slices"}
Gaudi::Property< float > m_tauRatioCut {this, "tauRatioCut",0.007, "tau cut for doublets and triplets"}
Gaudi::Property< float > m_tauRatioPrecut {this, "precutTauRatioMax",0.009f, "used to reject edges early if matchBeforCreate is on"}
Gaudi::Property< float > m_tauRatioCorr {this, "tauRatioCorrection", 0.006, "correction added to tau accpetance if candidate edge skips a layer"}
Gaudi::Property< float > m_minPt {this, "minPt", 1000.0, "Lower cutoff for seeds"}
Gaudi::Property< float > m_maxEtaAddTriplets {this, "maxEtaAddTriplets", 1.5, "eta region in which three sapcepoint seeds are allowed"}
Gaudi::Property< float > m_minDeltaRadius {this, "minDeltaRadius",2.0, " min dr for doublet"}
Gaudi::Property< int > m_nMaxEdges {this, "MaxEdges",3000000, " max number of Gbts edges/doublets"}
Gaudi::Property< float > m_cutDPhiMax {this, "cutDPhiMax", 0.012f, "not sure"}
Gaudi::Property< float > m_cutDCurvMax {this, "cutDCurvMax", 0.001f, "not sure"}
Gaudi::Property< float > m_minDeltaPhi {this, "minDeltaPhi", 0.001f, "not sure"}
Gaudi::Property< float > m_maxOuterRadius {this, "maxOuterRadius", 550.0f, "not sure"}
Gaudi::Property< float > m_minZ0 {this, "minZ0", -99999, "not sure"}
Gaudi::Property< float > m_maxZ0 {this, "maxZ0", -99999, "not sure"}
Gaudi::Property< float > m_d0Max {this, "d0Max", 3.0, "maximum d0 value allowed when using validateTiplets"}
Gaudi::Property< float > m_sigmaMS {this, "sigmaMS", 0.016, "process noise from multiple scattering"}
Gaudi::Property< float > m_radLen {this, "radLen", 0.025, "defines how much material scattering the kalman filter should take into account"}
Gaudi::Property< float > m_sigmaX {this, "sigmaX", 0.08, "measurement resolution for residual on y direction"}
Gaudi::Property< float > m_sigmaY {this, "sigmaY", 0.25, "measurement resolution on r-z plane"}
Gaudi::Property< float > m_weightX {this, "weightX", 0.5, "penalty weight for track"}
Gaudi::Property< float > m_weightY {this, "weightY", 0.5, "penalty weight for track"}
Gaudi::Property< float > m_maxDChi2X {this, "maxDChi2X", 5.0, "gate threshold for chi2 test"}
Gaudi::Property< float > m_maxDChi2Y {this, "maxDChi2Y", 6.0, "gate threshold for chi2 test"}
Gaudi::Property< float > m_addHit {this, "addHit", 14.0, "reward added to tracks for each accepted hit before chi2"}
Gaudi::Property< float > m_maxCurvature {this, "maxCurvature", 1e-3f, "maximum curvature allowed for candiadte tracklet"}
Gaudi::Property< float > m_filterMaxZ0 {this, "filterMaxZ0", 170.0, "maximum z0 allowed for candidate tracklet"}
Gaudi::Property< float > m_edgeMaskMinEta {this, "edgeMaskMinEta", 1.5, "minimum eta allowed for masking edges in graph so they are not used again"}
Gaudi::Property< float > m_hitShareThreshold {this, "hitShareThreshold", 0.49, "threshold of hits that are shared between seeds before one seed is labelled a clone"}
Gaudi::Property< float > m_maxEndcapClusterwidth {this, "maxEndcapClusterwidth", 0.35, "discards any spacepoints which dr/dz cant be accurately modelled"}

Detailed Description

Definition at line 45 of file GbtsSeedingTool.h.

Constructor & Destructor Documentation

◆ GbtsSeedingTool()

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

Definition at line 24 of file GbtsSeedingTool.cxx.

27 : base_class(type, name, parent)
28 {}

◆ ~GbtsSeedingTool()

virtual ActsTrk::GbtsSeedingTool::~GbtsSeedingTool ( )
virtualdefault

Member Function Documentation

◆ createSeeds()

ATH_FLATTEN StatusCode ActsTrk::GbtsSeedingTool::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 82 of file GbtsSeedingTool.cxx.

87 {
88 // to avoid compile issues with unused veriables
89 (void) ctx;
90
91 const Acts::Experimental::GraphBasedTrackSeeder::Options options(bFieldInZ);
92
93
94 std::vector<const xAOD::SpacePoint*> tmpSpacePoints;
95
96 // add spacepoint pointers to singel container, this makes indexing them easier
97 for (const xAOD::SpacePointContainer* spacePoints : spacePointCollections) {
98 for (const xAOD::SpacePoint* sp : *spacePoints) {
99 tmpSpacePoints.emplace_back(sp);
100 }
101 }
102
103
104 // create the node storage and fill it from the xAOD space points
105 Acts::Experimental::GbtsNodeStorage nodeStorage = m_finder->makeNodeStorage();
106
107 // space points GBTS has no layer for, counted rather than reported per
108 // space point: the loop runs over the whole event
109 std::size_t nUnmappedHashes = 0;
110 std::size_t nUngroupedModules = 0;
111
112 // add spacepoints to node storage
113 for(std::size_t idx = 0; idx < tmpSpacePoints.size(); ++idx){
114 // obtain module hash for spacepoint
115 const xAOD::SpacePoint* sp = tmpSpacePoints[idx];
116 const std::vector<xAOD::DetectorIDHashType>& elementlist = sp->elementIdList();
117
118 const bool isPixel(elementlist.size() == 1);
119
120 const std::vector<short>& hashToLayer =
122 const auto hash = static_cast<std::size_t>(elementlist[0]);
123 if (hash >= hashToLayer.size()) [[unlikely]] {
124 ++nUnmappedHashes;
125 continue;
126 }
127
128 const short layer = hashToLayer[hash];
129 if (layer == IGbtsLayerTool::kNoLayer) {
130 // a wafer GBTS does not group into any of its layers
131 ++nUngroupedModules;
132 continue;
133 }
134
135 float clusterWidth = 0.0f;
136 float localPositionY = 0.0f;
137 if (m_finderCfg.useClusterWidthCuts && isPixel) {
138 assert(dynamic_cast<const xAOD::PixelCluster*>(sp->measurements().front())!=nullptr);
139 const xAOD::PixelCluster* pCL = static_cast<const xAOD::PixelCluster*>(sp->measurements().front());
140 clusterWidth = pCL->widthInEta();
141 localPositionY = pCL->localPosition<2>().y();
142 }
143
144 if (m_finderCfg.beamSpotCorrection) {
145 const float new_x = static_cast<float>(sp->x() - beamSpotPos[0]);
146 const float new_y = static_cast<float>(sp->y() - beamSpotPos[1]);
147 nodeStorage.insert(static_cast<Acts::SpacePointIndex>(idx), new_x, new_y, static_cast<float>(sp->z()),
148 std::hypot(new_x, new_y), std::atan2(new_y, new_x),
149 static_cast<std::uint32_t>(layer), clusterWidth, localPositionY);
150 } else {
151 const float new_x = static_cast<float>(sp->x());
152 const float new_y = static_cast<float>(sp->y());
153 nodeStorage.insert(static_cast<Acts::SpacePointIndex>(idx), new_x, new_y, static_cast<float>(sp->z()),
154 std::hypot(new_x, new_y), static_cast<float>(std::atan2(sp->y(), sp->x())),
155 static_cast<std::uint32_t>(layer), clusterWidth, localPositionY);
156 }
157 }
158
159 if (nUnmappedHashes != 0) [[unlikely]] {
160 ATH_MSG_WARNING(nUnmappedHashes << " space points sit on a wafer hash "
161 "outside the GBTS layer map and were dropped");
162 }
163 if (nUngroupedModules != 0) {
164 ATH_MSG_DEBUG(nUngroupedModules << " space points sit on a wafer GBTS "
165 "does not group into a layer");
166 }
167
168 // order the nodes and build the derived per-node data
169 nodeStorage.finalize();
170
171 ATH_MSG_VERBOSE("Spacepoints successfully added to node storage");
172
173 Acts::SeedContainer seeds;
174 m_finder->createSeeds(nodeStorage, m_internalRoi.value(), *m_filter, options, seeds);
175
176 // add seeds to the output container
177 seedContainer.reserve(seedContainer.size() + seeds.size(), 7.0f);
178 for (auto seed : seeds) {
179 seedContainer.push_back(
180 seed.asConst(),
181 [&](const Acts::SpacePointIndex spIndex) {
182 return tmpSpacePoints[spIndex];
183 });
184 }
185
186 ATH_MSG_VERBOSE("Number of seeds created is " << seedContainer.size());
187 return StatusCode::SUCCESS;
188 }
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_WARNING(x,...)
#define ATH_MSG_VERBOSE(x,...)
static Double_t sp
#define y
std::optional< Acts::Experimental::GbtsRoiDescriptor > m_internalRoi
region of interest for pixel seeding
Acts::Experimental::GraphBasedTrackSeeder::Config m_finderCfg
steering for seeding algorithm
std::optional< Acts::Experimental::GbtsTrackingFilter > m_filter
the seed filter
std::optional< Acts::Experimental::GraphBasedTrackSeeder > m_finder
the actual seed fining algorithm
const std::vector< short > * m_stripHashToLayer
Wafer hash to dense GBTS layer index, one map per technology.
const std::vector< short > * m_pixelHashToLayer
static constexpr short kNoLayer
Value stored in the hash maps for a module GBTS does not use.
float widthInEta() const
Returns the width of the cluster in phi (x) and eta (y) directions, respectively.
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
@ layer
Definition HitInfo.h:79
SpacePointContainer_v1 SpacePointContainer
Define the version of the space point container.
PixelCluster_v1 PixelCluster
Define the version of the pixel cluster class.
#define unlikely(x)
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

◆ initialize()

StatusCode ActsTrk::GbtsSeedingTool::initialize ( )
overridevirtual

Definition at line 30 of file GbtsSeedingTool.cxx.

30 {
31 ATH_CHECK(m_layerTool.retrieve());
32 ATH_MSG_DEBUG("Initializing " << name() << "...");
33
34 // Make the logger And Propagate to ACTS routines
35 m_logger = makeActsAthenaLogger(this, "Acts");
36
37 // etaMin,etaMax,zMin,zMax
38 m_internalRoi.emplace(-4.5, 4.5, -150.0, 150.0);
39
42
43 // The layer tool builds the GBTS layers, in dense layer index order, and
44 // knows which layer each module hash belongs to and what it is made of.
45 const std::vector<Acts::Experimental::GbtsLayerDescription>& layers =
46 m_layerTool->layerDescriptions();
47 const std::vector<GbtsTechnology>& technologies =
48 m_layerTool->layerTechnologies();
49
50 m_pixelHashToLayer = &m_layerTool->pixelLayers();
51 m_stripHashToLayer = &m_layerTool->stripLayers();
52
53 std::vector<Acts::Experimental::GbtsLayerConnection> connections;
54 float etaBinWidth = 0.0f;
55 ATH_CHECK(readConnections(layers, technologies, connections, etaBinWidth));
56
57 // option that allows for adding custom eta binning (default is at 0.2)
58 if (m_etaBinWidthOverride.value() != 0.0f) {
59 etaBinWidth = m_etaBinWidthOverride.value();
60 }
61
62 // the cluster width cuts are the only user of the tau lookup table
63 if (m_finderCfg.useClusterWidthCuts) {
65 }
66
67 // create geoemtry object that holds allowed pairing of allowed eta regions in each layer
68 // holds all geometry information (m_layergeomtry and connection table)
69 auto gbtsGeo = std::make_shared<Acts::Experimental::GbtsGeometry>(
70 layers, connections, etaBinWidth, Acts::Experimental::GbtsZ0Range{}, logger());
71
72 m_finder = Acts::Experimental::GraphBasedTrackSeeder(
73 Acts::Experimental::GraphBasedTrackSeeder::DerivedConfig(m_finderCfg),
74 gbtsGeo, logger().cloneWithSuffix("gbtsFinder"));
75
76 m_filter = Acts::Experimental::GbtsTrackingFilter(m_filterCfg, gbtsGeo);
77
78 return StatusCode::SUCCESS;
79 }
#define ATH_CHECK
Evaluate an expression and check for errors.
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Definition Logger.cxx:64
std::unique_ptr< const Acts::Logger > m_logger
logging instance
StatusCode readTauLookupTable(Acts::Experimental::detail::GbtsTauLookupTable &tauLookupTable) const
Reads the tau lookup table the cluster width cuts need: per line a cluster width, the bulk tau bounds...
Gaudi::Property< float > m_etaBinWidthOverride
const Acts::Logger & logger() const
Private access to the logger.
Acts::Experimental::GbtsTrackingFilter::Config m_filterCfg
steering for track filter
void printGbtsConfig() const
prints all current config settings used either with default settings or properties changed by the gau...
StatusCode readConnections(const std::vector< Acts::Experimental::GbtsLayerDescription > &layers, const std::vector< GbtsTechnology > &technologies, std::vector< Acts::Experimental::GbtsLayerConnection > &connections, float &etaBinWidth) const
Reads the connection table and keeps the connections this pass is for: both layers have to be layers ...
StatusCode prepareConfiguration()
sets configs based on gaudi properties defined below
ToolHandle< IGbtsLayerTool > m_layerTool
Builds the GBTS layers out of the ITk readout geometry.

◆ logger()

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

Private access to the logger.

Definition at line 89 of file GbtsSeedingTool.h.

89{ return *m_logger; }

◆ prepareConfiguration()

StatusCode ActsTrk::GbtsSeedingTool::prepareConfiguration ( )
private

sets configs based on gaudi properties defined below

Definition at line 319 of file GbtsSeedingTool.cxx.

319 {
320 m_finderCfg.useStripConnections = m_stripConnections;
321 m_finderCfg.useClusterWidthCuts = m_useML;
322 m_finderCfg.matchBeforeCreate = m_matchBeforeCreate;
323 // useOldTunings gated the curvature bounds and the phi window together,
324 // while LRT mode only wanted the first, so the seeder now has them apart
325 m_finderCfg.useOldTuningsCurvature = m_useOldTunings || m_LRTmode;
326 m_finderCfg.useOldTuningsPhiWindow = m_useOldTunings;
327 m_finderCfg.beamSpotCorrection = m_beamSpotCorrection;
328 m_finderCfg.minPt = m_minPt;
329 m_finderCfg.nMaxPhiSlice = m_nMaxPhiSlice;
330 m_finderCfg.useEtaBinning = m_useEtaBinning;
331 m_finderCfg.doubletFilterRZ = m_doubletFilterRZ;
332 m_finderCfg.minDeltaRadius = m_minDeltaRadius;
333 m_finderCfg.nMaxEdges = m_nMaxEdges;
334 m_finderCfg.tauRatioCut = m_tauRatioCut;
335 m_finderCfg.tauRatioPrecut = m_tauRatioPrecut;
336 m_finderCfg.edgeMaskMinEta = m_edgeMaskMinEta;
337 m_finderCfg.hitShareThreshold = m_hitShareThreshold;
338 m_finderCfg.maxEndcapClusterWidth = m_maxEndcapClusterwidth;
339 m_finderCfg.d0Max = m_d0Max;
340
341 //use roi for pixel and given value for strip
342 m_finderCfg.maxZ0 = m_LRTmode ? m_maxZ0.value() : m_internalRoi->zMax();
343 m_finderCfg.minZ0 = m_LRTmode ? m_minZ0.value() : m_internalRoi->zMin();
344
345 m_finderCfg.validateTriplets = m_validateTriplets;
346 m_finderCfg.useAdaptiveCuts = m_useAdaptiveCuts;
347 m_finderCfg.tauRatioCorr = m_tauRatioCorr;
348 m_finderCfg.addTriplets = m_addTriplets;
349 m_finderCfg.maxAbsEtaAddTriplets = m_maxEtaAddTriplets;
350 m_finderCfg.cutDPhiMax = m_cutDPhiMax;
351 m_finderCfg.cutDCurvMax = m_cutDCurvMax;
352 m_finderCfg.minDeltaPhi = m_minDeltaPhi;
353 m_finderCfg.maxOuterRadius = m_maxOuterRadius;
354
355 // The seeder no longer recognises an LRT mode, so spell out the rest of
356 // what it used to imply: the whole of maxCurv for the curvature bounds and
357 // the phi window, a triplet with no confirmation, and no added triplets.
358 // Keep this last, it overrides addTriplets.
359 if (m_LRTmode) {
360 m_finderCfg.oldTuningsCurvatureHighEtaFraction = 1.f;
361 m_finderCfg.oldTuningsCurvatureLowEtaFraction = 1.f;
362 m_finderCfg.oldTuningsPhiWindowFraction = 1.f;
363 m_finderCfg.minSeedLevel = 2;
364 m_finderCfg.addTriplets = false;
365 }
366
367 m_filterCfg.sigmaMS = m_sigmaMS;
368 m_filterCfg.radLen = m_radLen;
369 m_filterCfg.sigmaX = m_sigmaX;
370 m_filterCfg.sigmaY = m_sigmaY;
371 m_filterCfg.weightX = m_weightX;
372 m_filterCfg.weightY = m_weightY;
373 m_filterCfg.maxDChi2X = m_maxDChi2X;
374 m_filterCfg.maxDChi2Y = m_maxDChi2Y;
375 m_filterCfg.addHit = m_addHit;
376 m_filterCfg.maxCurvature = m_maxCurvature;
378
379 return StatusCode::SUCCESS;
380 }
Gaudi::Property< bool > m_doubletFilterRZ
Gaudi::Property< float > m_maxZ0
Gaudi::Property< int > m_nMaxEdges
Gaudi::Property< float > m_maxEtaAddTriplets
Gaudi::Property< float > m_filterMaxZ0
Gaudi::Property< float > m_minPt
Gaudi::Property< bool > m_useAdaptiveCuts
Gaudi::Property< float > m_maxDChi2X
Gaudi::Property< float > m_weightX
Gaudi::Property< float > m_sigmaMS
Gaudi::Property< float > m_cutDPhiMax
Gaudi::Property< bool > m_validateTriplets
Gaudi::Property< float > m_sigmaY
Gaudi::Property< bool > m_LRTmode
Gaudi::Property< float > m_edgeMaskMinEta
Gaudi::Property< float > m_addHit
Gaudi::Property< bool > m_stripConnections
Gaudi::Property< float > m_nMaxPhiSlice
Gaudi::Property< float > m_maxCurvature
Gaudi::Property< float > m_maxOuterRadius
Gaudi::Property< bool > m_useOldTunings
Gaudi::Property< float > m_minZ0
Gaudi::Property< float > m_maxDChi2Y
Gaudi::Property< float > m_cutDCurvMax
Gaudi::Property< float > m_minDeltaPhi
Gaudi::Property< bool > m_useML
Gaudi::Property< float > m_minDeltaRadius
Gaudi::Property< float > m_tauRatioPrecut
Gaudi::Property< bool > m_useEtaBinning
Gaudi::Property< bool > m_matchBeforeCreate
Gaudi::Property< float > m_maxEndcapClusterwidth
Gaudi::Property< float > m_tauRatioCorr
Gaudi::Property< float > m_hitShareThreshold
Gaudi::Property< float > m_sigmaX
Gaudi::Property< bool > m_beamSpotCorrection
Gaudi::Property< float > m_weightY
Gaudi::Property< float > m_tauRatioCut
Gaudi::Property< float > m_d0Max
Gaudi::Property< bool > m_addTriplets
Gaudi::Property< float > m_radLen

◆ printGbtsConfig()

void ActsTrk::GbtsSeedingTool::printGbtsConfig ( ) const
private

prints all current config settings used either with default settings or properties changed by the gaudi options tells what the defaults in the config are

Definition at line 383 of file GbtsSeedingTool.cxx.

383 {
384 ATH_MSG_DEBUG("===== GBTS finder config =====");
385 ATH_MSG_DEBUG( "beamSpotCorrection: " << m_finderCfg.beamSpotCorrection);
386 ATH_MSG_DEBUG( "connectorInputFile: " << m_connectorInputFile.value());
387 ATH_MSG_DEBUG( "lutInputFile: " << m_lutFile.value());
388 ATH_MSG_DEBUG( "LRTmode: " << m_LRTmode.value());
389 ATH_MSG_DEBUG( "useStripConnections: " << m_finderCfg.useStripConnections);
390 ATH_MSG_DEBUG( "useClusterWidthCuts: " << m_finderCfg.useClusterWidthCuts);
391 ATH_MSG_DEBUG( "matchBeforeCreate: " << m_finderCfg.matchBeforeCreate);
392 ATH_MSG_DEBUG( "useOldTuningsCurvature: " << m_finderCfg.useOldTuningsCurvature);
393 ATH_MSG_DEBUG( "useOldTuningsPhiWindow: " << m_finderCfg.useOldTuningsPhiWindow);
394 ATH_MSG_DEBUG( "minSeedLevel: " << m_finderCfg.minSeedLevel);
395 ATH_MSG_DEBUG( "tauRatioPrecut: " << m_finderCfg.tauRatioPrecut);
396 ATH_MSG_DEBUG( "tauRatioCut: " << m_finderCfg.tauRatioCut);
397 ATH_MSG_DEBUG( "tauRatioCorr: " << m_finderCfg.tauRatioCorr);
398 ATH_MSG_DEBUG( "etaBinWidthOverride: " << m_etaBinWidthOverride.value());
399 ATH_MSG_DEBUG( "nMaxPhiSlice: " << m_finderCfg.nMaxPhiSlice);
400 ATH_MSG_DEBUG( "minPt: " << m_finderCfg.minPt);
401 ATH_MSG_DEBUG( "useEtaBinning: " << m_finderCfg.useEtaBinning);
402 ATH_MSG_DEBUG( "doubletFilterRZ: " << m_finderCfg.doubletFilterRZ);
403 ATH_MSG_DEBUG( "nMaxEdges: " << m_finderCfg.nMaxEdges);
404 ATH_MSG_DEBUG( "minDeltaRadius: " << m_finderCfg.minDeltaRadius);
405 ATH_MSG_DEBUG( "edgeMaskMinEta: " << m_finderCfg.edgeMaskMinEta);
406 ATH_MSG_DEBUG( "hitShareThreshold: " << m_finderCfg.hitShareThreshold);
407 ATH_MSG_DEBUG( "maxEndcapClusterWidth: " << m_finderCfg.maxEndcapClusterWidth);
408 ATH_MSG_DEBUG( "d0Max: " << m_finderCfg.d0Max);
409 ATH_MSG_DEBUG("maxZ0: " << m_finderCfg.maxZ0);
410 ATH_MSG_DEBUG("minZ0: " << m_finderCfg.minZ0);
411 ATH_MSG_DEBUG( "validateTriplets: " << m_finderCfg.validateTriplets);
412 ATH_MSG_DEBUG( "useAdaptiveCuts: " << m_finderCfg.useAdaptiveCuts);
413 ATH_MSG_DEBUG( "addTriplets: " << m_finderCfg.addTriplets);
414 ATH_MSG_DEBUG( "maxEtaAddTriplets: " << m_finderCfg.maxAbsEtaAddTriplets);
415 ATH_MSG_DEBUG("cutDphiMax: " << m_finderCfg.cutDPhiMax);
416 ATH_MSG_DEBUG("cutDCurvMax: " << m_finderCfg.cutDCurvMax);
417 ATH_MSG_DEBUG("minDeltaPhi: " << m_finderCfg.minDeltaPhi);
418 ATH_MSG_DEBUG("maxOuterRadius: " << m_finderCfg.maxOuterRadius);
419
420 ATH_MSG_DEBUG("===== GBTS filter config =====");
421 ATH_MSG_DEBUG( "sigmaMS: " << m_filterCfg.sigmaMS);
422 ATH_MSG_DEBUG( "radLen: " << m_filterCfg.radLen);
423 ATH_MSG_DEBUG( "sigmaX: " << m_filterCfg.sigmaX);
424 ATH_MSG_DEBUG( "sigmaY: " << m_filterCfg.sigmaY);
425 ATH_MSG_DEBUG( "weightX: " << m_filterCfg.weightX);
426 ATH_MSG_DEBUG( "weightY: " << m_filterCfg.weightY);
427 ATH_MSG_DEBUG( "maxDChi2X: " << m_filterCfg.maxDChi2X);
428 ATH_MSG_DEBUG( "maxDChi2Y: " << m_filterCfg.maxDChi2Y);
429 ATH_MSG_DEBUG( "addHit: " << m_filterCfg.addHit);
430 ATH_MSG_DEBUG( "maxCurvature: " << m_filterCfg.maxCurvature);
431 ATH_MSG_DEBUG( "filterMaxZ0: " << m_filterCfg.maxZ0);
432}
Gaudi::Property< std::string > m_connectorInputFile
Gaudi::Property< std::string > m_lutFile

◆ readConnections()

StatusCode ActsTrk::GbtsSeedingTool::readConnections ( const std::vector< Acts::Experimental::GbtsLayerDescription > & layers,
const std::vector< GbtsTechnology > & technologies,
std::vector< Acts::Experimental::GbtsLayerConnection > & connections,
float & etaBinWidth ) const
private

Reads the connection table and keeps the connections this pass is for: both layers have to be layers this detector has, of one technology, and that technology has to be one the pass asked for.

Parameters
connectionsfilled with the layer pairs, in stage order
etaBinWidthfilled with the eta bin width the table was made for

Definition at line 193 of file GbtsSeedingTool.cxx.

198 {
199 std::ifstream connectionStream(m_connectorInputFile.value());
200 if (!connectionStream.is_open()) {
201 ATH_MSG_ERROR("Cannot open the GBTS connection table "
202 << m_connectorInputFile.value());
203 return StatusCode::FAILURE;
204 }
205
206 GbtsConnectionTable::ReadResult table;
207 try {
208 table = GbtsConnectionTable::read(connectionStream);
209 } catch (const std::exception& e) {
210 ATH_MSG_ERROR("Cannot read " << m_connectorInputFile.value() << ": "
211 << e.what());
212 return StatusCode::FAILURE;
213 }
214
215 // the table names a layer by its id, the layer tool by its dense index
216 std::unordered_map<std::uint32_t, GbtsTechnology> layerTechnologies;
217 layerTechnologies.reserve(layers.size());
218 for (std::size_t layer = 0; layer < layers.size(); ++layer) {
219 layerTechnologies.emplace(static_cast<std::uint32_t>(layers[layer].id),
220 technologies[layer]);
221 }
222
223 etaBinWidth = table.etaBinWidth;
224
225 // the stage column only fixes the order the connections are handed over in
226 std::vector<std::pair<std::uint32_t, Acts::Experimental::GbtsLayerConnection>> staged;
227 staged.reserve(table.connections.size());
228
229 std::size_t nOtherTechnology = 0;
230 std::size_t nUnknownLayer = 0;
231
232 for (const GbtsConnectionTable::Connection& connection :
233 table.connections) {
234 const auto src = layerTechnologies.find(connection.src);
235 const auto dst = layerTechnologies.find(connection.dst);
236 if (src == layerTechnologies.end() || dst == layerTechnologies.end()) {
237 ++nUnknownLayer;
238 continue;
239 }
240
241 // GBTS pairs a layer only with one of its own technology
242 const bool wanted = src->second == dst->second &&
243 (src->second == GbtsTechnology::Pixel
244 ? m_pixelConnections.value()
245 : m_stripConnections.value());
246 if (!wanted) {
247 ++nOtherTechnology;
248 continue;
249 }
250
251 staged.emplace_back(connection.stage,
252 Acts::Experimental::GbtsLayerConnection{connection.src,
253 connection.dst});
254 }
255
256 std::ranges::stable_sort(staged, {}, [](const auto& entry) { return entry.first; });
257
258 connections.clear();
259 connections.reserve(staged.size());
260 for (const auto& entry : staged) {
261 connections.push_back(entry.second);
262 }
263 const std::size_t nKept = connections.size();
264
265 if (nUnknownLayer != 0) {
266 ATH_MSG_WARNING(nUnknownLayer << " connections of "
267 << m_connectorInputFile.value() << " name no GBTS layer "
268 "and were dropped");
269 }
270 if (nKept == 0) {
271 ATH_MSG_ERROR("None of the connections of "
272 << m_connectorInputFile.value() << " are usable: the table "
273 "does not match the detector this job is reconstructing");
274 return StatusCode::FAILURE;
275 }
276 ATH_MSG_DEBUG("Kept " << nKept << " GBTS layer connections, dropping "
277 << nOtherTechnology << " of a technology not asked for, eta bin width "
278 << etaBinWidth);
279
280 return StatusCode::SUCCESS;
281 }
#define ATH_MSG_ERROR(x,...)
Gaudi::Property< bool > m_pixelConnections
ReadResult read(std::istream &inputStream)
Read the GBTS layer connection table.

◆ readTauLookupTable()

StatusCode ActsTrk::GbtsSeedingTool::readTauLookupTable ( Acts::Experimental::detail::GbtsTauLookupTable & tauLookupTable) const
private

Reads the tau lookup table the cluster width cuts need: per line a cluster width, the bulk tau bounds and the near-edge ones.

Definition at line 283 of file GbtsSeedingTool.cxx.

285 {
286 std::ifstream lutStream(m_lutFile.value());
287 if (!lutStream.is_open()) {
288 ATH_MSG_ERROR("Cannot open the GBTS tau lookup table " << m_lutFile.value());
289 return StatusCode::FAILURE;
290 }
291
292 tauLookupTable.clear();
293
294 // the width is dropped: a row is located by index, one row per
295 // tauLutBinWidth of cluster width, never searched
296 float clusterWidth = 0.0f;
297 Acts::Experimental::detail::GbtsTauBounds bounds;
298 while (lutStream >> clusterWidth >> bounds.minTau >> bounds.maxTau >>
299 bounds.minTauNearEdge >> bounds.maxTauNearEdge) {
300 tauLookupTable.push_back(bounds);
301 }
302
303 if (!lutStream.eof()) {
304 // ended on a parse error, not on a clean end of file
305 ATH_MSG_ERROR("Malformed GBTS tau lookup table " << m_lutFile.value());
306 return StatusCode::FAILURE;
307 }
308 if (tauLookupTable.empty()) {
309 ATH_MSG_ERROR("The GBTS tau lookup table " << m_lutFile.value() << " is empty");
310 return StatusCode::FAILURE;
311 }
312
313 ATH_MSG_DEBUG("Read " << tauLookupTable.size() << " rows of the GBTS tau lookup table "
314 << m_lutFile.value());
315
316 return StatusCode::SUCCESS;
317 }

Member Data Documentation

◆ m_addHit

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_addHit {this, "addHit", 14.0, "reward added to tracks for each accepted hit before chi2"}
private

Definition at line 168 of file GbtsSeedingTool.h.

168{this, "addHit", 14.0, "reward added to tracks for each accepted hit before chi2"};

◆ m_addTriplets

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_addTriplets {this, "addTriplets", false, "add seeds with three spacepoints in a defined eta region"}
private

Definition at line 131 of file GbtsSeedingTool.h.

131{this, "addTriplets", false, "add seeds with three spacepoints in a defined eta region"};

◆ m_beamSpotCorrection

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_beamSpotCorrection {this, "beamSpotCorrection", true, "apply primary vertex corrections to spacepoints"}
private

Definition at line 128 of file GbtsSeedingTool.h.

128{this, "beamSpotCorrection", true, "apply primary vertex corrections to spacepoints"};

◆ m_connectorInputFile

Gaudi::Property<std::string> ActsTrk::GbtsSeedingTool::m_connectorInputFile {this, "connectorInputFile","binTables_ITK_RUN4.txt", "input file for making connector object"}
private

Definition at line 118 of file GbtsSeedingTool.h.

118{this, "connectorInputFile","binTables_ITK_RUN4.txt", "input file for making connector object"};

◆ m_cutDCurvMax

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_cutDCurvMax {this, "cutDCurvMax", 0.001f, "not sure"}
private

Definition at line 147 of file GbtsSeedingTool.h.

147{this, "cutDCurvMax", 0.001f, "not sure"};

◆ m_cutDPhiMax

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_cutDPhiMax {this, "cutDPhiMax", 0.012f, "not sure"}
private

Definition at line 146 of file GbtsSeedingTool.h.

146{this, "cutDPhiMax", 0.012f, "not sure"};

◆ m_d0Max

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_d0Max {this, "d0Max", 3.0, "maximum d0 value allowed when using validateTiplets"}
private

Definition at line 157 of file GbtsSeedingTool.h.

157{this, "d0Max", 3.0, "maximum d0 value allowed when using validateTiplets"};

◆ m_doubletFilterRZ

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_doubletFilterRZ {this, "doubletFilterRZ",true, "bool applies new Z cuts on doublets"}
private

Definition at line 133 of file GbtsSeedingTool.h.

133{this, "doubletFilterRZ",true, "bool applies new Z cuts on doublets"};

◆ m_edgeMaskMinEta

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_edgeMaskMinEta {this, "edgeMaskMinEta", 1.5, "minimum eta allowed for masking edges in graph so they are not used again"}
private

Definition at line 171 of file GbtsSeedingTool.h.

171{this, "edgeMaskMinEta", 1.5, "minimum eta allowed for masking edges in graph so they are not used again"};

◆ m_etaBinWidthOverride

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_etaBinWidthOverride {this, "etaBinOverride", 0.0f, "apply custom binning for connections"}
private

Definition at line 135 of file GbtsSeedingTool.h.

135{this, "etaBinOverride", 0.0f, "apply custom binning for connections"};

◆ m_filter

std::optional<Acts::Experimental::GbtsTrackingFilter> ActsTrk::GbtsSeedingTool::m_filter
private

the seed filter

Definition at line 104 of file GbtsSeedingTool.h.

◆ m_filterCfg

Acts::Experimental::GbtsTrackingFilter::Config ActsTrk::GbtsSeedingTool::m_filterCfg
private

steering for track filter

Definition at line 98 of file GbtsSeedingTool.h.

◆ m_filterMaxZ0

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_filterMaxZ0 {this, "filterMaxZ0", 170.0, "maximum z0 allowed for candidate tracklet"}
private

Definition at line 170 of file GbtsSeedingTool.h.

170{this, "filterMaxZ0", 170.0, "maximum z0 allowed for candidate tracklet"};

◆ m_finder

std::optional<Acts::Experimental::GraphBasedTrackSeeder> ActsTrk::GbtsSeedingTool::m_finder
private

the actual seed fining algorithm

Definition at line 101 of file GbtsSeedingTool.h.

◆ m_finderCfg

Acts::Experimental::GraphBasedTrackSeeder::Config ActsTrk::GbtsSeedingTool::m_finderCfg
private

steering for seeding algorithm

Definition at line 95 of file GbtsSeedingTool.h.

◆ m_hitShareThreshold

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_hitShareThreshold {this, "hitShareThreshold", 0.49, "threshold of hits that are shared between seeds before one seed is labelled a clone"}
private

Definition at line 172 of file GbtsSeedingTool.h.

172{this, "hitShareThreshold", 0.49, "threshold of hits that are shared between seeds before one seed is labelled a clone"};

◆ m_internalRoi

std::optional<Acts::Experimental::GbtsRoiDescriptor> ActsTrk::GbtsSeedingTool::m_internalRoi
private

region of interest for pixel seeding

Definition at line 107 of file GbtsSeedingTool.h.

◆ m_layerTool

ToolHandle<IGbtsLayerTool> ActsTrk::GbtsSeedingTool::m_layerTool {this, "layerTool", "ActsTrk::GbtsLayerTool/ActsGbtsLayerTool"}
private

Builds the GBTS layers out of the ITk readout geometry.

Definition at line 115 of file GbtsSeedingTool.h.

115{this, "layerTool", "ActsTrk::GbtsLayerTool/ActsGbtsLayerTool"};

◆ m_logger

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

logging instance

Definition at line 92 of file GbtsSeedingTool.h.

◆ m_LRTmode

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_LRTmode {this, "LRTmode", false, "whether strip or pixel hits are used"}
private

Definition at line 124 of file GbtsSeedingTool.h.

124{this, "LRTmode", false, "whether strip or pixel hits are used"};

◆ m_lutFile

Gaudi::Property<std::string> ActsTrk::GbtsSeedingTool::m_lutFile {this, "lutInputFile", "gbts_ml_pixel_barrel_loose.lut", "file to LUT"}
private

Definition at line 121 of file GbtsSeedingTool.h.

121{this, "lutInputFile", "gbts_ml_pixel_barrel_loose.lut", "file to LUT"};

◆ m_matchBeforeCreate

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_matchBeforeCreate {this, "matchBeforeCreate", true, "need to check what this does"}
private

Definition at line 126 of file GbtsSeedingTool.h.

126{this, "matchBeforeCreate", true, "need to check what this does"};

◆ m_maxCurvature

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxCurvature {this, "maxCurvature", 1e-3f, "maximum curvature allowed for candiadte tracklet"}
private

Definition at line 169 of file GbtsSeedingTool.h.

169{this, "maxCurvature", 1e-3f, "maximum curvature allowed for candiadte tracklet"};

◆ m_maxDChi2X

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxDChi2X {this, "maxDChi2X", 5.0, "gate threshold for chi2 test"}
private

Definition at line 166 of file GbtsSeedingTool.h.

166{this, "maxDChi2X", 5.0, "gate threshold for chi2 test"};

◆ m_maxDChi2Y

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxDChi2Y {this, "maxDChi2Y", 6.0, "gate threshold for chi2 test"}
private

Definition at line 167 of file GbtsSeedingTool.h.

167{this, "maxDChi2Y", 6.0, "gate threshold for chi2 test"};

◆ m_maxEndcapClusterwidth

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxEndcapClusterwidth {this, "maxEndcapClusterwidth", 0.35, "discards any spacepoints which dr/dz cant be accurately modelled"}
private

Definition at line 175 of file GbtsSeedingTool.h.

175{this, "maxEndcapClusterwidth", 0.35, "discards any spacepoints which dr/dz cant be accurately modelled"};

◆ m_maxEtaAddTriplets

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxEtaAddTriplets {this, "maxEtaAddTriplets", 1.5, "eta region in which three sapcepoint seeds are allowed"}
private

Definition at line 143 of file GbtsSeedingTool.h.

143{this, "maxEtaAddTriplets", 1.5, "eta region in which three sapcepoint seeds are allowed"};

◆ m_maxOuterRadius

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxOuterRadius {this, "maxOuterRadius", 550.0f, "not sure"}
private

Definition at line 149 of file GbtsSeedingTool.h.

149{this, "maxOuterRadius", 550.0f, "not sure"};

◆ m_maxZ0

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxZ0 {this, "maxZ0", -99999, "not sure"}
private

Definition at line 154 of file GbtsSeedingTool.h.

154{this, "maxZ0", -99999, "not sure"};

◆ m_minDeltaPhi

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_minDeltaPhi {this, "minDeltaPhi", 0.001f, "not sure"}
private

Definition at line 148 of file GbtsSeedingTool.h.

148{this, "minDeltaPhi", 0.001f, "not sure"};

◆ m_minDeltaRadius

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_minDeltaRadius {this, "minDeltaRadius",2.0, " min dr for doublet"}
private

Definition at line 144 of file GbtsSeedingTool.h.

144{this, "minDeltaRadius",2.0, " min dr for doublet"};

◆ m_minPt

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_minPt {this, "minPt", 1000.0, "Lower cutoff for seeds"}
private

Definition at line 142 of file GbtsSeedingTool.h.

142{this, "minPt", 1000.0, "Lower cutoff for seeds"};

◆ m_minZ0

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_minZ0 {this, "minZ0", -99999, "not sure"}
private

Definition at line 153 of file GbtsSeedingTool.h.

153{this, "minZ0", -99999, "not sure"};

◆ m_nMaxEdges

Gaudi::Property<int> ActsTrk::GbtsSeedingTool::m_nMaxEdges {this, "MaxEdges",3000000, " max number of Gbts edges/doublets"}
private

Definition at line 145 of file GbtsSeedingTool.h.

145{this, "MaxEdges",3000000, " max number of Gbts edges/doublets"};

◆ m_nMaxPhiSlice

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_nMaxPhiSlice {this, "nMaxPhiSlice",53, "used to calculate phi slices"}
private

Definition at line 136 of file GbtsSeedingTool.h.

136{this, "nMaxPhiSlice",53, "used to calculate phi slices"};

◆ m_pixelConnections

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_pixelConnections {this, "usePixelConnections", true, "keep the pixel to pixel connections of the table"}
private

Definition at line 119 of file GbtsSeedingTool.h.

119{this, "usePixelConnections", true, "keep the pixel to pixel connections of the table"};

◆ m_pixelHashToLayer

const std::vector<short>* ActsTrk::GbtsSeedingTool::m_pixelHashToLayer = nullptr
private

Definition at line 112 of file GbtsSeedingTool.h.

◆ m_radLen

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_radLen {this, "radLen", 0.025, "defines how much material scattering the kalman filter should take into account"}
private

Definition at line 161 of file GbtsSeedingTool.h.

161{this, "radLen", 0.025, "defines how much material scattering the kalman filter should take into account"};

◆ m_sigmaMS

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_sigmaMS {this, "sigmaMS", 0.016, "process noise from multiple scattering"}
private

Definition at line 160 of file GbtsSeedingTool.h.

160{this, "sigmaMS", 0.016, "process noise from multiple scattering"};

◆ m_sigmaX

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_sigmaX {this, "sigmaX", 0.08, "measurement resolution for residual on y direction"}
private

Definition at line 162 of file GbtsSeedingTool.h.

162{this, "sigmaX", 0.08, "measurement resolution for residual on y direction"};

◆ m_sigmaY

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_sigmaY {this, "sigmaY", 0.25, "measurement resolution on r-z plane"}
private

Definition at line 163 of file GbtsSeedingTool.h.

163{this, "sigmaY", 0.25, "measurement resolution on r-z plane"};

◆ m_stripConnections

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_stripConnections {this, "useStripConnections", false, "keep the strip to strip connections of the table"}
private

Definition at line 120 of file GbtsSeedingTool.h.

120{this, "useStripConnections", false, "keep the strip to strip connections of the table"};

◆ m_stripHashToLayer

const std::vector<short>* ActsTrk::GbtsSeedingTool::m_stripHashToLayer = nullptr
private

Wafer hash to dense GBTS layer index, one map per technology.

Used to put a space point on the layer its module belongs to.

Definition at line 111 of file GbtsSeedingTool.h.

◆ m_tauRatioCorr

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_tauRatioCorr {this, "tauRatioCorrection", 0.006, "correction added to tau accpetance if candidate edge skips a layer"}
private

Definition at line 141 of file GbtsSeedingTool.h.

141{this, "tauRatioCorrection", 0.006, "correction added to tau accpetance if candidate edge skips a layer"};

◆ m_tauRatioCut

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_tauRatioCut {this, "tauRatioCut",0.007, "tau cut for doublets and triplets"}
private

Definition at line 139 of file GbtsSeedingTool.h.

139{this, "tauRatioCut",0.007, "tau cut for doublets and triplets"};

◆ m_tauRatioPrecut

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_tauRatioPrecut {this, "precutTauRatioMax",0.009f, "used to reject edges early if matchBeforCreate is on"}
private

Definition at line 140 of file GbtsSeedingTool.h.

140{this, "precutTauRatioMax",0.009f, "used to reject edges early if matchBeforCreate is on"};

◆ m_useAdaptiveCuts

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_useAdaptiveCuts {this, "UseAdaptiveCuts", true, "allows for larger accpetance of candidate edges that skip layers"}
private

Definition at line 130 of file GbtsSeedingTool.h.

130{this, "UseAdaptiveCuts", true, "allows for larger accpetance of candidate edges that skip layers"};

◆ m_useEtaBinning

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_useEtaBinning {this, "useEtaBinning",true, "bool to use eta binning from geometry structure"}
private

Definition at line 132 of file GbtsSeedingTool.h.

132{this, "useEtaBinning",true, "bool to use eta binning from geometry structure"};

◆ m_useML

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_useML {this, "useML", true, "use the cluster width of the spacepoint"}
private

Definition at line 125 of file GbtsSeedingTool.h.

125{this, "useML", true, "use the cluster width of the spacepoint"};

◆ m_useOldTunings

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_useOldTunings {this, "useOldTunings", false, "use the tunings for 900MeV cut"}
private

Definition at line 127 of file GbtsSeedingTool.h.

127{this, "useOldTunings", false, "use the tunings for 900MeV cut"};

◆ m_validateTriplets

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_validateTriplets {this, "ValidateTriplets", true, "extra validation on pT and d0 performed to connected barrel edges"}
private

Definition at line 129 of file GbtsSeedingTool.h.

129{this, "ValidateTriplets", true, "extra validation on pT and d0 performed to connected barrel edges"};

◆ m_weightX

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_weightX {this, "weightX", 0.5, "penalty weight for track"}
private

Definition at line 164 of file GbtsSeedingTool.h.

164{this, "weightX", 0.5, "penalty weight for track"};

◆ m_weightY

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_weightY {this, "weightY", 0.5, "penalty weight for track"}
private

Definition at line 165 of file GbtsSeedingTool.h.

165{this, "weightY", 0.5, "penalty weight for track"};

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