ATLAS Offline Software
Loading...
Searching...
No Matches
TgcL0SectorLogicWordEncoder.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6
8
9namespace {
10
11namespace bits = L0Muon::MuCTPIBits;
12
13constexpr std::uint32_t encodeField(const std::uint32_t value,
14 const std::uint32_t shift,
15 const std::uint32_t mask) {
16 return (value & mask) << shift;
17}
18
19} // namespace
20
21namespace L0Muon {
22
24 const xAOD::TGCCandData& candidate) {
26 words.candWord =
27 encodeField(candidate.pt(), bits::RUN4_SL2MUCTPI_PT_VAL_SHIFT,
28 bits::RUN4_SL2MUCTPI_PT_VAL_MASK) |
29 encodeField(candidate.candCharge(), bits::RUN4_SL2MUCTPI_CHARGE_SHIFT,
30 bits::RUN4_SL2MUCTPI_CHARGE_MASK) |
31 encodeField(candidate.phi(), bits::RUN4_SL2MUCTPI_PHI_SHIFT,
32 bits::RUN4_SL2MUCTPI_PHI_MASK) |
33 encodeField(candidate.eta(), bits::RUN4_SL2MUCTPI_ETA_SHIFT,
34 bits::RUN4_SL2MUCTPI_ETA_MASK);
35
36 words.candExtraWord =
37 encodeField(candidate.threshold(),
38 bits::RUN4_SL2MUCTPI_PTTHRESHOLD_SHIFT,
39 bits::RUN4_SL2MUCTPI_PTTHRESHOLD_MASK) |
40 encodeField(candidate.tcId(), bits::RUN4_SL2MUCTPI_TCID_SHIFT,
41 bits::RUN4_SL2MUCTPI_TCID_MASK) |
42 encodeField(candidate.coinType(), bits::RUN4_SL2MUCTPI_COINTYPE_SHIFT,
43 bits::RUN4_SL2MUCTPI_COINTYPE_MASK);
44 return words;
45}
46
47} // namespace L0Muon
static TgcL0SectorLogicWords encode(const xAOD::TGCCandData &candidate)
Encode one TGC candidate without MDT or overlap information.
uint16_t eta() const
Retrieve the eta.
uint8_t coinType() const
Retrieve the coincidence type.
uint8_t candCharge() const
Retrieve the candidate charge.
uint8_t threshold() const
Retrieve the threshold.
uint8_t pt() const
Retrieve the encoded candidate pT.
uint16_t phi() const
Retrieve the phi.
uint8_t tcId() const
Retrieve the trigger-candidate identifier.
virtual void shift(size_t pos, ptrdiff_t offs) override
Shift the elements of the container.
MuCTPI candidate words produced from one TGC candidate.