29 ATH_CHECK(m_eTowerContainerKey.initialize());
32 return StatusCode::SUCCESS;
38 std::copy(&inputTable[0][0], &inputTable[0][0] + 9, &m_eFexalgoTowerID[0][0]);
40 buildLayers(efex_id, fpga_id, central_eta);
46 std::unique_ptr<eFEXtauTOB> tob = std::make_unique<eFEXtauTOB>();
47 unsigned int et = getEt();
54 tob->
setIso(getRealRCore());
63 if (m_cellsSet ==
false) {
64 ATH_MSG_DEBUG(
"Layers not built, cannot accurately calculate Et.");
69 out += m_em0cells[0][1];
70 out += m_em0cells[1][1];
71 out += m_em0cells[2][1];
72 out += m_em0cells[0][m_offPhi];
73 out += m_em0cells[1][m_offPhi];
74 out += m_em0cells[2][m_offPhi];
76 out += m_em1cells[m_seed][1];
77 out += m_em1cells[m_seed + 1][1];
78 out += m_em1cells[m_seed + 2][1];
79 out += m_em1cells[m_seed - 1][1];
80 out += m_em1cells[m_seed - 2][1];
81 out += m_em1cells[m_seed][m_offPhi];
82 out += m_em1cells[m_seed + 1][m_offPhi];
83 out += m_em1cells[m_seed + 2][m_offPhi];
84 out += m_em1cells[m_seed - 1][m_offPhi];
85 out += m_em1cells[m_seed - 2][m_offPhi];
87 out += m_em2cells[m_seed][1];
88 out += m_em2cells[m_seed + 1][1];
89 out += m_em2cells[m_seed + 2][1];
90 out += m_em2cells[m_seed - 1][1];
91 out += m_em2cells[m_seed - 2][1];
92 out += m_em2cells[m_seed][m_offPhi];
93 out += m_em2cells[m_seed + 1][m_offPhi];
94 out += m_em2cells[m_seed + 2][m_offPhi];
95 out += m_em2cells[m_seed - 1][m_offPhi];
96 out += m_em2cells[m_seed - 2][m_offPhi];
98 out += m_em3cells[0][1];
99 out += m_em3cells[1][1];
100 out += m_em3cells[2][1];
101 out += m_em3cells[0][m_offPhi];
102 out += m_em3cells[1][m_offPhi];
103 out += m_em3cells[2][m_offPhi];
105 out += m_hadcells[0][1];
106 out += m_hadcells[1][1];
107 out += m_hadcells[2][1];
108 out += m_hadcells[0][m_offPhi];
109 out += m_hadcells[1][m_offPhi];
110 out += m_hadcells[2][m_offPhi];
120 if (m_cellsSet ==
false) {
121 ATH_MSG_DEBUG(
"Layers not built, cannot calculate rCore core value");
124 unsigned int out = 0;
126 out += m_em2cells[m_seed][1];
127 out += m_em2cells[m_seed + 1][1];
128 out += m_em2cells[m_seed - 1][1];
129 out += m_em2cells[m_seed][m_offPhi];
130 out += m_em2cells[m_seed + 1][m_offPhi];
131 out += m_em2cells[m_seed - 1][m_offPhi];
141 if (m_cellsSet ==
false) {
142 ATH_MSG_DEBUG(
"Layers not built, cannot calculate rCore environment value");
145 unsigned int out = 0;
147 out += m_em2cells[m_seed + 2][1];
148 out += m_em2cells[m_seed - 2][1];
149 out += m_em2cells[m_seed + 3][1];
150 out += m_em2cells[m_seed - 3][1];
151 out += m_em2cells[m_seed + 4][1];
152 out += m_em2cells[m_seed - 4][1];
153 out += m_em2cells[m_seed + 2][m_offPhi];
154 out += m_em2cells[m_seed - 2][m_offPhi];
155 out += m_em2cells[m_seed + 3][m_offPhi];
156 out += m_em2cells[m_seed - 3][m_offPhi];
157 out += m_em2cells[m_seed + 4][m_offPhi];
158 out += m_em2cells[m_seed - 4][m_offPhi];
168 if (m_cellsSet ==
false) {
169 ATH_MSG_DEBUG(
"Layers not built, cannot calculate rHad core value");
172 unsigned int out = 0;
174 out += m_hadcells[0][1];
175 out += m_hadcells[1][1];
176 out += m_hadcells[2][1];
177 out += m_hadcells[0][m_offPhi];
178 out += m_hadcells[1][m_offPhi];
179 out += m_hadcells[2][m_offPhi];
189 if (m_cellsSet ==
false) {
190 ATH_MSG_DEBUG(
"Layers not built, cannot calculate rHad environment value");
193 unsigned int out = 0;
195 out += m_em2cells[m_seed][1];
196 out += m_em2cells[m_seed - 1][1];
197 out += m_em2cells[m_seed + 1][1];
198 out += m_em2cells[m_seed - 2][1];
199 out += m_em2cells[m_seed + 2][1];
200 out += m_em2cells[m_seed][m_offPhi];
201 out += m_em2cells[m_seed - 1][m_offPhi];
202 out += m_em2cells[m_seed + 1][m_offPhi];
203 out += m_em2cells[m_seed - 2][m_offPhi];
204 out += m_em2cells[m_seed + 2][m_offPhi];
205 out += m_em1cells[m_seed][1];
206 out += m_em1cells[m_seed - 1][1];
207 out += m_em1cells[m_seed + 1][1];
208 out += m_em1cells[m_seed][m_offPhi];
209 out += m_em1cells[m_seed - 1][m_offPhi];
210 out += m_em1cells[m_seed + 1][m_offPhi];
221 if (m_cellsSet ==
false) {
222 ATH_MSG_DEBUG(
"Layers not built, cannot accurately set phi direction.");
225 unsigned int upwardEt = m_em2cells[m_seed][2];
227 unsigned int downwardEt = m_em2cells[m_seed][0];
229 if (downwardEt > upwardEt) {
241 std::vector<unsigned int> &RcoreSums,
242 std::vector<unsigned int> &RemSums) {
255 unsigned int seed = 7;
258 for (
unsigned int i = 7;
i > 3; --
i) {
259 cell_et = m_em2cells[
i][1];
260 if (cell_et > max_et) {
271 unsigned int out = 0;