|
ATLAS Offline Software
|
Go to the documentation of this file.
8 #include "GaudiKernel/SystemOfUnits.h"
55 ATH_MSG_ERROR(
"Incorrect number of algorithm parameter values given number of sumEt thresholds");
56 return StatusCode::FAILURE;
58 return StatusCode::SUCCESS;
62 const EventContext &ctx,
66 if (!gblocks.isValid())
69 return StatusCode::FAILURE;
71 std::vector<float> rhos;
75 if (!rhoCont.isValid())
78 return StatusCode::FAILURE;
80 rhos = accRho(*rhoCont);
97 return StatusCode::FAILURE;
99 float seedEt = seed->et();
110 float rho = rhos.at(
static_cast<std::size_t
>(fpga));
111 seedEt -=
rho * accArea(*seed);
115 HTx += seedEt *
std::cos(seed->phi());
116 HTy += seedEt *
std::sin(seed->phi());
121 STx += seedEt *
std::cos(seed->phi());
122 STy += seedEt *
std::sin(seed->phi());
146 float energyX =
ax * HTx +
bx * STx +
cx;
148 met.setEnergyX(energyX);
150 met.setEnergyT(sumEt);
152 auto mht = std::make_unique<xAOD::EnergySumRoI>();
153 auto mhtAux = std::make_unique<xAOD::EnergySumRoIAuxInfo>();
154 mht->setStore(mhtAux.get());
155 mht->setEnergyX(HTx);
156 mht->setEnergyY(HTy);
157 mht->setEnergyT(sumHT);
159 ATH_CHECK(mhtHandle.record(std::move(mht), std::move(mhtAux)));
161 auto mst = std::make_unique<xAOD::EnergySumRoI>();
162 auto mstAux = std::make_unique<xAOD::EnergySumRoIAuxInfo>();
163 mst->setStore(mstAux.get());
164 mst->setEnergyX(STx);
165 mst->setEnergyY(STy);
166 mst->setEnergyT(sumST);
168 ATH_CHECK(mstHandle.record(std::move(mst), std::move(mstAux)));
170 return StatusCode::SUCCESS;
Description of JGTower_v1.
FPGA getFPGA(float eta)
Get the FPGA code from the tower eta.
std::vector< float > m_cxValues
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
SG::ReadHandleKey< xAOD::GBlockContainer > m_gblocksKey
std::vector< float > m_axValues
Helper class to provide constant type-safe access to aux data.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
std::vector< float > m_byValues
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
SG::WriteHandleKey< xAOD::EnergySumRoI > m_mhtKey
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< float > m_cyValues
virtual StatusCode initialize() override
SG::WriteHandleKey< xAOD::EnergySumRoI > m_mstKey
virtual ~METJWoJPerfFex() override
virtual StatusCode runFex(const EventContext &ctx, xAOD::EnergySumRoI &met) const override
SG::ReadHandleKey< xAOD::EnergySumRoI > m_rhoKey
METJWoJPerfFex(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize() override
std::vector< float > m_sumEtThresholds
Handle class for reading from StoreGate.
Class describing a LVL1 energy-sum "RoI".
std::vector< float > m_ayValues
std::vector< float > m_bxValues