Skip to content
Snippets Groups Projects
Commit 93c91e3c authored by Adam Edward Barton's avatar Adam Edward Barton
Browse files

Merge branch 'mupattrackbuilder' into 'master'

Make MuPatTrackBuilder reentrant

See merge request atlas/athena!38352
parents 80efe6ba 6ceb9feb
No related branches found
No related tags found
No related merge requests found
/*
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
*/
#include "MuPatTrackBuilder.h"
......@@ -39,11 +39,11 @@ StatusCode MuPatTrackBuilder::initialize()
return StatusCode::SUCCESS;
}
StatusCode MuPatTrackBuilder::execute()
StatusCode MuPatTrackBuilder::execute(const EventContext& ctx) const
{
typedef std::vector<const Muon::MuonSegment*> MuonSegmentCollection;
SG::ReadHandle<Trk::SegmentCollection> segmentColl (m_segmentKey);
SG::ReadHandle<Trk::SegmentCollection> segmentColl (m_segmentKey, ctx);
if (!segmentColl.isValid() ) {
msg(MSG::WARNING) << "Could not find MuonSegmentCollection at " << segmentColl.name() <<endmsg;
return StatusCode::RECOVERABLE;
......@@ -72,7 +72,7 @@ StatusCode MuPatTrackBuilder::execute()
TrackCollection * newtracks = m_trackMaker->find(msc);
if (!newtracks) newtracks = new TrackCollection();
SG::WriteHandle<TrackCollection> spectroTracks(m_spectroTrackKey);
SG::WriteHandle<TrackCollection> spectroTracks(m_spectroTrackKey, ctx);
if (spectroTracks.record(std::unique_ptr<TrackCollection>(newtracks)).isFailure()){
ATH_MSG_WARNING( "New Track Container " << spectroTracks.name() << " could not be recorded in StoreGate !");
return StatusCode::RECOVERABLE;
......
/*
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
*/
#ifndef MUPATTRACKBUILDER_H
......@@ -7,7 +7,7 @@
#include <string>
#include "AthenaBaseComps/AthAlgorithm.h"
#include "AthenaBaseComps/AthReentrantAlgorithm.h"
#include "GaudiKernel/ServiceHandle.h"
#include "GaudiKernel/ToolHandle.h"
#include "TrkSegment/SegmentCollection.h"
......@@ -18,13 +18,13 @@
#include "AthenaMonitoringKernel/GenericMonitoringTool.h"
#include "AthenaMonitoringKernel/Monitored.h"
class MuPatTrackBuilder : public AthAlgorithm
class MuPatTrackBuilder : public AthReentrantAlgorithm
{
public:
using AthAlgorithm::AthAlgorithm;
using AthReentrantAlgorithm::AthReentrantAlgorithm;
public:
virtual StatusCode initialize() override;
virtual StatusCode execute() override;
virtual StatusCode execute(const EventContext& ctx) const override;
private:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment