ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCnv
MuonSTGC_CnvTools
src
PadTrig_ROD_Decoder.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
PadTrig_ROD_Decoder.h
"
6
7
#include <
byteswap.h
>
8
#include <vector>
9
10
#include "Identifier/Identifier.h"
11
#include "eformat/Issue.h"
12
#include "eformat/SourceIdentifier.h"
13
#include "
MuonNSWCommonDecode/NSWTriggerCommonDecoder.h
"
14
#include "
MuonNSWCommonDecode/NSWPadTriggerL1a.h
"
15
16
namespace
Muon
{
17
18
//=====================================================================
19
PadTrig_ROD_Decoder::PadTrig_ROD_Decoder
(
const
std::string&
type
,
const
std::string& name,
const
IInterface* parent)
20
:
AthAlgTool
(
type
, name, parent)
21
{
22
declareInterface<IPadTrig_ROD_Decoder>(
this
);
23
}
24
25
26
//=====================================================================
27
StatusCode
PadTrig_ROD_Decoder::fillCollection
(
const
OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment
& fragment,
NSW_PadTriggerDataContainer
& rdo)
const
28
{
29
try
{
30
fragment.check();
31
}
catch
(
const
eformat::Issue& ex) {
32
ATH_MSG_ERROR
(ex.what());
33
return
StatusCode::FAILURE;
34
}
35
36
const
std::string trigger{
"PadL1A"
};
37
const
Muon::nsw::NSWTriggerCommonDecoder
decoder{fragment, trigger};
38
for
(
const
auto
& baselink: decoder.get_elinks()) {
39
const
auto
link =
static_cast<
const
Muon::nsw::NSWPadTriggerL1a
*
>
(baselink.get());
40
auto
*
const
collection =
new
NSW_PadTriggerData
{
41
fragment.rob_source_id(),
42
link->getFlags(),
43
link->getEc(),
44
link->getFragid(),
45
link->getSecid(),
46
link->getSpare(),
47
link->getOrbit(),
48
link->getBcid(),
49
link->getL1id(),
50
link->getOrbitid(),
51
link->getOrbit1(),
52
link->getStatus(),
53
link->getNumberOfHits(),
54
link->getNumberOfPfebs(),
55
link->getNumberOfTriggers(),
56
link->getNumberOfBcids(),
57
link->getHitRelBcids(),
58
link->getHitPfebs(),
59
link->getHitTdsChannels(),
60
link->getHitVmmChannels(),
61
link->getHitVmms(),
62
link->getHitPadChannels(),
63
link->getPfebAddresses(),
64
link->getPfebNChannels(),
65
link->getPfebDisconnecteds(),
66
link->getTriggerBandIds(),
67
link->getTriggerPhiIds(),
68
link->getTriggerRelBcids(),
69
link->getBcidRels(),
70
link->getBcidStatuses(),
71
link->getBcidMultZeros(),
72
link->getBcidMultiplicities()
73
};
74
ATH_MSG_DEBUG
(
"Pad trigger fillCollection "
<< std::hex << collection->getSourceid() << std::dec <<
" "
<< rdo.
numberOfCollections
());
75
ATH_CHECK
(rdo.
addCollection
(collection, rdo.
numberOfCollections
()));
76
}
77
78
return
StatusCode::SUCCESS;
79
}
80
81
}
// namespace Muon
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
NSWPadTriggerL1a.h
NSWTriggerCommonDecoder.h
PadTrig_ROD_Decoder.h
byteswap.h
C++23-compatible byteswap().
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
IdentifiableContainerMT::numberOfCollections
virtual size_t numberOfCollections() const override final
return number of collections
Definition
IdentifiableContainerMT.h:216
IdentifiableContainerMT::addCollection
virtual StatusCode addCollection(const T *coll, IdentifierHash hashId) override final
insert collection into container with id hash if IDC should not take ownership of collection,...
Definition
IdentifiableContainerMT.h:306
Muon::NSW_PadTriggerDataContainer
Definition
NSW_PadTriggerDataContainer.h:15
Muon::NSW_PadTriggerData
Definition
NSW_PadTriggerData.h:19
Muon::PadTrig_ROD_Decoder::fillCollection
StatusCode fillCollection(const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment &fragment, NSW_PadTriggerDataContainer &rdo) const override
Definition
PadTrig_ROD_Decoder.cxx:27
Muon::PadTrig_ROD_Decoder::PadTrig_ROD_Decoder
PadTrig_ROD_Decoder(const std::string &type, const std::string &name, const IInterface *parent)
Definition
PadTrig_ROD_Decoder.cxx:19
Muon::nsw::NSWPadTriggerL1a
Definition
NSWPadTriggerL1a.h:143
Muon::nsw::NSWTriggerCommonDecoder
Definition
NSWTriggerCommonDecoder.h:19
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment
eformat::ROBFragment< PointerType > ROBFragment
Definition
RawEvent.h:27
type
Generated on
for ATLAS Offline Software by
1.17.0