ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::GNNSeedingTrackMaker Class Reference

InDet::GNNSeedingTrackMaker is an algorithm that uses the GNN-based track finding tool to reconstruct tracks and the use track fitter to obtain track parameters. More...

#include <GNNSeedingTrackMaker.h>

Inheritance diagram for InDet::GNNSeedingTrackMaker:
Collaboration diagram for InDet::GNNSeedingTrackMaker:

Public Member Functions

 GNNSeedingTrackMaker (const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize () override
virtual StatusCode execute (const EventContext &ctx) const override
virtual bool isClonable () const override
 Make this algorithm clonable.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
virtual void setFilterPassed (bool state, const EventContext &ctx) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

SG::ReadHandleKey< InDet::PixelClusterContainer > m_pixelClusterKey
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_stripClusterKey
SG::ReadHandleKey< SpacePointContainerm_SpacePointsPixelKey
SG::ReadHandleKey< SpacePointContainerm_SpacePointsStripKey
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryPixelKey
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryStripKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObjm_fieldCondObjInputKey
SG::ReadHandleKey< InDet::SiDetectorElementStatusm_pixelDetElStatus
 Optional read handle to get status data to test whether a pixel detector element is good.
SG::ReadHandleKey< InDet::SiDetectorElementStatusm_stripDetElStatus
 Optional read handle to get status data to test whether a Strip detector element is good.
SG::WriteHandleKey< TrackCollectionm_outputTracksKey
ToolHandle< IGNNTrackFinderm_gnnTrackFinder
ToolHandle< ISeedFitterm_seedFitter
 GNN-based track finding tool that produces track candidates.
ToolHandle< IGNNTrackReaderToolm_gnnTrackReader
ToolHandle< Trk::ITrackFitterm_trackFitter
 Track Fitter.
PublicToolHandle< Trk::IRIO_OnTrackCreatorm_riocreator
PublicToolHandle< Trk::IPatternParametersPropagatorm_proptool
PublicToolHandle< Trk::IPatternParametersUpdatorm_updatortool
ToolHandle< Trk::IBoundaryCheckToolm_boundaryCheckTool
ToolHandle< IInDetConditionsToolm_pixelCondSummaryTool
ToolHandle< IInDetConditionsToolm_stripCondSummaryTool
ToolHandle< InDet::ISiDetElementsRoadMakerm_roadmaker
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Other properties

StringProperty m_fieldmode
Trk::MagneticFieldProperties m_fieldprop
 Magnetic field properties.
IntegerProperty m_nclusmin {this, "nClustersMin", 6, "Min number clusters"}
IntegerProperty m_nwclusmin
IntegerProperty m_nholesmax {this, "nHolesMax", 2, "Max number holes"}
IntegerProperty m_dholesmax {this, "nHolesGapMax", 2, "Max holes gap"}
DoubleProperty m_pTmin {this, "pTmin", 500., "min pT"}
DoubleProperty m_pTminBrem {this, "pTminBrem", 1000., "min pT for Brem mode"}
DoubleProperty m_xi2max {this, "Xi2max", 9., "max Xi2 for updators"}
DoubleProperty m_xi2maxNoAdd
DoubleProperty m_xi2maxlink {this, "Xi2maxlink", 200., "max Xi2 for clusters"}
DoubleProperty m_xi2multitracks
IntegerProperty m_doMultiTracksProd
void magneticFieldInit ()
void detectorElementLinks (std::vector< const InDetDD::SiDetectorElement * > &DE, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &DEL, const EventContext &ctx) const
void initializeCombinatorialData (const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data) const
void getTrackQualityCuts (SiCombinatorialTrackFinderData_xk &data) const
static bool spacePointsToClusters (const std::vector< const Trk::SpacePoint * > &, std::vector< const InDet::SiCluster * > &, std::optional< std::reference_wrapper< std::vector< const InDetDD::SiDetectorElement * > > >=std::nullopt)

Detailed Description

InDet::GNNSeedingTrackMaker is an algorithm that uses the GNN-based track finding tool to reconstruct tracks and the use track fitter to obtain track parameters.

It turns a collection of Trk::Tracks.

Author
xiang.nosp@m.yang.nosp@m..ju@c.nosp@m.ern..nosp@m.ch

Definition at line 51 of file GNNSeedingTrackMaker.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ GNNSeedingTrackMaker()

InDet::GNNSeedingTrackMaker::GNNSeedingTrackMaker ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 15 of file GNNSeedingTrackMaker.cxx.

17 : AthReentrantAlgorithm(name, pSvcLocator) {}

Member Function Documentation

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

64{
65 return 0;
66}

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detectorElementLinks()

void InDet::GNNSeedingTrackMaker::detectorElementLinks ( std::vector< const InDetDD::SiDetectorElement * > & DE,
std::vector< const InDet::SiDetElementBoundaryLink_xk * > & DEL,
const EventContext & ctx ) const
private

Definition at line 362 of file GNNSeedingTrackMaker.cxx.

365 {
366 const InDet::SiDetElementBoundaryLinks_xk* boundaryPixel{nullptr};
367 const InDet::SiDetElementBoundaryLinks_xk* boundaryStrip{nullptr};
368
369 SG::ReadCondHandle<InDet::SiDetElementBoundaryLinks_xk> boundaryPixelHandle(
370 m_boundaryPixelKey, ctx);
371 boundaryPixel = *boundaryPixelHandle;
372 if (boundaryPixel == nullptr) {
373 ATH_MSG_FATAL(m_boundaryPixelKey.fullKey() << " returns null pointer");
374 }
375
376 SG::ReadCondHandle<InDet::SiDetElementBoundaryLinks_xk> boundaryStripHandle(
377 m_boundaryStripKey, ctx);
378 boundaryStrip = *boundaryStripHandle;
379 if (boundaryStrip == nullptr) {
380 ATH_MSG_FATAL(m_boundaryStripKey.fullKey() << " returns null pointer");
381 }
382
383 DEL.reserve(DE.size());
384 for (const InDetDD::SiDetectorElement* d : DE) {
385 IdentifierHash id = d->identifyHash();
386 if (d->isPixel() && boundaryPixel && id < boundaryPixel->size())
387 DEL.push_back(&(*boundaryPixel)[id]);
388 else if (d->isSCT() && boundaryStrip && id < boundaryStrip->size())
389 DEL.push_back(&(*boundaryStrip)[id]);
390 }
391}
#define ATH_MSG_FATAL(x)
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryPixelKey
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryStripKey
std::vector< SiDetElementBoundaryLink_xk > SiDetElementBoundaryLinks_xk

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode InDet::GNNSeedingTrackMaker::execute ( const EventContext & ctx) const
overridevirtual

read the B-field cache

sort in step order

Definition at line 78 of file GNNSeedingTrackMaker.cxx.

78 {
79 SG::WriteHandle<TrackCollection> outputTracks{m_outputTracksKey, ctx};
80 ATH_CHECK(outputTracks.record(std::make_unique<TrackCollection>()));
81
82 // get event info
83 uint32_t runNumber = ctx.eventID().run_number();
84 uint32_t eventNumber = ctx.eventID().event_number();
85
86 std::vector<const Trk::SpacePoint*> spacePoints;
87
88 auto getSpacepointData =
89 [&](const SG::ReadHandleKey<SpacePointContainer>& containerKey) {
90 if (not containerKey.empty()) {
91
92 SG::ReadHandle<SpacePointContainer> container{containerKey, ctx};
93
94 if (container.isValid()) {
95 for (auto spCollection : *container.cptr()) {
96 for (const Trk::SpacePoint* spacepoint : *spCollection) {
97 spacePoints.push_back(spacepoint);
98 }
99 }
100 }
101 }
102 };
103
104 getSpacepointData(m_SpacePointsPixelKey);
105 getSpacepointData(m_SpacePointsStripKey);
106
107 SG::ReadHandle<InDet::PixelClusterContainer> pixelClusters{m_pixelClusterKey,
108 ctx};
109 SG::ReadHandle<InDet::SCT_ClusterContainer> stripClusters{m_stripClusterKey,
110 ctx};
111 ATH_MSG_DEBUG("Found " << pixelClusters->size() << " pixel clusters");
112 ATH_MSG_DEBUG("Found " << stripClusters->size() << " strip clusters");
113 ATH_MSG_DEBUG("Found " << spacePoints.size() << " space points");
114
115 std::vector<std::vector<uint32_t>> gnnTrackCandidates;
116 if (m_gnnTrackFinder.isSet()) {
117 ATH_CHECK(m_gnnTrackFinder->getTracks(spacePoints, gnnTrackCandidates));
118 } else if (m_gnnTrackReader.isSet()) {
119 m_gnnTrackReader->getTracks(runNumber, eventNumber, gnnTrackCandidates);
120 } else {
121 ATH_MSG_ERROR("Both GNNTrackFinder and GNNTrackReader are not set");
122 return StatusCode::FAILURE;
123 }
124
125 ATH_MSG_DEBUG("Obtained " << gnnTrackCandidates.size() << " Tracks");
126
127 // loop over all track candidates
128 // and perform track fitting for each.
129 SiCombinatorialTrackFinderData_xk data;
130 if (not data.isInitialized())
132 // Erase statistic information
133 //
134 data.inputseeds() = 0;
135 data.goodseeds() = 0;
136 data.inittracks() = 0;
137 data.findtracks() = 0;
138 data.roadbug() = 0;
139 // Set track info
140 //
141 data.trackinfo().setPatternRecognitionInfo(Trk::TrackInfo::SiSPSeededFinder);
142 data.setCosmicTrack(0);
143 data.setPixContainer(pixelClusters.cptr());
144 data.setSctContainer(stripClusters.cptr());
145
147
148 // Get AtlasFieldCache
149 MagField::AtlasFieldCache fieldCache;
150
152 SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCondObjInputKey,
153 ctx};
154 const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
155 if (fieldCondObj == nullptr) {
157 "InDet::SiTrackMaker_xk::getTracks: Failed to retrieve "
158 "AtlasFieldCacheCondObj with key "
159 << m_fieldCondObjInputKey.key());
160 return StatusCode::FAILURE;
161 }
162 fieldCondObj->getInitializedCache(fieldCache);
163
164 int num_extended_tracks = 0;
165
166 for (auto& trackIndices : gnnTrackCandidates) {
167
168 std::vector<const Trk::PrepRawData*> clusters; // only pixel clusters!
169 std::vector<const Trk::SpacePoint*> trackCandidate;
170 trackCandidate.reserve(trackIndices.size());
171
172 for (auto& id : trackIndices) {
174 if (id > spacePoints.size()) {
175 ATH_MSG_WARNING("SpacePoint index out of range");
176 continue;
177 }
178 const Trk::SpacePoint* sp = spacePoints[id];
179 if (sp != nullptr) {
180 trackCandidate.push_back(sp);
181 clusters.push_back(sp->clusterList().first);
182 }
183 }
184
185 // I will follow the following steps to fit the track:
186 // 1. get initial track parameters based on these space points
187 // 2. fit the track segments to get a better estimate of the track
188 // parameters, twice. (first with local parameters, then with perigee
189 // parameters)
190 // 3. create the detector element road based on the track parameters.
191 // 4. forward extension of the track with smoothing
192 // 5. backward smoother of the track
193 // 6. create a Trk::Track object and store it in the outputTracks
194 // collection. If step 3 - 6 failed, I will refit the track from step 2 with
195 // overlap removal and store it in the outputTracks collection.
196
197 // other options we could explore. See SiTrajectory_xk.h for more details.
198 // backwardExtension, forwardFilter, filterWithPreciseClustersError,
199
200 // conformal mapping for track parameters
201 auto trkParameters = m_seedFitter->fit(trackCandidate);
202 if (trkParameters == nullptr) {
203 ATH_MSG_WARNING("Conformal mapping failed");
204 continue;
205 }
206
207 // step 2. fit the pixel-based track with the track fitter
209 // first fit the track with local parameters and without outlier removal.
210 bool outlier_removal = false;
211 std::unique_ptr<Trk::Track> track = m_trackFitter->fit(
212 ctx, clusters, *trkParameters, outlier_removal, matEffects);
213 if (track != nullptr && track->perigeeParameters() != nullptr) {
214 // fit the track again with perigee parameters and without outlier
215 // removal.
216 track = m_trackFitter->fit(ctx, clusters, *track->perigeeParameters(),
217 outlier_removal, matEffects);
218 }
219 // done with step 2.
220
221 if (track == nullptr)
222 continue;
223 const Trk::TrackParameters& Tp = *(track->perigeeParameters());
224 bool is_extension_successful = false;
225
226 // step 3. building the road
227 SiDetElementRoadMakerData_xk roadMakerData;
228 std::vector<const InDetDD::SiDetectorElement*> trackRoad;
229 m_roadmaker->detElementsRoad(ctx, fieldCache, Tp, Trk::alongMomentum,
230 trackRoad, roadMakerData);
231 if (!trackRoad.empty()) {
232 std::vector<const InDet::SiDetElementBoundaryLink_xk*> DEL;
233 detectorElementLinks(trackRoad, DEL, ctx);
234
235 data.tools().setBremNoise(false, false);
236 data.tracks().erase(data.tracks().begin(), data.tracks().end());
237 data.statistic().fill(false);
238 ++data.inputseeds();
239
240 // step 3.5 initialize the trajectory
241 std::vector<const InDet::SiCluster*> Cl;
242 spacePointsToClusters(trackCandidate, Cl);
243 bool Qr;
244 bool Q = data.trajectory().initialize(true, true, pixelClusters.cptr(),
245 stripClusters.cptr(), Tp, Cl, DEL,
246 Qr, ctx);
247
248 if (Q) {
249 // step 4. forward extension of the track
250 int itmax = 10;
251 bool do_smooth = true;
252 if (data.trajectory().forwardExtension(do_smooth, itmax, ctx)) {
253 // step 5. backward smoother of the track
254 if (data.trajectory().backwardSmoother(false, ctx)) {
256 data.trajectory().sortStep();
257
258 Trk::TrackInfo info;
259 info.setPatternRecognitionInfo(
261 info.setParticleHypothesis(Trk::pion);
262
263 Trk::Track final_track(
264 info,
265 std::make_unique<Trk::TrackStates>(
266 data.trajectory().convertToSimpleTrackStateOnSurface(ctx)),
267 data.trajectory().convertToFitQuality());
268 // refit the track with overlap removal.
269 auto extended_track =
270 m_trackFitter->fit(ctx, final_track, true, matEffects);
271 if (extended_track != nullptr &&
272 extended_track->trackSummary() != nullptr) {
273 num_extended_tracks++;
274 is_extension_successful = true;
275 outputTracks->push_back(extended_track.release());
276 }
277 }
278 } // end of forward extension. We could try backward smoother if
279 // forward extension failed.
280 }
281 }
282 if (!is_extension_successful) {
283 track = m_trackFitter->fit(ctx, clusters, *track->perigeeParameters(),
284 true, matEffects);
285 if (track != nullptr && track->trackSummary() != nullptr) {
286 outputTracks->push_back(track.release());
287 }
288 }
289 }
290
291 data.tracks().erase(data.tracks().begin(), data.tracks().end());
292 ATH_MSG_DEBUG("Run " << runNumber << ", Event " << eventNumber << " has "
293 << outputTracks->size() << " tracks stored, with "
294 << num_extended_tracks << " extended.");
295 return StatusCode::SUCCESS;
296}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
static Double_t sp
static Double_t Tp(Double_t *t, Double_t *par)
void getInitializedCache(MagField::AtlasFieldCache &cache) const
get B field cache for evaluation as a function of 2-d or 3-d position.
void initializeCombinatorialData(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data) const
ToolHandle< IGNNTrackReaderTool > m_gnnTrackReader
ToolHandle< IGNNTrackFinder > m_gnnTrackFinder
ToolHandle< InDet::ISiDetElementsRoadMaker > m_roadmaker
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_stripClusterKey
void getTrackQualityCuts(SiCombinatorialTrackFinderData_xk &data) const
void detectorElementLinks(std::vector< const InDetDD::SiDetectorElement * > &DE, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &DEL, const EventContext &ctx) const
ToolHandle< ISeedFitter > m_seedFitter
GNN-based track finding tool that produces track candidates.
ToolHandle< Trk::ITrackFitter > m_trackFitter
Track Fitter.
SG::ReadHandleKey< InDet::PixelClusterContainer > m_pixelClusterKey
static bool spacePointsToClusters(const std::vector< const Trk::SpacePoint * > &, std::vector< const InDet::SiCluster * > &, std::optional< std::reference_wrapper< std::vector< const InDetDD::SiDetectorElement * > > >=std::nullopt)
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsStripKey
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsPixelKey
SG::WriteHandleKey< TrackCollection > m_outputTracksKey
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const_pointer_type cptr()
Dereference the pointer.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
@ SiSPSeededFinder
Tracks from SiSPSeedFinder.
@ SiSPSeededFinderSimple
for tracks processed by the trigger version of the SiSPSeededFinder
@ alongMomentum
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters
setEventNumber uint32_t

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthCommonReentrantAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.

