14#include "GaudiKernel/PhysicalConstants.h"
34 const IInterface* parent) :
37 declareInterface<LVL1::IInputTOBConverter>(
this );
60 return StatusCode::SUCCESS;
67 return StatusCode::SUCCESS;
75 << +jFexRoI->jFexNumber()
81 << jFexRoI->globalEta()
83 << jFexRoI->globalPhi()
85 << +jFexRoI->tobEMIso()
87 << +jFexRoI->tobEMf1()
89 << +jFexRoI->tobEMf2()
95 unsigned int isolation = jFexRoI->tobEMIso();
96 unsigned int frac1 = jFexRoI->tobEMf2();
97 unsigned int frac2 = jFexRoI->tobEMf1();
100 if (EtTopo==0)
continue;
118 Monitored::Group(
m_monTool, mon_h_jEmPt, mon_h_jEmIsolation, mon_h_jEmFrac1, mon_h_jEmFrac2, mon_h_jEmPhi, mon_h_jEmEta);
121 return StatusCode::SUCCESS;
129 return StatusCode::SUCCESS;
137 << +jFexRoI->jFexNumber()
143 << jFexRoI->globalEta()
145 << jFexRoI->globalPhi()
156 if (EtTopo==0)
continue;
174 return StatusCode::SUCCESS;
182 return StatusCode::SUCCESS;
190 << jFexRoI->jFexNumber()
196 << jFexRoI->globalEta()
198 << jFexRoI->globalPhi()
206 if (EtTopo==0)
continue;
221 return StatusCode::SUCCESS;
229 return StatusCode::SUCCESS;
237 << +jFexRoI->jFexNumber()
243 << jFexRoI->globalEta()
245 << jFexRoI->globalPhi()
253 if (EtTopo==0)
continue;
269 return StatusCode::SUCCESS;
278 return StatusCode::SUCCESS;
284 int global_ExTopo = 0;
285 int global_EyTopo = 0;
286 int central_ExTopo = 0;
287 int central_EyTopo = 0;
294 int jFexNumber = jFexRoI->jFexNumber();
295 int fpgaNumber = jFexRoI->fpgaNumber();
297 int hemisphere = fpgaNumber == 0 ? -1 : 1;
299 ExTopo = hemisphere * ExTopo;
300 EyTopo = hemisphere * EyTopo;
302 global_ExTopo += ExTopo;
303 global_EyTopo += EyTopo;
306 if( jFexNumber!=0 && jFexNumber!=5 ) {
307 central_ExTopo += ExTopo;
308 central_EyTopo += EyTopo;
322 long long global_ExTopoLong =
static_cast<long long>(global_ExTopo);
323 long long global_EyTopoLong =
static_cast<long long>(global_EyTopo);
324 long long central_ExTopoLong =
static_cast<long long>(central_ExTopo);
325 long long central_EyTopoLong =
static_cast<long long>(central_EyTopo);
327 unsigned long long Et2Topo = global_ExTopoLong*global_ExTopoLong + global_EyTopoLong*global_EyTopoLong;
328 unsigned long long EtTopo = std::sqrt( Et2Topo );
329 unsigned long long Et2Topo_central = central_ExTopoLong*central_ExTopoLong + central_EyTopoLong*central_EyTopoLong;
330 unsigned long long EtTopo_central = std::sqrt( Et2Topo_central );
342 jxec.
setEt2( Et2Topo_central );
356 ATH_MSG_DEBUG(
"gFex XE input disabled, skip filling combined XE");
357 return StatusCode::SUCCESS;
360 if (! gXEJWOJ_EDM.
isValid() ) {
362 ATH_MSG_DEBUG(
"gFex input is not available, skip filling cXE");
363 return StatusCode::SUCCESS;
369 long long gXE_ExTopoLong{0};
370 long long gXE_EyTopoLong{0};
374 auto globalType = gFexRoI->globalType();
375 if ( globalType != 2 ) {
continue; }
378 << gFexRoI->globalType()
380 << gFexRoI->METquantityOne()
382 << gFexRoI->METquantityTwo()
388 gXE_ExTopoLong =
static_cast<unsigned long long>(ExTopo);
389 gXE_EyTopoLong =
static_cast<unsigned long long>(EyTopo);
396 unsigned jWeight = 0.55 *
pow(2,8);
397 unsigned gWeight = 0.45 *
pow(2,8);
398 long long cXE_x = (jWeight * global_ExTopoLong + gWeight * gXE_ExTopoLong) >> 8;
399 long long cXE_y = (jWeight * global_EyTopoLong + gWeight * gXE_EyTopoLong) >> 8;
401 unsigned long long cXE_mag2 = cXE_x*cXE_x + cXE_y*cXE_y;
402 unsigned long long cXE_mag = std::sqrt( cXE_mag2 );
405 inputEvent.
setcXE( cxe_tob );
409 return StatusCode::SUCCESS;
418 return StatusCode::SUCCESS;
428 bool topoTE_sat =
false;
443 int jFexNumber = jFexRoI->jFexNumber();
444 int fpgaNumber = jFexRoI->fpgaNumber();
446 int Sat_lower = jFexRoI->tobSat_lower();
447 int Sat_upper = jFexRoI->tobSat_upper();
464 topoTE += EtLowerTopo;
465 topoTE += EtUpperTopo;
466 topoTE_sat |= Sat_lower;
467 topoTE_sat |= Sat_upper;
471 topoTEsideA += EtLowerTopo;
472 topoTEsideA += EtUpperTopo;
476 topoTEsideC += EtLowerTopo;
477 topoTEsideC += EtUpperTopo;
482 topoTEC += EtLowerTopo;
483 if( jFexNumber!=0 && jFexNumber!=5 )
485 topoTEC += EtUpperTopo;
489 if( jFexNumber==0 || jFexNumber==5 )
491 topoTEFWD += EtUpperTopo;
497 topoTEFWDA += EtUpperTopo;
503 topoTEFWDC += EtUpperTopo;
538 Monitored::Group(
m_monTool, mon_h_jTE_saturation, mon_h_jTE_sumEt, mon_h_jTEC_sumEt, mon_h_jTEFWD_sumEt, mon_h_jTEFWDA_sumEt, mon_h_jTEFWDC_sumEt);
540 return StatusCode::SUCCESS;
552 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define CHECK(...)
Evaluate an expression and check for errors.
constexpr int pow(int base, int exp) noexcept
Group of local monitoring quantities and retain correlation when filling histograms
Declare a monitored scalar variable.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
unsigned int frac1() const
void setEtaDouble(double eta)
void setFrac2(unsigned int frac2)
void setFrac1(unsigned int frac1)
void setEtDouble(double et)
unsigned int frac2() const
void setPhiDouble(double phi)
void setIsolation(unsigned int isolation)
unsigned int isolation() const
void setSumEtSideC(unsigned int sumEt)
void setSumEtSideA(unsigned int sumEt)
void setSumEtDoubleSideA(double sumEt)
void setSaturationFlag(bool saturationFlag)
void setSumEtDoubleSideC(double sumEt)
double sumEtDouble() const
void setSumEtDouble(double sumEt)
bool saturationFlag() const
unsigned int EtIso() const
void setEtDouble(double et)
void setPhiDouble(double phi)
void setEtIso(unsigned int etIso)
void setEtaDouble(double eta)
void setEyDouble(double ey)
void setEt2(unsigned long long et2)
void setExDouble(double ex)
void setEtDouble(double et)
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
unsigned int toTopoPhi(float phi)
jFexFwdElRoI_v1 jFexFwdElRoI
Define the latest version of the jFexFwdElJetRoI class.
jFexSumETRoI_v1 jFexSumETRoI
Define the latest version of the jFexSumETJetRoI class.
gFexGlobalRoI_v1 gFexGlobalRoI
Define the latest version of the eFexEMRoI class.
jFexLRJetRoI_v1 jFexLRJetRoI
Define the latest version of the jFexLRJetRoI class.
jFexTauRoI_v1 jFexTauRoI
Define the latest version of the jFexSRJetRoI class.
jFexSRJetRoI_v1 jFexSRJetRoI
Define the latest version of the jFexSRJetRoI class.
jFexMETRoI_v1 jFexMETRoI
Define the latest version of the jFexMETRoI class.