25 declareInterface<IgFEXFPGA>(
this);
41 return StatusCode::SUCCESS;
49 return StatusCode::SUCCESS;
74 if (!gFEXFPGA_gTower50Container.
isValid()) {
78 int rows = gTowersIDs_central.size();
79 int cols = gTowersIDs_central[0].size();
81 for (
int myrow = 0; myrow<
rows; myrow++){
82 for (
int mycol = 0; mycol<
cols; mycol++){
84 output_gTower_energies[myrow][mycol] = 0;
85 output_gTower50_energies[myrow][mycol] = 0;
86 output_saturation[myrow][mycol] = 0;
89 int towerID = gTowersIDs_central[myrow][mycol];
90 if(towerID == 0)
continue;
92 const LVL1::gTower * tmpTower = gFEXFPGA_gTowerContainer->findTower(towerID);
95 tmpTower50 = gFEXFPGA_gTower50Container->findTower(towerID);
98 if (tmpTower ==
nullptr)
continue;
100 TowerEt = tmpTower->
getET();
107 gTowersContainer->
push_back(std::move(gTowerEDM));
108 gTowersContainer->
back()->initialize(iEtaFW, iPhiFW,
Eta,
Phi, TowerEt, Fpga, IsSaturated, gFEXtowerID);
110 output_gTower_energies[myrow][mycol] = tmpTower->
getET();
111 output_gTower50_energies[myrow][mycol] = is_mc ? tmpTower50->
getET() * 4. : tmpTower50->
getET();
112 output_saturation[myrow][mycol] = tmpTower->
isSaturated();
124 char IsSaturated = 0;
130 if (!gFEXFPGA_gTower50Container.
isValid()) {
138 int rows = gTowersIDs_forward_n.size();
139 int cols = gTowersIDs_forward_n[0].size();
141 for (
int myrow = 0; myrow<
rows; myrow++){
142 for (
int mycol = 0; mycol<
cols; mycol++){
144 int towerID = gTowersIDs_forward_n[myrow][mycol];
145 if(towerID == 0)
continue;
147 const LVL1::gTower * tmpTower = gFEXFPGA_gTowerContainer->findTower(towerID);
150 tmpTower50 = gFEXFPGA_gTower50Container->findTower(towerID);
153 if (tmpTower ==
nullptr)
continue;
155 int TowerEt = tmpTower->
getET();
156 float Eta = tmpTower->
eta();
157 float Phi = tmpTower->
phi();
163 gTowersContainer->
push_back(std::move(gTowerEDM));
164 gTowersContainer->
back()->initialize(iEtaFW, iPhiFW,
Eta,
Phi, TowerEt, Fpga, IsSaturated, gFEXtowerID);
166 output_gTower_energies[iPhiFW][iEtaFW - 2] = tmpTower->
getET();
167 output_gTower50_energies[iPhiFW][iEtaFW - 2] = is_mc ? tmpTower50->
getET() * 4. : tmpTower50->
getET();
168 output_saturation[iPhiFW][iEtaFW - 2] = tmpTower->
isSaturated();
175 rows = gTowersIDs_forward_p.size();
176 cols = gTowersIDs_forward_p[0].size();
178 for (
int myrow = 0; myrow<
rows; myrow++){
179 for (
int mycol = 0; mycol<
cols; mycol++){
181 int towerID = gTowersIDs_forward_p[myrow][mycol];
182 if(towerID == 0)
continue;
184 const LVL1::gTower * tmpTower = gFEXFPGA_gTowerContainer->findTower(towerID);
187 tmpTower50 = gFEXFPGA_gTower50Container->findTower(towerID);
190 if (tmpTower ==
nullptr)
continue;
192 int TowerEt = tmpTower->
getET();
193 float Eta = tmpTower->
eta();
194 float Phi = tmpTower->
phi();
200 gTowersContainer->
push_back(std::move(gTowerEDM));
201 gTowersContainer->
back()->initialize(iEtaFW, iPhiFW,
Eta,
Phi, TowerEt, Fpga, IsSaturated, gFEXtowerID);
203 output_gTower_energies[iPhiFW][iEtaFW - 32 + 6] = tmpTower->
getET();
204 output_gTower50_energies[iPhiFW][iEtaFW - 32 + 6] = is_mc ? tmpTower50->
getET() * 4. : tmpTower50->
getET();
205 output_saturation[iPhiFW][iEtaFW - 32 + 6] = tmpTower->
isSaturated();