ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
JiveXML::TrackRetriever Class Reference

Retrieves all Trk::TrackCollection objects. More...

#include <TrackRetriever.h>

Inheritance diagram for JiveXML::TrackRetriever:
Collaboration diagram for JiveXML::TrackRetriever:

Public Member Functions

 TrackRetriever (const std::string &type, const std::string &name, const IInterface *parent)
 Standard Constructor. More...
 
virtual StatusCode retrieve (ToolHandle< IFormatTool > &FormatTool)
 Retrieve all the data. More...
 
virtual std::string dataTypeName () const
 Return the name of the data type. More...
 
StatusCode initialize ()
 Default AthAlgTool methods. More...
 
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 sysInitialize () override
 Perform system initialization for an algorithm. 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
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 Return the interface identifier. More...
 

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

const std::string m_typeName
 The data type that is generated by this retriever. More...
 
std::string m_PriorityTrackCollection
 First track collections to retrieve, shown as default in Atlantis. More...
 
std::vector< std::string > m_OtherTrackCollections
 Track collections to retrieve in the sequence they are given, all if empty. More...
 
std::string m_TrackTruthCollection
 Track collection from which to retrieve the truth associations for the priority track collection. More...
 
bool m_doWriteHLT
 Whether to write HLTAutoKey objects. More...
 
bool m_doWriteResiduals
 Whether to write TrackResiduals. More...
 
bool m_doHitsSorting
 Whether to perform hits (TSoS) sorting. More...
 
bool m_doHitsDetails
 Whether to write hits (TSoS) details. More...
 
ToolHandle< Trk::IResidualPullCalculatorm_residualPullCalculator
 ToolHandle to ResidualPullCaclulator tool. More...
 
const AtlasDetectorIDm_idHelper
 Used to find out the corresponding sub-det from ROT->identify(). More...
 
ToolHandle< Trk::ITrackSummaryToolm_trackSumTool
 TrackSummaryTool for number of Pix/SCT/TRT hits. 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
 

Detailed Description

Retrieves all Trk::TrackCollection objects.



Definition at line 59 of file TrackRetriever.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TrackRetriever()

JiveXML::TrackRetriever::TrackRetriever ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Standard Constructor.

This is the standard AthAlgTool constructor.

Parameters
typeAlgTool type name
nameAlgTool instance name
parentAlgTools parent owning this tool

Definition at line 338 of file TrackRetriever.cxx.

338  :
340  m_typeName("Track"),
341  m_residualPullCalculator("Trk::ResidualPullCalculator/ResidualPullCalculator"),
342  m_idHelper(nullptr),
343  m_trackSumTool ("Trk::TrackSummaryTool/InDetTrackSummaryTool")
344  {
345  //Declare the interface
346  declareInterface<IDataRetriever>(this);
347  //Properties
348  declareProperty("ResidualPullCalculator" , m_residualPullCalculator, "ToolHandle to ResidualPullCaclulator" );
349  declareProperty("PriorityTrackCollection", m_PriorityTrackCollection = "CombinedInDetTracks", "Track collections to retrieve first, shown as default in Atlantis");
350  declareProperty("OtherTrackCollections" , m_OtherTrackCollections , "Track collections to retrieve, all if empty");
351  declareProperty("TrackTruthColName" , m_TrackTruthCollection = "TrackTruthCollection",
352  "Track collection from which to retrieve the truth associations for the priority track collection");
353  declareProperty("DoWriteHLT" , m_doWriteHLT = false, "Whether to write HLTAutoKey objects");
354  declareProperty("DoWriteResiduals" , m_doWriteResiduals = true, "Whether to write TrackResiduals");
355  declareProperty("DoHitsSorting" , m_doHitsSorting = false, "Whether to sort hits (TrackStateOnSurfaces)");
356  declareProperty("DoHitsDetails" , m_doHitsDetails = true, "Whether to write hits details (TrackStateOnSurfaces)");
357  }