90{
91 // If we didn't find any symlinks to add, just return the collection
92 // from the base class. Otherwise, return the extended collection.
93 if (!m_extendedExtraObjects.empty()) {
95 }
97}
An algorithm that can be simultaneously executed in multiple threads.

◆ filterPassed()

virtual bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96 {
97 return execState( ctx ).filterPassed();
98 }
virtual bool filterPassed(const EventContext &ctx) const

◆ getTrackQualityCuts()

void InDet::GNNSeedingTrackMaker::getTrackQualityCuts ( SiCombinatorialTrackFinderData_xk & data) const
private

Definition at line 438 of file GNNSeedingTrackMaker.cxx.

439 {
440
441 data.setCosmicTrack(0);
442 data.setNclusmin(m_nclusmin);
443 data.setNclusminb(std::max(3, data.nclusmin() - 1));
444 data.setNwclusmin(m_nwclusmin);
445 data.setNholesmax(m_nholesmax);
446 data.setDholesmax(m_dholesmax);
447
448 data.tools().setHolesClusters(data.nholesmax(), data.dholesmax(),
449 data.nclusmin());
450
451 data.tools().setAssociation(0);
452 data.setSimpleTrack(false);
453
454 data.setPTmin(m_pTmin);
455 data.setPTminBrem(m_pTminBrem);
456 data.setXi2max(m_xi2max);
457 data.setXi2maxNoAdd(m_xi2maxNoAdd);
458 data.setXi2maxlink(m_xi2maxlink);
459 data.tools().setXi2pTmin(data.xi2max(), data.xi2maxNoAdd(), data.xi2maxlink(),
460 data.pTmin());
461 data.tools().setMultiTracks(m_doMultiTracksProd, m_xi2multitracks);
462
463 data.trajectory().setParameters();
464}

