ATLAS Offline Software
Loading...
Searching...
No Matches
GenericTOB.h
Go to the documentation of this file.
1// Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
2
3#ifndef GENERICTOB_H
4#define GENERICTOB_H
5
6#include <iostream>
7#include <string>
8
10#include "L1TopoEvent/JetTOB.h"
11#include "L1TopoEvent/gJetTOB.h"
12#include "L1TopoEvent/jTauTOB.h"
13#include "L1TopoEvent/eTauTOB.h"
16#include "L1TopoEvent/jJetTOB.h"
18#include "L1TopoEvent/eEmTOB.h"
19#include "L1TopoEvent/jEmTOB.h"
20#include "L1TopoEvent/cTauTOB.h"
21#include "L1TopoEvent/MuonTOB.h"
24#include "L1TopoEvent/MetTOB.h"
25#include "L1TopoEvent/jXETOB.h"
26#include "L1TopoEvent/jTETOB.h"
27#include "L1TopoEvent/gXETOB.h"
28#include "L1TopoEvent/gTETOB.h"
29
30
31// TODO implement sizecheck lile in ClusterTOB
32
33namespace TCS {
34
35 class GenericTOB : public BaseTOB {
36 public:
37
38 // default constructor
39 GenericTOB(uint32_t roiWord = 0);
40
41 // constructor from individual values
42 GenericTOB(unsigned int Et, int eta, int phi, uint32_t roiWord = 0);
43
44 // copy constructor
45 GenericTOB(const GenericTOB & other);
46
47 // constructor from jet
48 GenericTOB(const JetTOB & jet, JetTOB::JetSize jetSize);
49
50 // constructor from jFEX Tau
51 GenericTOB(const jTauTOB & tau);
52
53 // constructor from jFEX Em
54 GenericTOB(const jEmTOB & jem);
55
56 // constructor from jFEX LJet
57 GenericTOB(const jLJetTOB & jet);
58
59 // constructor from gFEX LJet
60 GenericTOB(const gLJetTOB & jet);
61
62 // constructor from jFEX Jet
63 GenericTOB(const jJetTOB & jet);
64
65 // constructor from gFEX Jet
66 GenericTOB(const gJetTOB & jet);
67
68 // constructor from cluster
69 GenericTOB(const ClusterTOB & cluster);
70
71 // constructor from eFEX Em
72 GenericTOB(const eEmTOB & eem);
73
74 // constructor from eFEX Tau
75 GenericTOB(const eTauTOB & etau);
76
77 // constructor from cTau
78 GenericTOB(const cTauTOB & ctau);
79
80 // constructor from muon
81 GenericTOB(const MuonTOB & muon);
82
83 // constructor from lateMuon
84 GenericTOB(const LateMuonTOB & lateMuon);
85
86 // constructor from muonNextBC
87 GenericTOB(const MuonNextBCTOB & muonNextBC);
88
89 // constructor from met
90 GenericTOB(const MetTOB & met);
91
92 // constructor from jFEX XE
93 GenericTOB(const jXETOB & jxe);
94
95 // constructor from jFEX TE
96 GenericTOB(const jTETOB & jte);
97
98 // constructor from gFEX XE
99 GenericTOB(const gXETOB & gxe);
100
101 // constructor from gFEX TE
102 GenericTOB(const gTETOB & gte);
103
104 // destructor
106
107 static GenericTOB* createOnHeap(const GenericTOB &);
108 static void clearHeap();
109
110 static const Heap<TCS::GenericTOB>& heap() { return fg_heap; }
111
112 public:
113 unsigned int Et() const { return m_Et; }
114 unsigned int EtWide() const { return m_EtWide; }
115 unsigned int EtNarrow() const { return m_EtNarrow; }
116
117 int Ex() const { return m_Ex; }
118 int Ey() const { return m_Ey; }
119 unsigned int Et2() const { return m_Et2; }
120 unsigned int sumEt() const { return m_sumEt; }
121 unsigned int sumEtSideA() const { return m_sumEtSideA; }
122 unsigned int sumEtSideC() const { return m_sumEtSideC; }
123
124 int eta() const { return m_eta; }
125 int phi() const { return m_phi; }
126
127 // See definitions at TrigT1Interfaces/MuCTPIL1TopoCandidate.h
128 int bw2or3() const { return m_bw2or3; }
129 int innerCoin() const { return m_innerCoin; }
130 int goodMF() const { return m_goodMF; }
131 int charge() const { return m_charge; }
132 int is2cand() const { return m_is2cand; }
133
134 double EtDouble() const { return m_EtDouble; }
135 double etaDouble() const { return m_etaDouble; }
136 double phiDouble() const { return m_phiDouble; }
137
138 double ExDouble() const { return m_ExDouble; }
139 double EyDouble() const { return m_EyDouble; }
140 double sumEtDouble() const { return m_sumEtDouble; }
141 double sumEtDoubleSideA() const { return m_sumEtDoubleSideA; }
142 double sumEtDoubleSideC() const { return m_sumEtDoubleSideC; }
143
144 virtual void print(std::ostream &o) const;
145
147
148 inputTOBType_t tobType() const { return m_tobType; }
149
150 private:
151 unsigned int m_Et { 0 };
152 unsigned int m_EtNarrow { 0 };
153 unsigned int m_EtWide { 0 };
154
155 int m_Ex { 0 };
156 int m_Ey { 0 };
157 unsigned int m_Et2 { 0 };
158 unsigned int m_sumEt { 0 };
159 unsigned int m_sumEtSideA { 0 };
160 unsigned int m_sumEtSideC { 0 };
161
162 int m_eta { 0 };
163 int m_phi { 0 };
164
165 int m_bw2or3 { 0 };
166 int m_innerCoin { 0 };
167 int m_goodMF { 0 };
168 int m_charge { 0 };
169 int m_is2cand { 0 };
170
171 double m_EtDouble { 0 };
172 double m_etaDouble { 0 };
173 double m_phiDouble { 0 };
174
175 double m_ExDouble { 0 };
176 double m_EyDouble { 0 };
177 double m_sumEtDouble { 0 };
178 double m_sumEtDoubleSideA { 0 };
179 double m_sumEtDoubleSideC { 0 };
180
182
183 static thread_local Heap<TCS::GenericTOB> fg_heap;
184 };
185}
186
187#endif
uint32_t roiWord() const
Definition BaseTOB.h:21
BaseTOB(uint32_t roiWord, const std::string &tobType)
Definition BaseTOB.cxx:11
inputTOBType_t m_tobType
Definition GenericTOB.h:181
unsigned int EtNarrow() const
Definition GenericTOB.h:115
int goodMF() const
Definition GenericTOB.h:130
GenericTOB(uint32_t roiWord=0)
Definition GenericTOB.cxx:8
double phiDouble() const
Definition GenericTOB.h:136
virtual void print(std::ostream &o) const
inputTOBType_t tobType() const
Definition GenericTOB.h:148
unsigned int m_Et
Definition GenericTOB.h:151
unsigned int m_EtWide
Definition GenericTOB.h:153
int bw2or3() const
Definition GenericTOB.h:128
double ExDouble() const
Definition GenericTOB.h:138
int is2cand() const
Definition GenericTOB.h:132
double sumEtDoubleSideC() const
Definition GenericTOB.h:142
void setTobType(inputTOBType_t tobType)
Definition GenericTOB.h:146
unsigned int sumEtSideA() const
Definition GenericTOB.h:121
unsigned int EtWide() const
Definition GenericTOB.h:114
unsigned int Et() const
Definition GenericTOB.h:113
int innerCoin() const
Definition GenericTOB.h:129
int Ex() const
Definition GenericTOB.h:117
double sumEtDoubleSideA() const
Definition GenericTOB.h:141
static GenericTOB * createOnHeap(const GenericTOB &)
int charge() const
Definition GenericTOB.h:131
int Ey() const
Definition GenericTOB.h:118
int eta() const
Definition GenericTOB.h:124
unsigned int sumEtSideC() const
Definition GenericTOB.h:122
double m_sumEtDouble
Definition GenericTOB.h:177
GenericTOB(const GenericTOB &other)
unsigned int m_sumEt
Definition GenericTOB.h:158
unsigned int m_EtNarrow
Definition GenericTOB.h:152
double sumEtDouble() const
Definition GenericTOB.h:140
unsigned int m_sumEtSideC
Definition GenericTOB.h:160
double EtDouble() const
Definition GenericTOB.h:134
static const Heap< TCS::GenericTOB > & heap()
Definition GenericTOB.h:110
double EyDouble() const
Definition GenericTOB.h:139
unsigned int Et2() const
Definition GenericTOB.h:119
double m_sumEtDoubleSideC
Definition GenericTOB.h:179
static void clearHeap()
int phi() const
Definition GenericTOB.h:125
static thread_local Heap< TCS::GenericTOB > fg_heap
Definition GenericTOB.h:183
unsigned int m_sumEtSideA
Definition GenericTOB.h:159
unsigned int m_Et2
Definition GenericTOB.h:157
double m_sumEtDoubleSideA
Definition GenericTOB.h:178
unsigned int sumEt() const
Definition GenericTOB.h:120
double etaDouble() const
Definition GenericTOB.h:135