27 ATH_CHECK(m_eTowerContainerKey.initialize());
30 return StatusCode::SUCCESS;
36 std::copy(&inputTable[0][0], &inputTable[0][0] + 9, &m_eFexalgoTowerID[0][0]);
38 buildLayers(efex_id, fpga_id, central_eta);
44 std::unique_ptr<eFEXtauTOB> tob = std::make_unique<eFEXtauTOB>();
45 unsigned int et = getEt();
52 tob->
setIso(getRealRCore());
61 if (m_cellsSet ==
false) {
62 ATH_MSG_DEBUG(
"Layers not built, cannot accurately calculate Et.");
67 out += m_em0cells[0][1];
68 out += m_em0cells[1][1];
69 out += m_em0cells[2][1];
70 out += m_em0cells[0][m_offPhi];
71 out += m_em0cells[1][m_offPhi];
72 out += m_em0cells[2][m_offPhi];
74 out += m_em1cells[m_seed][1];
75 out += m_em1cells[m_seed + 1][1];
76 out += m_em1cells[m_seed + 2][1];
77 out += m_em1cells[m_seed - 1][1];
78 out += m_em1cells[m_seed - 2][1];
79 out += m_em1cells[m_seed][m_offPhi];
80 out += m_em1cells[m_seed + 1][m_offPhi];
81 out += m_em1cells[m_seed + 2][m_offPhi];
82 out += m_em1cells[m_seed - 1][m_offPhi];
83 out += m_em1cells[m_seed - 2][m_offPhi];
85 out += m_em2cells[m_seed][1];
86 out += m_em2cells[m_seed + 1][1];
87 out += m_em2cells[m_seed + 2][1];
88 out += m_em2cells[m_seed - 1][1];
89 out += m_em2cells[m_seed - 2][1];
90 out += m_em2cells[m_seed][m_offPhi];
91 out += m_em2cells[m_seed + 1][m_offPhi];
92 out += m_em2cells[m_seed + 2][m_offPhi];
93 out += m_em2cells[m_seed - 1][m_offPhi];
94 out += m_em2cells[m_seed - 2][m_offPhi];
96 out += m_em3cells[0][1];
97 out += m_em3cells[1][1];
98 out += m_em3cells[2][1];
99 out += m_em3cells[0][m_offPhi];
100 out += m_em3cells[1][m_offPhi];
101 out += m_em3cells[2][m_offPhi];
103 out += m_hadcells[0][1];
104 out += m_hadcells[1][1];
105 out += m_hadcells[2][1];
106 out += m_hadcells[0][m_offPhi];
107 out += m_hadcells[1][m_offPhi];
108 out += m_hadcells[2][m_offPhi];
118 if (m_cellsSet ==
false) {
119 ATH_MSG_DEBUG(
"Layers not built, cannot calculate rCore core value");
122 unsigned int out = 0;
124 out += m_em2cells[m_seed][1];
125 out += m_em2cells[m_seed + 1][1];
126 out += m_em2cells[m_seed - 1][1];
127 out += m_em2cells[m_seed][m_offPhi];
128 out += m_em2cells[m_seed + 1][m_offPhi];
129 out += m_em2cells[m_seed - 1][m_offPhi];
139 if (m_cellsSet ==
false) {
140 ATH_MSG_DEBUG(
"Layers not built, cannot calculate rCore environment value");
143 unsigned int out = 0;
145 out += m_em2cells[m_seed + 2][1];
146 out += m_em2cells[m_seed - 2][1];
147 out += m_em2cells[m_seed + 3][1];
148 out += m_em2cells[m_seed - 3][1];
149 out += m_em2cells[m_seed + 4][1];
150 out += m_em2cells[m_seed - 4][1];
151 out += m_em2cells[m_seed + 2][m_offPhi];
152 out += m_em2cells[m_seed - 2][m_offPhi];
153 out += m_em2cells[m_seed + 3][m_offPhi];
154 out += m_em2cells[m_seed - 3][m_offPhi];
155 out += m_em2cells[m_seed + 4][m_offPhi];
156 out += m_em2cells[m_seed - 4][m_offPhi];
166 if (m_cellsSet ==
false) {
167 ATH_MSG_DEBUG(
"Layers not built, cannot calculate rHad core value");
170 unsigned int out = 0;
172 out += m_hadcells[0][1];
173 out += m_hadcells[1][1];
174 out += m_hadcells[2][1];
175 out += m_hadcells[0][m_offPhi];
176 out += m_hadcells[1][m_offPhi];
177 out += m_hadcells[2][m_offPhi];
187 if (m_cellsSet ==
false) {
188 ATH_MSG_DEBUG(
"Layers not built, cannot calculate rHad environment value");
191 unsigned int out = 0;
193 out += m_em2cells[m_seed][1];
194 out += m_em2cells[m_seed - 1][1];
195 out += m_em2cells[m_seed + 1][1];
196 out += m_em2cells[m_seed - 2][1];
197 out += m_em2cells[m_seed + 2][1];
198 out += m_em2cells[m_seed][m_offPhi];
199 out += m_em2cells[m_seed - 1][m_offPhi];
200 out += m_em2cells[m_seed + 1][m_offPhi];
201 out += m_em2cells[m_seed - 2][m_offPhi];
202 out += m_em2cells[m_seed + 2][m_offPhi];
203 out += m_em1cells[m_seed][1];
204 out += m_em1cells[m_seed - 1][1];
205 out += m_em1cells[m_seed + 1][1];
206 out += m_em1cells[m_seed][m_offPhi];
207 out += m_em1cells[m_seed - 1][m_offPhi];
208 out += m_em1cells[m_seed + 1][m_offPhi];
219 if (m_cellsSet ==
false) {
220 ATH_MSG_DEBUG(
"Layers not built, cannot accurately set phi direction.");
223 unsigned int upwardEt = m_em2cells[m_seed][2];
225 unsigned int downwardEt = m_em2cells[m_seed][0];
227 if (downwardEt > upwardEt) {
239 std::vector<unsigned int> &RcoreSums,
240 std::vector<unsigned int> &RemSums) {
253 unsigned int seed = 7;
256 for (
unsigned int i = 7;
i > 3; --
i) {
257 cell_et = m_em2cells[
i][1];
258 if (cell_et > max_et) {
269 unsigned int out = 0;