ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
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. It turns a collection of Trk::Tracks. 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. More...
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
 
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
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. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
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. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

SG::ReadHandleKey< InDet::PixelClusterContainerm_pixelClusterKey
 
SG::ReadHandleKey< InDet::SCT_ClusterContainerm_stripClusterKey
 
SG::ReadHandleKey< SpacePointContainerm_SpacePointsPixelKey
 
SG::ReadHandleKey< SpacePointContainerm_SpacePointsStripKey
 
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xkm_boundaryPixelKey
 
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xkm_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. More...
 
SG::ReadHandleKey< InDet::SiDetectorElementStatusm_stripDetElStatus
 Optional read handle to get status data to test whether a Strip detector element is good. More...
 
SG::WriteHandleKey< TrackCollectionm_outputTracksKey
 
ToolHandle< IGNNTrackFinderm_gnnTrackFinder
 
ToolHandle< ISeedFitterm_seedFitter
 GNN-based track finding tool that produces track candidates. More...
 
ToolHandle< IGNNTrackReaderToolm_gnnTrackReader
 
ToolHandle< Trk::ITrackFitterm_trackFitter
 Track Fitter. More...
 
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. More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Other properties

StringProperty m_fieldmode
 
Trk::MagneticFieldProperties m_fieldprop
 Magnetic field properties. More...
 
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 AthReentrantAlgorithm::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.

Override this to return 0 for reentrant algorithms.

Definition at line 55 of file AthReentrantAlgorithm.cxx.

56 {
57  return 0;
58 }

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ 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 
370  m_boundaryPixelKey, ctx);
371  boundaryPixel = *boundaryPixelHandle;
372  if (boundaryPixel == nullptr) {
373  ATH_MSG_FATAL(m_boundaryPixelKey.fullKey() << " returns null pointer");
374  }
375 
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 }

◆ 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.

95 { return m_detStore; }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ 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  {
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 
108  ctx};
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 
153  ctx};
154  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
155  if (fieldCondObj == nullptr) {
157  "InDet::SiTrackMaker_xk::getTracks: Failed to retrieve "
158  "AtlasFieldCacheCondObj with 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
208  Trk::ParticleHypothesis matEffects = Trk::pion;
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 
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 }

◆ 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 & AthReentrantAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 79 of file AthReentrantAlgorithm.cxx.

80 {
81  // If we didn't find any symlinks to add, just return the collection
82  // from the base class. Otherwise, return the extended collection.
83  if (!m_extendedExtraObjects.empty()) {
85  }
86  return Algorithm::extraOutputDeps();
87 }

◆ filterPassed()

virtual bool AthReentrantAlgorithm::filterPassed ( const EventContext &  ctx) const
inlinevirtualinherited

Definition at line 135 of file AthReentrantAlgorithm.h.

135  {
136  return execState( ctx ).filterPassed();
137  }

◆ 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  {
22 
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)}));
46  ATH_CHECK(m_boundaryCheckTool.retrieve());
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 }

◆ 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 
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()) {
423  m_pixelDetElStatus, ctx);
424  data.setPixelDetectorElementStatus(pixelDetElStatus.cptr());
425  }
426  if (!m_stripDetElStatus.empty()) {
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 }

◆ 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 AthReentrantAlgorithm.

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")
72  else if (m_fieldmode == "MapSolenoid")
74  else
76 }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
366  }

◆ setFilterPassed()

virtual void AthReentrantAlgorithm::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 139 of file AthReentrantAlgorithm.h.

139  {
140  execState( ctx ).setFilterPassed( state );
141  }

◆ 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 
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 AthReentrantAlgorithm::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 67 of file AthReentrantAlgorithm.cxx.

68 {
69  return Gaudi::Algorithm::sysExecute (ctx);
70 }

◆ sysInitialize()

StatusCode AthReentrantAlgorithm::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 InputMakerBase, and HypoBase.

Definition at line 96 of file AthReentrantAlgorithm.cxx.

