ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
DerivationFramework::InDetTrackSelectionToolWrapper Class Reference

#include <InDetTrackSelectionToolWrapper.h>

Inheritance diagram for DerivationFramework::InDetTrackSelectionToolWrapper:
Collaboration diagram for DerivationFramework::InDetTrackSelectionToolWrapper:

Public Member Functions

virtual StatusCode initialize () override final
 
virtual StatusCode addBranches (const EventContext &ctx) const override final
 

Private Attributes

ToolHandle< InDet::IInDetTrackSelectionToolm_tool {this,"TrackSelectionTool",""}
 
SG::ReadHandleKey< xAOD::TrackParticleContainerm_tracksKey {this, "ContainerName", "InDetTrackParticles", "The input TrackParticleCollection"}
 
SG::WriteDecorHandleKey< xAOD::TrackParticleContainerm_decorationKey {this, "DecorationName", "","Name of the decoration which provides the track selection result."}
 

Detailed Description

Definition at line 23 of file InDetTrackSelectionToolWrapper.h.

Member Function Documentation

◆ addBranches()

StatusCode DerivationFramework::InDetTrackSelectionToolWrapper::addBranches ( const EventContext &  ctx) const
finaloverridevirtual

Definition at line 43 of file InDetTrackSelectionToolWrapper.cxx.

44  {
45 
46  // retrieve track container
48  if (!tracks.isValid()) {
49  //if( ! tracks ) {
50  ATH_MSG_ERROR ("Couldn't retrieve TrackParticles with key: " << tracks.key() );
51  return StatusCode::FAILURE;
52  }
53  // Run tool for each element and decorate with the decision
55  for (const auto *trItr : *tracks) {
56  accept( *trItr ) = m_tool->accept(trItr).getCutResult(0);
57  } // end of loop over tracks
58 
59  return StatusCode::SUCCESS;
60  }

◆ initialize()

StatusCode DerivationFramework::InDetTrackSelectionToolWrapper::initialize ( )
finaloverridevirtual

Definition at line 19 of file InDetTrackSelectionToolWrapper.cxx.

20  {
21  if (m_decorationKey.empty()) {
22  ATH_MSG_ERROR("No decoration prefix name provided for the output of InDetTrackSelectionToolWrapper!");
23  return StatusCode::FAILURE;
24  }
25 
27  std::string::size_type pos = m_tracksKey.key().find('+');
28  pos = (pos != std::string::npos) ? pos+1 : 0;
29  std::string_view container_name( &(m_tracksKey.key()[pos]), m_tracksKey.key().size() - pos);
30  std::string_view decor_name(m_decorationKey.key());
31  if (!(decor_name.compare(0,m_tracksKey.key().size(),std::string_view(m_tracksKey.key()))==0 && decor_name.compare(0,container_name.size(),container_name)==0)) {
32  m_decorationKey = std::string(container_name) + "." + m_decorationKey.key();
33  }
34  std::cout << "DEBUG " << name() << " InDetTrackSelectionToolWrapper::initialize container key " << m_tracksKey.key() << " -> " << container_name << " decor=" << m_decorationKey.key() << std::endl;
36  ATH_MSG_INFO("Using " << m_tracksKey << "as the source collection for inner detector track particles");
37  ATH_CHECK(m_tool.retrieve());
38  ATH_MSG_INFO(" InDetTrackSelectionToolWrapper::initialize i: " << inputHandles().size() << " o:" << outputHandles().size() );
39  return StatusCode::SUCCESS;
40  }

Member Data Documentation

◆ m_decorationKey

SG::WriteDecorHandleKey<xAOD::TrackParticleContainer> DerivationFramework::InDetTrackSelectionToolWrapper::m_decorationKey {this, "DecorationName", "","Name of the decoration which provides the track selection result."}
private

Definition at line 38 of file InDetTrackSelectionToolWrapper.h.

◆ m_tool

ToolHandle< InDet::IInDetTrackSelectionTool > DerivationFramework::InDetTrackSelectionToolWrapper::m_tool {this,"TrackSelectionTool",""}
private

Definition at line 32 of file InDetTrackSelectionToolWrapper.h.

◆ m_tracksKey

SG::ReadHandleKey<xAOD::TrackParticleContainer> DerivationFramework::InDetTrackSelectionToolWrapper::m_tracksKey {this, "ContainerName", "InDetTrackParticles", "The input TrackParticleCollection"}
private

Definition at line 35 of file InDetTrackSelectionToolWrapper.h.


The documentation for this class was generated from the following files:
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
CutsMETMaker::accept
StatusCode accept(const xAOD::Muon *mu)
Definition: CutsMETMaker.cxx:18
DerivationFramework::InDetTrackSelectionToolWrapper::m_tool
ToolHandle< InDet::IInDetTrackSelectionTool > m_tool
Definition: InDetTrackSelectionToolWrapper.h:33
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DerivationFramework::InDetTrackSelectionToolWrapper::m_tracksKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_tracksKey
Definition: InDetTrackSelectionToolWrapper.h:36
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
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
SG::WriteDecorHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
DerivationFramework::InDetTrackSelectionToolWrapper::m_decorationKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_decorationKey
Definition: InDetTrackSelectionToolWrapper.h:39