86 {
87
88 const EventContext& ctx = Gaudi::Hive::currentContext();
89
91 if(!this_gTowerContainer.isValid()){
93 return StatusCode::FAILURE;
94 }
95
96
104
105
106
107
108
109 int fcalEta = 19; int fcalPhi = 0; int fcalMod = 900000;
111 int transfcalEta = 15; int transfcalPhi = 0; int transfcalMod = 700000;
113 int emecEta = 11; int emecPhi = 0; int emecMod = 500000;
115 int transembEta = 7; int transembPhi = 0; int transembMod = 300000;
117 int embEta = 6; int embPhi = 0; int embMod = 100000;
119
120
121 int embposEta = 0; int embposPhi = 0; int embposMod = 200000;
123 int transembposEta = 7; int transembposPhi = 0; int transembposMod = 400000;
125 int emecposEta = 8; int emecposPhi = 0; int emecposMod = 600000;
127 int transfcalposEta = 12; int transfcalposPhi = 0; int transfcalposMod = 800000;
129 int fcalposEta = 16; int fcalposPhi = 0; int fcalposMod = 1000000;
131
132
133
134
135
138
139 int rows = tmp_gTowersIDs_subset.size();
140 int cols = tmp_gTowersIDs_subset[0].size();
141
142
143 for(int thisCol=0; thisCol<4; thisCol++){
144 for(
int thisRow=0; thisRow<
rows/2; thisRow++){
146 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
147 }
148 }
149
150
151 for(int thisCol=4; thisCol<8; thisCol++){
152 for(
int thisRow=0; thisRow<
rows; thisRow++){
154 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
155 }
156 }
157
158
159 for(int thisCol=8; thisCol<12; thisCol++){
160 for(
int thisRow=0; thisRow<
rows; thisRow++){
162 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
163 }
164 }
165
166
167 for(
int thisRow = 0; thisRow <
rows; thisRow++){
168 int thisCol = 12;
169 int towerid = initialTRANSEMB + thisRow;
170 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
171 }
172
173
174 for(int thisCol = 13; thisCol < 20; thisCol++){
175 for(
int thisRow=0; thisRow<
rows; thisRow++){
177 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
178 }
179 }
180
181
182 for(int thisCol = 20; thisCol < 27; thisCol++){
183 for(
int thisRow=0; thisRow<
rows; thisRow++){
185 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
186 }
187 }
188
189
190 for(
int thisRow = 0; thisRow <
rows; thisRow++){
191 int thisCol = 27;
192 int towerid = initialposTRANSEMB + thisRow;
193 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
194 }
195
196 for(int thisCol=28; thisCol<32; thisCol++){
197 for(
int thisRow=0; thisRow<
rows; thisRow++){
199 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
200 }
201 }
202
203
204 for(int thisCol=32; thisCol<36; thisCol++){
205 for(
int thisRow=0; thisRow<
rows; thisRow++){
207 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
208 }
209 }
210
211
212 for(
int thisCol=36; thisCol<
cols; thisCol++){
213 for(
int thisRow=0; thisRow<
rows/2; thisRow++){
215 tmp_gTowersIDs_subset[thisRow][thisCol] = towerid;
216 }
217 }
218
219 if(false){
221 for (int thisRow=rows-1; thisRow>=0; thisRow--){
222 for (
int thisCol=0; thisCol<
cols; thisCol++){
223 int tmptowerid = tmp_gTowersIDs_subset[thisRow][thisCol];
224 const float tmptowereta = this_gTowerContainer->findTower(tmptowerid)->eta();
225 const float tmptowerphi = this_gTowerContainer->findTower(tmptowerid)->phi();
226 if(thisCol != cols-1){
ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowerphi <<
"][" << tmptowereta <<
"]) "); }
227 else {
ATH_MSG_DEBUG(
"| " << tmptowerid <<
"([" << tmptowereta <<
"][" << tmptowerphi <<
"]) |"); }
228 }
229 }
230 }
231
233
237
242
247
249
250
254
258
262
263
267
271
275
279
280
284
288
292
296
297
298
299 SG::ReadHandle<TrigConf::L1Menu> l1Menu (
m_l1MenuKey,ctx);
301
302 auto & thr_gJ = l1Menu->thrExtraInfo().gJ();
303 auto & thr_gLJ = l1Menu->thrExtraInfo().gLJ();
304 auto & thr_gXE = l1Menu->thrExtraInfo().gXE();
305 auto & thr_gTE = l1Menu->thrExtraInfo().gTE();
306
307 int gJ_scale = thr_gJ.resolutionMeV();
308 int gLJ_scale = thr_gLJ.resolutionMeV();
309 int gXE_scale = thr_gXE.resolutionMeV();
310 int gTE_scale = thr_gTE.resolutionMeV();
311
312
313
316 }
317
320 }
321
322
325 }
326
327
330 }
331
334 }
335
338 }
339
342 }
343
344
345
348 }
349
352 }
353
356 }
357
360 }
361
362
363 SG::WriteHandle<xAOD::gFexJetRoIContainer> outputgFexRhoHandle(
m_gFexRhoOutKey,ctx);
364 ATH_MSG_DEBUG(
" write: " << outputgFexRhoHandle.key() <<
" = " <<
"..." );
366
367 SG::WriteHandle<xAOD::gFexJetRoIContainer> outputgFexBlockHandle(
m_gFexBlockOutKey,ctx);
368 ATH_MSG_DEBUG(
" write: " << outputgFexBlockHandle.key() <<
" = " <<
"..." );
370
371 SG::WriteHandle<xAOD::gFexJetRoIContainer> outputgFexJetHandle(
m_gFexJetOutKey,ctx);
372 ATH_MSG_DEBUG(
" write: " << outputgFexJetHandle.key() <<
" = " <<
"..." );
374
375
376 SG::WriteHandle<xAOD::gFexGlobalRoIContainer> outputgScalarEJwojHandle(
m_gScalarEJwojOutKey,ctx);
377 ATH_MSG_DEBUG(
" write: " << outputgScalarEJwojHandle.key() <<
" = " <<
"..." );
379
381 ATH_MSG_DEBUG(
" write: " << outputgMETComponentsJwojHandle.key() <<
" = " <<
"..." );
383
385 ATH_MSG_DEBUG(
" write: " << outputgMHTComponentsJwojHandle.key() <<
" = " <<
"..." );
387
389 ATH_MSG_DEBUG(
" write: " << outputgMSTComponentsJwojHandle.key() <<
" = " <<
"..." );
391
392
394 ATH_MSG_DEBUG(
" write: " << outputgMETComponentsNoiseCutHandle.key() <<
" = " <<
"..." );
396
398 ATH_MSG_DEBUG(
" write: " << outputgMETComponentsRmsHandle.key() <<
" = " <<
"..." );
400
402 ATH_MSG_DEBUG(
" write: " << outputgScalarENoiseCutHandle.key() <<
" = " <<
"..." );
404
405 SG::WriteHandle<xAOD::gFexGlobalRoIContainer> outputgScalarERmsHandle(
m_gScalarERmsOutKey,ctx);
406 ATH_MSG_DEBUG(
" write: " << outputgScalarERmsHandle.key() <<
" = " <<
"..." );
408
409
410 return StatusCode::SUCCESS;
411 }
#define ATH_CHECK
Evaluate an expression and check for errors.
static constexpr int centralNphi
static constexpr int forwardNphi
std::vector< uint32_t > m_allgRhoTobs
virtual StatusCode fillgMETComponentsRmsEDM(uint32_t tobWord, int scale1, int scale2) override
std::vector< uint32_t > m_allgMETComponentsNoiseCutTobs
std::vector< uint32_t > m_allgMSTComponentsJwojTobs
std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gMETComponentsNoiseCutContainer
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
SG::ReadHandleKey< LVL1::gTowerContainer > m_gTowerContainerSGKey
SG::WriteHandleKey< xAOD::gFexJetRoIContainer > m_gFexJetOutKey
SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gMETComponentsJwojOutKey
std::vector< uint32_t > m_allgScalarENoiseCutTobs
SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gMETComponentsNoiseCutOutKey
virtual StatusCode fillgMHTComponentsJwojEDM(uint32_t tobWord, int scale1, int scale2) override
std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gMETComponentsJwojAuxContainer
std::unique_ptr< xAOD::gFexJetRoIAuxContainer > m_gJetAuxContainer
SG::WriteHandleKey< xAOD::gFexJetRoIContainer > m_gFexRhoOutKey
std::unique_ptr< xAOD::gFexJetRoIAuxContainer > m_gRhoAuxContainer
SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gMHTComponentsJwojOutKey
std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gScalarENoiseCutContainer
std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gMETComponentsRmsContainer
std::vector< uint32_t > m_allgMHTComponentsJwojTobs
std::vector< uint32_t > m_allgMETComponentsRmsTobs
std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gMSTComponentsJwojContainer
virtual StatusCode fillgRhoEDM(uint32_t tobWord, int scale) override
Create and fill a new gFexJetRoI object, and return a pointer to it.
std::vector< uint32_t > m_allgBlockTobs
std::vector< uint32_t > m_allgMETComponentsJwojTobs
SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gScalarEJwojOutKey
virtual StatusCode fillgScalarEJwojEDM(uint32_t tobWord, int scale1, int scale2) override
SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gScalarERmsOutKey
virtual StatusCode fillgScalarERmsEDM(uint32_t tobWord, int scale1, int scale2) override
SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gMETComponentsRmsOutKey
std::vector< uint32_t > m_allgJetTobs
SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gScalarENoiseCutOutKey
virtual StatusCode fillgScalarENoiseCutEDM(uint32_t tobWord, int scale1, int scale2) override
std::unique_ptr< xAOD::gFexJetRoIContainer > m_gJetContainer
std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gScalarEJwojContainer
std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gScalarEJwojAuxContainer
std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gMHTComponentsJwojContainer
std::unique_ptr< xAOD::gFexJetRoIContainer > m_gBlockContainer
virtual StatusCode fillgJetEDM(uint32_t tobWord, int scale) override
virtual StatusCode fillgMETComponentsNoiseCutEDM(uint32_t tobWord, int scale1, int scale2) override
std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gMETComponentsRmsAuxContainer
std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gScalarENoiseCutAuxContainer
std::vector< uint32_t > m_allgScalarERmsTobs
std::vector< int32_t > m_allgScalarEJwojTobs
std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gScalarERmsAuxContainer
virtual StatusCode fillgBlockEDM(uint32_t tobWord, int scale) override
std::unique_ptr< xAOD::gFexJetRoIAuxContainer > m_gBlockAuxContainer
SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gMSTComponentsJwojOutKey
std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gMETComponentsNoiseCutAuxContainer
virtual StatusCode fillgMETComponentsJwojEDM(uint32_t tobWord, int scale1, int scale2) override
SG::WriteHandleKey< xAOD::gFexJetRoIContainer > m_gFexBlockOutKey
virtual StatusCode fillgMSTComponentsJwojEDM(uint32_t tobWord, int scale1, int scale2) override
std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gMETComponentsJwojContainer
std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gScalarERmsContainer
std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gMHTComponentsJwojAuxContainer
virtual int calcTowerID(int eta, int phi, int nphi, int mod) const override
std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gMSTComponentsJwojAuxContainer
ToolHandle< IgFEXSim > m_gFEXSimTool
std::unique_ptr< xAOD::gFexJetRoIContainer > m_gRhoContainer
Internal data.
std::array< std::array< int, 40 >, 32 > gTowersIDs