96  {
98 
99  if (sc.isFailure()) {
100  return sc;
101  }
102 
103  ServiceHandle<ICondSvc> cs("CondSvc",name());
104  for (auto h : outputHandles()) {
105  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
106  // do this inside the loop so we don't create the CondSvc until needed
107  if ( cs.retrieve().isFailure() ) {
108  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
109  return StatusCode::SUCCESS;
110  }
111  if (cs->regHandle(this,*h).isFailure()) {
112  sc = StatusCode::FAILURE;
113  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
114  << " with CondSvc");
115  }
116  }
117  }
118  return sc;
119 }

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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 AthReentrantAlgorithm::m_extendedExtraObjects
privateinherited

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

Empty if no symlinks were found.

Definition at line 153 of file AthReentrantAlgorithm.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.

◆ 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.

◆ 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.

◆ 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.

◆ m_nclusmin

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

Definition at line 174 of file GNNSeedingTrackMaker.h.

◆ m_nholesmax

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

Definition at line 177 of file GNNSeedingTrackMaker.h.

◆ 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.

◆ m_outputTracksKey

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

Definition at line 107 of file GNNSeedingTrackMaker.h.

◆ 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.

◆ m_pixelCondSummaryTool

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

Definition at line 140 of file GNNSeedingTrackMaker.h.

◆ 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.

◆ 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.

◆ m_pTmin

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

Definition at line 180 of file GNNSeedingTrackMaker.h.

◆ m_pTminBrem

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

Definition at line 181 of file GNNSeedingTrackMaker.h.

◆ 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.

◆ 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.

◆ 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.

◆ m_SpacePointsPixelKey

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

Definition at line 73 of file GNNSeedingTrackMaker.h.

◆ m_SpacePointsStripKey

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

Definition at line 75 of file GNNSeedingTrackMaker.h.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ m_xi2maxlink

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

Definition at line 185 of file GNNSeedingTrackMaker.h.

◆ 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.

◆ 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.


