ATLAS Offline Software
Loading...
Searching...
No Matches
GlobalSim::JET1Jet Class Reference

#include <JET1Jet.h>

Inheritance diagram for GlobalSim::JET1Jet:

Public Types

using bitset_type

Public Member Functions

 DECLARE_FIELDS (ptt, eta, phi, flag_et_overflow, flag_error, flag_next_tob_same_et, flag_truncate, ring_four_tobs, ring_three_tobs, ring_two_tobs, ring_one_tobs, total_tobs, ring_four_ptt, ring_three_ptt, ring_two_ptt, ring_one_ptt, ring_zero_ptt)

Static Public Member Functions

static constexpr decltype(auto) field ()
static constexpr std::size_t numFields ()
static constexpr void forEachField (auto &&func)
static constexpr std::string json ()
static bitset_type packFields (const Fields &fields, const SG::AuxElement &obj)

Static Public Attributes

static const BitField< 0, 12, float > ptt {"ptt","et", "Transverse energy", et_encoder, et_decoder}
static const BitField< 13, 22, float > eta {"eta","eta", "Eta coordinate"}
static const BitField< 23, 31, float > phi {"phi","phi", "Phi coordinate"}
static const BitField< 32, 32, uint8_t, bool > flag_et_overflow {"flag_et_overflow","flags[0]", "flag description placeholder"}
static const BitField< 33, 33, uint8_t, bool > flag_error {"flag_error","flags[1]", "flag description placeholder"}
static const BitField< 34, 34, uint8_t, bool > flag_next_tob_same_et {"flag_next_tob_same_et","flags[2]", "flag description placeholder"}
static const BitField< 35, 35, uint8_t, bool > flag_truncate {"flag_truncate","flags[3]", "flag description"}
static const BitField< 36, 38, uint8_t > ring_four_tobs {"ring_four_tobs","ring_four_tobs", "Number of TOBs in the fourth ring"}
static const BitField< 39, 43, uint8_t > ring_three_tobs {"ring_three_tobs","ring_three_tobs", "Number of TOBs in the third ring"}
static const BitField< 44, 48, uint8_t > ring_two_tobs {"ring_two_tobs","ring_two_tobs", "Number of TOBs in the second ring"}
static const BitField< 49, 52, uint8_t > ring_one_tobs {"ring_one_tobs","ring_one_tobs", "Number of TOBs in the first ring"}
static const BitField< 53, 58, uint8_t > total_tobs {"total_tobs","total_tobs", "Number of TOBs in the jet"}
static const BitField< 59, 70, uint16_t > ring_four_ptt {"ring_four_ptt","ring_four_ptt", "Energy in the fourth ring"}
static const BitField< 71, 85, uint16_t > ring_three_ptt {"ring_three_ptt","ring_three_ptt", "Energy in the third ring"}
static const BitField< 86, 100, uint16_t > ring_two_ptt {"ring_two_ptt","ring_two_ptt", "Energy in the second ring"}
static const BitField< 101, 115, uint16_t > ring_one_ptt {"ring_one_ptt","ring_one_ptt", "Energy in the first ring"}
static const BitField< 116, 127, uint16_t > ring_zero_ptt {"ring_zero_ptt","ring_zero_ptt", "Energy in the zeroth ring"}
static constexpr std::size_t width

Static Protected Member Functions

static constexpr auto makeFields (Fields &... fields)
static consteval bool validateFields ()

Static Private Member Functions

static std::bitset< 13 > et_encoder (float value)
static float et_decoder (std::bitset< 13 > bits)
static consteval bool validateFieldList ()
static consteval bool validateField ()
static consteval bool checkOverlap ()

Static Private Attributes

static constexpr float s_ET_UNIT = 0.25f
 BitSpec for the output jets of the JET1 algorithm.

Detailed Description

Definition at line 13 of file JET1Jet.h.

Member Typedef Documentation

◆ bitset_type

using GlobalSim::BitSpec< JET1Jet, N >::bitset_type
inherited

Definition at line 399 of file BitSpec.h.

Member Function Documentation

◆ checkOverlap()

consteval bool GlobalSim::BitSpec< JET1Jet, N >::checkOverlap ( )
inlinestaticconstevalprivateinherited

Definition at line 516 of file BitSpec.h.

516 {
517 if (A::lo <= B::hi && B::lo <= A::hi) {
518 return true;
519 }
520 return false;
521 }

◆ DECLARE_FIELDS()

◆ et_decoder()

float GlobalSim::JET1Jet::et_decoder ( std::bitset< 13 > bits)
inlinestaticprivate

Definition at line 21 of file JET1Jet.h.

21 {
22 return (bits.to_ullong() * s_ET_UNIT);
23 }
static constexpr float s_ET_UNIT
BitSpec for the output jets of the JET1 algorithm.
Definition JET1Jet.h:17

◆ et_encoder()

std::bitset< 13 > GlobalSim::JET1Jet::et_encoder ( float value)
inlinestaticprivate

Definition at line 18 of file JET1Jet.h.