Member Function Documentation

◆ dataTypeName()

virtual std::string JiveXML::TrackRetriever::dataTypeName ( ) const
inlinevirtual

Return the name of the data type.

Implements JiveXML::IDataRetriever.

Definition at line 71 of file TrackRetriever.h.

71 { return m_typeName; };

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

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

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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

◆ initialize()

StatusCode JiveXML::TrackRetriever::initialize ( )

Default AthAlgTool methods.

Initialize before event loop.

  • retrieve the residual-pull tool
  • setup the ID helper

Definition at line 364 of file TrackRetriever.cxx.

364  {
365  //Set up ATLAS ID helper to be able to identify the RIO's det-subsystem.
366  if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) {
367  msg(MSG::FATAL) << "Could not get AtlasDetectorID helper" << endmsg;
368  return StatusCode::FAILURE;
369  }
370  // try to retrieve residual-pull calculation only if requested
371  if (m_doWriteResiduals){
372  if ( m_residualPullCalculator.retrieve().isFailure()) {
373  //Give a warning
374  ATH_MSG_WARNING( "Cannot retrieve ResidualPullCalculator tool " << m_residualPullCalculator);
375  ATH_MSG_WARNING( " -> will not write out residuals and pulls! " );
376  //switch of residual writing
377  m_doWriteResiduals = false ;
378  }
379  }
380  //All fine
381 
382  // get TrackSummaryTool
383  if ( m_trackSumTool.retrieve().isFailure() ) {
384  ATH_MSG_WARNING( "Failed to retrieve tool " << m_trackSumTool );
385  } else {
386  if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Retrieved tool " << m_trackSumTool << endmsg;
387  }
388  return StatusCode::SUCCESS;
389  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ interfaceID()

const InterfaceID & JiveXML::IDataRetriever::interfaceID ( )
inlinestaticinherited

Return the interface identifier.

Definition at line 40 of file IDataRetriever.h.

40 { return IID_IDataRetriever; }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::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< AlgTool >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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  }

◆ retrieve()

StatusCode JiveXML::TrackRetriever::retrieve ( ToolHandle< IFormatTool > &  FormatTool)
virtual

Retrieve all the data.

For each track collection retrieve all data.

  • loop over tracks in all collections
  • for each track get basic parameters
    Parameters
    FormatToolthe tool that will create formated output from the DataMap

Second step: Now loop over all collections a retrieve the actual values

Try to find the appropiate truth collection StoreGate key can be either 'TruthCollection' or just 'Truth' suffix. Check both. Using 'SG::contains' check first, avoids spitting out SG warnings

General track fit info

Get truth Information

Get Perigee parameters (if available)

Get number of Pix/SCT/TRT hits

Get sorted list of track state on surfaces

Get polyline information

RIO association and outlier id

Implements JiveXML::IDataRetriever.

Definition at line 399 of file TrackRetriever.cxx.

