ATLAS Offline Software
Loading...
Searching...
No Matches
RPC_RawDataProviderTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONRPCRAWDATAPROVIDERTOOL_H
6#define MUONRPCRAWDATAPROVIDERTOOL_H
7
11#include "GaudiKernel/ServiceHandle.h"
12#include "GaudiKernel/ToolHandle.h"
21
22namespace Muon {
23
24 class RPC_RawDataProviderTool : public extends<AthAlgTool, IMuonRawDataProviderTool> {
25 public:
26 using base_class::base_class;
27
28 virtual ~RPC_RawDataProviderTool() = default;
29
30 virtual StatusCode initialize() override;
31
33
34 virtual StatusCode convert(const EventContext&) const override;
35 virtual StatusCode convert(const std::vector<IdentifierHash>&, const EventContext&) const override;
36 virtual StatusCode convert(const std::vector<uint32_t>&, const EventContext&) const override;
37
38 private:
39 StatusCode convertIntoContainer(const ROBFragmentList& vecRobs,
40 const std::vector<IdentifierHash>& collections,
41 const EventContext& ctx) const;
42 // This function does all the actual work of decoding the data
43 StatusCode convertIntoContainers(const ROBFragmentList& vecRobs,
44 const std::vector<IdentifierHash>& collections, RpcPadContainer* pad,
45 RpcSectorLogicContainer* logic, const bool& decodeSL) const;
46
47 std::vector<IdentifierHash> to_be_converted(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment& robFrag,
48 const std::vector<IdentifierHash>& coll) const;
49
50 private:
51 SG::ReadCondHandleKey<RpcCablingCondData> m_readKey{this, "ReadKey", "RpcCablingCondData", "Key of RpcCablingCondData"};
52
53 // Rob Data Provider handle
54 ServiceHandle<IROBDataProviderSvc> m_robDataProvider{this, "ROBDataProviderSvc", "ROBDataProviderSvc"};
55
56 // ROD decoding tool
57 ToolHandle<IRpcROD_Decoder> m_decoder{this, "Decoder", "Muon::RpcROD_Decoder/RpcROD_Decoder"};
58
59 // WriteHandleKey for RPC PAD container
60 SG::WriteHandleKey<RpcPadContainer> m_containerKey{this, "RdoLocation", "RPCPAD", "Name of the RPCPAD produced by RawDataProvider"};
61 // WriteHandleKey for RPC sector logic container
62 SG::WriteHandleKey<RpcSectorLogicContainer> m_sec{this, "RPCSec", "RPC_SECTORLOGIC",
63 "Name of the RPC_SECTORLOGIC produced by RawDataProvider"};
64
67 "", "Optional external cache for the RPC container"};
68
69 Gaudi::Property<bool> m_WriteOutRpcSectorLogic{this, "WriteOutRpcSectorLogic", true, "Turn on/off RpcSectorLogic writing"};
70
71 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
72 };
73
74} // namespace Muon
75
76#endif
SG::WriteHandleKey< RpcPadContainer > m_containerKey
SG::WriteHandleKey< RpcSectorLogicContainer > m_sec
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
virtual StatusCode convert(const EventContext &) const override
Decoding method - IMuonRawDataProviderTool interface (EventContext-based)
StatusCode convertIntoContainers(const ROBFragmentList &vecRobs, const std::vector< IdentifierHash > &collections, RpcPadContainer *pad, RpcSectorLogicContainer *logic, const bool &decodeSL) const
ToolHandle< IRpcROD_Decoder > m_decoder
SG::UpdateHandleKey< RpcPad_Cache > m_rdoContainerCacheKey
RPC container cache key.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
virtual ~RPC_RawDataProviderTool()=default
virtual StatusCode initialize() override
std::vector< IdentifierHash > to_be_converted(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment &robFrag, const std::vector< IdentifierHash > &coll) const
StatusCode convertIntoContainer(const ROBFragmentList &vecRobs, const std::vector< IdentifierHash > &collections, const EventContext &ctx) const
Gaudi::Property< bool > m_WriteOutRpcSectorLogic
Turn on/off RpcSectorConfig writing.
SG::ReadCondHandleKey< RpcCablingCondData > m_readKey
Use IdentifiableContainer with RpcPad.
Property holding a SG store/key/clid from which an UpdateHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
eformat::ROBFragment< PointerType > ROBFragment
Definition RawEvent.h:27