18 {
19 return static_cast<unsigned long long>(value / s_ET_UNIT);
20 }

◆ field()

constexpr decltype(auto) GlobalSim::BitSpec< JET1Jet, N >::field ( )
inlinestaticconstexprinherited

Definition at line 404 of file BitSpec.h.

404 {
406 }

◆ forEachField()

constexpr void GlobalSim::BitSpec< JET1Jet, N >::forEachField ( auto && func)
inlinestaticconstexprinherited

Definition at line 416 of file BitSpec.h.

416 {
417 std::apply([&](const auto *... field) { (func(*field), ...); }, Derived::fields);
418 }

◆ json()

constexpr std::string GlobalSim::BitSpec< JET1Jet, N >::json ( )
inlinestaticconstexprinherited

Definition at line 421 of file BitSpec.h.

421 {
423 j["data_width"] = width;
424 j["fields"] = nlohmann::json::array();
425 forEachField([&](const auto &field) {
427 f["name"] = field.name();
428 f["description"] = field.description();
429 f["start"] = field.lo;
430 f["width"] = field.width;
431 j["fields"].push_back(f);
432 });
433 return j.dump(4);
434 }
static constexpr void forEachField(auto &&func)
Definition BitSpec.h:416
static constexpr std::size_t width
Definition BitSpec.h:398

◆ makeFields()

constexpr auto GlobalSim::BitSpec< JET1Jet, N >::makeFields ( Fields &... fields)
inlinestaticconstexprprotectedinherited

Definition at line 440 of file BitSpec.h.

440 {
441 return std::tuple{&fields...};
442 }

◆ numFields()

constexpr std::size_t GlobalSim::BitSpec< JET1Jet, N >::numFields ( )
inlinestaticconstexprinherited

Definition at line 411 of file BitSpec.h.

411 {
413 }

◆ packFields()

bitset_type GlobalSim::BitSpec< JET1Jet, N >::packFields ( const Fields & fields,
const SG::AuxElement & obj )
inlinestaticinherited

Definition at line 450 of file BitSpec.h.

450 {
452
454 [&](const auto *... field) {
455 (field->pack(result, obj), ...);
456 },
457 fields);
458
459 return result;
460 }

◆ validateField()

consteval bool GlobalSim::BitSpec< JET1Jet, N >::validateField ( )
inlinestaticconstevalprivateinherited

Definition at line 507 of file BitSpec.h.

507 {
508 return Field::lo <= Field::hi && Field::hi < N;
509 }

◆ validateFieldList()

consteval bool GlobalSim::BitSpec< JET1Jet, N >::validateFieldList ( )
inlinestaticconstevalprivateinherited

Definition at line 491 of file BitSpec.h.

492 {
493 if constexpr (sizeof...(Rest) == 0)
494 {
495 return validateField<First>();
496 }
497 else
498 {
499 return validateField<First>() &&
500 (validateField<Rest>() && ...) &&
501 ((!checkOverlap<First, Rest>()) && ...) &&
503 }
504 }
static consteval bool validateField()
Definition BitSpec.h:507
static consteval bool checkOverlap()
Definition BitSpec.h:516

◆ validateFields()

consteval bool GlobalSim::BitSpec< JET1Jet, N >::validateFields ( )
inlinestaticconstevalprotectedinherited

Definition at line 474 of file BitSpec.h.