399  {
400  //be verbose
401  if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Retrieving " << dataTypeName() << endmsg;
402  //Generate a list of requested track collections
403  using tracksNamePair = std::pair<TrackCollection, std::string>;
404  std::vector< tracksNamePair > requestedTrackColls;
405  //First try to get hold of the priorty track collection
406  const TrackCollection* tracks = nullptr ;
407  if (evtStore()->retrieve(tracks, m_PriorityTrackCollection).isFailure()){
408  ATH_MSG_WARNING( "Unable to retrieve requested priority track collection "<< m_PriorityTrackCollection);
409  } else {
410  //Add this to the list of requested collections
411  requestedTrackColls.emplace_back(*tracks,m_PriorityTrackCollection);
412  }
413 
414  //If we have been given an explicit list, try to retrieve these in the order
415  //they were given
417  for ( ; CollNameItr != m_OtherTrackCollections.end(); ++CollNameItr){
418  const TrackCollection* tracks = nullptr ;
419  if (evtStore()->retrieve(tracks, (*CollNameItr)).isFailure()){
420  ATH_MSG_WARNING( "Unable to retrieve requested track collection " << (*CollNameItr) );
421  continue ;
422  }
423  //skip if it's priority collection again
424  if ((*CollNameItr) == m_PriorityTrackCollection){ continue; }
425  //Add them to the list of requested collections
426  requestedTrackColls.emplace_back(*tracks,(*CollNameItr));
427  } // end OtherCollections loop
428  //If no collections had been requested explicitly, loop over all of them
429  if (m_OtherTrackCollections.empty()) {
430  //Get an iterator over all other track collections
431  SG::ConstIterator<TrackCollection> trackCollIter, trackCollEnd;
432  if ((evtStore()->retrieve(trackCollIter, trackCollEnd)).isFailure()){
433  ATH_MSG_ERROR( "Unable to retrieve track collection iterator" );
434  return StatusCode::RECOVERABLE;
435  }
436 
437  //Next loop over all collections
438  for (; trackCollIter!=trackCollEnd; ++trackCollIter) {
439  //Check if this is an HLT-AutoKey collection
440  if ((trackCollIter.key().find("HLT",0) != std::string::npos) && (!m_doWriteHLT)){
441  ATH_MSG_DEBUG( "Ignoring HLT-AutoKey collection " << trackCollIter.key());
442  continue ;
443  }
444  //Ignore TRTSeed and MuonSlimmedTrackCollections
445  if ( (trackCollIter.key()=="TRTSeeds") || (trackCollIter.key() =="MuonSlimmedTrackCollection")) {
446  ATH_MSG_DEBUG( "Always ignoring collection " << trackCollIter.key() );
447  continue ;
448  }
449  //Next try to retrieve the actual collection
450  if (evtStore()->retrieve(tracks,trackCollIter.key()).isFailure()){
451  ATH_MSG_DEBUG( "Unable to retrieve collection " << trackCollIter.key());
452  continue ;
453  }
454  //Check if this collection is not already in the list
455  if (std::find(requestedTrackColls.begin(), requestedTrackColls.end(),tracksNamePair(*tracks,trackCollIter.key())) != requestedTrackColls.end())
456  continue ;
457 
458  //Add this to the list of requested collections
459  requestedTrackColls.emplace_back(*tracks,trackCollIter.key());
460  } //loop over all track collections
461  }
462 
468  //Loop over the collection list we have assembled above
469  std::vector<tracksNamePair>::iterator tracksNamePairItr = requestedTrackColls.begin();
470  for ( ; tracksNamePairItr != requestedTrackColls.end(); ++tracksNamePairItr){
471  //save some typing by getting a handle on the collection pointer
472  const TrackCollection* trackCollection =&((*tracksNamePairItr).first);
473  std::string collectionName = (*tracksNamePairItr).second;
474  //Some sanity checks
475  if ( trackCollection->empty()){
476  ATH_MSG_DEBUG( "Ignoring empty track collection " << collectionName );
477  } else {
478  ATH_MSG_DEBUG( "Retrieving data for track collection " << collectionName);
479  }
480 
486  const TrackTruthCollection *truthCollection = nullptr ;
487  //Check for given truth collection
488  if ( collectionName == m_PriorityTrackCollection ){
489  if ( evtStore()->contains<TrackTruthCollection>(m_TrackTruthCollection) ){
490  evtStore()->retrieve(truthCollection, m_TrackTruthCollection).ignore();
491  ATH_MSG_DEBUG( "Found TrackTruthCollection with key " << m_TrackTruthCollection );
492  }
493  //Check for name+TruthCollection
494  } else if ( evtStore()->contains<TrackTruthCollection>(collectionName+"TruthCollection") ){
495  evtStore()->retrieve(truthCollection, collectionName+"TruthCollection").ignore();
496  ATH_MSG_DEBUG( "Found TrackTruthCollection with key " << collectionName << "TruthCollection" );
497  //Check for name+Truth
498  } else if ( evtStore()->contains<TrackTruthCollection>(collectionName+"Truth") ){
499  evtStore()->retrieve(truthCollection, collectionName+"Truth").ignore();
500  ATH_MSG_DEBUG( "Found TrackTruthCollection with key " << collectionName << "Truth" );
501  // No matching track truth collection found at all
502  } else {
503  ATH_MSG_DEBUG( "Could not find matching TrackTruthCollection for " << collectionName );
504  truthCollection = nullptr ;
505  }
506 
507  // Make a list of track-wise entries and reserve enough space
508  DataVect id; id.reserve(trackCollection->size());
509  DataVect chi2; chi2.reserve(trackCollection->size());
510  DataVect numDoF; numDoF.reserve(trackCollection->size());
511  DataVect trackAuthor; trackAuthor.reserve(trackCollection->size());
512  DataVect barcode; barcode.reserve(trackCollection->size());
513  DataVect numHits; numHits.reserve(trackCollection->size());
514  DataVect numPolyline; numPolyline.reserve(trackCollection->size());
515  DataVect nBLayerHits; nBLayerHits.reserve(trackCollection->size());
516  DataVect nPixHits; nPixHits.reserve(trackCollection->size());
517  DataVect nSCTHits; nSCTHits.reserve(trackCollection->size());
518  DataVect nTRTHits; nTRTHits.reserve(trackCollection->size());
519 
520  // vectors with measurement- or TrackStateOnSurface-wise entries
521  // reserve space later on
522  DataVect polylineX;
523  DataVect polylineY;
524  DataVect polylineZ;
525  DataVect tsosResLoc1;
526  DataVect tsosResLoc2;
527  DataVect tsosPullLoc1;
528  DataVect tsosPullLoc2;
529  DataVect tsosDetType;
530  DataVect isOutlier;
531  DataVect driftSign;
532  DataVect hits;
533 
534  //Store wether this collection has perigee parameters
535  DataVect pt; pt.reserve(trackCollection->size());
536  DataVect d0; d0.reserve(trackCollection->size());
537  DataVect z0; z0.reserve(trackCollection->size());
538  DataVect phi0; phi0.reserve(trackCollection->size());
539  DataVect cotTheta; cotTheta.reserve(trackCollection->size());
540  //Covariance matrix has 15 entries per track
541  DataVect covMatrix; covMatrix.reserve(trackCollection->size() * 15 );
542 
543  // Now loop over all tracks in the collection
545  for (track=trackCollection->begin(); track!=trackCollection->end(); ++track) {
549  id.emplace_back(id.size()); //<! simple counter starting from 0
550  chi2.emplace_back((*track)->fitQuality()->chiSquared());
551  numDoF.emplace_back((*track)->fitQuality()->numberDoF());
552  trackAuthor.emplace_back((*track)->info().trackFitter());
553 
557  TrackRetrieverHelpers::getTruthFromTrack(*track,trackCollection,truthCollection,barcode);
558 
563 
567  std::unique_ptr<Trk::TrackSummary> summary = nullptr;
568  summary = m_trackSumTool->summary(**track);
569 
570  if(not summary){
571  ATH_MSG_DEBUG( "Track summary is NULL " );
572  nBLayerHits.emplace_back(0);
573  nPixHits.emplace_back(0);
574  nSCTHits.emplace_back(0);
575  nTRTHits.emplace_back(0);
576  }else{
577  nBLayerHits.emplace_back(summary->get(Trk::numberOfInnermostPixelLayerHits));
578  nPixHits.emplace_back(summary->get(Trk::numberOfPixelHits));
579  nSCTHits.emplace_back(summary->get(Trk::numberOfSCTHits));
580  nTRTHits.emplace_back(summary->get(Trk::numberOfTRTHits));
581  }
582 
586  // Vector of interesting TrackStateOnSurfaces
587  std::vector<const Trk::TrackStateOnSurface*> TSoSVec = TrackRetrieverHelpers::getTrackStateOnSurfaces(*track,perigee,m_doHitsSorting);
588 
592  // Reserving some space for polyline hits
593  polylineX.reserve(polylineX.size()+TSoSVec.size());
594  polylineY.reserve(polylineY.size()+TSoSVec.size());
595  polylineZ.reserve(polylineZ.size()+TSoSVec.size());
596 
597  //And fill them
598  TrackRetrieverHelpers::getPolylineFromHits(TSoSVec,polylineX,polylineY,polylineZ,numPolyline);
599 
603  //Reserve some space for resPull and other hit info
604  isOutlier.reserve(isOutlier.size()+TSoSVec.size());
605  hits.reserve(hits.size()+TSoSVec.size());
606  driftSign.reserve(driftSign.size()+TSoSVec.size());
607  tsosResLoc1.reserve(tsosResLoc1.size()+TSoSVec.size());
608  tsosResLoc2.reserve(tsosResLoc2.size()+TSoSVec.size());
609  tsosPullLoc1.reserve(tsosPullLoc1.size()+TSoSVec.size());
610  tsosPullLoc2.reserve(tsosPullLoc2.size()+TSoSVec.size());
611  tsosDetType.reserve(tsosDetType.size()+TSoSVec.size());
612 
613  //Now loop over tracks and fill them
614  std::vector< const Trk::TrackStateOnSurface* >::const_iterator TSoSItr = TSoSVec.begin();
615  //Count number of hits stored in this loop
616  long nHits = 0;
617  if (m_doHitsDetails){ // disable only for HeavyIons !
618  for (; TSoSItr != TSoSVec.end(); ++TSoSItr){
619  // This produces the full long debug dump for TSoS:
620  ATH_MSG_VERBOSE( (**TSoSItr) );
621  //Get the basic hit information
622  const Trk::RIO_OnTrack* rot = TrackRetrieverHelpers::getBaseInfoFromHit(*TSoSItr, m_idHelper, isOutlier, hits, driftSign, tsosDetType );
623  //tell if this didn't work out
624  if (!rot){
625  ATH_MSG_VERBOSE( "Could not obtain RIO for TSoS of type " << (*TSoSItr)->dumpType() );
626  continue ;
627  }
628  //count this as a hit
629  ++nHits;
630 
631  //if we shell retrieve residuals, also get those
632  if (m_doWriteResiduals){
633  TrackRetrieverHelpers::getResidualPullFromHit( *TSoSItr, rot, m_residualPullCalculator, tsosResLoc1, tsosResLoc2, tsosPullLoc1, tsosPullLoc2);
634  }
635  }
636  } // end hits details
637 
638  //Store number of retrieved hits for which we have retrieved information
639  numHits.emplace_back(nHits);
640 
641  } // end loop over tracks in collection
642 
643  //Now fill everything in a datamap
645  // Start with mandatory entries
646  DataMap["id"] = id;
647  DataMap["chi2"] = chi2;
648  DataMap["numDoF"] = numDoF;
649  DataMap["trackAuthor"] = trackAuthor;
650  DataMap["barcode"] = barcode;
651  DataMap["numHits"] = numHits;
652  DataMap["nBLayerHits"] = nBLayerHits;
653  DataMap["nPixHits"] = nPixHits;
654  DataMap["nSCTHits"] = nSCTHits;
655  DataMap["nTRTHits"] = nTRTHits;
656  DataMap["numPolyline"] = numPolyline;
657 
658  // if perigee parameters are not available, leave the corresponding subtags empty.
659  // This way atlantis knows that such tracks can only be displayed as polylines.
660  if (!pt.empty()){
661  DataMap["pt"] = pt;
662  DataMap["d0"] = d0;
663  DataMap["z0"] = z0;
664  DataMap["phi0"] = phi0;
665  DataMap["cotTheta"] = cotTheta;
666  DataMap["covMatrix multiple=\"15\""] = covMatrix;
667  }
668 
669  // vectors with measurement- or TrackStateOnSurface-wise entries
670  if ( !polylineX.empty()){
671  std::string numPolyPerTrack = DataType(polylineX.size()/((double)id.size())).toString();
672  DataMap["polylineX multiple=\"" + numPolyPerTrack + "\""] = polylineX;
673  DataMap["polylineY multiple=\"" + numPolyPerTrack + "\""] = polylineY;
674  DataMap["polylineZ multiple=\"" + numPolyPerTrack + "\""] = polylineZ;
675  }
676 
677  if ( !hits.empty()){
678  std::string numHitsPerTrack = DataType(hits.size()/((double)id.size())).toString();
679  DataMap["hits multiple=\"" + numHitsPerTrack + "\""] = hits;
680  DataMap["isOutlier multiple=\""+numHitsPerTrack+"\""] = isOutlier;
681  DataMap["driftSign multiple=\""+numHitsPerTrack+"\""] = driftSign;
682 
683  if (m_doWriteResiduals){
684  // hits counter in principle not needed anymore:
685  DataMap["numTsos"] = numHits;
686  DataMap["tsosResLoc1 multiple=\""+numHitsPerTrack+"\""] = tsosResLoc1;
687  DataMap["tsosResLoc2 multiple=\""+numHitsPerTrack+"\""] = tsosResLoc2;
688  DataMap["tsosPullLoc1 multiple=\""+numHitsPerTrack+"\""] = tsosPullLoc1;
689  DataMap["tsosPullLoc2 multiple=\""+numHitsPerTrack+"\""] = tsosPullLoc2;
690  DataMap["tsosDetType multiple=\""+numHitsPerTrack+"\""] = tsosDetType;
691  }
692  }
693 
694  //forward data to formating tool
695  if ( FormatTool->AddToEvent(dataTypeName(), collectionName, &DataMap).isFailure())
696  return StatusCode::RECOVERABLE;
697 
698  //Be verbose
699  if (msgLvl(MSG::DEBUG)) {
700  msg(MSG::DEBUG) << dataTypeName() << " collection " << collectionName;
701  msg(MSG::DEBUG) << " retrieved with " << id.size() << " entries"<< endmsg;
702  }
703 
704  } //loop over track collections
705 
706  //All collections retrieved okay
707  return StatusCode::SUCCESS;
708 
709  } //retrieve

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doHitsDetails

