ATLAS Offline Software
Loading...
Searching...
No Matches
TileDQstatusAlg.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3*/
4/*
5 */
13
14
15#include "TileDQstatusAlg.h"
22#include <CLHEP/Random/RandomEngine.h>
23#include <CLHEP/Random/RandFlat.h>
24
25
31TileDQstatusAlg::TileDQstatusAlg (const std::string& name, ISvcLocator* svcloc)
32 : AthReentrantAlgorithm (name, svcloc)
33{
34}
35
36
41{
42 ATH_CHECK( m_tileDQstatusTool.retrieve() );
43
44 ATH_CHECK( m_DQstatusKey.initialize() );
45 if (!m_rawChannelContainerKey.key().empty())
46 ATH_CHECK( m_rawChannelContainerKey.initialize() );
47 if (!m_digitsContainerKey.key().empty())
48 ATH_CHECK( m_digitsContainerKey.initialize() );
49 if (!m_beamElemContainerKey.key().empty())
50 ATH_CHECK( m_beamElemContainerKey.initialize() );
51
52 return StatusCode::SUCCESS;
53}
54
55
60StatusCode TileDQstatusAlg::execute (const EventContext& ctx) const
61{
62 auto dqstatus = std::make_unique<TileDQstatus>();
63
64 const TileDigitsContainer* tileDigitsContainer = nullptr;
65 if (!m_digitsContainerKey.key().empty()) {
66 tileDigitsContainer = SG::makeHandle (m_digitsContainerKey, ctx).get();
67 }
68
69 const TileRawChannelContainer* tileRawChannelContainer = nullptr;
70 if (!m_rawChannelContainerKey.key().empty()) {
71 tileRawChannelContainer = SG::makeHandle (m_rawChannelContainerKey, ctx).get();
72 }
73
74 const TileBeamElemContainer* tileBeamElemContainer = nullptr;
75 if (!m_beamElemContainerKey.key().empty()) {
76 tileBeamElemContainer = SG::makeHandle (m_beamElemContainerKey, ctx).get();
77 }
78
79 ATH_CHECK( m_tileDQstatusTool->makeStatus (ctx,
80 tileRawChannelContainer,
81 tileDigitsContainer,
82 tileBeamElemContainer,
83 *dqstatus) );
84
85 ATH_CHECK( SG::makeHandle (m_DQstatusKey, ctx).record (std::move (dqstatus)) );
86 return StatusCode::SUCCESS;
87}
88
#define ATH_CHECK
Evaluate an expression and check for errors.
Handle class for reading from StoreGate.
Handle class for recording to StoreGate.
Produce a TileDQstatus object. This replaces the old TileBeamInfoProvider.
An algorithm that can be simultaneously executed in multiple threads.
virtual StatusCode execute(const EventContext &ctx) const override
Gaudi execute method.
virtual StatusCode initialize() override
Gaudi initialize method.
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
ToolHandle< ITileDQstatusTool > m_tileDQstatusTool
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
SG::ReadHandleKey< TileBeamElemContainer > m_beamElemContainerKey
SG::WriteHandleKey< TileDQstatus > m_DQstatusKey
** Properties
TileDQstatusAlg(const std::string &name, ISvcLocator *svcloc)
Constructor.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())