11 static const std::string preFixStr{
"L0Mu_"};
30 static const SG::AuxElement::Accessor<uint8_t>
acc(preFixStr +
"overflow");
35 static const SG::AuxElement::Accessor<uint8_t>
acc(preFixStr +
"overflow");
41 static const SG::AuxElement::Accessor<std::vector<uint32_t>>
acc{preFixStr +
"segmentWord"};
73 static const SG::AuxElement::Accessor<std::vector<uint32_t>> accWord{preFixStr +
"segmentWord"};
82 accWord(*this).push_back(packedWord);
87 static const SG::AuxElement::Accessor<std::vector<uint32_t>> accWord{preFixStr +
"segmentWord"};
88 accWord(*this).clear();
93 os <<
"\n*BEGIN* xAOD::NSWCandData" << std::endl;
94 os <<
" BCID: " << obj.bcid() << std::endl;
95 os <<
" Board ID: " <<
static_cast<int>(obj.boardId()) << std::endl;
96 os <<
" Fiber ID: " <<
static_cast<int>(obj.fiberId()) << std::endl;
97 os <<
" Number of Segments: " <<
static_cast<int>(obj.nSegments()) << std::endl;
98 os <<
" Overflow Flag: " << (obj.overflow() ?
"TRUE" :
"FALSE") << std::endl;
100 const auto& words = obj.segmentWords();
101 os <<
" Stored Packed Segment Count: " << words.size() << std::endl;
103 for (
size_t i = 0; i < words.size(); ++i) {
104 os <<
" -- Segment #" << i << std::endl;
105 os <<
" Eta Index: " << obj.segEtaIndex(i) <<
" (eta ~ " << obj.segEta(i) <<
")" << std::endl;
106 os <<
" Phi Index: " << obj.segPhiIndex(i) <<
" (phi ~ " << obj.segPhi(i) <<
")" << std::endl;
107 os <<
" Delta Theta Index: " <<
static_cast<int>(obj.segDeltaThetaIndex(i)) << std::endl;
108 os <<
" Quality Flag: " <<
static_cast<int>(obj.segQuality(i)) << std::endl;
110 os <<
"*END* xAOD::NSWCandData" << std::endl;
#define IMPLEMENT_SETTER_GETTER(DTYPE, GETTER, SETTER)
Data class describing the L0 muon candidates from NSW-TP to TGC SL.
bool overflow() const
Check if the segment candidate limit has been exceeded.
float segEta(size_t i) const
Retrieve the decoded physical eta coordinate for a specific segment.
uint16_t segEtaIndex(size_t i) const
Element-by-Element Index.
void clearSegments()
Clear all recorded segment vectors.
void addSegment(uint16_t etaIndex, uint16_t phiIndex, uint8_t deltaThetaIndex, uint8_t quality)
Pack and append a single segment.
uint16_t segPhiIndex(size_t i) const
Retrieve the phi index for a specific segment.
const std::vector< uint32_t > & segmentWords() const
Segments.
float segPhi(size_t i) const
Retrieve the decoded physical phi coordinate for a specific segment.
uint8_t segDeltaThetaIndex(size_t i) const
Retrieve the delta theta index for a specific segment.
void setOverflow(bool ovf)
Set the segment total capacity overflow state flag.
uint8_t segQuality(size_t i) const
Retrieve the quality flag for a specific segment.
constexpr uint32_t RUN4_NSWTP_DTH_MASK
constexpr uint32_t RUN4_NSWTP_DTH_SHIFT
Angular deviation of the locally defined segment from the infinite momentum track.
constexpr float ETA_MAX_RAW
constexpr uint32_t RUN4_NSWTP_PHI_SHIFT
Segment position in phi.
constexpr uint32_t RUN4_NSWTP_ETA_SHIFT
Segment position in eta.
constexpr float PHI_MAX_RAW
constexpr uint32_t RUN4_NSWTP_QUAL_SHIFT
Valid flag and detector information.
constexpr uint32_t RUN4_NSWTP_ETA_MASK
constexpr uint32_t RUN4_NSWTP_QUAL_MASK
constexpr uint32_t RUN4_NSWTP_PHI_MASK
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
setBGCode setTAP setLVL2ErrorBits bool
setEventNumber setTimeStamp bcid
std::ostream & operator<<(std::ostream &out, const std::pair< FIRST, SECOND > &pair)
Helper print operator.
static const SG::AuxElement::Accessor< ElementLink< IParticleContainer > > acc("originalObjectLink")
Object used for setting/getting the dynamic decoration in question.