bool JiveXML::TrackRetriever::m_doHitsDetails
private

Whether to write hits (TSoS) details.

Definition at line 96 of file TrackRetriever.h.

◆ m_doHitsSorting

bool JiveXML::TrackRetriever::m_doHitsSorting
private

Whether to perform hits (TSoS) sorting.

Definition at line 94 of file TrackRetriever.h.

◆ m_doWriteHLT

bool JiveXML::TrackRetriever::m_doWriteHLT
private

Whether to write HLTAutoKey objects.

Definition at line 90 of file TrackRetriever.h.

◆ m_doWriteResiduals

bool JiveXML::TrackRetriever::m_doWriteResiduals
private

Whether to write TrackResiduals.

Definition at line 92 of file TrackRetriever.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_idHelper

const AtlasDetectorID* JiveXML::TrackRetriever::m_idHelper
private

Used to find out the corresponding sub-det from ROT->identify().

Definition at line 100 of file TrackRetriever.h.

◆ m_OtherTrackCollections

std::vector<std::string> JiveXML::TrackRetriever::m_OtherTrackCollections
private

Track collections to retrieve in the sequence they are given, all if empty.

Definition at line 85 of file TrackRetriever.h.

◆ m_PriorityTrackCollection

std::string JiveXML::TrackRetriever::m_PriorityTrackCollection
private

