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

#include <GenericTOB.h>

Inheritance diagram for GlobalSim::GenericTOB:
Collaboration diagram for GlobalSim::GenericTOB:

Public Types

using bitset_type
using BaseSpec

Public Member Functions

 DECLARE_FIELDS (ptt, eta, phi)

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 {{.name="ptt", .auxvar="et", .description="Transverse energy", .scale=0.1}}
 BitSpec "base class" for inputs to hypothesis algorithm.
static const SignedBitField< 13, 22, float > eta {{.name="eta", .auxvar="eta", .description="Eta coordinate", .scale=0.0125}}
static const BitField< 23, 31, float > phi {"phi", "phi", "Phi coordinate", nullptr, nullptr, M_PI / 256}
static constexpr std::size_t width

Static Protected Member Functions

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

Static Private Member Functions

static consteval bool validateFieldList ()
static consteval bool validateField ()
static consteval bool checkOverlap ()

Detailed Description

Member Typedef Documentation

◆ BaseSpec

using GlobalSim::BitSpec< GenericTOB, N, NoBase >::BaseSpec
inherited

Definition at line 504 of file BitSpec.h.

◆ bitset_type

using GlobalSim::BitSpec< GenericTOB, N, NoBase >::bitset_type
inherited

Definition at line 502 of file BitSpec.h.

Member Function Documentation

◆ allFields()

constexpr auto GlobalSim::BitSpec< GenericTOB, N, NoBase >::allFields ( )
inlinestaticconstexprprotectedinherited

Definition at line 549 of file BitSpec.h.

550 {
551 return std::tuple_cat(
554 );
555 }

◆ checkOverlap()

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

Definition at line 629 of file BitSpec.h.

629 {
630 if (A::lo <= B::hi && B::lo <= A::hi) {
631 return true;
632 }
633 return false;
634 }

◆ DECLARE_FIELDS()

GlobalSim::GenericTOB::DECLARE_FIELDS ( ptt ,
eta ,
phi  )

◆ field()

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

Definition at line 508 of file BitSpec.h.

508 {
510 }

◆ forEachField()

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

Definition at line 520 of file BitSpec.h.

520 {
521 std::apply([&](const auto *... field) { (func(*field), ...); }, Derived::allFields());
522 }

◆ json()

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

Definition at line 525 of file BitSpec.h.

525 {
527 j["data_width"] = width;
528 j["fields"] = nlohmann::json::array();
529 forEachField([&](const auto &field) {
531 f["name"] = field.name();
532 f["description"] = field.description();
533 f["start"] = field.lo;
534 f["width"] = field.width;
535 j["fields"].push_back(f);
536 });
537 return j.dump(4);
538 }
static constexpr std::size_t width
Definition BitSpec.h:501
static constexpr void forEachField(auto &&func)
Definition BitSpec.h:520

◆ makeFields()

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

Definition at line 544 of file BitSpec.h.

544 {
545 return std::tuple{&fields...};
546 }

◆ numFields()

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

Definition at line 515 of file BitSpec.h.

515 {
517 }

◆ packFields()

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

Definition at line 563 of file BitSpec.h.

563 {
565
567 [&](const auto *... field) {
568 (field->pack(result, obj), ...);
569 },
570 fields);
571
572 return result;
573 }

◆ validateField()

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

Definition at line 620 of file BitSpec.h.

620 {
621 return Field::lo <= Field::hi && Field::hi < N;
622 }

◆ validateFieldList()

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

Definition at line 604 of file BitSpec.h.

605 {
606 if constexpr (sizeof...(Rest) == 0)
607 {
608 return validateField<First>();
609 }
610 else
611 {
612 return validateField<First>() &&
613 (validateField<Rest>() && ...) &&
614 ((!checkOverlap<First, Rest>()) && ...) &&
616 }
617 }
static consteval bool validateField()
Definition BitSpec.h:620
static consteval bool checkOverlap()
Definition BitSpec.h:629

◆ validateFields()

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

Definition at line 587 of file BitSpec.h.

588 {
589 return std::apply(
590 []<typename... FieldPtrs>(FieldPtrs... field) {
591 return validateFieldList<
592 std::remove_cvref_t<decltype(*field)>...
593 >();
594 },
596 }

Member Data Documentation

◆ eta

const SignedBitField<13, 22, float> GlobalSim::GenericTOB::eta {{.name="eta", .auxvar="eta", .description="Eta coordinate", .scale=0.0125}}
inlinestatic

Definition at line 18 of file Global/GlobalSimulation/GlobalSimulation/GenericTOB.h.

18{{.name="eta", .auxvar="eta", .description="Eta coordinate", .scale=0.0125}};

◆ phi

const BitField<23, 31, float> GlobalSim::GenericTOB::phi {"phi", "phi", "Phi coordinate", nullptr, nullptr, M_PI / 256}
inlinestatic

Definition at line 19 of file Global/GlobalSimulation/GlobalSimulation/GenericTOB.h.

19{"phi", "phi", "Phi coordinate", nullptr, nullptr, M_PI / 256};
#define M_PI

◆ ptt

const BitField<0, 12, float> GlobalSim::GenericTOB::ptt {{.name="ptt", .auxvar="et", .description="Transverse energy", .scale=0.1}}
inlinestatic

BitSpec "base class" for inputs to hypothesis algorithm.

Definition at line 17 of file Global/GlobalSimulation/GlobalSimulation/GenericTOB.h.

17{{.name="ptt", .auxvar="et", .description="Transverse energy", .scale=0.1/*GeV*/}};

◆ width

std::size_t GlobalSim::BitSpec< GenericTOB, N, NoBase >::width
staticconstexprinherited

Definition at line 501 of file BitSpec.h.


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