Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
InDetTrackSelectionToolWrapper.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // InDetTrackSelectionToolWrapper.cxx
8 
11 #include "StoreGate/ReadHandle.h"
13 #include <vector>
14 #include <string>
15 #include <string_view>
16 
17 namespace DerivationFramework {
18 
20  const std::string& n,
21  const IInterface* p) :
22  base_class(t,n,p)
23  {
24  }
25 
27  {
28  if (m_decorationKey.empty()) {
29  ATH_MSG_ERROR("No decoration prefix name provided for the output of InDetTrackSelectionToolWrapper!");
30  return StatusCode::FAILURE;
31  }
32 
34  std::string::size_type pos = m_tracksKey.key().find('+');
35  pos = (pos != std::string::npos) ? pos+1 : 0;
36  std::string_view container_name( &(m_tracksKey.key()[pos]), m_tracksKey.key().size() - pos);
37  std::string_view decor_name(m_decorationKey.key());
38  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)) {
39  m_decorationKey = std::string(container_name) + "." + m_decorationKey.key();
40  }
41  std::cout << "DEBUG " << name() << " InDetTrackSelectionToolWrapper::initialize container key " << m_tracksKey.key() << " -> " << container_name << " decor=" << m_decorationKey.key() << std::endl;
43  ATH_MSG_INFO("Using " << m_tracksKey << "as the source collection for inner detector track particles");
44  ATH_CHECK(m_tool.retrieve());
45  ATH_MSG_INFO(" InDetTrackSelectionToolWrapper::initialize i: " << inputHandles().size() << " o:" << outputHandles().size() );
46  return StatusCode::SUCCESS;
47  }
48 
50  {
51  return StatusCode::SUCCESS;
52  }
53 
55  {
56 
57  // Get current context
58  const EventContext& ctx = Gaudi::Hive::currentContext();
59 
60  // retrieve track container
62  if (!tracks.isValid()) {
63  //if( ! tracks ) {
64  ATH_MSG_ERROR ("Couldn't retrieve TrackParticles with key: " << tracks.key() );
65  return StatusCode::FAILURE;
66  }
67  // Run tool for each element and decorate with the decision
69  for (const auto *trItr : *tracks) {
70  accept( *trItr ) = m_tool->accept(trItr).getCutResult(0);
71  } // end of loop over tracks
72 
73  return StatusCode::SUCCESS;
74  }
75 
76 }
DerivationFramework::InDetTrackSelectionToolWrapper::addBranches
virtual StatusCode addBranches() const
Definition: InDetTrackSelectionToolWrapper.cxx:54
DerivationFramework::InDetTrackSelectionToolWrapper::finalize
StatusCode finalize()
Definition: InDetTrackSelectionToolWrapper.cxx:49
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::InDetTrackSelectionToolWrapper
InDetTrackSelectionToolWrapper(const std::string &t, const std::string &n, const IInterface *p)
Definition: InDetTrackSelectionToolWrapper.cxx:19
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
DerivationFramework::InDetTrackSelectionToolWrapper::m_tool
ToolHandle< InDet::IInDetTrackSelectionTool > m_tool
Definition: InDetTrackSelectionToolWrapper.h:32
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
InDetTrackSelectionToolWrapper.h
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
WriteDecorHandle.h
Handle class for adding a decoration to an object.
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DerivationFramework::InDetTrackSelectionToolWrapper::m_tracksKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_tracksKey
Definition: InDetTrackSelectionToolWrapper.h:35
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
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
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
SG::VarHandleBase::key
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleBase.cxx:64
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
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::initialize
StatusCode initialize()
Definition: InDetTrackSelectionToolWrapper.cxx:26
ReadHandle.h
Handle class for reading from StoreGate.
DerivationFramework::InDetTrackSelectionToolWrapper::m_decorationKey
SG::WriteDecorHandleKey< xAOD::TrackParticleContainer > m_decorationKey
Definition: InDetTrackSelectionToolWrapper.h:38
TrackParticleContainer.h