Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
GenericTob.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 
6 #include "GenericTob.h"
7 #include "AlgoDataTypes.h"
8 
9 #include <sstream>
10 
11 namespace GlobalSim {
12 
14 
15  {
16  const auto& in = in_tob->Et_bits();
17  auto sz = in.size();
18  for (auto i = 0U; i != sz; ++i) {m_Et_bits[i] = in[i];}
19  }
20 
21 
22  {
23  const auto& in = in_tob->Eta_bits();
24 
25  // vhdl etaL to_signed(unsigned(-100 + in, GenericEtaBitWidth)
26  int val = (-0x64 + bitSetToInt(in));
27 
28  bool neg{val < 0};
29  m_Eta_bits = std::abs(val);
30  if (neg) {m_Eta_bits = m_Eta_bits.flip().to_ulong()+1;}
31  }
32 
33  {
34  const auto& in = in_tob->Phi_bits();
35  m_Phi_bits = 2*(bitSetToInt(in)+2);
36  }
37 
38  }
39 
40  GenericTob::GenericTob(const std::string& bit_string) {
41  if(bit_string.size() != GenericTobWidth) {
42  std::stringstream ss;
43  ss << "GenericTob ctr expected " << GenericTobWidth
44  << " bits, received " << bit_string.size();
45  throw std::out_of_range(ss.str());
46  }
47 
48  auto bitstream = std::stringstream(bit_string);
49  bitstream >> m_Et_bits;
50  bitstream >> m_Eta_bits;
51  bitstream >> m_Phi_bits;
52  bitstream >> m_Charge_bits;
53 
54  }
55 
56  std::bitset<32> GenericTob::as_bits() const {
57 
58  auto result = std::bitset<32>();
59 
60  std::size_t begin = 0;
61  std::size_t end = GenericEtBitWidth;;
62 
63 
64  for(std::size_t i = begin; i != end; ++i) {
65  result[i] = m_Et_bits[i];
66  }
67 
68  begin = end;
70 
71  for(std::size_t i = 0; i != GenericEtaBitWidth; ++i) {
73  }
74 
75  begin = end;
77 
78  for(std::size_t i = 0; i != GenericPhiBitWidth; ++i) {
80  }
81 
82 
83 
84  return result;
85 
86  }
87 
88 }
89 
90 std::ostream& operator << (std::ostream& os, const GlobalSim::GenericTob& tob) {
91 
92 
93  os << "GlobalSim::GenericTob\n"
94  << "Et: " << tob.Et_bits() << '\n'
95  << "Eta: " << tob.Eta_bits() << '\n'
96  << "Phi: " << tob.Phi_bits() << '\n'
97  << "Charge: " << tob.Charge_bits() << '\n'
98  << "overflow: " << tob.overflow_bits() << '\n'
99  << "bits: " << tob.as_bits() << '\n';
100  return os;
101 }
GlobalSim::GenericTob::GenericEtBitWidth
constexpr static std::size_t GenericEtBitWidth
Definition: GenericTob.h:22
GlobalSim::GenericTob::m_Phi_bits
std::bitset< GenericPhiBitWidth > m_Phi_bits
Definition: GenericTob.h:59
GlobalSim::GenericTob::m_Charge_bits
std::bitset< GenericMuonFlagBitWidth > m_Charge_bits
Definition: GenericTob.h:60
fitman.sz
sz
Definition: fitman.py:527
get_generator_info.result
result
Definition: get_generator_info.py:21
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
GlobalSim::GenericTob::m_Eta_bits
std::bitset< GenericEtaBitWidth > m_Eta_bits
Definition: GenericTob.h:58
AlgoDataTypes.h
GlobalSim::GenericTob::Et_bits
const std::bitset< 13 > & Et_bits() const
Definition: GenericTob.h:40
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
GlobalSim::bitSetToInt
int bitSetToInt(BITSET bitset)
Definition: AlgoDataTypes.h:19
GenericTob.h
GlobalSim::GenericTob::Phi_bits
const std::bitset< 7 > & Phi_bits() const
Definition: GenericTob.h:42
GlobalSim::GenericTob
Definition: GenericTob.h:18
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
GlobalSim::GenericTob::overflow_bits
const std::bitset< 1 > & overflow_bits() const
Definition: GenericTob.h:44
GlobalSim
AlgTool to obtain a selection of eFex RoIs read in from the event store.
Definition: dump.h:8
lumiFormat.i
int i
Definition: lumiFormat.py:85
GlobalSim::GenericTob::Charge_bits
const std::bitset< 2 > & Charge_bits() const
Definition: GenericTob.h:43
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
operator<<
std::ostream & operator<<(std::ostream &os, const GlobalSim::GenericTob &tob)
Definition: GenericTob.cxx:90
GlobalSim::GenericTob::GenericTobWidth
constexpr static std::size_t GenericTobWidth
Definition: GenericTob.h:31
GlobalSim::GenericTob::GenericTob
GenericTob()
Definition: GenericTob.h:35
GlobalSim::eEmTobPtr
std::shared_ptr< eEmTob > eEmTobPtr
Definition: eEmTob.cxx:93
GlobalSim::GenericTob::GenericEtaBitWidth
constexpr static std::size_t GenericEtaBitWidth
Definition: GenericTob.h:23
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
GlobalSim::GenericTob::as_bits
std::bitset< 32 > as_bits() const
Definition: GenericTob.cxx:56
GlobalSim::GenericTob::Eta_bits
const std::bitset< 9 > & Eta_bits() const
Definition: GenericTob.h:41
GlobalSim::GenericTob::m_Et_bits
std::bitset< GenericEtBitWidth > m_Et_bits
Definition: GenericTob.h:57
GlobalSim::GenericTob::GenericPhiBitWidth
constexpr static std::size_t GenericPhiBitWidth
Definition: GenericTob.h:28