◆ initialize()

StatusCode InDet::GNNSeedingTrackMaker::initialize ( )
overridevirtual

Definition at line 19 of file GNNSeedingTrackMaker.cxx.

19 {
20 ATH_CHECK(m_SpacePointsPixelKey.initialize());
21 ATH_CHECK(m_SpacePointsStripKey.initialize());
22
23 ATH_CHECK(m_pixelClusterKey.initialize());
24 ATH_CHECK(m_stripClusterKey.initialize());
25 ATH_CHECK(m_boundaryPixelKey.initialize());
26 ATH_CHECK(m_boundaryStripKey.initialize());
27
31
32 ATH_CHECK(m_outputTracksKey.initialize());
33
34 ATH_CHECK(m_seedFitter.retrieve());
35 ATH_CHECK(m_trackFitter.retrieve());
36 ATH_CHECK(m_roadmaker.retrieve());
37
38 ATH_CHECK(m_proptool.retrieve());
39 ATH_CHECK(m_updatortool.retrieve());
40 ATH_CHECK(m_riocreator.retrieve());
41
42 ATH_CHECK(m_pixelCondSummaryTool.retrieve(DisableTool{
43 (!m_pixelDetElStatus.empty() && !VALIDATE_STATUS_ARRAY_ACTIVATED)}));
44 ATH_CHECK(m_stripCondSummaryTool.retrieve(DisableTool{
45 (!m_stripDetElStatus.empty() && !VALIDATE_STATUS_ARRAY_ACTIVATED)}));
47
49
50 if (!m_gnnTrackFinder.empty() && !m_gnnTrackReader.empty()) {
51 ATH_MSG_ERROR("Use either track finder or track reader, not both.");
52 return StatusCode::FAILURE;
53 }
54
55 if (!m_gnnTrackFinder.empty()) {
56 ATH_MSG_INFO("Use GNN Track Finder");
57 ATH_CHECK(m_gnnTrackFinder.retrieve());
58 }
59 if (!m_gnnTrackReader.empty()) {
60 ATH_MSG_INFO("Use GNN Track Reader");
61 ATH_CHECK(m_gnnTrackReader.retrieve());
62 }
63
64 return StatusCode::SUCCESS;
65}
#define ATH_MSG_INFO(x)
ToolHandle< Trk::IBoundaryCheckTool > m_boundaryCheckTool
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_stripDetElStatus
Optional read handle to get status data to test whether a Strip detector element is good.
PublicToolHandle< Trk::IPatternParametersPropagator > m_proptool
PublicToolHandle< Trk::IRIO_OnTrackCreator > m_riocreator
ToolHandle< IInDetConditionsTool > m_stripCondSummaryTool
PublicToolHandle< Trk::IPatternParametersUpdator > m_updatortool
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_pixelDetElStatus
Optional read handle to get status data to test whether a pixel detector element is good.
ToolHandle< IInDetConditionsTool > m_pixelCondSummaryTool

