ATLAS Offline Software
HadronOriginDecorator.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
8 
9 namespace DerivationFramework {
10 
11  HadronOriginDecorator::HadronOriginDecorator(const std::string& t, const std::string& n, const IInterface* p):
12  base_class(t,n,p),
13  m_Tool("")
14  {
15 
16  declareProperty("ToolName",m_Tool);
17  declareProperty("TruthEventName",m_TruthEventName="TruthParticles");
18  }
19 
21 
23  ATH_MSG_INFO("Initialize " );
24 
25  if(m_Tool.retrieve().isFailure()){
26  ATH_MSG_ERROR("unable to retrieve the tool " <<m_Tool);
27  return StatusCode::FAILURE;
28  }
29 
30  return StatusCode::SUCCESS;
31  }
32 
34  return StatusCode::SUCCESS;
35  }
36 
38  const xAOD::TruthParticleContainer* xTruthParticleContainer = nullptr;
39  if (evtStore()->retrieve(xTruthParticleContainer,m_TruthEventName).isFailure()) {
40  ATH_MSG_WARNING("could not retrieve TruthParticleContainer " <<m_TruthEventName);
41  return StatusCode::FAILURE;
42  }
43 
44  std::map<const xAOD::TruthParticle*, DerivationFramework::HadronOriginClassifier::HF_id> hadronMap=m_Tool->GetOriginMap();
45 
46  for(xAOD::TruthParticleContainer::const_iterator PItr = xTruthParticleContainer->begin(); PItr!=xTruthParticleContainer->end(); ++PItr){
47  int flavortype=6;
48  if(hadronMap.find((*PItr))!=hadronMap.end()){
49  flavortype= static_cast<int>(hadronMap[(*PItr)]);
50  }
51  SG::AuxElement::Decorator< int > decoration("TopHadronOriginFlag");
52  decoration(**PItr) = flavortype;
53  }
54 
55  return StatusCode::SUCCESS;
56  }
57 
58 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
DerivationFramework::HadronOriginDecorator::~HadronOriginDecorator
~HadronOriginDecorator()
Definition: HadronOriginDecorator.cxx:20
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TruthParticleContainer.h
HadronOriginClassifier.h
DerivationFramework::HadronOriginDecorator::m_TruthEventName
std::string m_TruthEventName
Definition: HadronOriginDecorator.h:40
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
DerivationFramework::HadronOriginDecorator::m_Tool
ToolHandle< DerivationFramework::HadronOriginClassifier > m_Tool
Definition: HadronOriginDecorator.h:41
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
DerivationFramework::HadronOriginDecorator::HadronOriginDecorator
HadronOriginDecorator(const std::string &t, const std::string &n, const IInterface *p)
Definition: HadronOriginDecorator.cxx:11
SG::Decorator
Helper class to provide type-safe access to aux data.
Definition: Decorator.h:59
beamspotman.n
n
Definition: beamspotman.py:729
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
DerivationFramework::HadronOriginDecorator::addBranches
virtual StatusCode addBranches() const
Definition: HadronOriginDecorator.cxx:37
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
HadronOriginDecorator.h
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
DerivationFramework::HadronOriginDecorator::initialize
StatusCode initialize()
Definition: HadronOriginDecorator.cxx:22
DerivationFramework::HadronOriginDecorator::finalize
StatusCode finalize()
Definition: HadronOriginDecorator.cxx:33