69 if(!this_gTowerContainer.
isValid()){
71 return StatusCode::FAILURE;
77 int fcalEta = 19;
int fcalPhi = 0;
int fcalMod = 900000;
79 int transfcalEta = 15;
int transfcalPhi = 0;
int transfcalMod = 700000;
81 int emecEta = 11;
int emecPhi = 0;
int emecMod = 500000;
83 int transembEta = 7;
int transembPhi = 0;
int transembMod = 300000;
85 int embEta = 6;
int embPhi = 0;
int embMod = 100000;
89 int embposEta = 0;
int embposPhi = 0;
int embposMod = 200000;
91 int transembposEta = 7;
int transembposPhi = 0;
int transembposMod = 400000;
93 int emecposEta = 8;
int emecposPhi = 0;
int emecposMod = 600000;
95 int transfcalposEta = 12;
int transfcalposPhi = 0;
int transfcalposMod = 800000;
97 int fcalposEta = 16;
int fcalposPhi = 0;
int fcalposMod = 1000000;
107 int rows = tmp_gTowersIDs_subset.size();
108 int cols = tmp_gTowersIDs_subset[0].size();
111 for(
int thisCol=0; thisCol<4; thisCol++){
112 for(
int thisRow=0; thisRow<rows/2; thisRow++){
114 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
119 for(
int thisCol=4; thisCol<8; thisCol++){
120 for(
int thisRow=0; thisRow<rows; thisRow++){
122 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
127 for(
int thisCol=8; thisCol<12; thisCol++){
128 for(
int thisRow=0; thisRow<rows; thisRow++){
130 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
135 for(
int thisRow = 0; thisRow < rows; thisRow++){
137 int towerid = initialTRANSEMB + thisRow;
138 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
142 for(
int thisCol = 13; thisCol < 20; thisCol++){
143 for(
int thisRow=0; thisRow<rows; thisRow++){
145 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
150 for(
int thisCol = 20; thisCol < 27; thisCol++){
151 for(
int thisRow=0; thisRow<rows; thisRow++){
153 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
158 for(
int thisRow = 0; thisRow < rows; thisRow++){
160 int towerid = initialposTRANSEMB + thisRow;
161 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
164 for(
int thisCol=28; thisCol<32; thisCol++){
165 for(
int thisRow=0; thisRow<rows; thisRow++){
167 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
172 for(
int thisCol=32; thisCol<36; thisCol++){
173 for(
int thisRow=0; thisRow<rows; thisRow++){
175 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
180 for(
int thisCol=36; thisCol<cols; thisCol++){
181 for(
int thisRow=0; thisRow<rows/2; thisRow++){
183 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
189 for (
int thisRow=rows-1; thisRow>=0; thisRow--){
190 for (
int thisCol=0; thisCol<cols; thisCol++){
191 int tmptowerid = tmp_gTowersIDs_subset[thisRow][thisCol];
192 const float tmptowereta = this_gTowerContainer->findTower(tmptowerid)->eta();
193 const float tmptowerphi = this_gTowerContainer->findTower(tmptowerid)->phi();
194 if(thisCol != cols-1){
ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowerphi <<
"][" << tmptowereta <<
"]) "); }
195 else {
ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) |"); }
200 std::vector<uint32_t> allgRhoTobs;
201 std::vector<uint32_t> allgBlockTobs;
202 std::vector<uint32_t> allgJetTobs;
204 std::vector<int32_t> allgScalarEJwojTobs;
205 std::vector<uint32_t> allgMETComponentsJwojTobs;
206 std::vector<uint32_t> allgMHTComponentsJwojTobs;
207 std::vector<uint32_t> allgMSTComponentsJwojTobs;
209 std::vector<uint32_t> allgMETComponentsNoiseCutTobs;
210 std::vector<uint32_t> allgMETComponentsRmsTobs;
211 std::vector<uint32_t> allgScalarENoiseCutTobs;
212 std::vector<uint32_t> allgScalarERmsTobs;
215 tmp_gTowersIDs_subset,
221 allgMETComponentsJwojTobs,
222 allgMHTComponentsJwojTobs,
223 allgMSTComponentsJwojTobs,
224 allgMETComponentsNoiseCutTobs,
225 allgMETComponentsRmsTobs,
226 allgScalarENoiseCutTobs,
227 allgScalarERmsTobs));
230 std::unique_ptr< xAOD::gFexJetRoIContainer > gRhoContainer = std::make_unique<xAOD::gFexJetRoIContainer> ();
231 std::unique_ptr< xAOD::gFexJetRoIAuxContainer > gRhoAuxContainer = std::make_unique<xAOD::gFexJetRoIAuxContainer> ();
232 gRhoContainer->setStore(gRhoAuxContainer.get());
234 std::unique_ptr< xAOD::gFexJetRoIContainer > gBlockContainer = std::make_unique<xAOD::gFexJetRoIContainer> ();
235 std::unique_ptr< xAOD::gFexJetRoIAuxContainer > gBlockAuxContainer = std::make_unique<xAOD::gFexJetRoIAuxContainer> ();
236 gBlockContainer->setStore(gBlockAuxContainer.get());
238 std::unique_ptr< xAOD::gFexJetRoIContainer > gJetContainer = std::make_unique<xAOD::gFexJetRoIContainer> ();
239 std::unique_ptr< xAOD::gFexJetRoIAuxContainer > gJetAuxContainer = std::make_unique<xAOD::gFexJetRoIAuxContainer> ();
240 gJetContainer->setStore(gJetAuxContainer.get());
243 std::unique_ptr< xAOD::gFexGlobalRoIContainer > gScalarEJwojContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> ();
244 std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > gScalarEJwojAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> ();
245 gScalarEJwojContainer->setStore(gScalarEJwojAuxContainer.get());
247 std::unique_ptr< xAOD::gFexGlobalRoIContainer > gMETComponentsJwojContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> ();
248 std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > gMETComponentsJwojAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> ();
249 gMETComponentsJwojContainer->setStore(gMETComponentsJwojAuxContainer.get());
251 std::unique_ptr< xAOD::gFexGlobalRoIContainer > gMHTComponentsJwojContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> ();
252 std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > gMHTComponentsJwojAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> ();
253 gMHTComponentsJwojContainer->setStore(gMHTComponentsJwojAuxContainer.get());
255 std::unique_ptr< xAOD::gFexGlobalRoIContainer > gMSTComponentsJwojContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> ();
256 std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > gMSTComponentsJwojAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> ();
257 gMSTComponentsJwojContainer->setStore(gMSTComponentsJwojAuxContainer.get());
260 std::unique_ptr< xAOD::gFexGlobalRoIContainer > gMETComponentsNoiseCutContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> ();
261 std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > gMETComponentsNoiseCutAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> ();
262 gMETComponentsNoiseCutContainer->setStore(gMETComponentsNoiseCutAuxContainer.get());
264 std::unique_ptr< xAOD::gFexGlobalRoIContainer > gMETComponentsRmsContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> ();
265 std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > gMETComponentsRmsAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> ();
266 gMETComponentsRmsContainer->setStore(gMETComponentsRmsAuxContainer.get());
268 std::unique_ptr< xAOD::gFexGlobalRoIContainer > gScalarENoiseCutContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> ();
269 std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > gScalarENoiseCutAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> ();
270 gScalarENoiseCutContainer->setStore(gScalarENoiseCutAuxContainer.get());
272 std::unique_ptr< xAOD::gFexGlobalRoIContainer > gScalarERmsContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> ();
273 std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > gScalarERmsAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> ();
274 gScalarERmsContainer->setStore(gScalarERmsAuxContainer.get());
281 auto & thr_gJ = l1Menu->thrExtraInfo().gJ();
282 auto & thr_gLJ = l1Menu->thrExtraInfo().gLJ();
283 auto & thr_gXE = l1Menu->thrExtraInfo().gXE();
284 auto & thr_gTE = l1Menu->thrExtraInfo().gTE();
286 int gJ_scale = thr_gJ.resolutionMeV();
287 int gLJ_scale = thr_gLJ.resolutionMeV();
288 int gXE_scale = thr_gXE.resolutionMeV();
289 int gTE_scale = thr_gTE.resolutionMeV();
293 for(
auto tob : allgRhoTobs){
297 for(
auto tob : allgBlockTobs){
302 for(
auto tob : allgJetTobs){
307 for(
auto tob : allgScalarEJwojTobs){
311 for(
auto tob : allgMETComponentsJwojTobs){
315 for(
auto tob : allgMHTComponentsJwojTobs){
319 for(
auto tob : allgMSTComponentsJwojTobs){
324 for(
auto tob : allgMETComponentsNoiseCutTobs){
328 for(
auto tob : allgMETComponentsRmsTobs){
332 for(
auto tob : allgScalarENoiseCutTobs){
336 for(
auto tob : allgScalarERmsTobs){
343 ATH_CHECK(outputgFexRhoHandle.
record(std::move(gRhoContainer),std::move(gRhoAuxContainer)));
346 ATH_MSG_DEBUG(
" write: " << outputgFexBlockHandle.
key() <<
" = " <<
"..." );
347 ATH_CHECK(outputgFexBlockHandle.
record(std::move(gBlockContainer),std::move(gBlockAuxContainer)));
351 ATH_CHECK(outputgFexJetHandle.
record(std::move(gJetContainer),std::move(gJetAuxContainer)));
354 ATH_MSG_DEBUG(
" write: " << outputgScalarEJwojHandle.
key() <<
" = " <<
"..." );
355 ATH_CHECK(outputgScalarEJwojHandle.
record(std::move(gScalarEJwojContainer),std::move(gScalarEJwojAuxContainer)));
358 ATH_MSG_DEBUG(
" write: " << outputgMETComponentsJwojHandle.
key() <<
" = " <<
"..." );
359 ATH_CHECK(outputgMETComponentsJwojHandle.
record(std::move(gMETComponentsJwojContainer),std::move(gMETComponentsJwojAuxContainer)));
362 ATH_MSG_DEBUG(
" write: " << outputgMHTComponentsJwojHandle.
key() <<
" = " <<
"..." );
363 ATH_CHECK(outputgMHTComponentsJwojHandle.
record(std::move(gMHTComponentsJwojContainer),std::move(gMHTComponentsJwojAuxContainer)));
366 ATH_MSG_DEBUG(
" write: " << outputgMSTComponentsJwojHandle.
key() <<
" = " <<
"..." );
367 ATH_CHECK(outputgMSTComponentsJwojHandle.
record(std::move(gMSTComponentsJwojContainer),std::move(gMSTComponentsJwojAuxContainer)));
370 ATH_MSG_DEBUG(
" write: " << outputgMETComponentsNoiseCutHandle.
key() <<
" = " <<
"..." );
371 ATH_CHECK(outputgMETComponentsNoiseCutHandle.
record(std::move(gMETComponentsNoiseCutContainer),std::move(gMETComponentsNoiseCutAuxContainer)));
374 ATH_MSG_DEBUG(
" write: " << outputgMETComponentsRmsHandle.
key() <<
" = " <<
"..." );
375 ATH_CHECK(outputgMETComponentsRmsHandle.
record(std::move(gMETComponentsRmsContainer),std::move(gMETComponentsRmsAuxContainer)));
378 ATH_MSG_DEBUG(
" write: " << outputgScalarENoiseCutHandle.
key() <<
" = " <<
"..." );
379 ATH_CHECK(outputgScalarENoiseCutHandle.
record(std::move(gScalarENoiseCutContainer),std::move(gScalarENoiseCutAuxContainer)));
382 ATH_MSG_DEBUG(
" write: " << outputgScalarERmsHandle.
key() <<
" = " <<
"..." );
383 ATH_CHECK(outputgScalarERmsHandle.
record(std::move(gScalarERmsContainer),std::move(gScalarERmsAuxContainer)));
385 return StatusCode::SUCCESS;