◆ initializeCombinatorialData()

void InDet::GNNSeedingTrackMaker::initializeCombinatorialData ( const EventContext & ctx,
SiCombinatorialTrackFinderData_xk & data ) const
private

Add conditions object to SiCombinatorialTrackFinderData to be able to access the field cache for each new event Get conditions object for field cache

Must have set fieldCondObj BEFORE calling setTools because fieldCondObj is used there

Definition at line 393 of file GNNSeedingTrackMaker.cxx.

394 {
395
399 SG::ReadCondHandle<AtlasFieldCacheCondObj> readHandle{m_fieldCondObjInputKey,
400 ctx};
401 const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
402 if (fieldCondObj == nullptr) {
403 std::string msg =
404 "InDet::SiCombinatorialTrackFinder_xk::initializeCombinatorialData: "
405 "Failed to retrieve AtlasFieldCacheCondObj with key " +
407 throw(std::runtime_error(msg));
408 }
409 data.setFieldCondObj(fieldCondObj);
410
413 data.setTools(&*m_proptool, &*m_updatortool, &*m_riocreator,
416 : nullptr,
419 : nullptr,
421 if (!m_pixelDetElStatus.empty()) {
422 SG::ReadHandle<InDet::SiDetectorElementStatus> pixelDetElStatus(
423 m_pixelDetElStatus, ctx);
424 data.setPixelDetectorElementStatus(pixelDetElStatus.cptr());
425 }
426 if (!m_stripDetElStatus.empty()) {
427 SG::ReadHandle<InDet::SiDetectorElementStatus> stripDetElStatus(
428 m_stripDetElStatus, ctx);
429 data.setSCTDetectorElementStatus(stripDetElStatus.cptr());
430 }
431
432 // Set the ITk Geometry setup
433 data.setITkGeometry(true);
434 // Set the ITk Fast Tracking setup
435 data.setFastTracking(false);
436}
#define VALIDATE_STATUS_ARRAY_ACTIVATED
Trk::MagneticFieldProperties m_fieldprop
Magnetic field properties.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isClonable()

virtual bool InDet::GNNSeedingTrackMaker::isClonable ( ) const
inlineoverridevirtual

Make this algorithm clonable.

Reimplemented from AthCommonReentrantAlgorithm< Gaudi::Algorithm >.

Definition at line 58 of file GNNSeedingTrackMaker.h.

58{ return true; };

◆ magneticFieldInit()

void InDet::GNNSeedingTrackMaker::magneticFieldInit ( )
private

Definition at line 67 of file GNNSeedingTrackMaker.cxx.

67 {
68 // Build MagneticFieldProperties
69 //
70 if (m_fieldmode == "NoField")
71 m_fieldprop = Trk::MagneticFieldProperties(Trk::NoField);
72 else if (m_fieldmode == "MapSolenoid")
73 m_fieldprop = Trk::MagneticFieldProperties(Trk::FastField);
74 else
75 m_fieldprop = Trk::MagneticFieldProperties(Trk::FullField);
76}
@ FastField
call the fast field access method of the FieldSvc
@ NoField
Field is set to 0., 0., 0.,.
@ FullField
Field is set to be realistic, but within a given Volume.

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setFilterPassed()

virtual void AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100 {
102 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const

◆ spacePointsToClusters()

bool InDet::GNNSeedingTrackMaker::spacePointsToClusters ( const std::vector< const Trk::SpacePoint * > & Sp,
std::vector< const InDet::SiCluster * > & Sc,
std::optional< std::reference_wrapper< std::vector< const InDetDD::SiDetectorElement * > > > DE = std::nullopt )
staticprivate

loop over all SP

get the first cluster on an SP

add to list

for strips, also make sure to pick up the second one!

Detector elments test

here we reject cases where two subsequent clusters are on the same detector element

Definition at line 302 of file GNNSeedingTrackMaker.cxx.

307 {
308 Sc.reserve(Sp.size());
310 for (const Trk::SpacePoint* s : Sp) {
312 const Trk::PrepRawData* p = s->clusterList().first;
313 if (p) {
315 const InDet::SiCluster* c = static_cast<const InDet::SiCluster*>(p);
316 if (c) {
317 Sc.push_back(c);
318 }
319 }
321 p = s->clusterList().second;
322 if (p) {
323 const InDet::SiCluster* c = static_cast<const InDet::SiCluster*>(p);
324 if (c) {
325 Sc.push_back(c);
326 }
327 }
328 }
329
331 std::vector<const InDet::SiCluster*>::iterator cluster = Sc.begin(),
332 nextCluster,
333 endClusters = Sc.end();
334
337 if (DE) {
338 DE->get().reserve(Sc.size());
339 }
340 for (; cluster != endClusters; ++cluster) {
341
342 const InDetDD::SiDetectorElement* de = (*cluster)->detectorElement();
343
344 nextCluster = cluster;
345 ++nextCluster;
346 for (; nextCluster != endClusters; ++nextCluster) {
347 if (de == (*nextCluster)->detectorElement()) {
348 return false;
349 }
350 }
351 if (DE) {
352 DE->get().push_back(de);
353 }
354 }
355 return true;
356}

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.

77{
78 return BaseAlg::sysExecute (ctx);
79}

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in HypoBase, and InputMakerBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

107 {
109
110 if (sc.isFailure()) {
111 return sc;
112 }
113
114 ServiceHandle<ICondSvc> cs("CondSvc",name());
115 for (auto h : outputHandles()) {
116 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
117 // do this inside the loop so we don't create the CondSvc until needed
118 if ( cs.retrieve().isFailure() ) {
119 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
120 return StatusCode::SUCCESS;
121 }
122 if (cs->regHandle(this,*h).isFailure()) {
124 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125 << " with CondSvc");
126 }
127 }
128 }
129 return sc;
130}
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