475 {
476 return std::apply(
477 []<typename... FieldPtrs>(FieldPtrs... field) {
478 return validateFieldList<
479 std::remove_cvref_t<decltype(*field)>...
480 >();
481 },
483 }

Member Data Documentation

◆ eta

const BitField<13, 22, float> GlobalSim::JET1Jet::eta {"eta","eta", "Eta coordinate"}
inlinestatic

Definition at line 27 of file JET1Jet.h.

27{"eta","eta", "Eta coordinate"};

◆ flag_error

const BitField<33, 33, uint8_t, bool> GlobalSim::JET1Jet::flag_error {"flag_error","flags[1]", "flag description placeholder"}
inlinestatic

Definition at line 30 of file JET1Jet.h.

30{"flag_error","flags[1]", "flag description placeholder"};

◆ flag_et_overflow

const BitField<32, 32, uint8_t, bool> GlobalSim::JET1Jet::flag_et_overflow {"flag_et_overflow","flags[0]", "flag description placeholder"}
inlinestatic

Definition at line 29 of file JET1Jet.h.

29{"flag_et_overflow","flags[0]", "flag description placeholder"};

◆ flag_next_tob_same_et

const BitField<34, 34, uint8_t, bool> GlobalSim::JET1Jet::flag_next_tob_same_et {"flag_next_tob_same_et","flags[2]", "flag description placeholder"}
inlinestatic

Definition at line 31 of file JET1Jet.h.

31{"flag_next_tob_same_et","flags[2]", "flag description placeholder"};

◆ flag_truncate

const BitField<35, 35, uint8_t, bool> GlobalSim::JET1Jet::flag_truncate {"flag_truncate","flags[3]", "flag description"}
inlinestatic

Definition at line 32 of file JET1Jet.h.

32{"flag_truncate","flags[3]", "flag description"};

◆ phi

const BitField<23, 31, float> GlobalSim::JET1Jet::phi {"phi","phi", "Phi coordinate"}
inlinestatic

Definition at line 28 of file JET1Jet.h.

28{"phi","phi", "Phi coordinate"};

◆ ptt

const BitField<0, 12, float> GlobalSim::JET1Jet::ptt {"ptt","et", "Transverse energy", et_encoder, et_decoder}
inlinestatic

Definition at line 26 of file JET1Jet.h.

26{"ptt","et", "Transverse energy", et_encoder, et_decoder};
static std::bitset< 13 > et_encoder(float value)
Definition JET1Jet.h:18
static float et_decoder(std::bitset< 13 > bits)
Definition JET1Jet.h:21

◆ ring_four_ptt

const BitField<59, 70, uint16_t> GlobalSim::JET1Jet::ring_four_ptt {"ring_four_ptt","ring_four_ptt", "Energy in the fourth ring"}
inlinestatic

Definition at line 38 of file JET1Jet.h.

38{"ring_four_ptt","ring_four_ptt", "Energy in the fourth ring"};

◆ ring_four_tobs

const BitField<36, 38, uint8_t> GlobalSim::JET1Jet::ring_four_tobs {"ring_four_tobs","ring_four_tobs", "Number of TOBs in the fourth ring"}
inlinestatic

Definition at line 33 of file JET1Jet.h.

33{"ring_four_tobs","ring_four_tobs", "Number of TOBs in the fourth ring"};

◆ ring_one_ptt

const BitField<101, 115, uint16_t> GlobalSim::JET1Jet::ring_one_ptt {"ring_one_ptt","ring_one_ptt", "Energy in the first ring"}
inlinestatic

Definition at line 41 of file JET1Jet.h.

41{"ring_one_ptt","ring_one_ptt", "Energy in the first ring"};

◆ ring_one_tobs

const BitField<49, 52, uint8_t> GlobalSim::JET1Jet::ring_one_tobs {"ring_one_tobs","ring_one_tobs", "Number of TOBs in the first ring"}
inlinestatic

Definition at line 36 of file JET1Jet.h.

36{"ring_one_tobs","ring_one_tobs", "Number of TOBs in the first ring"};

◆ ring_three_ptt

const BitField<71, 85, uint16_t> GlobalSim::JET1Jet::ring_three_ptt {"ring_three_ptt","ring_three_ptt", "Energy in the third ring"}
inlinestatic

Definition at line 39 of file JET1Jet.h.

39{"ring_three_ptt","ring_three_ptt", "Energy in the third ring"};

◆ ring_three_tobs

const BitField<39, 43, uint8_t> GlobalSim::JET1Jet::ring_three_tobs {"ring_three_tobs","ring_three_tobs", "Number of TOBs in the third ring"}
inlinestatic

Definition at line 34 of file JET1Jet.h.

34{"ring_three_tobs","ring_three_tobs", "Number of TOBs in the third ring"};

◆ ring_two_ptt

const BitField<86, 100, uint16_t> GlobalSim::JET1Jet::ring_two_ptt {"ring_two_ptt","ring_two_ptt", "Energy in the second ring"}
inlinestatic

Definition at line 40 of file JET1Jet.h.

40{"ring_two_ptt","ring_two_ptt", "Energy in the second ring"};

◆ ring_two_tobs

const BitField<44, 48, uint8_t> GlobalSim::JET1Jet::ring_two_tobs {"ring_two_tobs","ring_two_tobs", "Number of TOBs in the second ring"}
inlinestatic

Definition at line 35 of file JET1Jet.h.

35{"ring_two_tobs","ring_two_tobs", "Number of TOBs in the second ring"};

◆ ring_zero_ptt

const BitField<116, 127, uint16_t> GlobalSim::JET1Jet::ring_zero_ptt {"ring_zero_ptt","ring_zero_ptt", "Energy in the zeroth ring"}
inlinestatic

Definition at line 42 of file JET1Jet.h.

42{"ring_zero_ptt","ring_zero_ptt", "Energy in the zeroth ring"};

◆ s_ET_UNIT

float GlobalSim::JET1Jet::s_ET_UNIT = 0.25f
staticconstexprprivate

BitSpec for the output jets of the JET1 algorithm.

Definition at line 17 of file JET1Jet.h.

◆ total_tobs

const BitField<53, 58, uint8_t> GlobalSim::JET1Jet::total_tobs {"total_tobs","total_tobs", "Number of TOBs in the jet"}
inlinestatic

Definition at line 37 of file JET1Jet.h.

37{"total_tobs","total_tobs", "Number of TOBs in the jet"};

◆ width

std::size_t GlobalSim::BitSpec< JET1Jet, N >::width
staticconstexprinherited

Definition at line 398 of file BitSpec.h.


The documentation for this class was generated from the following file: