21 return StatusCode::SUCCESS;
31 if (!inputContainer.
isValid()) {
32 ATH_MSG_ERROR(
"Could not get pileup PRD_MultiTruthCollection " << inputContainer.
name() <<
" from store " << inputContainer.
store());
33 return StatusCode::FAILURE;
35 ATH_MSG_DEBUG(
"Found pileup PRD_MultiTruthCollection " << inputContainer.
name() <<
" in store " << inputContainer.
store());
39 ATH_CHECK(outputContainer.
record(std::make_unique<PRD_MultiTruthCollection>()));
40 if (!outputContainer.
isValid()) {
41 ATH_MSG_ERROR(
"Could not record output PRD_MultiTruthCollection " << outputContainer.
name() <<
" to store " << outputContainer.
store());
42 return StatusCode::FAILURE;
44 ATH_MSG_DEBUG(
"Recorded output PRD_MultiTruthCollection container " << outputContainer.
name() <<
" in store " << outputContainer.
store());
46 for(
const std::pair<const Identifier, HepMcParticleLink>& element : *inputContainer){
47 outputContainer->insert(std::make_pair(element.first,element.second));
49 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
An algorithm that can be simultaneously executed in multiple threads.
SG::WriteHandleKey< PRD_MultiTruthCollection > m_outputKey
virtual StatusCode execute(const EventContext &ctx) const override
virtual StatusCode initialize() override
CopyPRD_MultiTruthCollection(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< PRD_MultiTruthCollection > m_inputKey
virtual bool isValid() override final
Can the handle be successfully dereferenced?
std::string store() const
Return the name of the store holding the object we are proxying.
const std::string & name() const
Return the StoreGate ID for the referenced object.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
virtual bool isValid() override final
Can the handle be successfully dereferenced?