Member Data Documentation

◆ m_boundaryCheckTool

ToolHandle<Trk::IBoundaryCheckTool> InDet::GNNSeedingTrackMaker::m_boundaryCheckTool
private
Initial value:
{
this, "BoundaryCheckTool", "InDet::InDetBoundaryCheckTool",
"Boundary checking tool for detector sensitivities"}

Definition at line 137 of file GNNSeedingTrackMaker.h.

137 {
138 this, "BoundaryCheckTool", "InDet::InDetBoundaryCheckTool",
139 "Boundary checking tool for detector sensitivities"};

◆ m_boundaryPixelKey

SG::ReadCondHandleKey<InDet::SiDetElementBoundaryLinks_xk> InDet::GNNSeedingTrackMaker::m_boundaryPixelKey
private
Initial value:
{
this, "PixelDetElementBoundaryLinks_xk",
"ITkPixelDetElementBoundaryLinks_xk",
"Key of InDet::SiDetElementBoundaryLinks_xk for Pixel"}

Definition at line 78 of file GNNSeedingTrackMaker.h.

78 {
79 this, "PixelDetElementBoundaryLinks_xk",
80 "ITkPixelDetElementBoundaryLinks_xk",
81 "Key of InDet::SiDetElementBoundaryLinks_xk for Pixel"};

