ATLAS Offline Software
Loading...
Searching...
No Matches
JET1Jet.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3 */
4
5#ifndef GLOBALSIM_JET1JET_H
6#define GLOBALSIM_JET1JET_H
7
8#include "BitSpec.h"
9#include "Object.h"
10
11namespace GlobalSim {
12
13 class JET1Jet : public BitSpec<JET1Jet, 128> {
15
16 // Example of a custom encoding/decoding for one of the bitfields
17 static constexpr float s_ET_UNIT = 0.25f; // suppose 0.25 GeV per count
18 static std::bitset<13> et_encoder(float value) {
19 return static_cast<unsigned long long>(value / s_ET_UNIT);
20 }
21 static float et_decoder(std::bitset<13> bits) {
22 return (bits.to_ullong() * s_ET_UNIT);
23 }
24
25 public:
26 static inline const BitField<0, 12, float> ptt{"ptt","et", "Transverse energy", et_encoder, et_decoder};
27 static inline const BitField<13, 22, float> eta{"eta","eta", "Eta coordinate"};
28 static inline const BitField<23, 31, float> phi{"phi","phi", "Phi coordinate"};
29 static inline const BitField<32, 32, uint8_t, bool> flag_et_overflow{"flag_et_overflow","flags[0]", "flag description placeholder"};
30 static inline const BitField<33, 33, uint8_t, bool> flag_error{"flag_error","flags[1]", "flag description placeholder"};
31 static inline const BitField<34, 34, uint8_t, bool> flag_next_tob_same_et{"flag_next_tob_same_et","flags[2]", "flag description placeholder"};
32 static inline const BitField<35, 35, uint8_t, bool> flag_truncate{"flag_truncate","flags[3]", "flag description"};
33 static inline const BitField<36, 38, uint8_t> ring_four_tobs{"ring_four_tobs","ring_four_tobs", "Number of TOBs in the fourth ring"};
34 static inline const BitField<39, 43, uint8_t> ring_three_tobs{"ring_three_tobs","ring_three_tobs", "Number of TOBs in the third ring"};
35 static inline const BitField<44, 48, uint8_t> ring_two_tobs{"ring_two_tobs","ring_two_tobs", "Number of TOBs in the second ring"};
36 static inline const BitField<49, 52, uint8_t> ring_one_tobs{"ring_one_tobs","ring_one_tobs", "Number of TOBs in the first ring"};
37 static inline const BitField<53, 58, uint8_t> total_tobs{"total_tobs","total_tobs", "Number of TOBs in the jet"};
38 static inline const BitField<59, 70, uint16_t> ring_four_ptt{"ring_four_ptt","ring_four_ptt", "Energy in the fourth ring"};
39 static inline const BitField<71, 85, uint16_t> ring_three_ptt{"ring_three_ptt","ring_three_ptt", "Energy in the third ring"};
40 static inline const BitField<86, 100, uint16_t> ring_two_ptt{"ring_two_ptt","ring_two_ptt", "Energy in the second ring"};
41 static inline const BitField<101, 115, uint16_t> ring_one_ptt{"ring_one_ptt","ring_one_ptt", "Energy in the first ring"};
42 static inline const BitField<116, 127, uint16_t> ring_zero_ptt{"ring_zero_ptt","ring_zero_ptt", "Energy in the zeroth ring"};
43
47
48 };
49
50}
51
52#endif
static const BitField< 59, 70, uint16_t > ring_four_ptt
Definition JET1Jet.h:38
static const BitField< 39, 43, uint8_t > ring_three_tobs
Definition JET1Jet.h:34
static const BitField< 116, 127, uint16_t > ring_zero_ptt
Definition JET1Jet.h:42
static const BitField< 0, 12, float > ptt
Definition JET1Jet.h:26
static const BitField< 86, 100, uint16_t > ring_two_ptt
Definition JET1Jet.h:40
static const BitField< 101, 115, uint16_t > ring_one_ptt
Definition JET1Jet.h:41
static const BitField< 23, 31, float > phi
Definition JET1Jet.h:28
static const BitField< 33, 33, uint8_t, bool > flag_error
Definition JET1Jet.h:30
static const BitField< 71, 85, uint16_t > ring_three_ptt
Definition JET1Jet.h:39
static const BitField< 32, 32, uint8_t, bool > flag_et_overflow
Definition JET1Jet.h:29
static const BitField< 49, 52, uint8_t > ring_one_tobs
Definition JET1Jet.h:36
static constexpr float s_ET_UNIT
BitSpec for the output jets of the JET1 algorithm.
Definition JET1Jet.h:17
static const BitField< 34, 34, uint8_t, bool > flag_next_tob_same_et
Definition JET1Jet.h:31
static const BitField< 13, 22, float > eta
Definition JET1Jet.h:27
static const BitField< 53, 58, uint8_t > total_tobs
Definition JET1Jet.h:37
static std::bitset< 13 > et_encoder(float value)
Definition JET1Jet.h:18
static const BitField< 36, 38, uint8_t > ring_four_tobs
Definition JET1Jet.h:33
static const BitField< 44, 48, uint8_t > ring_two_tobs
Definition JET1Jet.h:35
static const BitField< 35, 35, uint8_t, bool > flag_truncate
Definition JET1Jet.h:32
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 float et_decoder(std::bitset< 13 > bits)
Definition JET1Jet.h:21
AlgTool to read in LArStripNeighborhoods, and run the BDT Algorithm.
Definition BitSpec.h:23