The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
Trk::SpacePoint::clusterList
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:127
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
InDet::GNNSeedingTrackMaker::m_xi2maxNoAdd
DoubleProperty m_xi2maxNoAdd
Definition: GNNSeedingTrackMaker.h:183
Trk::SpacePoint
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:35
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
Trk::TrackInfo
Contains information about the 'fitter' of this track.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:32
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
InDet::GNNSeedingTrackMaker::m_boundaryStripKey
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryStripKey
Definition: GNNSeedingTrackMaker.h:82
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
max
#define max(a, b)
Definition: cfImp.cxx:41
InDet::GNNSeedingTrackMaker::m_pixelDetElStatus
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_pixelDetElStatus
Optional read handle to get status data to test whether a pixel detector element is good.
Definition: GNNSeedingTrackMaker.h:96
InDet::GNNSeedingTrackMaker::getTrackQualityCuts
void getTrackQualityCuts(SiCombinatorialTrackFinderData_xk &data) const
Definition: GNNSeedingTrackMaker.cxx:438
InDet::GNNSeedingTrackMaker::m_SpacePointsPixelKey
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsPixelKey
Definition: GNNSeedingTrackMaker.h:73
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
SG::ReadHandle< SpacePointContainer >
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
hist_file_dump.d
d
Definition: hist_file_dump.py:137
InDet::GNNSeedingTrackMaker::m_gnnTrackFinder
ToolHandle< IGNNTrackFinder > m_gnnTrackFinder
Definition: GNNSeedingTrackMaker.h:114
InDet::GNNSeedingTrackMaker::m_gnnTrackReader
ToolHandle< IGNNTrackReaderTool > m_gnnTrackReader
Definition: GNNSeedingTrackMaker.h:123
Trk::TrackInfo::SiSPSeededFinderSimple
@ SiSPSeededFinderSimple
for tracks processed by the trigger version of the SiSPSeededFinder
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:256
AthCommonDataStore::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 > renounce(T &h)
Definition: AthCommonDataStore.h:380
InDet::GNNSeedingTrackMaker::m_fieldprop
Trk::MagneticFieldProperties m_fieldprop
Magnetic field properties.
Definition: GNNSeedingTrackMaker.h:153
InDet::GNNSeedingTrackMaker::initializeCombinatorialData
void initializeCombinatorialData(const EventContext &ctx, SiCombinatorialTrackFinderData_xk &data) const
Definition: GNNSeedingTrackMaker.cxx:393
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
InDet::GNNSeedingTrackMaker::m_nholesmax
IntegerProperty m_nholesmax
Definition: GNNSeedingTrackMaker.h:177
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::GNNSeedingTrackMaker::m_xi2maxlink
DoubleProperty m_xi2maxlink
Definition: GNNSeedingTrackMaker.h:185
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG::ReadHandleKey< SpacePointContainer >
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
InDet::GNNSeedingTrackMaker::m_nclusmin
IntegerProperty m_nclusmin
Definition: GNNSeedingTrackMaker.h:174
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
InDet::GNNSeedingTrackMaker::magneticFieldInit
void magneticFieldInit()
Definition: GNNSeedingTrackMaker.cxx:67
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
InDet::GNNSeedingTrackMaker::m_stripDetElStatus
SG::ReadHandleKey< InDet::SiDetectorElementStatus > m_stripDetElStatus
Optional read handle to get status data to test whether a Strip detector element is good.
Definition: GNNSeedingTrackMaker.h:103
InDet::GNNSeedingTrackMaker::m_roadmaker
ToolHandle< InDet::ISiDetElementsRoadMaker > m_roadmaker
Definition: GNNSeedingTrackMaker.h:146
Trk::FastField
@ FastField
call the fast field access method of the FieldSvc
Definition: MagneticFieldMode.h:20
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
InDet::GNNSeedingTrackMaker::m_xi2multitracks
DoubleProperty m_xi2multitracks
Definition: GNNSeedingTrackMaker.h:186
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm()
Default constructor:
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDet::GNNSeedingTrackMaker::m_seedFitter
ToolHandle< ISeedFitter > m_seedFitter
GNN-based track finding tool that produces track candidates.
Definition: GNNSeedingTrackMaker.h:119
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
InDet::GNNSeedingTrackMaker::m_riocreator
PublicToolHandle< Trk::IRIO_OnTrackCreator > m_riocreator
Definition: GNNSeedingTrackMaker.h:130
InDet::GNNSeedingTrackMaker::m_fieldmode
StringProperty m_fieldmode
Definition: GNNSeedingTrackMaker.h:150
VALIDATE_STATUS_ARRAY_ACTIVATED
#define VALIDATE_STATUS_ARRAY_ACTIVATED
Definition: SiDetectorElementStatus.h:50
InDet::GNNSeedingTrackMaker::spacePointsToClusters
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)
Definition: GNNSeedingTrackMaker.cxx:302
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::eventNumber
eventNumber
Definition: EventInfo_v1.cxx:124
Trk::ParametersBase
Definition: ParametersBase.h:55
InDet::GNNSeedingTrackMaker::m_fieldCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Definition: GNNSeedingTrackMaker.h:87
InDet::SiDetElementBoundaryLinks_xk
std::vector< SiDetElementBoundaryLink_xk > SiDetElementBoundaryLinks_xk
Definition: SiDetElementBoundaryLinks_xk.h:22
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
InDet::GNNSeedingTrackMaker::m_dholesmax
IntegerProperty m_dholesmax
Definition: GNNSeedingTrackMaker.h:178
Trk::FullField
@ FullField
Field is set to be realistic, but within a given Volume.
Definition: MagneticFieldMode.h:21
AthReentrantAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthReentrantAlgorithm.h:153
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
InDet::GNNSeedingTrackMaker::m_stripClusterKey
SG::ReadHandleKey< InDet::SCT_ClusterContainer > m_stripClusterKey
Definition: GNNSeedingTrackMaker.h:69
Trk::PrepRawData
Definition: PrepRawData.h:62
InDet::GNNSeedingTrackMaker::m_outputTracksKey
SG::WriteHandleKey< TrackCollection > m_outputTracksKey
Definition: GNNSeedingTrackMaker.h:107
Trk::NoField
@ NoField
Field is set to 0., 0., 0.,.
Definition: MagneticFieldMode.h:18
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
InDet::GNNSeedingTrackMaker::m_boundaryCheckTool
ToolHandle< Trk::IBoundaryCheckTool > m_boundaryCheckTool
Definition: GNNSeedingTrackMaker.h:137
AthReentrantAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthReentrantAlgorithm.cxx:96
InDetDD::SiDetectorElement
Definition: SiDetectorElement.h:109
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
InDet::GNNSeedingTrackMaker::m_SpacePointsStripKey
SG::ReadHandleKey< SpacePointContainer > m_SpacePointsStripKey
Definition: GNNSeedingTrackMaker.h:75
InDet::GNNSeedingTrackMaker::m_stripCondSummaryTool
ToolHandle< IInDetConditionsTool > m_stripCondSummaryTool
Definition: GNNSeedingTrackMaker.h:142
Trk::TrackInfo::SiSPSeededFinder
@ SiSPSeededFinder
Tracks from SiSPSeedFinder.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:102
InDet::GNNSeedingTrackMaker::m_trackFitter
ToolHandle< Trk::ITrackFitter > m_trackFitter
Track Fitter.
Definition: GNNSeedingTrackMaker.h:126
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
InDet::GNNSeedingTrackMaker::m_proptool
PublicToolHandle< Trk::IPatternParametersPropagator > m_proptool
Definition: GNNSeedingTrackMaker.h:132
a
TList * a
Definition: liststreamerinfos.cxx:10
h
InDet::GNNSeedingTrackMaker::m_pTmin
DoubleProperty m_pTmin
Definition: GNNSeedingTrackMaker.h:180
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
AthCommonMsg< Gaudi::Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
InDet::GNNSeedingTrackMaker::m_pixelCondSummaryTool
ToolHandle< IInDetConditionsTool > m_pixelCondSummaryTool
Definition: GNNSeedingTrackMaker.h:140
InDet::GNNSeedingTrackMaker::m_xi2max
DoubleProperty m_xi2max
Definition: GNNSeedingTrackMaker.h:182
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
IdentifierHash
Definition: IdentifierHash.h:38
InDet::GNNSeedingTrackMaker::m_boundaryPixelKey
SG::ReadCondHandleKey< InDet::SiDetElementBoundaryLinks_xk > m_boundaryPixelKey
Definition: GNNSeedingTrackMaker.h:78
python.compressB64.c
def c
Definition: compressB64.py:93
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDet::GNNSeedingTrackMaker::m_nwclusmin
IntegerProperty m_nwclusmin
Definition: GNNSeedingTrackMaker.h:175
InDet::SiCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:40
InDet::GNNSeedingTrackMaker::m_updatortool
PublicToolHandle< Trk::IPatternParametersUpdator > m_updatortool
Definition: GNNSeedingTrackMaker.h:134
InDet::GNNSeedingTrackMaker::detectorElementLinks
void detectorElementLinks(std::vector< const InDetDD::SiDetectorElement * > &DE, std::vector< const InDet::SiDetElementBoundaryLink_xk * > &DEL, const EventContext &ctx) const
Definition: GNNSeedingTrackMaker.cxx:362
InDet::GNNSeedingTrackMaker::m_pTminBrem
DoubleProperty m_pTminBrem
Definition: GNNSeedingTrackMaker.h:181
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >
InDet::GNNSeedingTrackMaker::m_doMultiTracksProd
IntegerProperty m_doMultiTracksProd
Definition: GNNSeedingTrackMaker.h:188
InDet::GNNSeedingTrackMaker::m_pixelClusterKey
SG::ReadHandleKey< InDet::PixelClusterContainer > m_pixelClusterKey
Definition: GNNSeedingTrackMaker.h:67