◆ m_boundaryStripKey

SG::ReadCondHandleKey<InDet::SiDetElementBoundaryLinks_xk> InDet::GNNSeedingTrackMaker::m_boundaryStripKey
private
Initial value:
{
this, "StripDetElementBoundaryLinks_xk",
"ITkStripDetElementBoundaryLinks_xk",
"Key of InDet::SiDetElementBoundaryLinks_xk for Strip"}

Definition at line 82 of file GNNSeedingTrackMaker.h.

82 {
83 this, "StripDetElementBoundaryLinks_xk",
84 "ITkStripDetElementBoundaryLinks_xk",
85 "Key of InDet::SiDetElementBoundaryLinks_xk for Strip"};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_dholesmax

IntegerProperty InDet::GNNSeedingTrackMaker::m_dholesmax {this, "nHolesGapMax", 2, "Max holes gap"}
private

Definition at line 178 of file GNNSeedingTrackMaker.h.

178{this, "nHolesGapMax", 2, "Max holes gap"};

◆ m_doMultiTracksProd

IntegerProperty InDet::GNNSeedingTrackMaker::m_doMultiTracksProd
private
Initial value:
{this, "doMultiTracksProd", 0,
"do multi tracks production"}

Definition at line 188 of file GNNSeedingTrackMaker.h.

188 {this, "doMultiTracksProd", 0,
189 "do multi tracks production"};

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 114 of file AthCommonReentrantAlgorithm.h.

◆ m_fieldCondObjInputKey

SG::ReadCondHandleKey<AtlasFieldCacheCondObj> InDet::GNNSeedingTrackMaker::m_fieldCondObjInputKey
private
Initial value:
{
this, "AtlasFieldCacheCondObj", "fieldCondObj",
"Name of the Magnetic Field conditions object key"}

Definition at line 87 of file GNNSeedingTrackMaker.h.

87 {
88 this, "AtlasFieldCacheCondObj", "fieldCondObj",
89 "Name of the Magnetic Field conditions object key"};

◆ m_fieldmode

StringProperty InDet::GNNSeedingTrackMaker::m_fieldmode
private
Initial value:
{this, "MagneticFieldMode", "MapSolenoid",
"Mode of magnetic field"}

Definition at line 150 of file GNNSeedingTrackMaker.h.

150 {this, "MagneticFieldMode", "MapSolenoid",
151 "Mode of magnetic field"};

◆ m_fieldprop

Trk::MagneticFieldProperties InDet::GNNSeedingTrackMaker::m_fieldprop
private

Magnetic field properties.

Definition at line 153 of file GNNSeedingTrackMaker.h.

◆ m_gnnTrackFinder

ToolHandle<IGNNTrackFinder> InDet::GNNSeedingTrackMaker::m_gnnTrackFinder
private
Initial value:
{this, "GNNTrackFinderTool",
"InDet::SiGNNTrackFinderTool",
"Track Finder"}

@name Tool handles

Definition at line 114 of file GNNSeedingTrackMaker.h.

114 {this, "GNNTrackFinderTool",
115 "InDet::SiGNNTrackFinderTool",
116 "Track Finder"};

