19 if(
m_doNtuple and Gaudi::Concurrency::ConcurrencyFlags::numConcurrentEvents() > 1) {
20 ATH_MSG_ERROR(
"DoNtuple is not possible in multi-threaded mode");
21 return StatusCode::FAILURE;
30 ATH_MSG_ERROR(
"No sTGC Strip Trigger algorithm defined. Please, check whether the hardware implementation is available before implementing any kind of tool!");
31 return StatusCode::FAILURE;
43 return StatusCode::SUCCESS;
48 auto padTriggerContainer = std::make_unique<Muon::NSW_PadTriggerDataContainer>();
49 auto stripTriggerContainer = std::make_unique<Muon::NSW_TrigRawDataContainer>();
50 auto MMTriggerContainer = std::make_unique<Muon::NSW_TrigRawDataContainer>();
66 static std::mutex
mutex;
67 std::scoped_lock lock(
mutex);
69 if(!success)
return StatusCode::FAILURE;
73 auto trgContainer=std::make_unique<Muon::NSW_TrigRawDataContainer>();
74 ATH_CHECK(
m_trigProcessor->mergeRDO(padTriggerContainer.get(), stripTriggerContainer.get(), MMTriggerContainer.get(), trgContainer.get()) );
76 return StatusCode::SUCCESS;
81 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
An algorithm that can be simultaneously executed in multiple threads.
ToolHandle< IMMTriggerTool > m_mmtrigger
Gaudi::Property< bool > m_dosTGC
ServiceHandle< ITHistSvc > m_histSvc
ToolHandle< ITriggerProcessorTool > m_trigProcessor
virtual StatusCode execute(const EventContext &ctx) const override
ToolHandle< IPadEmulatorTool > m_pad_emulator
SG::WriteHandleKey< Muon::NSW_TrigRawDataContainer > m_trigRdoContainer
Gaudi::Property< bool > m_doMMDiamonds
Gaudi::Property< bool > m_doPad
Gaudi::Property< bool > m_doMM
MuonVal::MuonTesterTree m_altree ATLAS_THREAD_SAFE
NSWL1Simulation(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize() override
Gaudi::Property< bool > m_doStrip
virtual StatusCode finalize() override
Gaudi::Property< bool > m_doNtuple
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.