24       declareInterface<IgFEXSim>(
this);
 
   34          for (
int j=0; j<
cols; j++){
 
   52       return StatusCode::SUCCESS;
 
   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());
 
   66    int rows = tmp_gTowersIDs_subset.size();
 
   67    int cols = tmp_gTowersIDs_subset[0].size();
 
   86    memset(&tmp_gTowersIDs_subset_centralFPGA, 0, 
sizeof tmp_gTowersIDs_subset_centralFPGA);
 
   88       for (
int mycol = 0; mycol<12; mycol++){
 
   89          tmp_gTowersIDs_subset_centralFPGA[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol+8];
 
   93    m_gFEXFPGA_Tool->FillgTowerEDMCentral(gTowersContainer, tmp_gTowersIDs_subset_centralFPGA, Atwr, Atwr50, Asat);
 
  100    memset(&tmp_gTowersIDs_subset_centralFPGA_B, 0, 
sizeof tmp_gTowersIDs_subset_centralFPGA_B);
 
  102       for (
int mycol = 0; mycol<12; mycol++){
 
  103          tmp_gTowersIDs_subset_centralFPGA_B[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol+20];
 
  107    m_gFEXFPGA_Tool->FillgTowerEDMCentral(gTowersContainer, tmp_gTowersIDs_subset_centralFPGA_B,  Btwr, Btwr50, Bsat);
 
  120    memset(&tmp_gTowersIDs_subset_forwardFPGA_N, 0, 
sizeof tmp_gTowersIDs_subset_forwardFPGA_N);
 
  122       for (
int mycol = 0; mycol<4; mycol++){
 
  123          tmp_gTowersIDs_subset_forwardFPGA_N[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol];
 
  127       for (
int mycol = 4; mycol<8; mycol++){
 
  128          tmp_gTowersIDs_subset_forwardFPGA_N[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol];
 
  137    memset(&tmp_gTowersIDs_subset_forwardFPGA_P, 0, 
sizeof tmp_gTowersIDs_subset_forwardFPGA_P);
 
  139       for (
int mycol = 0; mycol<4; mycol++){
 
  140          tmp_gTowersIDs_subset_forwardFPGA_P[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol+32];
 
  144       for (
int mycol = 4; mycol<8; mycol++){
 
  145          tmp_gTowersIDs_subset_forwardFPGA_P[myrow][mycol] = tmp_gTowersIDs_subset[myrow][mycol+32];
 
  150    m_gFEXFPGA_Tool->FillgTowerEDMForward(gTowersContainer, tmp_gTowersIDs_subset_forwardFPGA_N, tmp_gTowersIDs_subset_forwardFPGA_P, Ctwr, Ctwr50, Csat);
 
  162    int gLJ_seedThrA = 0;
 
  163    int gLJ_seedThrB = 0;
 
  164    int gLJ_seedThrC = 0;
 
  166    gLJ_seedThrB = thr_gLJ.seedThrCounts(
'B'); 
 
  167    gLJ_seedThrC = thr_gLJ.seedThrCounts(
'C'); 
 
  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;
 
  177    gLJ_rhoMaxA = (thr_gLJ.rhoTowerMax(
'A')*1000)/50;
 
  178    gLJ_rhoMaxB = (thr_gLJ.rhoTowerMax(
'B')*1000)/50;
 
  179    gLJ_rhoMaxC = (thr_gLJ.rhoTowerMax(
'C')*1000)/50;
 
  184    int gJ_ptMinToTopoCounts1 = 0;
 
  185    int gJ_ptMinToTopoCounts2 = 0;
 
  187    gJ_ptMinToTopoCounts2 = thr_gJ.ptMinToTopoCounts(2); 
 
  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};
 
  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);
 
  255    std::array<int32_t, 4> outJwojTOB = {0};
 
  256    std::array<uint32_t, 4> outAltMetTOB = {0};
 
  260    int gXE_seedThrA = 0;
 
  261    int gXE_seedThrB = 0;
 
  262    int gXE_seedThrC = 0;
 
  263    gXE_seedThrA = thr_gXE.
seedThr(
'A'); 
 
  264    gXE_seedThrB = thr_gXE.seedThr(
'B'); 
 
  265    gXE_seedThrC = thr_gXE.seedThr(
'C'); 
 
  268    int aFPGA_A = thr_gXE.JWOJ_param(
'A',
'a');
 
  269    int bFPGA_A = thr_gXE.JWOJ_param(
'A',
'b');
 
  270    int aFPGA_B = thr_gXE.JWOJ_param(
'B',
'a');
 
  271    int bFPGA_B = thr_gXE.JWOJ_param(
'B',
'b');
 
  272    int aFPGA_C = thr_gXE.JWOJ_param(
'C',
'a');
 
  273    int bFPGA_C = thr_gXE.JWOJ_param(
'C',
'b');
 
  279                                        gXE_seedThrA, gXE_seedThrB, gXE_seedThrC);
 
  297    std::vector<int> thr_A (12, 0);
 
  298    std::vector<int> thr_B (12, 0);
 
  316    for (
int i = 0; 
i <14; 
i++){
 
  318      gFEXOutputs->
addValueJet(
"EtaJet", tobs_v[
i]->getEta());
 
  321      gFEXOutputs->
addValueJet(
"StatusJet", tobs_v[
i]->getStatus());
 
  322      gFEXOutputs->
addValueJet(
"TobIDJet", tobs_v[
i]->getTobID());
 
  327    for (
int i = 0; 
i <4; 
i++){
 
  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());
 
  339     return StatusCode::SUCCESS;