Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
154  //FPGA C----------------------------------------------------------------------------------------------------------------------------------------------
155 
156  // Retrieve the L1 menu configuration
158  ATH_CHECK(l1Menu.isValid());
159 
160  //Parameters related to gLJ (large-R jet objects - gJet)
161  auto & thr_gLJ = l1Menu->thrExtraInfo().gLJ();
162  int gLJ_seedThrA = 0;
163  int gLJ_seedThrB = 0;
164  int gLJ_seedThrC = 0;
165  gLJ_seedThrA = thr_gLJ.seedThrCounts('A'); //defined in GeV by default
166  gLJ_seedThrB = thr_gLJ.seedThrCounts('B'); //defined in GeV by default
167  gLJ_seedThrC = thr_gLJ.seedThrCounts('C'); //defined in GeV by default
168 
169  int gLJ_ptMinToTopoCounts1 = 0;
170  int gLJ_ptMinToTopoCounts2 = 0;
171  gLJ_ptMinToTopoCounts1 = thr_gLJ.ptMinToTopoCounts(1);
172  gLJ_ptMinToTopoCounts2 = thr_gLJ.ptMinToTopoCounts(2);
173  float gLJ_rhoMaxA = 0;
174  float gLJ_rhoMaxB = 0;
175  float gLJ_rhoMaxC = 0;
176 
177  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
178  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
179  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
180 
181 
182  //Parameters related to gJ (small-R jet objects - gBlock)
183  auto & thr_gJ = l1Menu->thrExtraInfo().gJ();
184  int gJ_ptMinToTopoCounts1 = 0;
185  int gJ_ptMinToTopoCounts2 = 0;
186  gJ_ptMinToTopoCounts1 = thr_gJ.ptMinToTopoCounts(1);
187  gJ_ptMinToTopoCounts2 = thr_gJ.ptMinToTopoCounts(2);
188 
189 
190  int pucA = 0;
191  int pucB = 0;
192  int pucC = 0;
193  //note that jetThreshold is not a configurable parameter in firmware, it is used to check that jet values are positive
194  int jetThreshold = FEXAlgoSpaceDefs::jetThr; //this threshold is set by the online software
195 
196  if (FEXAlgoSpaceDefs::ENABLE_PUC == true){
197  m_gFEXJetAlgoTool->pileUpCalculation(Atwr50, gLJ_rhoMaxA, 1, pucA);
198  m_gFEXJetAlgoTool->pileUpCalculation(Btwr50, gLJ_rhoMaxB, 1, pucB);
199  m_gFEXJetAlgoTool->pileUpCalculation(Ctwr50, gLJ_rhoMaxC, 1, pucC);
200  }
201 
202 
203 
204  // The output TOBs, to be filled by the gFEXJetAlgoTool
205  std::array<uint32_t, 7> ATOB1_dat = {0};
206  std::array<uint32_t, 7> ATOB2_dat = {0};
207  std::array<uint32_t, 7> BTOB1_dat = {0};
208  std::array<uint32_t, 7> BTOB2_dat = {0};
209  std::array<uint32_t, 7> CTOB1_dat = {0};
210  std::array<uint32_t, 7> CTOB2_dat = {0};
211 
212 
213  // Pass the energy matrices to the algo tool, and run the algorithms
214  auto tobs_v = m_gFEXJetAlgoTool->largeRfinder(Atwr, Btwr, Ctwr, Asat, Bsat, Csat, pucA, pucB, pucC,
215  gLJ_seedThrA, gLJ_seedThrB, gLJ_seedThrC, gJ_ptMinToTopoCounts1, gJ_ptMinToTopoCounts2,
216  jetThreshold, gLJ_ptMinToTopoCounts1, gLJ_ptMinToTopoCounts2,
217  ATOB1_dat, ATOB2_dat,
218  BTOB1_dat, BTOB2_dat,
219  CTOB1_dat, CTOB2_dat);
220 
221  m_gRhoTobWords.resize(3);
222  m_gBlockTobWords.resize(12);
223  m_gJetTobWords.resize(6);
224 
225  m_gRhoTobWords[0] = ATOB2_dat[0];//Pile up correction A
226  m_gRhoTobWords[1] = BTOB2_dat[0];//Pile up correction B
227  m_gRhoTobWords[2] = CTOB2_dat[0];//Pile up correction C
228 
229  //Placing the gBlock TOBs into a dedicated array
230  m_gBlockTobWords[0] = ATOB1_dat[1];//leading gBlock in FPGA A, eta bins (0--5)
231  m_gBlockTobWords[1] = ATOB2_dat[1];//leading gBlock in FPGA A, eta bins (6--11)
232  m_gBlockTobWords[2] = BTOB1_dat[1];//leading gBlock in FPGA B, eta bins (0--5)
233  m_gBlockTobWords[3] = BTOB2_dat[1];//leading gBlock in FPGA B, eta bins (6--11)
234 
235  m_gBlockTobWords[4] = ATOB1_dat[2];//subleading gBlock in FPGA A, eta bins (0--5)
236  m_gBlockTobWords[5] = ATOB2_dat[2];//subleading gBlock in FPGA A, eta bins (6--11)
237  m_gBlockTobWords[6] = BTOB1_dat[2];//subleading gBlock in FPGA B, eta bins (0--5)
238  m_gBlockTobWords[7] = BTOB2_dat[2];//subleading gBlock in FPGA B, eta bins (6--11)
239 
240  m_gBlockTobWords[8] = CTOB1_dat[1];//leading gBlock in FPGA C, eta negative
241  m_gBlockTobWords[9] = CTOB2_dat[1];//leading gBlock in FPGA C, eta positive
242  m_gBlockTobWords[10] = CTOB1_dat[2];//sub-leading gBlock in FPGA C, eta negative
243  m_gBlockTobWords[11] = CTOB2_dat[2];//sub-leading gBlock in FPGA C, eta positive
244 
245  //Placing the gJet TOBs into a dedicated array
246  m_gJetTobWords[0] = ATOB1_dat[3];//leading gJet in FPGA A, eta bins (0--5)
247  m_gJetTobWords[1] = ATOB2_dat[3];//leading gJet in FPGA A, eta bins (6--11)
248  m_gJetTobWords[2] = BTOB1_dat[3];//leading gJet in FPGA B, eta bins (0--5)
249  m_gJetTobWords[3] = BTOB2_dat[3];//leading gJet in FPGA B, eta bins (6--11)
250  m_gJetTobWords[4] = CTOB1_dat[3];//leading gJet in FPGA C negative
251  m_gJetTobWords[5] = CTOB2_dat[3];//leading gJet in FPGA C positive
252 
253 
254  // Use the gFEXJetAlgoTool
255  std::array<uint32_t, 4> outJwojTOB = {0};
256  std::array<uint32_t, 4> outAltMetTOB = {0};
257 
258  //Parameters related to gXE (MET objects, both JwoJ and alternative MET calculation)
259  auto & thr_gXE = l1Menu->thrExtraInfo().gXE();
260  int gXE_seedThrA = 0;
261  int gXE_seedThrB = 0;
262  int gXE_seedThrC = 0;
263  gXE_seedThrA = thr_gXE.seedThr('A'); //defined in counts
264  gXE_seedThrB = thr_gXE.seedThr('B'); //defined in counts
265  gXE_seedThrC = thr_gXE.seedThr('C'); //defined in counts
266 
267 
268  int aFPGA_A = thr_gXE.JWOJ_param('A','a');// 1003
269  int bFPGA_A = thr_gXE.JWOJ_param('A','b');// 409
270  int aFPGA_B = thr_gXE.JWOJ_param('B','a');// 1003
271  int bFPGA_B = thr_gXE.JWOJ_param('B','b');// 409
272  int aFPGA_C = thr_gXE.JWOJ_param('C','a');// 1003
273  int bFPGA_C = thr_gXE.JWOJ_param('C','b');// 409
274 
275  //Set constants for JwoJ and run the algorithm
276  m_gFEXJwoJAlgoTool->setAlgoConstant(aFPGA_A, bFPGA_A,
277  aFPGA_B, bFPGA_B,
278  aFPGA_C, bFPGA_C,
279  gXE_seedThrA, gXE_seedThrB, gXE_seedThrC);
280 
281  auto global_tobs = m_gFEXJwoJAlgoTool->jwojAlgo(Atwr, Btwr, Ctwr, outJwojTOB);
282 
283  m_gScalarEJwojTobWords.resize(1);
287 
288 
289  //Placing the global TOBs into a dedicated array
290  m_gScalarEJwojTobWords[0] = outJwojTOB[0];//
291  m_gMETComponentsJwojTobWords[0] = outJwojTOB[1];//
292  m_gMHTComponentsJwojTobWords[0] = outJwojTOB[2];//
293  m_gMSTComponentsJwojTobWords[0] = outJwojTOB[3];//
294 
295 
296  //Set constants for noise cut and rho+RMS and run the algorithms
297  std::vector<int> thr_A (12, 0);//To be retrieved from COOL database in the future
298  std::vector<int> thr_B (12, 0);//To be retrieved from COOL database in the future
299 
300  m_gFEXaltMetAlgoTool->setAlgoConstant(std::move(thr_A) , std::move(thr_B), 10000/200);
301 
302  m_gFEXaltMetAlgoTool->altMetAlgo(Atwr, Btwr, outAltMetTOB);
303 
305  m_gMETComponentsRmsTobWords.resize(1);
306  m_gScalarENoiseCutTobWords.resize(1);
307  m_gScalarERmsTobWords.resize(1);
308 
309 
310  //Placing the global TOBs into a dedicated array
311  m_gMETComponentsNoiseCutTobWords[0] = outAltMetTOB[0];//
312  m_gMETComponentsRmsTobWords[0] = outAltMetTOB[1];//
313  m_gScalarENoiseCutTobWords[0] = outAltMetTOB[2];//
314  m_gScalarERmsTobWords[0] = outAltMetTOB[3];//
315 
316  for (int i = 0; i <14; i++){
317  gFEXOutputs->addJetTob(tobs_v[i]->getWord());
318  gFEXOutputs->addValueJet("EtaJet", tobs_v[i]->getEta());
319  gFEXOutputs->addValueJet("PhiJet", tobs_v[i]->getPhi());
320  gFEXOutputs->addValueJet("ETJet", tobs_v[i]->getET());
321  gFEXOutputs->addValueJet("StatusJet", tobs_v[i]->getStatus());
322  gFEXOutputs->addValueJet("TobIDJet", tobs_v[i]->getTobID());
323  gFEXOutputs->fillJet();
324 
325  }
326 
327  for (int i = 0; i <4; i++){
328  gFEXOutputs->addGlobalTob(global_tobs[i]->getWord());
329  gFEXOutputs->addValueGlobal("GlobalQuantity1", global_tobs[i]->getQuantity1());
330  gFEXOutputs->addValueGlobal("GlobalQuantity2", global_tobs[i]->getQuantity2());
331  gFEXOutputs->addValueGlobal("SaturationGlobal", global_tobs[i]->getSaturation());
332  gFEXOutputs->addValueGlobal("TobIDGlobal", global_tobs[i]->getTobID());
333  gFEXOutputs->addValueGlobal("GlobalStatus1", global_tobs[i]->getStatus1());
334  gFEXOutputs->addValueGlobal("GlobalStatus2", global_tobs[i]->getStatus2());
335  gFEXOutputs->fillGlobal();
336 
337  }
338 
339  return StatusCode::SUCCESS;
340 
341 }
342 
343 
344 std::vector<uint32_t> gFEXSim::getgRhoTOBs() const
345 {
346  return m_gRhoTobWords;
347 }
348 
349 std::vector<uint32_t> gFEXSim::getgBlockTOBs() const
350 {
351  return m_gBlockTobWords;
352 }
353 
354 std::vector<uint32_t> gFEXSim::getgJetTOBs() const
355 {
356  return m_gJetTobWords;
357 }
358 
359 std::vector<uint32_t> gFEXSim::getgScalarEJwojTOBs() const
360 {
361  return m_gScalarEJwojTobWords;
362 }
363 
364 std::vector<uint32_t> gFEXSim::getgMETComponentsJwojTOBs() const
365 {
367 }
368 
369 std::vector<uint32_t> gFEXSim::getgMHTComponentsJwojTOBs() const
370 {
372 }
373 
374 std::vector<uint32_t> gFEXSim::getgMSTComponentsJwojTOBs() const
375 {
377 }
378 
379 std::vector<uint32_t> gFEXSim::getgMETComponentsNoiseCutTOBs() const
380 {
382 }
383 
384 std::vector<uint32_t> gFEXSim::getgMETComponentsRmsTOBs() const
385 {
387 }
388 
389 std::vector<uint32_t> gFEXSim::getgScalarENoiseCutTOBs() const
390 {
392 }
393 
394 std::vector<uint32_t> gFEXSim::getgScalarERmsTOBs() const
395 {
396  return m_gScalarERmsTobWords;
397 }
398 
399 
400 } // 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:389
LVL1::gFEXSim::getgMETComponentsNoiseCutTOBs
virtual std::vector< uint32_t > getgMETComponentsNoiseCutTOBs() const override
Definition: gFEXSim.cxx:379
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
IDTPM::getPhi
float getPhi(const xAOD::TrackParticle &p)
Accessor utility function for getting the value of phi.
Definition: TrackParametersHelper.h:55
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
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:394
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
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
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:344
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:364
LVL1::gFEXOutputCollection
Definition: gFEXOutputCollection.h:22
LVL1::gFEXSim::getgJetTOBs
virtual std::vector< uint32_t > getgJetTOBs() const override
Definition: gFEXSim.cxx:354
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:384
LVL1::gFEXSim::getgMSTComponentsJwojTOBs
virtual std::vector< uint32_t > getgMSTComponentsJwojTOBs() const override
Definition: gFEXSim.cxx:374
TrigConf::L1ThrExtraInfo::gLJ
const L1ThrExtraInfo_gLJ & gLJ() const
Definition: L1ThrExtraInfo.cxx:163
lumiFormat.i
int i
Definition: lumiFormat.py:85
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:369
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:349
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:359
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:506
TrigConf::L1ThrExtraInfo_gXE::seedThr
float seedThr(const char fpga) const
Definition: L1ThrExtraInfo.h:592
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:73
TrigConf::L1ThrExtraInfo_gJ::ptMinToTopoCounts
unsigned int ptMinToTopoCounts(const unsigned int eta_range) const
Definition: L1ThrExtraInfo.h:478
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
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