Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
GenericTob.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef GLOBALSIM_GENERICTOB_H
6 #define GLOBALSIM_GENERICTOB_H
7 
8 #include "AlgoConstants.h"
9 #include "AlgoDataTypes.h" //bitSetToInt
10 #include "eEmTob.h"
11 #include "eTauTob.h"
12 
13 #include <bitset>
14 #include <vector>
15 #include <ostream>
16 
17 namespace GlobalSim {
18 
19 
20  class GenericTob {
21  // vhdl type: record
22 
23  public:
24  constexpr static std::size_t GenericEtBitWidth{13};
25  constexpr static std::size_t GenericEtaBitWidth{9};
26 
27  constexpr static std::size_t
29 
30  constexpr static std::size_t GenericPhiBitWidth{7};
31  constexpr static std::size_t GenericMuonFlagBitWidth{2};
32  constexpr static std::size_t GenericOverflowWidth{1};
33 
34  constexpr static std::size_t GenericTobWidth =
38 
40  GenericTob(const eEmTob& in_tob);
41  GenericTob(const eEmTobPtr& in_tob);
42  GenericTob(const eTauTob& in_tob);
43  GenericTob(const eTauTobPtr& in_tob);
44  GenericTob(const std::string&);
45 
46 
47  const std::bitset<13>& Et_bits() const {return m_Et_bits;}
48  const std::bitset<9>& Eta_bits() const {return m_Eta_bits;}
49  const std::bitset<7>& Phi_bits() const {return m_Phi_bits;}
50  const std::bitset<2>& Charge_bits() const {return m_Charge_bits;}
51  const std::bitset<1>& overflow_bits() const {return m_Overflow_bits;}
52  std::bitset<32> as_bits() const;
53 
54  int Et () const {return bitSetToInt(m_Et_bits);}
55  int Eta () const {return bitSetToInt(m_Eta_bits);}
56  int Phi () const {return bitSetToInt(m_Phi_bits);}
57  int Charge () const{return bitSetToInt(m_Charge_bits);}
58 
59 
60  private:
61 
62  // at the time of writing the int widhs in the VHDL code were all < 16.
63 
64  std::bitset<GenericEtBitWidth> m_Et_bits;
65  std::bitset<GenericEtaBitWidth> m_Eta_bits;
66  std::bitset<GenericPhiBitWidth> m_Phi_bits;
67  std::bitset<GenericMuonFlagBitWidth> m_Charge_bits;
68  std::bitset<1> m_Overflow_bits;
69 
70  };
71 
72  using GenericTobContainer = std::vector<std::shared_ptr<GenericTob>>;
73 
74 }
75 
76 CLASS_DEF( GlobalSim::GenericTobContainer , 1078282199 , 1 )
77 
78 std::ostream& operator << (std::ostream&, const GlobalSim::GenericTob&);
79 
80 #endif
GlobalSim::GenericTob::GenericEtBitWidth
constexpr static std::size_t GenericEtBitWidth
Definition: GenericTob.h:24
GlobalSim::GenericTob::Charge
int Charge() const
Definition: GenericTob.h:57
GlobalSim::GenericTob::m_Phi_bits
std::bitset< GenericPhiBitWidth > m_Phi_bits
Definition: GenericTob.h:66
GlobalSim::GenericTob::m_Charge_bits
std::bitset< GenericMuonFlagBitWidth > m_Charge_bits
Definition: GenericTob.h:67
GlobalSim::GenericTob::Phi
int Phi() const
Definition: GenericTob.h:56
GlobalSim::GenericTob::m_Eta_bits
std::bitset< GenericEtaBitWidth > m_Eta_bits
Definition: GenericTob.h:65
AlgoDataTypes.h
GlobalSim::GenericTob::Et_bits
const std::bitset< 13 > & Et_bits() const
Definition: GenericTob.h:47
GlobalSim::bitSetToInt
int bitSetToInt(BITSET bitset)
Definition: AlgoDataTypes.h:19
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
GlobalSim::eTauTobPtr
std::shared_ptr< eTauTob > eTauTobPtr
Definition: eTauTob.cxx:85
GlobalSim::GenericTob::Phi_bits
const std::bitset< 7 > & Phi_bits() const
Definition: GenericTob.h:49
GlobalSim::GenericTob
Definition: GenericTob.h:20
GlobalSim::GenericTob::overflow_bits
const std::bitset< 1 > & overflow_bits() const
Definition: GenericTob.h:51
GlobalSim::GenericTob::GenericMuonFlagBitWidth
constexpr static std::size_t GenericMuonFlagBitWidth
Definition: GenericTob.h:31
GlobalSim
AlgTool to obtain a selection of eFex RoIs read in from the event store.
Definition: dump.h:8
eTauTob.h
GlobalSim::GenericTob::m_Overflow_bits
std::bitset< 1 > m_Overflow_bits
Definition: GenericTob.h:68
GlobalSim::GenericTob::GenericOverflowWidth
constexpr static std::size_t GenericOverflowWidth
Definition: GenericTob.h:32
GlobalSim::GenericTob::Charge_bits
const std::bitset< 2 > & Charge_bits() const
Definition: GenericTob.h:50
eEmTob.h
GlobalSim::GenericTob::Eta
int Eta() const
Definition: GenericTob.h:55
GlobalSim::GenericTob::GenericTobWidth
constexpr static std::size_t GenericTobWidth
Definition: GenericTob.h:34
GlobalSim::GenericTob::GenericTob
GenericTob()
Definition: GenericTob.h:39
GlobalSim::GenericTobContainer
std::vector< std::shared_ptr< GenericTob > > GenericTobContainer
Definition: GenericTob.h:72
AlgoConstants.h
GlobalSim::eEmTobPtr
std::shared_ptr< eEmTob > eEmTobPtr
Definition: eEmTob.cxx:93
GlobalSim::GenericTob::GenericEtaBitWidth
constexpr static std::size_t GenericEtaBitWidth
Definition: GenericTob.h:25
CLASS_DEF
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Definition: Control/AthenaKernel/AthenaKernel/CLASS_DEF.h:67
GlobalSim::GenericTob::GenericAbsoluteEtBitWidth
constexpr static std::size_t GenericAbsoluteEtBitWidth
Definition: GenericTob.h:28
GlobalSim::eTauTob
Definition: eTauTob.h:16
GlobalSim::GenericTob::as_bits
std::bitset< 32 > as_bits() const
Definition: GenericTob.cxx:95
GlobalSim::GenericTob::Eta_bits
const std::bitset< 9 > & Eta_bits() const
Definition: GenericTob.h:48
GlobalSim::eEmTob
Definition: eEmTob.h:16
GlobalSim::GenericTob::m_Et_bits
std::bitset< GenericEtBitWidth > m_Et_bits
Definition: GenericTob.h:64
GlobalSim::GenericTob::GenericPhiBitWidth
constexpr static std::size_t GenericPhiBitWidth
Definition: GenericTob.h:30
GlobalSim::GenericTob::Et
int Et() const
Definition: GenericTob.h:54