91 return StatusCode::FAILURE;
116 std::vector<int> pileup_ID;
117 std::vector<int> pileup_HAD_jet;
118 std::vector<int> pileup_EM_jet;
119 std::vector<int> pileup_Total_jet;
120 std::vector<int> pileup_HAD_met;
121 std::vector<int> pileup_EM_met;
122 std::vector<int> pileup_Total_met;
125 pileup_ID.push_back(key);
126 pileup_HAD_jet.push_back(val[0]);
128 pileup_Total_jet.push_back(map_Etvalues_FPGA[key][0]);
129 pileup_HAD_met.push_back(val[1]);
131 pileup_Total_met.push_back(map_Etvalues_FPGA[key][1]);
137 inputOutputCollection->
addValue_pileup(
"pileup_rho_EM", pileup_rho[0]);
138 inputOutputCollection->
addValue_pileup(
"pileup_rho_HAD1", pileup_rho[1]);
139 inputOutputCollection->
addValue_pileup(
"pileup_rho_HAD2", pileup_rho[2]);
140 inputOutputCollection->
addValue_pileup(
"pileup_rho_HAD3", pileup_rho[3]);
141 inputOutputCollection->
addValue_pileup(
"pileup_rho_FCAL", pileup_rho[4]);
142 inputOutputCollection->
addValue_pileup(
"pileup_map_ID" , std::move(pileup_ID));
143 inputOutputCollection->
addValue_pileup(
"pileup_map_Et_values_HAD_jet" , std::move(pileup_HAD_jet));
144 inputOutputCollection->
addValue_pileup(
"pileup_map_Et_values_EM_jet" , std::move(pileup_EM_jet));
145 inputOutputCollection->
addValue_pileup(
"pileup_map_Et_values_Total_jet", std::move(pileup_Total_jet));
146 inputOutputCollection->
addValue_pileup(
"pileup_map_Et_values_HAD_met" , std::move(pileup_HAD_met));
147 inputOutputCollection->
addValue_pileup(
"pileup_map_Et_values_EM_met" , std::move(pileup_EM_met));
148 inputOutputCollection->
addValue_pileup(
"pileup_map_Et_values_Total_met", std::move(pileup_Total_met));
162 std::unique_ptr<jFEXTOB> jXE_tob = std::make_unique<jFEXTOB>();
163 uint32_t jXE_tobword = 0;
165 std::unique_ptr<jFEXTOB> jTE_tob = std::make_unique<jFEXTOB>();
166 uint32_t jTE_tobword = 0;
169 int hemisphere =
m_id == 0 ? 1 : -1;
186 for(
int mphi = 0; mphi <= max_phi_it; mphi++) {
214 std::tuple<int,bool> jTElow;
215 std::tuple<int,bool> jTEhigh;
233 ATH_MSG_DEBUG(
"================ Central Algorithms ================");
248 int TT_seed_ID[3][3]= {{0}};
249 int TT_First_ETring[36]= {0};
250 int First_ETring_it = 0;
252 int Jet_SearchWindow[7][7] = {{0}};
253 int Jet_SearchWindowDisplaced[7][7] = {{0}};
254 int largeRCluster_IDs[15][15]= {{0}};
257 for(
int i = -7; i< 8; i++ ) {
258 for(
int j = -7; j< 8; j++) {
260 if(std::abs(i)<4 && std::abs(j)<4) {
265 uint deltaR = std::sqrt(std::pow(i,2)+std::pow(j,2));
307 std::unique_ptr<jFEXTOB> jJ_tob = std::make_unique<jFEXTOB>();
309 if ( SRJet_tobword != 0 ){
320 std::unique_ptr <jFEXTOB> jLJ_tob = std::make_unique<jFEXTOB>();
333 if ( is_tau_LocalMax ) {
341 std::unique_ptr<jFEXTOB> jTau_tob = std::make_unique<jFEXTOB>();
344 if ( jTau_tobword != 0 ){
361 std::unordered_map<int, jFEXForwardJetsInfo> FCALJets =
m_jFEXForwardJetsAlgoTool->calculateJetETs(srJet_seedThresholdMeV);
362 for(std::unordered_map<int, jFEXForwardJetsInfo>::iterator it = FCALJets.begin(); it!=FCALJets.end(); ++it) {
364 uint32_t TTID = it->first;
377 std::unique_ptr<jFEXTOB> jJ_tob = std::make_unique<jFEXTOB>();
380 if ( SRFCAL_Jet_tobword != 0 ){
388 std::unique_ptr<jFEXTOB> jLJ_tob = std::make_unique<jFEXTOB>();
390 if ( LRFCAL_Jet_tobword != 0 )
m_LRJet_tobwords.push_back(std::move(jLJ_tob));
408 std::vector<int> Ciso;
409 std::vector<int> Chad1;
410 std::vector<int> Chad2;
412 for(std::unordered_map<uint, jFEXForwardElecInfo>::iterator itel = ForwardElecs.begin(); itel!=ForwardElecs.end(); ++itel) {
413 uint32_t TTID = itel->first;
424 Ciso.push_back(wp_loose.iso_fw());
425 Ciso.push_back(wp_medium.iso_fw());
426 Ciso.push_back(wp_tight.iso_fw());
427 Chad1.push_back(wp_loose.frac_fw());
428 Chad1.push_back(wp_medium.frac_fw());
429 Chad1.push_back(wp_tight.frac_fw());
430 Chad2.push_back(wp_loose.frac2_fw());
431 Chad2.push_back(wp_medium.frac2_fw());
432 Chad2.push_back(wp_tight.frac2_fw());
433 int Cval[9] = {Ciso[0], Ciso[1], Ciso[2], Chad1[0], Chad1[1], Chad1[2], Chad2[0], Chad2[1], Chad2[2]};
435 elCluster.
setup(Cval,jFEXETResolution);
439 uint32_t FwdEl_tobword = elCluster.
getTobWord();
442 std::vector<uint32_t> FwdEltob_aux{FwdEl_tobword,TTID};
443 if ( FwdEl_tobword != 0 && etEM>minEtThreshold)
m_FwdEl_tobwords.push_back(std::move(FwdEltob_aux));
462 for(
int j=4; j<17; j++) {
467 ATH_MSG_DEBUG(
"============================ jFEXtauAlgo ============================");
470 for(
int mphi = 8; mphi < 24; mphi++) {
476 if ( is_tau_LocalMax ) {
480 std::unique_ptr<jFEXTOB> jTau_tob = std::make_unique<jFEXTOB>();
482 if ( jTau_tobword != 0 ){
489 return StatusCode::SUCCESS;