◆ m_gnnTrackReader

ToolHandle<IGNNTrackReaderTool> InDet::GNNSeedingTrackMaker::m_gnnTrackReader
private
Initial value:
{
this, "GNNTrackReaderTool", "InDet::GNNTrackReaderTool", "Track Reader"}

Definition at line 123 of file GNNSeedingTrackMaker.h.

123 {
124 this, "GNNTrackReaderTool", "InDet::GNNTrackReaderTool", "Track Reader"};

◆ m_nclusmin

IntegerProperty InDet::GNNSeedingTrackMaker::m_nclusmin {this, "nClustersMin", 6, "Min number clusters"}
private

Definition at line 174 of file GNNSeedingTrackMaker.h.

174{this, "nClustersMin", 6, "Min number clusters"};

◆ m_nholesmax

IntegerProperty InDet::GNNSeedingTrackMaker::m_nholesmax {this, "nHolesMax", 2, "Max number holes"}
private

Definition at line 177 of file GNNSeedingTrackMaker.h.

177{this, "nHolesMax", 2, "Max number holes"};

◆ m_nwclusmin

IntegerProperty InDet::GNNSeedingTrackMaker::m_nwclusmin
private
Initial value:
{this, "nWeightedClustersMin", 6,
"Min number weighted clusters(pix=2 strip=1)"}

Definition at line 175 of file GNNSeedingTrackMaker.h.

175 {this, "nWeightedClustersMin", 6,
176 "Min number weighted clusters(pix=2 strip=1)"};

◆ m_outputTracksKey

SG::WriteHandleKey<TrackCollection> InDet::GNNSeedingTrackMaker::m_outputTracksKey
private
Initial value:
{this, "TracksLocation",
"SiSPGNNTracks"}

Definition at line 107 of file GNNSeedingTrackMaker.h.

107 {this, "TracksLocation",
108 "SiSPGNNTracks"};

◆ m_pixelClusterKey

SG::ReadHandleKey<InDet::PixelClusterContainer> InDet::GNNSeedingTrackMaker::m_pixelClusterKey
private
Initial value:
{
this, "PixelClusterKey", "ITkPixelClusters"}

@name Data handles

Definition at line 67 of file GNNSeedingTrackMaker.h.

67 {
68 this, "PixelClusterKey", "ITkPixelClusters"};

◆ m_pixelCondSummaryTool

ToolHandle<IInDetConditionsTool> InDet::GNNSeedingTrackMaker::m_pixelCondSummaryTool
private
Initial value:
{
this, "PixelSummaryTool", "PixelConditionsSummaryTool"}

Definition at line 140 of file GNNSeedingTrackMaker.h.

140 {
141 this, "PixelSummaryTool", "PixelConditionsSummaryTool"};

◆ m_pixelDetElStatus

SG::ReadHandleKey<InDet::SiDetectorElementStatus> InDet::GNNSeedingTrackMaker::m_pixelDetElStatus
private
Initial value:
{
this, "PixelDetElStatus", "", "Key of SiDetectorElementStatus for Pixel"}

Optional read handle to get status data to test whether a pixel detector element is good.

If set to e.g. PixelDetectorElementStatus the event data will be used instead of the pixel conditions summary tool.

Definition at line 96 of file GNNSeedingTrackMaker.h.

96 {
97 this, "PixelDetElStatus", "", "Key of SiDetectorElementStatus for Pixel"};

◆ m_proptool

PublicToolHandle<Trk::IPatternParametersPropagator> InDet::GNNSeedingTrackMaker::m_proptool
private
Initial value:
{
this, "PropagatorTool", "Trk::RungeKuttaPropagator/InDetPropagator"}

Definition at line 132 of file GNNSeedingTrackMaker.h.

132 {
133 this, "PropagatorTool", "Trk::RungeKuttaPropagator/InDetPropagator"};

◆ m_pTmin

DoubleProperty InDet::GNNSeedingTrackMaker::m_pTmin {this, "pTmin", 500., "min pT"}
private

Definition at line 180 of file GNNSeedingTrackMaker.h.

180{this, "pTmin", 500., "min pT"};

◆ m_pTminBrem

DoubleProperty InDet::GNNSeedingTrackMaker::m_pTminBrem {this, "pTminBrem", 1000., "min pT for Brem mode"}
private

Definition at line 181 of file GNNSeedingTrackMaker.h.

181{this, "pTminBrem", 1000., "min pT for Brem mode"};

◆ m_riocreator

PublicToolHandle<Trk::IRIO_OnTrackCreator> InDet::GNNSeedingTrackMaker::m_riocreator
private
Initial value:
{
this, "RIOonTrackTool", "Trk::RIO_OnTrackCreator/RIO_OnTrackCreator"}

Definition at line 130 of file GNNSeedingTrackMaker.h.

130 {
131 this, "RIOonTrackTool", "Trk::RIO_OnTrackCreator/RIO_OnTrackCreator"};

◆ m_roadmaker

ToolHandle<InDet::ISiDetElementsRoadMaker> InDet::GNNSeedingTrackMaker::m_roadmaker
private
Initial value:
{
this, "RoadTool", "InDet::SiDetElementsRoadMaker_xk"}

Definition at line 146 of file GNNSeedingTrackMaker.h.

146 {
147 this, "RoadTool", "InDet::SiDetElementsRoadMaker_xk"};

◆ m_seedFitter