First track collections to retrieve, shown as default in Atlantis.

Definition at line 83 of file TrackRetriever.h.

◆ m_residualPullCalculator

ToolHandle<Trk::IResidualPullCalculator> JiveXML::TrackRetriever::m_residualPullCalculator
private

ToolHandle to ResidualPullCaclulator tool.

Definition at line 98 of file TrackRetriever.h.

◆ m_trackSumTool

ToolHandle< Trk::ITrackSummaryTool > JiveXML::TrackRetriever::m_trackSumTool
private

TrackSummaryTool for number of Pix/SCT/TRT hits.

Pointer to Trk::ITrackSummaryTool

Definition at line 102 of file TrackRetriever.h.

◆ m_TrackTruthCollection

std::string JiveXML::TrackRetriever::m_TrackTruthCollection
private

Track collection from which to retrieve the truth associations for the priority track collection.

Definition at line 88 of file TrackRetriever.h.

◆ m_typeName

const std::string JiveXML::TrackRetriever::m_typeName
private

The data type that is generated by this retriever.

Definition at line 78 of file TrackRetriever.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Trk::numberOfPixelHits
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:57
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
Trk::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:53
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
SG::detail::IteratorBase::key
const std::string & key() const
Get the key string with which the current object was stored.
Definition: SGIterator.cxx:155
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
JiveXML::TrackRetrieverHelpers::getPerigeeParameters
const Trk::Perigee * getPerigeeParameters(const Trk::Track *track, DataVect &pt, DataVect &d0, DataVect &z0, DataVect &phi0, DataVect &cotTheta, DataVect &covMatrix)
Obtain the perigee paramets for a given track, if available, and fill them in the corresponding data ...
Definition: TrackRetriever.cxx:50
InDetAccessor::phi0
@ phi0
Definition: InDetAccessor.h:33
JiveXML::DataVect
std::vector< DataType > DataVect
Defines a map with a key and a vector of DataType objects e.g.
Definition: DataType.h:58
DataType
OFFLINE_FRAGMENTS_NAMESPACE::PointerType DataType
Definition: RoIBResultByteStreamTool.cxx:25
JiveXML::TrackRetriever::m_PriorityTrackCollection
std::string m_PriorityTrackCollection
First track collections to retrieve, shown as default in Atlantis.
Definition: TrackRetriever.h:83
test_pyathena.pt
pt
Definition: test_pyathena.py:11
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
JiveXML::TrackRetriever::m_typeName
const std::string m_typeName
The data type that is generated by this retriever.
Definition: TrackRetriever.h:78
JiveXML::TrackRetrieverHelpers::getBaseInfoFromHit
const Trk::RIO_OnTrack * getBaseInfoFromHit(const Trk::TrackStateOnSurface *tsos, const AtlasDetectorID *idHelper, DataVect &isOutlier, DataVect &hits, DataVect &driftSign, DataVect &tsosDetType)
Retrieve all the basic hit information from the Trk::TrackStateOnSurface.
Definition: TrackRetriever.cxx:184
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
JiveXML::TrackRetrieverHelpers::getTrackStateOnSurfaces
std::vector< const Trk::TrackStateOnSurface * > getTrackStateOnSurfaces(const Trk::Track *track, const Trk::Perigee *perigee, bool doHitsSorting)
Get a list of track-State on Surfaces for measurement and outlier hits, sorted using the perigee comp...
Definition: TrackRetriever.cxx:120
JiveXML::TrackRetriever::retrieve
virtual StatusCode retrieve(ToolHandle< IFormatTool > &FormatTool)
Retrieve all the data.
Definition: TrackRetriever.cxx:399
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
JiveXML::DataMap
std::map< std::string, DataVect > DataMap
Definition: DataType.h:59
JiveXML::TrackRetriever::m_residualPullCalculator
ToolHandle< Trk::IResidualPullCalculator > m_residualPullCalculator
ToolHandle to ResidualPullCaclulator tool.
Definition: TrackRetriever.h:98
JiveXML::TrackRetriever::m_doWriteHLT
bool m_doWriteHLT
Whether to write HLTAutoKey objects.
Definition: TrackRetriever.h:90
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
JiveXML::TrackRetrieverHelpers::getResidualPullFromHit
void getResidualPullFromHit(const Trk::TrackStateOnSurface *tsos, const Trk::RIO_OnTrack *rot, const ToolHandle< Trk::IResidualPullCalculator > &residualPullCalculator, DataVect &tsosResLoc1, DataVect &tsosResLoc2, DataVect &tsosPullLoc1, DataVect &tsosPullLoc2)
Get the residual pull information from the Trk::TrackStateOnSurface hit.
Definition: TrackRetriever.cxx:253
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
JiveXML::TrackRetriever::m_doHitsDetails
bool m_doHitsDetails
Whether to write hits (TSoS) details.
Definition: TrackRetriever.h:96
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
TrackTruthCollection
Definition: TrackTruthCollection.h:21
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
JiveXML::TrackRetriever::m_doWriteResiduals
bool m_doWriteResiduals
Whether to write TrackResiduals.
Definition: TrackRetriever.h:92
JiveXML::TrackRetrieverHelpers::getTruthFromTrack
void getTruthFromTrack(const Trk::Track *track, const TrackCollection *trackCollection, const TrackTruthCollection *truthCollection, DataVect &barcode)
Get the barcode of the associated truth track.
Definition: TrackRetriever.cxx:302
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::covMatrix
covMatrix
Definition: TrackMeasurement_v1.cxx:19
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
LArG4ShowerLibProcessing.hits
hits
Definition: LArG4ShowerLibProcessing.py:136
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
test_pyathena.parent
parent
Definition: test_pyathena.py:15
JiveXML::TrackRetriever::m_idHelper
const AtlasDetectorID * m_idHelper
Used to find out the corresponding sub-det from ROT->identify().
Definition: TrackRetriever.h:100
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
JiveXML::TrackRetriever::m_doHitsSorting
bool m_doHitsSorting
Whether to perform hits (TSoS) sorting.
Definition: TrackRetriever.h:94
DataVector< Trk::Track >
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
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
Trk::numberOfTRTHits
@ numberOfTRTHits
number of TRT outliers
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:79
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
TauGNNUtils::Variables::Track::nSCTHits
bool nSCTHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:549
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
JiveXML::TrackRetriever::m_trackSumTool
ToolHandle< Trk::ITrackSummaryTool > m_trackSumTool
TrackSummaryTool for number of Pix/SCT/TRT hits.
Definition: TrackRetriever.h:102
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
TRT::Track::cotTheta
@ cotTheta
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:65
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
SG::ConstIterator
Definition: SGIterator.h:163
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
JiveXML::TrackRetriever::m_OtherTrackCollections
std::vector< std::string > m_OtherTrackCollections
Track collections to retrieve in the sequence they are given, all if empty.
Definition: TrackRetriever.h:85
DataVector::empty
bool empty() const noexcept
Returns true if the collection is empty.
JiveXML::TrackRetriever::m_TrackTruthCollection
std::string m_TrackTruthCollection
Track collection from which to retrieve the truth associations for the priority track collection.
Definition: TrackRetriever.h:88
JiveXML::TrackRetriever::dataTypeName
virtual std::string dataTypeName() const
Return the name of the data type.
Definition: TrackRetriever.h:71
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
JiveXML::TrackRetrieverHelpers::getPolylineFromHits
void getPolylineFromHits(const std::vector< const Trk::TrackStateOnSurface * > &TSoSVec, DataVect &polylineX, DataVect &polylineY, DataVect &polylineZ, DataVect &numPolyline)
Get polyline hits if available.
Definition: TrackRetriever.cxx:158
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65