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-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
PadTrig_ROD_Decoder.h
"
6
7
#include <vector>
8
9
#include "Identifier/Identifier.h"
10
#include "eformat/Issue.h"
11
#include "eformat/SourceIdentifier.h"
12
#include "
MuonNSWCommonDecode/NSWTriggerCommonDecoder.h
"
13
#include "
MuonNSWCommonDecode/NSWPadTriggerL1a.h
"
14
15
namespace
Muon
{
16
17
//=====================================================================
18
PadTrig_ROD_Decoder::PadTrig_ROD_Decoder
(
const
std::string&
type
,
const
std::string& name,
const
IInterface* parent)
19
:
AthAlgTool
(
type
, name, parent)
20
{
21
declareInterface<IPadTrig_ROD_Decoder>(
this
);
22
}
23
24
25
//=====================================================================
26
StatusCode
PadTrig_ROD_Decoder::fillCollection
(
const
OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment
& fragment,
NSW_PadTriggerDataContainer
& rdo)
const
27
{
28
try
{
29
fragment.check();
30
}
catch
(
const
eformat::Issue& ex) {
31
ATH_MSG_ERROR
(ex.what());
32
return
StatusCode::FAILURE;
33
}
34
35
const
std::string trigger{
"PadL1A"
};
36
const
Muon::nsw::NSWTriggerCommonDecoder
decoder{fragment, trigger};
37
for
(
const
auto
& baselink: decoder.get_elinks()) {
38
const
auto
link =
static_cast<
const
Muon::nsw::NSWPadTriggerL1a
*
>
(baselink.get());
39
auto
*
const
collection =
new
NSW_PadTriggerData
{
40
fragment.rob_source_id(),
41
link->getFlags(),
42
link->getEc(),
43
link->getFragid(),
44
link->getSecid(),
45
link->getSpare(),
46
link->getOrbit(),
47
link->getBcid(),
48
link->getL1id(),
49
link->getOrbitid(),
50
link->getOrbit1(),
51
link->getStatus(),
52
link->getNumberOfHits(),
53
link->getNumberOfPfebs(),
54
link->getNumberOfTriggers(),
55
link->getNumberOfBcids(),
56
link->getHitRelBcids(),
57
link->getHitPfebs(),
58
link->getHitTdsChannels(),
59
link->getHitVmmChannels(),
60
link->getHitVmms(),
61
link->getHitPadChannels(),
62
link->getPfebAddresses(),
63
link->getPfebNChannels(),
64
link->getPfebDisconnecteds(),
65
link->getTriggerBandIds(),
66
link->getTriggerPhiIds(),
67
link->getTriggerRelBcids(),
68
link->getBcidRels(),
69
link->getBcidStatuses(),
70
link->getBcidMultZeros(),
71
link->getBcidMultiplicities()
72
};
73
ATH_MSG_DEBUG
(
"Pad trigger fillCollection "
<< std::hex << collection->getSourceid() << std::dec <<
" "
<< rdo.
numberOfCollections
());
74
ATH_CHECK
(rdo.
addCollection
(collection, rdo.
numberOfCollections
()));
75
}
76
77
return
StatusCode::SUCCESS;
78
}
79
80
}
// namespace Muon
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x,...)
Definition
AthMsgStreamMacros.h:43
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x,...)
Definition
AthMsgStreamMacros.h:47
NSWPadTriggerL1a.h
NSWTriggerCommonDecoder.h
PadTrig_ROD_Decoder.h
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:215
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:305
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:26
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:18
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