Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
eTauTob.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "eTauTob.h"
6 
7 namespace GlobalSim {
8 
10 
11  const auto& w_tob = ports_in.m_I_eTauTobs;
12 
13  std::size_t i;
14  std::size_t j;
15 
16  for (i = 0; i != AlgoConstants::eFexEtBitWidth; ++i) {
17  m_Et[i] = (*w_tob)[i];
18  }
19 
20  for (i = 16, j=0;
22  ++i, ++j) {
23  m_Phi[j] = (*w_tob)[i];
24  }
25 
26  for (i = 32, j=0;
28  ++i, ++j) {
29  m_Eta[j] = (*w_tob)[i];
30  }
31 
32 
33  for (i = 48, j=0;
35  ++i, ++j)
36  {
37  m_RCore[j] = (*w_tob)[i];
38  }
39 
40 
43  ++i, ++j)
44  {
45  m_RHad[j] = (*w_tob)[i];
46  }
47 
48 
49  m_Overflow[0] = (*w_tob)[63];
50 
51  }
52 
53 
54  std::bitset<32> eTauTob::as_bits() const {
55  auto result = std::bitset<32>();
56  std::size_t r_ptr{0};
57 
58  for (std::size_t s_ptr=0; s_ptr < m_Et.size(); ++s_ptr, ++r_ptr) {
59  if(m_Et.test(s_ptr)) {result.set(r_ptr);}
60  }
61 
62  for (std::size_t s_ptr=0; s_ptr < m_RCore.size(); ++s_ptr, ++r_ptr) {
63  if(m_RCore.test(s_ptr)) {result.set(r_ptr);}
64  }
65 
66  for (std::size_t s_ptr=0; s_ptr < m_RHad.size(); ++s_ptr, ++r_ptr) {
67  if(m_RHad.test(s_ptr)) {result.set(r_ptr);}
68  }
69 
70  for (std::size_t s_ptr=0; s_ptr < m_Eta.size(); ++s_ptr, ++r_ptr) {
71  if(m_Eta.test(s_ptr)) {result.set(r_ptr);}
72  }
73 
74  for (std::size_t s_ptr=0; s_ptr < m_Phi.size(); ++s_ptr, ++r_ptr) {
75  if(m_Phi.test(s_ptr)) {result.set(r_ptr);}
76  }
77 
78  if(m_Overflow.test(0)) {result.set(r_ptr++);}
79 
80 
81 
82  return result;
83  }
84 
85  using eTauTobPtr = std::shared_ptr<eTauTob>;
86 
87 
88  std::ostream& operator << (std::ostream& os, const GlobalSim::eTauTob& tob) {
89 
90  os << "GlobalSim::eTauTob\n"
91  << "Et: " << std::hex << tob.Et_bits().to_ulong() << '\n'
92  << "RCore: " << std::hex << tob.RCore_bits().to_ulong() << '\n'
93  << "RHad: " << std::hex<< tob.RHad_bits().to_ulong() << '\n'
94  << "Eta: " << std::hex<< tob.Eta_bits().to_ulong() << '\n'
95  << "Phi: " << std::hex<< tob.Phi_bits().to_ulong() << '\n'
96  << tob.as_bits() << ' ' << std::hex << tob.as_bits().to_ulong()
97  << '\n';
98  return os;
99  }
100 }
101 
102 
103 
get_generator_info.result
result
Definition: get_generator_info.py:21
GlobalSim::AlgoConstants::eFexEtBitWidth
constexpr static std::size_t eFexEtBitWidth
Definition: AlgoConstants.h:15
GlobalSim::eTauTob::RHad_bits
const std::bitset< AlgoConstants::eFexDiscriminantBitWidth > & RHad_bits() const
Definition: eTauTob.h:61
GlobalSim::AlgoConstants::eFexDiscriminantBitWidth
constexpr static std::size_t eFexDiscriminantBitWidth
Definition: AlgoConstants.h:16
GlobalSim::eTauTobPtr
std::shared_ptr< eTauTob > eTauTobPtr
Definition: eTauTob.cxx:85
GlobalSim::AlgoConstants::eFexPhiBitWidth
constexpr static std::size_t eFexPhiBitWidth
Definition: AlgoConstants.h:18
GlobalSim::eTauTob::m_RCore
std::bitset< AlgoConstants::eFexDiscriminantBitWidth > m_RCore
Definition: eTauTob.h:49
GlobalSim::eTauTob::as_bits
std::bitset< 32 > as_bits() const
Definition: eTauTob.cxx:54
GlobalSim::operator<<
std::ostream & operator<<(std::ostream &os, const TestCounts &tc)
Definition: eEmSortSelectCountContainerComparator.cxx:47
GlobalSim
AlgTool to obtain a selection of eFex RoIs read in from the event store.
Definition: dump.h:8
GlobalSim::eTauTob::m_RHad
std::bitset< AlgoConstants::eFexDiscriminantBitWidth > m_RHad
Definition: eTauTob.h:50
eTauTob.h
GlobalSim::GepAlgoHypothesisPortsIn
Definition: GepAlgoHypothesisPortsIn.h:18
GlobalSim::AlgoConstants::eFexEtaBitWidth
constexpr static std::size_t eFexEtaBitWidth
Definition: AlgoConstants.h:17
lumiFormat.i
int i
Definition: lumiFormat.py:85
GlobalSim::eTauTob::eTauTob
eTauTob(const GepAlgoHypothesisPortsIn &ports_in)
Definition: eTauTob.cxx:9
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
GlobalSim::eTauTob::Eta_bits
const std::bitset< AlgoConstants::eFexEtaBitWidth > & Eta_bits() const
Definition: eTauTob.h:67
GlobalSim::eTauTob::m_Et
std::bitset< AlgoConstants::eFexEtBitWidth > m_Et
Definition: eTauTob.h:48
GlobalSim::eTauTob::Et_bits
const std::bitset< AlgoConstants::eFexEtBitWidth > & Et_bits() const
Definition: eTauTob.h:58
GlobalSim::GepAlgoHypothesisPortsIn::m_I_eTauTobs
BSPtr72 m_I_eTauTobs
Definition: GepAlgoHypothesisPortsIn.h:31
GlobalSim::eTauTob::Phi_bits
const std::bitset< AlgoConstants::eFexPhiBitWidth > & Phi_bits() const
Definition: eTauTob.h:70
GlobalSim::eTauTob::m_Phi
std::bitset< AlgoConstants::eFexPhiBitWidth > m_Phi
Definition: eTauTob.h:52
GlobalSim::eTauTob::m_Eta
std::bitset< AlgoConstants::eFexEtaBitWidth > m_Eta
Definition: eTauTob.h:51
GlobalSim::eTauTob
Definition: eTauTob.h:16
GlobalSim::eTauTob::RCore_bits
const std::bitset< AlgoConstants::eFexDiscriminantBitWidth > & RCore_bits() const
Definition: eTauTob.h:64
GlobalSim::eTauTob::m_Overflow
std::bitset< 1 > m_Overflow
Definition: eTauTob.h:53