ATLAS Offline Software
gFEXSim.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 //***************************************************************************
5 // gFEXSim - Simulation of the gFEX module
6 // -------------------
7 // begin : 01 04 2021
8 // email : cecilia.tosciri@cern.ch
9 //***************************************************************************
10 
11 #include "L1CaloFEXSim/gFEXSim.h"
12 #include "L1CaloFEXSim/gTower.h"
13 #include "L1CaloFEXSim/gFEXFPGA.h"
18 
19 namespace LVL1 {
20 
21  gFEXSim::gFEXSim(const std::string& type,const std::string& name,const IInterface* parent):
23  {
24  declareInterface<IgFEXSim>(this);
25  }
26 
27 
29  {
30  int rows = m_gTowersIDs.size();
31  int cols = m_gTowersIDs[0].size();
32 
33  for (int i=0; i<rows; i++){
34  for (int j=0; j<cols; j++){
35  m_gTowersIDs[i][j] = 0;
36  }
37  }
38 
39  }
40 
43  }
44 
46  ATH_CHECK( m_gFEXFPGA_Tool.retrieve() );
47  ATH_CHECK( m_gFEXJetAlgoTool.retrieve() );
48  ATH_CHECK( m_gFEXJwoJAlgoTool.retrieve() );
49  ATH_CHECK( m_gFEXaltMetAlgoTool.retrieve() );
51  ATH_CHECK(m_gTowersWriteKey.initialize());
52  return StatusCode::SUCCESS;
53  }
54 
56 
57  }
58 
59 StatusCode gFEXSim::executegFEXSim(const gTowersIDs& tmp_gTowersIDs_subset, gFEXOutputCollection* gFEXOutputs){
60 
61  // Container to save gTowers
63  ATH_CHECK(gTowersContainer.record(std::make_unique<xAOD::gFexTowerContainer>(), std::make_unique<xAOD::gFexTowerAuxContainer>()));
64  ATH_MSG_DEBUG("Recorded gFexTriggerTower container with key " << gTowersContainer.key());
65 
66  int rows = tmp_gTowersIDs_subset.size();
67  int cols = tmp_gTowersIDs_subset[0].size();
68 
69  std::copy(&tmp_gTowersIDs_subset[0][0], &tmp_gTowersIDs_subset[0][0]+(rows*cols),&m_gTowersIDs[0][0]);
70 
71  gTowersType Atwr = {{{0}}};
72  gTowersType Btwr = {{{0}}};
73  gTowersType Ctwr = {{{0}}};
74 
75  gTowersType Atwr50 = {{{0}}};
76  gTowersType Btwr50 = {{{0}}};
77  gTowersType Ctwr50 = {{{0}}};
78 
79  gTowersType Asat = {{{0}}};
80  gTowersType Bsat = {{{0}}};
81  gTowersType Csat = {{{0}}};
82 
83 
84  //FPGA A----------------------------------------------------------------------------------------------------------------------------------------------
85  gTowersCentral tmp_gTowersIDs_subset_centralFPGA;
86  memset(&tmp_gTowersIDs_subset_centralFPGA, 0, sizeof tmp_gTowersIDs_subset_centralFPGA);
87  for (int myrow = 0; myrow<FEXAlgoSpaceDefs::centralNphi; myrow++){
88  for (int mycol = 0; mycol<12; mycol++){
89  tmp_gTowersIDs_subset_centralFPGA[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol+8];
90  }
91  }
92  ATH_CHECK(m_gFEXFPGA_Tool->init(0));
93  m_gFEXFPGA_Tool->FillgTowerEDMCentral(gTowersContainer, tmp_gTowersIDs_subset_centralFPGA, Atwr, Atwr50, Asat);
94  m_gFEXFPGA_Tool->reset();
95 
96  //FPGA A----------------------------------------------------------------------------------------------------------------------------------------------
97 
98  //FPGA B----------------------------------------------------------------------------------------------------------------------------------------------
99  gTowersCentral tmp_gTowersIDs_subset_centralFPGA_B;
100  memset(&tmp_gTowersIDs_subset_centralFPGA_B, 0, sizeof tmp_gTowersIDs_subset_centralFPGA_B);
101  for (int myrow = 0; myrow<FEXAlgoSpaceDefs::centralNphi; myrow++){
102  for (int mycol = 0; mycol<12; mycol++){
103  tmp_gTowersIDs_subset_centralFPGA_B[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol+20];
104  }
105  }
106  ATH_CHECK(m_gFEXFPGA_Tool->init(1));
107  m_gFEXFPGA_Tool->FillgTowerEDMCentral(gTowersContainer, tmp_gTowersIDs_subset_centralFPGA_B, Btwr, Btwr50, Bsat);
108  m_gFEXFPGA_Tool->reset();
109 
110  //FPGA B----------------------------------------------------------------------------------------------------------------------------------------------
111 
112 
113  //FPGA C ----------------------------------------------------------------------------------------------------------------------------------------------
114 
115  // C-N
116  //Use a matrix with 32 rows, even if FPGA-N (negative) also deals with regions of 16 bins in phi (those connected to FCAL).
117  //We have 4 columns with 32 rows and 4 columns with 16 rows for each FPGA-C.
118  //So we use a matrix 32x8 but we fill only half of it in the region 3.3<|eta|<4.8.
119  gTowersForward tmp_gTowersIDs_subset_forwardFPGA_N;
120  memset(&tmp_gTowersIDs_subset_forwardFPGA_N, 0, sizeof tmp_gTowersIDs_subset_forwardFPGA_N);
121  for (int myrow = 0; myrow<FEXAlgoSpaceDefs::forwardNphi; myrow++){
122  for (int mycol = 0; mycol<4; mycol++){
123  tmp_gTowersIDs_subset_forwardFPGA_N[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol];
124  }
125  }
126  for (int myrow = 0; myrow<FEXAlgoSpaceDefs::centralNphi; myrow++){
127  for (int mycol = 4; mycol<8; mycol++){
128  tmp_gTowersIDs_subset_forwardFPGA_N[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol];
129  }
130  }
131 
132  // C-P
133  //Use a matrix with 32 rows, even if FPGA-C (positive) also deals with regions of 16 bins in phi (those connected to FCAL).
134  //We have 4 columns with 32 rows and 4 columns with 16 rows for each FPGA-C.
135  //So we use a matrix 32x8 but we fill only half of it in the region 3.3<|eta|<4.8.
136  gTowersForward tmp_gTowersIDs_subset_forwardFPGA_P;
137  memset(&tmp_gTowersIDs_subset_forwardFPGA_P, 0, sizeof tmp_gTowersIDs_subset_forwardFPGA_P);
138  for (int myrow = 0; myrow<FEXAlgoSpaceDefs::centralNphi; myrow++){
139  for (int mycol = 0; mycol<4; mycol++){
140  tmp_gTowersIDs_subset_forwardFPGA_P[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol+32];
141  }
142  }
143  for (int myrow = 0; myrow<FEXAlgoSpaceDefs::forwardNphi; myrow++){
144  for (int mycol = 4; mycol<8; mycol++){
145  tmp_gTowersIDs_subset_forwardFPGA_P[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol+32];
146  }
147  }
148 
149  ATH_CHECK(m_gFEXFPGA_Tool->init(2));
150  m_gFEXFPGA_Tool->FillgTowerEDMForward(gTowersContainer, tmp_gTowersIDs_subset_forwardFPGA_N, tmp_gTowersIDs_subset_forwardFPGA_P, Ctwr, Ctwr50, Csat);
151  m_gFEXFPGA_Tool->reset();
152 
153  for(int irow=0; irow<32;irow++){
154  if(Ctwr[irow][0] < 0x0B0 ) Ctwr[irow][0] = 0;
155  if(Ctwr[irow][11] < 0x0B0 ) Ctwr[irow][11] = 0;
156  }
157 
158  //FPGA C----------------------------------------------------------------------------------------------------------------------------------------------
159 
160  // Retrieve the L1 menu configuration
162  ATH_CHECK(l1Menu.isValid());
163 
164  //Parameters related to gLJ (large-R jet objects - gJet)
165  auto & thr_gLJ = l1Menu->thrExtraInfo().gLJ();
166  int gLJ_seedThrA = 0;
167  int gLJ_seedThrB = 0;
168  int gLJ_seedThrC = 0;
169  gLJ_seedThrA = thr_gLJ.seedThrCounts('A'); //defined in GeV by default
170  gLJ_seedThrB = thr_gLJ.seedThrCounts('B'); //defined in GeV by default
171  gLJ_seedThrC = thr_gLJ.seedThrCounts('C'); //defined in GeV by default
172 
173  int gLJ_ptMinToTopoCounts1 = 0;
174  int gLJ_ptMinToTopoCounts2 = 0;
175  gLJ_ptMinToTopoCounts1 = thr_gLJ.ptMinToTopoCounts(1);
176  gLJ_ptMinToTopoCounts2 = thr_gLJ.ptMinToTopoCounts(2);
177  float gLJ_rhoMaxA = 0;
178  float gLJ_rhoMaxB = 0;
179  float gLJ_rhoMaxC = 0;
180 
181  gLJ_rhoMaxA = (thr_gLJ.rhoTowerMax('A')*1000)/50;//Values are given in GeV, need to be converted with 50MeV scale to be used in PU calculation
182  gLJ_rhoMaxB = (thr_gLJ.rhoTowerMax('B')*1000)/50;//Values are given in GeV, need to be converted with 50MeV scale to be used in PU calculation
183  gLJ_rhoMaxC = (thr_gLJ.rhoTowerMax('C')*1000)/50;//Values are given in GeV, need to be converted with 50MeV scale to be used in PU calculation
184 
185 
186  //Parameters related to gJ (small-R jet objects - gBlock)
187  auto & thr_gJ = l1Menu->thrExtraInfo().gJ();
188  int gJ_ptMinToTopoCounts1 = 0;
189  int gJ_ptMinToTopoCounts2 = 0;
190  gJ_ptMinToTopoCounts1 = thr_gJ.ptMinToTopoCounts(1);
191  gJ_ptMinToTopoCounts2 = thr_gJ.ptMinToTopoCounts(2);
192 
193 
194  int pucA = 0;
195  int pucB = 0;
196  int pucC = 0;
197  //note that jetThreshold is not a configurable parameter in firmware, it is used to check that jet values are positive
198  int jetThreshold = FEXAlgoSpaceDefs::jetThr; //this threshold is set by the online software
199 
200  if (FEXAlgoSpaceDefs::ENABLE_PUC == true){
201  m_gFEXJetAlgoTool->pileUpCalculation(Atwr50, gLJ_rhoMaxA, 1, pucA);
202  m_gFEXJetAlgoTool->pileUpCalculation(Btwr50, gLJ_rhoMaxB, 1, pucB);
203  m_gFEXJetAlgoTool->pileUpCalculation(Ctwr50, gLJ_rhoMaxC, 1, pucC);
204  }
205 
206 
207 
208  // The output TOBs, to be filled by the gFEXJetAlgoTool
209  std::array<uint32_t, 7> ATOB1_dat = {0};
210  std::array<uint32_t, 7> ATOB2_dat = {0};
211  std::array<uint32_t, 7> BTOB1_dat = {0};
212  std::array<uint32_t, 7> BTOB2_dat = {0};
213  std::array<uint32_t, 7> CTOB1_dat = {0};
214  std::array<uint32_t, 7> CTOB2_dat = {0};
215 
216 
217  // Pass the energy matrices to the algo tool, and run the algorithms
218  auto tobs_v = m_gFEXJetAlgoTool->largeRfinder(Atwr, Btwr, Ctwr, Asat, Bsat, Csat, pucA, pucB, pucC,
219  gLJ_seedThrA, gLJ_seedThrB, gLJ_seedThrC, gJ_ptMinToTopoCounts1, gJ_ptMinToTopoCounts2,
220  jetThreshold, gLJ_ptMinToTopoCounts1, gLJ_ptMinToTopoCounts2,
221  ATOB1_dat, ATOB2_dat,
222  BTOB1_dat, BTOB2_dat,
223  CTOB1_dat, CTOB2_dat);
224 
225  m_gRhoTobWords.resize(3);
226  m_gBlockTobWords.resize(12);
227  m_gJetTobWords.resize(6);
228 
229  m_gRhoTobWords[0] = ATOB2_dat[0];//Pile up correction A
230  m_gRhoTobWords[1] = BTOB2_dat[0];//Pile up correction B
231  m_gRhoTobWords[2] = CTOB2_dat[0];//Pile up correction C
232 
233  //Placing the gBlock TOBs into a dedicated array
234  m_gBlockTobWords[0] = ATOB1_dat[1];//leading gBlock in FPGA A, eta bins (0--5)
235  m_gBlockTobWords[1] = ATOB2_dat[1];//leading gBlock in FPGA A, eta bins (6--11)
236  m_gBlockTobWords[2] = BTOB1_dat[1];//leading gBlock in FPGA B, eta bins (0--5)
237  m_gBlockTobWords[3] = BTOB2_dat[1];//leading gBlock in FPGA B, eta bins (6--11)
238 
239  m_gBlockTobWords[4] = ATOB1_dat[2];//subleading gBlock in FPGA A, eta bins (0--5)
240  m_gBlockTobWords[5] = ATOB2_dat[2];//subleading gBlock in FPGA A, eta bins (6--11)
241  m_gBlockTobWords[6] = BTOB1_dat[2];//subleading gBlock in FPGA B, eta bins (0--5)
242  m_gBlockTobWords[7] = BTOB2_dat[2];//subleading gBlock in FPGA B, eta bins (6--11)
243 
244  m_gBlockTobWords[8] = CTOB1_dat[1];//leading gBlock in FPGA C, eta negative
245  m_gBlockTobWords[9] = CTOB2_dat[1];//leading gBlock in FPGA C, eta positive
246  m_gBlockTobWords[10] = CTOB1_dat[2];//sub-leading gBlock in FPGA C, eta negative
247  m_gBlockTobWords[11] = CTOB2_dat[2];//sub-leading gBlock in FPGA C, eta positive
248 
249  //Placing the gJet TOBs into a dedicated array
250  m_gJetTobWords[0] = ATOB1_dat[3];//leading gJet in FPGA A, eta bins (0--5)
251  m_gJetTobWords[1] = ATOB2_dat[3];//leading gJet in FPGA A, eta bins (6--11)
252  m_gJetTobWords[2] = BTOB1_dat[3];//leading gJet in FPGA B, eta bins (0--5)
253  m_gJetTobWords[3] = BTOB2_dat[3];//leading gJet in FPGA B, eta bins (6--11)
254  m_gJetTobWords[4] = CTOB1_dat[3];//leading gJet in FPGA C negative
255  m_gJetTobWords[5] = CTOB2_dat[3];//leading gJet in FPGA C positive
256 
257 
258  // Use the gFEXJetAlgoTool
259  std::array<uint32_t, 4> outJwojTOB = {0};
260  std::array<uint32_t, 4> outAltMetTOB = {0};
261 
262  //Parameters related to gXE (MET objects, both JwoJ and alternative MET calculation)
263  auto & thr_gXE = l1Menu->thrExtraInfo().gXE();
264  int gXE_seedThrA = 0;
265  int gXE_seedThrB = 0;
266  int gXE_seedThrC = 0;
267  gXE_seedThrA = thr_gXE.seedThr('A')/0.800; //defined in GeV by default, with value 24
268  gXE_seedThrB = thr_gXE.seedThr('B')/0.800; //defined in GeV by default, with value 24
269  gXE_seedThrC = thr_gXE.seedThr('C')/0.800; //defined in GeV by default, with value 24
270 
271 
272  int aFPGA_A = thr_gXE.JWOJ_param('A','a');// 1003
273  int bFPGA_A = thr_gXE.JWOJ_param('A','b');// 409
274  int aFPGA_B = thr_gXE.JWOJ_param('B','a');// 1003
275  int bFPGA_B = thr_gXE.JWOJ_param('B','b');// 409
276  int aFPGA_C = thr_gXE.JWOJ_param('C','a');// 1003
277  int bFPGA_C = thr_gXE.JWOJ_param('C','b');// 409
278 
279  //Set constants for JwoJ and run the algorithm
280  m_gFEXJwoJAlgoTool->setAlgoConstant(aFPGA_A, bFPGA_A,
281  aFPGA_B, bFPGA_B,
282  aFPGA_C, bFPGA_C,
283  gXE_seedThrA, gXE_seedThrB, gXE_seedThrC);
284 
285  auto global_tobs = m_gFEXJwoJAlgoTool->jwojAlgo(Atwr, Btwr, Ctwr, outJwojTOB);
286 
287  m_gScalarEJwojTobWords.resize(1);
291 
292 
293  //Placing the global TOBs into a dedicated array
294  m_gScalarEJwojTobWords[0] = outJwojTOB[0];//
295  m_gMETComponentsJwojTobWords[0] = outJwojTOB[1];//
296  m_gMHTComponentsJwojTobWords[0] = outJwojTOB[2];//
297  m_gMSTComponentsJwojTobWords[0] = outJwojTOB[3];//
298 
299 
300  //Set constants for noise cut and rho+RMS and run the algorithms
301  std::vector<int> thr_A (12, 0);//To be retrieved from COOL database in the future
302  std::vector<int> thr_B (12, 0);//To be retrieved from COOL database in the future
303 
304  m_gFEXaltMetAlgoTool->setAlgoConstant(std::move(thr_A) , std::move(thr_B), 10000/200);
305 
306  m_gFEXaltMetAlgoTool->altMetAlgo(Atwr, Btwr, outAltMetTOB);
307 
309  m_gMETComponentsRmsTobWords.resize(1);
310  m_gScalarENoiseCutTobWords.resize(1);
311  m_gScalarERmsTobWords.resize(1);
312 
313 
314  //Placing the global TOBs into a dedicated array
315  m_gMETComponentsNoiseCutTobWords[0] = outAltMetTOB[0];//
316  m_gMETComponentsRmsTobWords[0] = outAltMetTOB[1];//
317  m_gScalarENoiseCutTobWords[0] = outAltMetTOB[2];//
318  m_gScalarERmsTobWords[0] = outAltMetTOB[3];//
319 
320  for (int i = 0; i <14; i++){
321  gFEXOutputs->addJetTob(tobs_v[i]->getWord());
322  gFEXOutputs->addValueJet("EtaJet", tobs_v[i]->getEta());
323  gFEXOutputs->addValueJet("PhiJet", tobs_v[i]->getPhi());
324  gFEXOutputs->addValueJet("ETJet", tobs_v[i]->getET());
325  gFEXOutputs->addValueJet("StatusJet", tobs_v[i]->getStatus());
326  gFEXOutputs->addValueJet("TobIDJet", tobs_v[i]->getTobID());
327  gFEXOutputs->fillJet();
328 
329  }
330 
331  for (int i = 0; i <4; i++){
332  gFEXOutputs->addGlobalTob(global_tobs[i]->getWord());
333  gFEXOutputs->addValueGlobal("GlobalQuantity1", global_tobs[i]->getQuantity1());
334  gFEXOutputs->addValueGlobal("GlobalQuantity2", global_tobs[i]->getQuantity2());
335  gFEXOutputs->addValueGlobal("SaturationGlobal", global_tobs[i]->getSaturation());
336  gFEXOutputs->addValueGlobal("TobIDGlobal", global_tobs[i]->getTobID());
337  gFEXOutputs->addValueGlobal("GlobalStatus1", global_tobs[i]->getStatus1());
338  gFEXOutputs->addValueGlobal("GlobalStatus2", global_tobs[i]->getStatus2());
339  gFEXOutputs->fillGlobal();
340 
341  }
342 
343  return StatusCode::SUCCESS;
344 
345 }
346 
347 
348 std::vector<uint32_t> gFEXSim::getgRhoTOBs() const
349 {
350  return m_gRhoTobWords;
351 }
352 
353 std::vector<uint32_t> gFEXSim::getgBlockTOBs() const
354 {
355  return m_gBlockTobWords;
356 }
357 
358 std::vector<uint32_t> gFEXSim::getgJetTOBs() const
359 {
360  return m_gJetTobWords;
361 }
362 
363 std::vector<uint32_t> gFEXSim::getgScalarEJwojTOBs() const
364 {
365  return m_gScalarEJwojTobWords;
366 }
367 
368 std::vector<uint32_t> gFEXSim::getgMETComponentsJwojTOBs() const
369 {
371 }
372 
373 std::vector<uint32_t> gFEXSim::getgMHTComponentsJwojTOBs() const
374 {
376 }
377 
378 std::vector<uint32_t> gFEXSim::getgMSTComponentsJwojTOBs() const
379 {
381 }
382 
383 std::vector<uint32_t> gFEXSim::getgMETComponentsNoiseCutTOBs() const
384 {
386 }
387 
388 std::vector<uint32_t> gFEXSim::getgMETComponentsRmsTOBs() const
389 {
391 }
392 
393 std::vector<uint32_t> gFEXSim::getgScalarENoiseCutTOBs() const
394 {
396 }
397 
398 std::vector<uint32_t> gFEXSim::getgScalarERmsTOBs() const
399 {
400  return m_gScalarERmsTobWords;
401 }
402 
403 
404 } // end of namespace bracket
LVL1::gFEXOutputCollection::fillJet
void fillJet()
Definition: gFEXOutputCollection.cxx:42
LVL1::FEXAlgoSpaceDefs::forwardNphi
constexpr static int forwardNphi
Definition: FEXAlgoSpaceDefs.h:149
LVL1::gFEXSim::getgScalarENoiseCutTOBs
virtual std::vector< uint32_t > getgScalarENoiseCutTOBs() const override
Definition: gFEXSim.cxx:393
LVL1::gFEXSim::getgMETComponentsNoiseCutTOBs
virtual std::vector< uint32_t > getgMETComponentsNoiseCutTOBs() const override
Definition: gFEXSim.cxx:383
LVL1::FEXAlgoSpaceDefs::centralNphi
constexpr static int centralNphi
Definition: FEXAlgoSpaceDefs.h:148
LVL1::gFEXSim::m_gMETComponentsNoiseCutTobWords
std::vector< uint32_t > m_gMETComponentsNoiseCutTobWords
Definition: gFEXSim.h:101
gFEXJetTOB.h
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
gTowerContainer.h
TrigConf::L1Menu::thrExtraInfo
const L1ThrExtraInfo & thrExtraInfo() const
Access to extra info for threshold types.
Definition: L1Menu.cxx:307
TrigConf::L1ThrExtraInfo::gXE
const L1ThrExtraInfo_gXE & gXE() const
Definition: L1ThrExtraInfo.cxx:178
gFEXOutputCollection.h
LVL1::gFEXSim::executegFEXSim
virtual StatusCode executegFEXSim(const gTowersIDs &tmp, gFEXOutputCollection *gFEXOutputs) override
Definition: gFEXSim.cxx:59
LVL1::gFEXSim::getgScalarERmsTOBs
virtual std::vector< uint32_t > getgScalarERmsTOBs() const override
Definition: gFEXSim.cxx:398
LVL1::gFEXSim::execute
virtual void execute() override
Definition: gFEXSim.cxx:55
LVL1::gFEXSim::m_gMSTComponentsJwojTobWords
std::vector< uint32_t > m_gMSTComponentsJwojTobWords
Definition: gFEXSim.h:99
LVL1::gFEXSim::m_gMETComponentsRmsTobWords
std::vector< uint32_t > m_gMETComponentsRmsTobWords
Definition: gFEXSim.h:103
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::gFEXSim::m_gJetTobWords
std::vector< uint32_t > m_gJetTobWords
Definition: gFEXSim.h:91
LVL1::gFEXSim::~gFEXSim
virtual ~gFEXSim()
Destructor.
Definition: gFEXSim.cxx:42
LVL1::gFEXSim::initialize
virtual StatusCode initialize() override
Definition: gFEXSim.cxx:45
LVL1::gFEXSim::m_l1MenuKey
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
Definition: gFEXSim.h:119
LVL1::gFEXSim::getgRhoTOBs
virtual std::vector< uint32_t > getgRhoTOBs() const override
Definition: gFEXSim.cxx:348
LVL1::gFEXSim::m_gScalarERmsTobWords
std::vector< uint32_t > m_gScalarERmsTobWords
Definition: gFEXSim.h:107
LVL1::gFEXSim::reset
virtual void reset() override
Definition: gFEXSim.cxx:28
LVL1::gFEXSim::getgMETComponentsJwojTOBs
virtual std::vector< uint32_t > getgMETComponentsJwojTOBs() const override
Definition: gFEXSim.cxx:368
LVL1::gFEXOutputCollection
Definition: gFEXOutputCollection.h:22
LVL1::gFEXSim::getgJetTOBs
virtual std::vector< uint32_t > getgJetTOBs() const override
Definition: gFEXSim.cxx:358
gFEXJetAlgo.h
LVL1::gFEXOutputCollection::addValueGlobal
void addValueGlobal(std::string key, float value)
Definition: gFEXOutputCollection.cxx:70
beamspotnt.cols
list cols
Definition: bin/beamspotnt.py:1114
LVL1::gFEXSim::getgMETComponentsRmsTOBs
virtual std::vector< uint32_t > getgMETComponentsRmsTOBs() const override
Definition: gFEXSim.cxx:388
LVL1::gFEXSim::getgMSTComponentsJwojTOBs
virtual std::vector< uint32_t > getgMSTComponentsJwojTOBs() const override
Definition: gFEXSim.cxx:378
TrigConf::L1ThrExtraInfo::gLJ
const L1ThrExtraInfo_gLJ & gLJ() const
Definition: L1ThrExtraInfo.cxx:163
lumiFormat.i
int i
Definition: lumiFormat.py:92
LVL1::gFEXSim::m_gRhoTobWords
std::vector< uint32_t > m_gRhoTobWords
Definition: gFEXSim.h:87
LVL1::gFEXSim::getgMHTComponentsJwojTOBs
virtual std::vector< uint32_t > getgMHTComponentsJwojTOBs() const override
Definition: gFEXSim.cxx:373
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LVL1::FEXAlgoSpaceDefs::jetThr
constexpr static int jetThr
Definition: FEXAlgoSpaceDefs.h:160
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::FEXAlgoSpaceDefs::ENABLE_PUC
constexpr static bool ENABLE_PUC
Definition: FEXAlgoSpaceDefs.h:167
gFEXFPGA.h
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LVL1::gFEXSim::getgBlockTOBs
virtual std::vector< uint32_t > getgBlockTOBs() const override
Definition: gFEXSim.cxx:353
beamspotnt.rows
list rows
Definition: bin/beamspotnt.py:1112
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
LVL1::gFEXOutputCollection::fillGlobal
void fillGlobal()
Definition: gFEXOutputCollection.cxx:75
LVL1::gFEXSim::m_gTowersWriteKey
SG::WriteHandleKey< xAOD::gFexTowerContainer > m_gTowersWriteKey
Definition: gFEXSim.h:121
LVL1::gFEXSim::m_gScalarENoiseCutTobWords
std::vector< uint32_t > m_gScalarENoiseCutTobWords
Definition: gFEXSim.h:105
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
TrigConf::name
Definition: HLTChainList.h:35
LVL1::gFEXSim::getgScalarEJwojTOBs
virtual std::vector< uint32_t > getgScalarEJwojTOBs() const override
Definition: gFEXSim.cxx:363
LVL1::gFEXSim::m_gMHTComponentsJwojTobWords
std::vector< uint32_t > m_gMHTComponentsJwojTobWords
Definition: gFEXSim.h:97
LVL1::gTowersCentral
std::array< std::array< int, 12 >, 32 > gTowersCentral
Definition: IgFEXaltMetAlgo.h:19
LVL1::gFEXSim::m_gFEXJwoJAlgoTool
ToolHandle< IgFEXJwoJAlgo > m_gFEXJwoJAlgoTool
Definition: gFEXSim.h:115
LVL1::gFEXSim::m_gTowersIDs
gTowersIDs m_gTowersIDs
Internal data.
Definition: gFEXSim.h:83
TrigConf::L1ThrExtraInfo_gLJ::seedThrCounts
unsigned int seedThrCounts(const char fpga) const
Definition: L1ThrExtraInfo.h:493
TrigConf::L1ThrExtraInfo_gXE::seedThr
float seedThr(const char fpga) const
Definition: L1ThrExtraInfo.h:579
LVL1::gFEXSim::m_gFEXFPGA_Tool
ToolHandle< IgFEXFPGA > m_gFEXFPGA_Tool
Definition: gFEXSim.h:111
SG::VarHandleBase::key
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleBase.cxx:64
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
TrigConf::L1ThrExtraInfo_gJ::ptMinToTopoCounts
unsigned int ptMinToTopoCounts(const unsigned int eta_range) const
Definition: L1ThrExtraInfo.h:465
LVL1::gFEXSim::m_gBlockTobWords
std::vector< uint32_t > m_gBlockTobWords
Definition: gFEXSim.h:89
LVL1::gFEXOutputCollection::addJetTob
void addJetTob(uint32_t)
Definition: gFEXOutputCollection.cxx:58
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
LVL1::gFEXSim::m_gFEXaltMetAlgoTool
ToolHandle< IgFEXaltMetAlgo > m_gFEXaltMetAlgoTool
Definition: gFEXSim.h:117
LVL1::gFEXSim::m_gFEXJetAlgoTool
ToolHandle< IgFEXJetAlgo > m_gFEXJetAlgoTool
Definition: gFEXSim.h:113
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::gTowersIDs
std::array< std::array< int, 40 >, 32 > gTowersIDs
Definition: IgFEXSim.h:20
LVL1::gTowersForward
std::array< std::array< int, 8 >, 32 > gTowersForward
Definition: IgFEXaltMetAlgo.h:20
LVL1::gFEXSim::m_gMETComponentsJwojTobWords
std::vector< uint32_t > m_gMETComponentsJwojTobWords
Definition: gFEXSim.h:95
LVL1::gTowersType
std::array< std::array< int, 12 >, 32 > gTowersType
Definition: IgFEXFPGA.h:25
calibdata.copy
bool copy
Definition: calibdata.py:27
LVL1::gFEXOutputCollection::addGlobalTob
void addGlobalTob(uint32_t)
Definition: gFEXOutputCollection.cxx:91
AthAlgTool
Definition: AthAlgTool.h:26
gTower.h
TrigConf::L1ThrExtraInfo::gJ
const L1ThrExtraInfo_gJ & gJ() const
Definition: L1ThrExtraInfo.cxx:158
gFEXSim.h
LVL1::gFEXSim::m_gScalarEJwojTobWords
std::vector< uint32_t > m_gScalarEJwojTobWords
Definition: gFEXSim.h:93
LVL1::gFEXOutputCollection::addValueJet
void addValueJet(std::string key, float value)
add a value related to the jet finder algorithm for a TOB
Definition: gFEXOutputCollection.cxx:37
LVL1::gFEXSim::gFEXSim
gFEXSim(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition: gFEXSim.cxx:21