64 gFEXFPGA::calExpand(offsetsDefaultA, noiseCutsDefaultA, slopesDefaultA, 48, myDBTool->get_AnoiseCuts(), myDBTool->get_Aslopes());
65 gFEXFPGA::calExpand(offsetsDefaultB, noiseCutsDefaultB, slopesDefaultB, 48, myDBTool->get_BnoiseCuts(), myDBTool->get_Bslopes());
78 if (!gFEXFPGA_gTower50Container.
isValid())
83 int rows = gTowersIDs_central.size();
84 int cols = gTowersIDs_central[0].size();
86 for (
int myrow = 0; myrow < rows; myrow++)
88 for (
int mycol = 0; mycol < cols; mycol++)
91 output_gTower_energies[myrow][mycol] = 0;
92 output_gTower50_energies[myrow][mycol] = 0;
93 output_saturation[myrow][mycol] = 0;
95 int towerID = gTowersIDs_central[myrow][mycol];
99 const LVL1::gTower *tmpTower = gFEXFPGA_gTowerContainer->findTower(towerID);
103 tmpTower50 = gFEXFPGA_gTower50Container->findTower(towerID);
106 if (tmpTower ==
nullptr)
109 TowerEt = tmpTower->
getET();
110 Eta = tmpTower->
eta();
111 Phi = tmpTower->
phi();
116 uint32_t gFEXtowerID = tmpTower->
getFWID(iPhiFW, iEtaFW);
119 gTowersContainer->push_back(std::move(gTowerEDM));
120 gTowersContainer->back()->initialize(iEtaFW, iPhiFW, Eta, Phi, TowerEt, fpgaId, IsSaturated, gFEXtowerID);
122 output_gTower_energies[myrow][mycol] = tmpTower->
getET();
123 output_gTower50_energies[myrow][mycol] = is_mc ? tmpTower50->
getET() * 4. : tmpTower50->
getET();
124 output_saturation[myrow][mycol] = tmpTower->
isSaturated();
136 gFEXFPGA::gtCalib(output_gTower_energies, offsetsDefaultA, noiseCutsDefaultA, slopesDefaultA);
141 gFEXFPGA::gtCalib(output_gTower_energies, offsetsDefaultB, noiseCutsDefaultB, slopesDefaultB);
164 gFEXFPGA::calExpand(offsetsDefaultC, noiseCutsDefaultC, slopesDefaultC, 48, myDBTool->get_CnoiseCuts(), myDBTool->get_Cslopes());
166 char IsSaturated = 0;
172 if (!gFEXFPGA_gTower50Container.
isValid())
180 int rows = gTowersIDs_forward_n.size();
181 int cols = gTowersIDs_forward_n[0].size();
183 for (
int myrow = 0; myrow < rows; myrow++)
185 for (
int mycol = 0; mycol < cols; mycol++)
188 int towerID = gTowersIDs_forward_n[myrow][mycol];
192 const LVL1::gTower *tmpTower = gFEXFPGA_gTowerContainer->findTower(towerID);
196 tmpTower50 = gFEXFPGA_gTower50Container->findTower(towerID);
199 if (tmpTower ==
nullptr)
202 int TowerEt = tmpTower->
getET();
203 float Eta = tmpTower->
eta();
204 float Phi = tmpTower->
phi();
206 uint32_t gFEXtowerID = tmpTower->
getFWID(iPhiFW, iEtaFW);
209 gTowersContainer->push_back(std::move(gTowerEDM));
210 gTowersContainer->back()->initialize(iEtaFW, iPhiFW, Eta, Phi, TowerEt, fpgaId, IsSaturated, gFEXtowerID);
212 output_gTower_energies[iPhiFW][iEtaFW - 2] = tmpTower->
getET();
213 output_gTower50_energies[iPhiFW][iEtaFW - 2] = is_mc ? tmpTower50->
getET() * 4. : tmpTower50->
getET();
214 output_saturation[iPhiFW][iEtaFW - 2] = tmpTower->
isSaturated();
221 rows = gTowersIDs_forward_p.size();
222 cols = gTowersIDs_forward_p[0].size();
224 for (
int myrow = 0; myrow < rows; myrow++)
226 for (
int mycol = 0; mycol < cols; mycol++)
229 int towerID = gTowersIDs_forward_p[myrow][mycol];
233 const LVL1::gTower *tmpTower = gFEXFPGA_gTowerContainer->findTower(towerID);
237 tmpTower50 = gFEXFPGA_gTower50Container->findTower(towerID);
240 if (tmpTower ==
nullptr)
243 int TowerEt = tmpTower->
getET();
244 float Eta = tmpTower->
eta();
245 float Phi = tmpTower->
phi();
247 uint32_t gFEXtowerID = tmpTower->
getFWID(iPhiFW, iEtaFW);
250 gTowersContainer->push_back(std::move(gTowerEDM));
251 gTowersContainer->back()->initialize(iEtaFW, iPhiFW, Eta, Phi, TowerEt, fpgaId, IsSaturated, gFEXtowerID);
253 output_gTower_energies[iPhiFW][iEtaFW - 32 + 6] = tmpTower->
getET();
254 output_gTower50_energies[iPhiFW][iEtaFW - 32 + 6] = is_mc ? tmpTower50->
getET() * 4. : tmpTower50->
getET();
255 output_saturation[iPhiFW][iEtaFW - 32 + 6] = tmpTower->
isSaturated();
262 gFEXFPGA::gtCalib(output_gTower_energies, offsetsDefaultC, noiseCutsDefaultC, slopesDefaultC);
312 int rows = offsets.size();
313 int cols = offsets[0].size();
314 for (
int irow = 0; irow < rows; irow++)
316 for (
int jcolumn = 0; jcolumn < cols; jcolumn++)
318 offsets[irow][jcolumn] = offset;
319 noiseCuts[irow][jcolumn] = columnNoiseCuts[jcolumn];
320 slopes[irow][jcolumn] = columnSlopes[jcolumn];
virtual void FillgTowerEDMForward(const EventContext &, SG::WriteHandle< xAOD::gFexTowerContainer > &, int, const gTowersForward &, const gTowersForward &, gTowersType &, gTowersType &, gTowersType &) const override
void calExpand(gTowersType &offsets, gTowersType &noiseCuts, gTowersType &slopes, const int offset, const std::array< int, 12 > &columnNoiseCuts, const std::array< int, 12 > &columnSlopes) const
virtual void FillgTowerEDMCentral(const EventContext &, SG::WriteHandle< xAOD::gFexTowerContainer > &, int, const gTowersCentral &, gTowersType &, gTowersType &, gTowersType &) const override