Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
eEmTob.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 "eEmTob.h"
6 
7 namespace GlobalSim {
8 
10 
11  const auto& w_tob = ports_in.m_I_eEmTobs;
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_REta[j] = (*w_tob)[i];
38  }
39 
40 
43  ++i, ++j)
44  {
45  m_RHad[j] = (*w_tob)[i];
46  }
47 
48 
51  ++i, ++j)
52  {
53  m_WsTot[j] = (*w_tob)[i];
54  }
55 
56  m_Overflow[0] = (*w_tob)[63];
57 
58  }
59 
60 
61  std::bitset<32> eEmTob::asBits() const {
62  auto result = std::bitset<32>();
63  std::size_t r_ptr{0};
64  for (std::size_t s_ptr=0; s_ptr < m_Et.size(); ++s_ptr, ++r_ptr) {
65  if(m_Et.test(s_ptr)) {result.set(r_ptr);}
66  }
67 
68  for (std::size_t s_ptr=0; s_ptr < m_REta.size(); ++s_ptr, ++r_ptr) {
69  if(m_REta.test(s_ptr)) {result.set(r_ptr);}
70  }
71 
72  for (std::size_t s_ptr=0; s_ptr < m_RHad.size(); ++s_ptr, ++r_ptr) {
73  if(m_RHad.test(s_ptr)) {result.set(r_ptr);}
74  }
75 
76  for (std::size_t s_ptr=0; s_ptr < m_WsTot.size(); ++s_ptr, ++r_ptr) {
77  if(m_WsTot.test(s_ptr)) {result.set(r_ptr);}
78  }
79 
80  for (std::size_t s_ptr=0; s_ptr < m_Eta.size(); ++s_ptr, ++r_ptr) {
81  if(m_Eta.test(s_ptr)) {result.set(r_ptr);}
82  }
83 
84  for (std::size_t s_ptr=0; s_ptr < m_Phi.size(); ++s_ptr, ++r_ptr) {
85  if(m_Phi.test(s_ptr)) {result.set(r_ptr);}
86  }
87 
88  return result;
89  }
90 
91  using eEmTobPtr = std::shared_ptr<eEmTob>;
92 
93 
94  std::ostream& operator << (std::ostream& os, const GlobalSim::eEmTob& tob) {
95 
96  os << "GlobalSim::eEmTob\n"
97  << "Et: " << std::hex << tob.Et_bits().to_ulong() << '\n'
98  << "REta: " << std::hex << tob.REta_bits().to_ulong() << '\n'
99  << "RHad: " << std::hex<< tob.RHad_bits().to_ulong() << '\n'
100  << "WsTot: " << std::hex<< tob.WsTot_bits().to_ulong() << '\n'
101  << "Eta: " << std::hex<< tob.Eta_bits().to_ulong() << '\n'
102  << "Phi: " << std::hex<< tob.Phi_bits().to_ulong() << '\n';
103  return os;
104  }
105 }
106 
107 
108 
GlobalSim::eEmTob::m_Overflow
std::bitset< 1 > m_Overflow
Definition: eEmTob.h:56
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::eEmTob::m_Eta
std::bitset< AlgoConstants::eFexEtaBitWidth > m_Eta
Definition: eEmTob.h:54
GlobalSim::AlgoConstants::eFexDiscriminantBitWidth
constexpr static std::size_t eFexDiscriminantBitWidth
Definition: AlgoConstants.h:16
GlobalSim::eEmTob::eEmTob
eEmTob(const GepAlgoHypothesisPortsIn &ports_in)
Definition: eEmTob.cxx:9
GlobalSim::eEmTob::m_Et
std::bitset< AlgoConstants::eFexEtBitWidth > m_Et
Definition: eEmTob.h:50
GlobalSim::eEmTob::m_WsTot
std::bitset< AlgoConstants::eFexDiscriminantBitWidth > m_WsTot
Definition: eEmTob.h:53
GlobalSim::AlgoConstants::eFexPhiBitWidth
constexpr static std::size_t eFexPhiBitWidth
Definition: AlgoConstants.h:18
GlobalSim::eEmTob::m_Phi
std::bitset< AlgoConstants::eFexPhiBitWidth > m_Phi
Definition: eEmTob.h:55
GlobalSim::eEmTob::Phi_bits
const std::bitset< AlgoConstants::eFexPhiBitWidth > & Phi_bits() const
Definition: eEmTob.h:76
GlobalSim::operator<<
std::ostream & operator<<(std::ostream &os, const GlobalSim::eEmTob &tob)
Definition: eEmTob.cxx:94
GlobalSim::GepAlgoHypothesisPortsIn::m_I_eEmTobs
BSPtr72 m_I_eEmTobs
Definition: GepAlgoHypothesisPortsIn.h:30
GlobalSim
AlgTool to obtain a selection of eFex RoIs read in from the event store.
Definition: dump.h:8
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::eEmTob::m_RHad
std::bitset< AlgoConstants::eFexDiscriminantBitWidth > m_RHad
Definition: eEmTob.h:52
eEmTob.h
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
GlobalSim::eEmTob::RHad_bits
const std::bitset< AlgoConstants::eFexDiscriminantBitWidth > & RHad_bits() const
Definition: eEmTob.h:67
GlobalSim::eEmTobPtr
std::shared_ptr< eEmTob > eEmTobPtr
Definition: eEmTob.cxx:91
GlobalSim::eEmTob::REta_bits
const std::bitset< AlgoConstants::eFexDiscriminantBitWidth > & REta_bits() const
GlobalSim::eEmTob::Eta_bits
const std::bitset< AlgoConstants::eFexEtaBitWidth > & Eta_bits() const
Definition: eEmTob.h:73
GlobalSim::eEmTob::asBits
std::bitset< 32 > asBits() const
Definition: eEmTob.cxx:61
GlobalSim::eEmTob::WsTot_bits
const std::bitset< AlgoConstants::eFexDiscriminantBitWidth > & WsTot_bits() const
Definition: eEmTob.h:70
GlobalSim::eEmTob::m_REta
std::bitset< AlgoConstants::eFexDiscriminantBitWidth > m_REta
Definition: eEmTob.h:51
GlobalSim::eEmTob
Definition: eEmTob.h:16
GlobalSim::eEmTob::Et_bits
const std::bitset< AlgoConstants::eFexEtBitWidth > & Et_bits() const
Definition: eEmTob.h:61