ATLAS Offline Software
Loading...
Searching...
No Matches
MM_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 MUONMM_CNVTOOLS_MM_RAWDATAPROVIDERTOOL_H
6#define MUONMM_CNVTOOLS_MM_RAWDATAPROVIDERTOOL_H
7
11#include "GaudiKernel/ServiceHandle.h"
12#include "GaudiKernel/ToolHandle.h"
18#include <string>
19#include <vector>
20
21
22namespace Muon {
23
28
29 class MM_RawDataProviderTool : public extends<AthAlgTool, IMuonRawDataProviderTool>
30 {
31 public:
32 using base_class::base_class;
33
35 virtual ~MM_RawDataProviderTool() = default;
36
38 virtual StatusCode initialize() override;
39
40 // IMuonRawDataProviderTool interface - EventContext-based methods
41
42 virtual StatusCode convert(const EventContext&) const override;
43 virtual StatusCode convert(const std::vector<IdentifierHash>&, const EventContext&) const override;
44 virtual StatusCode convert(const std::vector<uint32_t>&, const EventContext&) const override;
45
46 protected:
48 virtual StatusCode convertIntoContainer(const EventContext& ctx, const ROBFragmentList&,
49 const std::vector<IdentifierHash>&, MM_RawDataContainer&) const;
50
51 StatusCode initRdoContainer(const EventContext&, MM_RawDataContainer*&) const;
52
54 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
55
57 ToolHandle<IMM_ROD_Decoder> m_decoder{this, "Decoder", "Muon::MmROD_Decoder/MmROD_Decoder"};
58
60 SG::WriteHandleKey<MM_RawDataContainer> m_rdoContainerKey{ this, "RdoLocation", "MMRDO", "Name of the MMRDO produced by RawDataProvider"};
61
62 unsigned int m_maxhashtoUse{0};
63
64 // Rob Data Provider handle
65 ServiceHandle<IROBDataProviderSvc> m_robDataProvider{this, "ROBDataProviderSvc", "ROBDataProviderSvc"};
66
67
69 Gaudi::Property<bool> m_skipDecoding{this, "SkipDecoding", false, "Skip the decoding but still write the container"};
70
71 std::vector<uint32_t> m_allRobIds;
72
73 // Key for the cache for the MM containers; can be empty
75 "", "Optional external cache for the MM container"};
76 };
77
78} // end of namespace
79
80#endif // MUONMM_CNVTOOLS_MM_RAWDATAPROVIDERTOOL_H
A tool to decode MM ROB fragments into MM RDO (based on the sTGC tool).
std::vector< uint32_t > m_allRobIds
virtual StatusCode initialize() override
Standard AlgTool method.
StatusCode initRdoContainer(const EventContext &, MM_RawDataContainer *&) const
virtual ~MM_RawDataProviderTool()=default
Default destructor.
Gaudi::Property< bool > m_skipDecoding
Flag to skip decoding and write empty container.
SG::UpdateHandleKey< MM_RawDataCollection_Cache > m_rdoContainerCacheKey
ToolHandle< IMM_ROD_Decoder > m_decoder
Decoder for ROB fragment RDO conversion.
virtual StatusCode convert(const EventContext &) const override
virtual StatusCode convertIntoContainer(const EventContext &ctx, const ROBFragmentList &, const std::vector< IdentifierHash > &, MM_RawDataContainer &) const
Method that converts the ROBFragments into the passed container.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
SG::WriteHandleKey< MM_RawDataContainer > m_rdoContainerKey
RDO container key.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
The ID helper.
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.