ToolHandle<ISeedFitter> InDet::GNNSeedingTrackMaker::m_seedFitter
private
Initial value:
{
this, "SeedFitterTool", "InDet::InDetGNNTracking/InDetSiSeedFitter",
"Seed Fitter"}

GNN-based track finding tool that produces track candidates.

Definition at line 119 of file GNNSeedingTrackMaker.h.

119 {
120 this, "SeedFitterTool", "InDet::InDetGNNTracking/InDetSiSeedFitter",
121 "Seed Fitter"};

◆ m_SpacePointsPixelKey

SG::ReadHandleKey<SpacePointContainer> InDet::GNNSeedingTrackMaker::m_SpacePointsPixelKey
private
Initial value:
{
this, "SpacePointsPixelName", "ITkPixelSpacePoints"}

Definition at line 73 of file GNNSeedingTrackMaker.h.

73 {
74 this, "SpacePointsPixelName", "ITkPixelSpacePoints"};

◆ m_SpacePointsStripKey

SG::ReadHandleKey<SpacePointContainer> InDet::GNNSeedingTrackMaker::m_SpacePointsStripKey
private
Initial value:
{
this, "SpacePointsStripName", "ITkStripSpacePoints"}

Definition at line 75 of file GNNSeedingTrackMaker.h.

75 {
76 this, "SpacePointsStripName", "ITkStripSpacePoints"};

◆ m_stripClusterKey

SG::ReadHandleKey<InDet::SCT_ClusterContainer> InDet::GNNSeedingTrackMaker::m_stripClusterKey
private
Initial value:
{
this, "StripClusterKey", "ITkStripClusters"}

Definition at line 69 of file GNNSeedingTrackMaker.h.

69 {
70 this, "StripClusterKey", "ITkStripClusters"};

◆ m_stripCondSummaryTool

ToolHandle<IInDetConditionsTool> InDet::GNNSeedingTrackMaker::m_stripCondSummaryTool
private
Initial value:
{
this, "StripSummaryTool",
"InDetSCT_ConditionsSummaryTool/StripConditionsSummaryTool",
"Tool to retrieve Strip Conditions summary"}

Definition at line 142 of file GNNSeedingTrackMaker.h.

142 {
143 this, "StripSummaryTool",
144 "InDetSCT_ConditionsSummaryTool/StripConditionsSummaryTool",
145 "Tool to retrieve Strip Conditions summary"};

◆ m_stripDetElStatus

SG::ReadHandleKey<InDet::SiDetectorElementStatus> InDet::GNNSeedingTrackMaker::m_stripDetElStatus
private
Initial value:
{
this, "StripDetElStatus", "", "Key of SiDetectorElementStatus for Strip"}

Optional read handle to get status data to test whether a Strip detector element is good.

If set to e.g. StripDetectorElementStatus the event data will be used instead of the Strip conditions summary tool.

Definition at line 103 of file GNNSeedingTrackMaker.h.

103 {
104 this, "StripDetElStatus", "", "Key of SiDetectorElementStatus for Strip"};

◆ m_trackFitter

ToolHandle<Trk::ITrackFitter> InDet::GNNSeedingTrackMaker::m_trackFitter
private
Initial value:
{
this, "TrackFitter", "Trk::GlobalChi2Fitter/InDetTrackFitter",
"Track Fitter"}

Track Fitter.

Definition at line 126 of file GNNSeedingTrackMaker.h.

126 {
127 this, "TrackFitter", "Trk::GlobalChi2Fitter/InDetTrackFitter",
128 "Track Fitter"};

◆ m_updatortool

PublicToolHandle<Trk::IPatternParametersUpdator> InDet::GNNSeedingTrackMaker::m_updatortool
private
Initial value:
{
this, "UpdatorTool", "Trk::KalmanUpdator_xk/InDetPatternUpdator"}

Definition at line 134 of file GNNSeedingTrackMaker.h.

134 {
135 this, "UpdatorTool", "Trk::KalmanUpdator_xk/InDetPatternUpdator"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_xi2max

DoubleProperty InDet::GNNSeedingTrackMaker::m_xi2max {this, "Xi2max", 9., "max Xi2 for updators"}
private

Definition at line 182 of file GNNSeedingTrackMaker.h.

182{this, "Xi2max", 9., "max Xi2 for updators"};

◆ m_xi2maxlink

DoubleProperty InDet::GNNSeedingTrackMaker::m_xi2maxlink {this, "Xi2maxlink", 200., "max Xi2 for clusters"}
private

Definition at line 185 of file GNNSeedingTrackMaker.h.

185{this, "Xi2maxlink", 200., "max Xi2 for clusters"};

◆ m_xi2maxNoAdd

DoubleProperty InDet::GNNSeedingTrackMaker::m_xi2maxNoAdd
private
Initial value:
{this, "Xi2maxNoAdd", 25.,
"max Xi2 for clusters"}

Definition at line 183 of file GNNSeedingTrackMaker.h.

183 {this, "Xi2maxNoAdd", 25.,
184 "max Xi2 for clusters"};

◆ m_xi2multitracks

DoubleProperty InDet::GNNSeedingTrackMaker::m_xi2multitracks
private
Initial value:
{this, "Xi2maxMultiTracks", 9.,
"max Xi2 for multi tracks"}

Definition at line 186 of file GNNSeedingTrackMaker.h.

186 {this, "Xi2maxMultiTracks", 9.,
187 "max Xi2 for multi tracks"};

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