diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXDriver.h b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXDriver.h index cfce43f895aa7973182facdc345a55fe661e68a3..e6f0c861e616fef398e0d1ae3822a3309c33ee80 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXDriver.h +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXDriver.h @@ -19,6 +19,7 @@ #include "CaloIdentifier/CaloCell_SuperCell_ID.h" #include "L1CaloFEXSim/gFEXOutputCollection.h" #include "xAODTrigger/gFexJetRoIContainer.h" +#include "xAODTrigger/gFexGlobalRoIContainer.h" class CaloIdManager; @@ -46,8 +47,6 @@ class gFEXDriver : public AthAlgorithm //Declare that gFEXDriver class will read an object of type CaloCellContainer, xAOD::gFexJetRoIContainer, xAOD::gFexGlobalRoIContainer SG::ReadHandleKey<CaloCellContainer> m_scellsCollectionSGKey {this, "SCell", "SCell", "SCell"}; - SG::ReadHandleKey<xAOD::gFexJetRoIContainer> m_gJetEDMKey {this, "gJetEDM", "L1_gJetRoI", "Reading container of gFEXJetRoIs"}; - ToolHandle<IgTowerBuilder> m_gTowerBuilderTool {this, "gTowerBuilderTool", "LVL1::gTowerBuilder", "Tool that builds gTowers for simulation"}; ToolHandle<IgSuperCellTowerMapper> m_gSuperCellTowerMapperTool {this, "gSuperCellTowerMapperTool", "LVL1::gSuperCellTowerMapper", "Tool that maps supercells to gTowers"}; ToolHandle<IgFEXSysSim> m_gFEXSysSimTool {this, "gFEXSysSimTool", "LVL1::gFEXSysSim", "Tool that creates the gFEX System Simulation"}; diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXSim.h b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXSim.h index d778ba6b982699c9bce71bf38fae018dd9c99681..39be69e1513ee483860cc157394eda8fae6a6bb0 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXSim.h +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXSim.h @@ -55,7 +55,14 @@ namespace LVL1 { virtual std::vector<uint32_t> getgJetTOBs() const override; - virtual std::vector<uint32_t> getgGlobalTOBs() const override; + virtual std::vector<uint32_t> getgScalarEJwojTOBs() const override; + + virtual std::vector<uint32_t> getgMETComponentsJwojTOBs() const override; + + virtual std::vector<uint32_t> getgMHTComponentsJwojTOBs() const override; + + virtual std::vector<uint32_t> getgMSTComponentsJwojTOBs() const override; + /** Internal data */ private: @@ -70,7 +77,13 @@ namespace LVL1 { std::vector<uint32_t> m_gJetTobWords; - std::vector<uint32_t> m_gGlobalTobWords; + std::vector<uint32_t> m_gScalarEJwojTobWords; + + std::vector<uint32_t> m_gMETComponentsJwojTobWords; + + std::vector<uint32_t> m_gMHTComponentsJwojTobWords; + + std::vector<uint32_t> m_gMSTComponentsJwojTobWords; diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXSysSim.h b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXSysSim.h index 4be59907783a4a4523c0d374c85bd1dbc675f32c..c208026ccb329f3514a0fc9b264b8fe2183e0f5a 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXSysSim.h +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/L1CaloFEXSim/gFEXSysSim.h @@ -60,7 +60,14 @@ namespace LVL1 { virtual StatusCode fillgJetEDM(uint32_t tobWord) override ; - virtual StatusCode fillgGlobalEDM(uint32_t tobWord) override ; + virtual StatusCode fillgScalarEJwojEDM(uint32_t tobWord) override ; + + virtual StatusCode fillgMETComponentsJwojEDM(uint32_t tobWord) override ; + + virtual StatusCode fillgMHTComponentsJwojEDM(uint32_t tobWord) override ; + + virtual StatusCode fillgMSTComponentsJwojEDM(uint32_t tobWord) override ; + /** Internal data */ private: @@ -73,8 +80,17 @@ namespace LVL1 { std::unique_ptr< xAOD::gFexJetRoIContainer > m_gJetContainer; std::unique_ptr< xAOD::gFexJetRoIAuxContainer > m_gJetAuxContainer; - std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gGlobalContainer; - std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gGlobalAuxContainer; + std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gScalarEJwojContainer; + std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gScalarEJwojAuxContainer; + + std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gMETComponentsJwojContainer; + std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gMETComponentsJwojAuxContainer; + + std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gMHTComponentsJwojContainer; + std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gMHTComponentsJwojAuxContainer; + + std::unique_ptr< xAOD::gFexGlobalRoIContainer > m_gMSTComponentsJwojContainer; + std::unique_ptr< xAOD::gFexGlobalRoIAuxContainer > m_gMSTComponentsJwojAuxContainer; std::vector<gFEXSim*> m_gFEXCollection; @@ -84,13 +100,25 @@ namespace LVL1 { SG::ReadHandleKey<LVL1::gTowerContainer> m_gTowerContainerSGKey {this, "MyGTowers", "gTowerContainer", "Input container for gTowers"}; SG::ReadHandleKey<CaloCellContainer> m_scellsCollectionSGKey {this, "SCell", "SCell", "SCell"}; - SG::WriteHandleKey< xAOD::gFexJetRoIContainer > m_gFexJetOutKey {this,"Key_gFexJetOutputContainer","L1_gJetRoI","Output gFexJet container"}; - SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gFexGlobalOutKey {this,"Key_gFexGlobalOutputContainer","L1_gJetRoI","Output gFexGlobal container"}; + SG::WriteHandleKey< xAOD::gFexJetRoIContainer > m_gFexRhoOutKey {this,"Key_gFexRhoOutputContainer","L1_gFexRhoRoI","Output gFexRho (energy density) container"}; + SG::WriteHandleKey< xAOD::gFexJetRoIContainer > m_gFexBlockOutKey {this,"Key_gFexSRJetOutputContainer","L1_gFexSRJetRoI","Output gFexBlock (small-R jet) container"}; + SG::WriteHandleKey< xAOD::gFexJetRoIContainer > m_gFexJetOutKey {this,"Key_gFexLRJetOutputContainer","L1_gFexLRJetRoI","Output gFexJet (large-R jet) container"}; + + SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gScalarEJwojOutKey {this,"Key_gScalarEJwojOutputContainer","L1_gScalarEJwoj","Output Scalar MET and SumET (from Jets without Jets algo) container"}; + SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gMETComponentsJwojOutKey {this,"Key_gMETComponentsJwojOutputContainer","L1_gMETComponentsJwoj","Output total MET components (from Jets without Jets algo) container"}; + SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gMHTComponentsJwojOutKey {this,"Key_gMHTComponentsJwojOutputContainer","L1_gMHTComponentsJwoj","Output hard MET components (from Jets without Jets algo) container"}; + SG::WriteHandleKey< xAOD::gFexGlobalRoIContainer > m_gMSTComponentsJwojOutKey {this,"Key_gMSTComponentsJwojOutputContainer","L1_gMSTComponentsJwoj","Output soft MET components (from Jets without Jets algo) container"}; + + std::vector<uint32_t> m_allgRhoTobs; std::vector<uint32_t> m_allgBlockTobs; std::vector<uint32_t> m_allgJetTobs; - std::vector<uint32_t> m_allgGlobalTobs; + + std::vector<uint32_t> m_allgScalarEJwojTobs; + std::vector<uint32_t> m_allgMETComponentsJwojTobs; + std::vector<uint32_t> m_allgMHTComponentsJwojTobs; + std::vector<uint32_t> m_allgMSTComponentsJwojTobs; }; diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXDriver.cxx b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXDriver.cxx index bee5625655ad70f702032bf82f404496962044d0..e677fc31ee0db83bfc1eafb72aa53402d865ce44 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXDriver.cxx +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXDriver.cxx @@ -19,6 +19,9 @@ #include "xAODTrigger/gFexJetRoI.h" #include "xAODTrigger/gFexJetRoIContainer.h" +#include "xAODTrigger/gFexGlobalRoI.h" +#include "xAODTrigger/gFexGlobalRoIContainer.h" + #include <cassert> #include "SGTools/TestStore.h" @@ -62,9 +65,6 @@ StatusCode gFEXDriver::initialize() ATH_CHECK( m_gTowerContainerSGKey.initialize() ); - ATH_CHECK( m_gJetEDMKey.initialize() ); - - ATH_CHECK( m_gFEXOutputCollectionSGKey.initialize() ); return StatusCode::SUCCESS; diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXJwoJAlgo.cxx b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXJwoJAlgo.cxx index 5fc418980c68d941c9ae574ff169ce6f1507ddf5..7dccdf7bc2b334ac1bd4a48ab2c20a5181c45c27 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXJwoJAlgo.cxx +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXJwoJAlgo.cxx @@ -8,7 +8,6 @@ // email : cecilia.tosciri@cern.ch //*************************************************************************** -#define _USE_MATH_DEFINES #include <cmath> #include <vector> diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSim.cxx b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSim.cxx index 38013afcae06c562ff2be2fe901abbc0336e94a2..5cafff7bf6b72bf0673723be8d423ebde1368ae7 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSim.cxx +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSim.cxx @@ -48,6 +48,7 @@ namespace LVL1 { StatusCode gFEXSim::initialize(){ ATH_CHECK( m_gFEXFPGA_Tool.retrieve() ); ATH_CHECK( m_gFEXJetAlgoTool.retrieve() ); + ATH_CHECK( m_gFEXJwoJAlgoTool.retrieve() ); return StatusCode::SUCCESS; } @@ -157,7 +158,7 @@ StatusCode gFEXSim::executegFEXSim(gTowersIDs tmp_gTowersIDs_subset){ std::array<uint32_t, 7> BTOB1_dat = {0}; std::array<uint32_t, 7> BTOB2_dat = {0}; - // Retrieve the gFEXJetAlgoTool + // Use the gFEXJetAlgoTool // Pass the energy matrices to the algo tool, and run the algorithms auto tobs_v = m_gFEXJetAlgoTool->largeRfinder(Atwr, Btwr, CNtwr, CPtwr, @@ -190,8 +191,7 @@ StatusCode gFEXSim::executegFEXSim(gTowersIDs tmp_gTowersIDs_subset){ m_gJetTobWords[3] = BTOB2_dat[3];//leading gJet in FPGA B, eta bins (6--11) - // Retrieve the gFEXJetAlgoTool - ATH_CHECK( m_gFEXJwoJAlgoTool.retrieve() ); + // Use the gFEXJetAlgoTool std::array<uint32_t, 4> outTOB = {0}; m_gFEXJwoJAlgoTool->setAlgoConstant(FEXAlgoSpaceDefs::aFPGA_A, FEXAlgoSpaceDefs::bFPGA_A, @@ -200,13 +200,17 @@ StatusCode gFEXSim::executegFEXSim(gTowersIDs tmp_gTowersIDs_subset){ auto global_tobs = m_gFEXJwoJAlgoTool->jwojAlgo(Atwr, Btwr, outTOB); - m_gGlobalTobWords.resize(4); + m_gScalarEJwojTobWords.resize(1); + m_gMETComponentsJwojTobWords.resize(1); + m_gMHTComponentsJwojTobWords.resize(1); + m_gMSTComponentsJwojTobWords.resize(1); + //Placing the global TOBs into a dedicated array - m_gGlobalTobWords[0] = outTOB[0];// - m_gGlobalTobWords[1] = outTOB[1];// - m_gGlobalTobWords[2] = outTOB[2];// - m_gGlobalTobWords[3] = outTOB[3];// + m_gScalarEJwojTobWords[0] = outTOB[0];// + m_gMETComponentsJwojTobWords[0] = outTOB[1];// + m_gMHTComponentsJwojTobWords[0] = outTOB[2];// + m_gMSTComponentsJwojTobWords[0] = outTOB[3];// gFEXOutputCollection* gFEXOutputs; ATH_CHECK(evtStore()->retrieve(gFEXOutputs, "gFEXOutputCollection")); @@ -255,10 +259,26 @@ std::vector<uint32_t> gFEXSim::getgJetTOBs() const return m_gJetTobWords; } -std::vector<uint32_t> gFEXSim::getgGlobalTOBs() const +std::vector<uint32_t> gFEXSim::getgScalarEJwojTOBs() const +{ + return m_gScalarEJwojTobWords; +} + +std::vector<uint32_t> gFEXSim::getgMETComponentsJwojTOBs() const { - return m_gGlobalTobWords; + return m_gMETComponentsJwojTobWords; } +std::vector<uint32_t> gFEXSim::getgMHTComponentsJwojTOBs() const +{ + return m_gMHTComponentsJwojTobWords; +} + +std::vector<uint32_t> gFEXSim::getgMSTComponentsJwojTOBs() const +{ + return m_gMSTComponentsJwojTobWords; +} + + } // end of namespace bracket diff --git a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSysSim.cxx b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSysSim.cxx index 40728c9fe8516248e0fa6023b93484d036b45ffc..e6b4e9d67ae1d17b62489ecb984b0bca72154d48 100644 --- a/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSysSim.cxx +++ b/Trigger/TrigT1/L1CaloFEX/L1CaloFEXSim/src/gFEXSysSim.cxx @@ -42,8 +42,22 @@ namespace LVL1 { ATH_CHECK( m_gFEXSimTool.retrieve() ); + ATH_CHECK(m_gFexRhoOutKey.initialize()); + + ATH_CHECK(m_gFexBlockOutKey.initialize()); + ATH_CHECK(m_gFexJetOutKey.initialize()); + ATH_CHECK(m_gScalarEJwojOutKey.initialize()); + + ATH_CHECK(m_gMETComponentsJwojOutKey.initialize()); + + ATH_CHECK(m_gMHTComponentsJwojOutKey.initialize()); + + ATH_CHECK(m_gMSTComponentsJwojOutKey.initialize()); + + + return StatusCode::SUCCESS; } @@ -65,7 +79,7 @@ namespace LVL1 { StatusCode gFEXSysSim::execute() { - SG::ReadHandle<LVL1::gTowerContainer> this_gTowerContainer(m_gTowerContainerSGKey/*,ctx*/); + SG::ReadHandle<LVL1::gTowerContainer> this_gTowerContainer(m_gTowerContainerSGKey); if(!this_gTowerContainer.isValid()){ ATH_MSG_FATAL("Could not retrieve gTowerContainer " << m_gTowerContainerSGKey.key()); return StatusCode::FAILURE; @@ -75,7 +89,10 @@ namespace LVL1 { m_allgRhoTobs.clear(); m_allgBlockTobs.clear(); m_allgJetTobs.clear(); - m_allgGlobalTobs.clear(); + m_allgScalarEJwojTobs.clear(); + m_allgMETComponentsJwojTobs.clear(); + m_allgMHTComponentsJwojTobs.clear(); + m_allgMSTComponentsJwojTobs.clear(); // int centralNphi = 32; @@ -205,13 +222,19 @@ namespace LVL1 { } ATH_CHECK(m_gFEXSimTool->executegFEXSim(tmp_gTowersIDs_subset)); + m_allgRhoTobs = m_gFEXSimTool->getgRhoTOBs(); m_allgBlockTobs = m_gFEXSimTool->getgBlockTOBs(); m_allgJetTobs = m_gFEXSimTool->getgJetTOBs(); - m_allgGlobalTobs = m_gFEXSimTool->getgGlobalTOBs(); - m_gFEXSimTool->reset(); + + m_allgScalarEJwojTobs = m_gFEXSimTool->getgScalarEJwojTOBs(); + m_allgMETComponentsJwojTobs = m_gFEXSimTool->getgMETComponentsJwojTOBs(); + m_allgMHTComponentsJwojTobs = m_gFEXSimTool->getgMHTComponentsJwojTOBs(); + m_allgMSTComponentsJwojTobs = m_gFEXSimTool->getgMSTComponentsJwojTOBs(); + m_gFEXSimTool->reset(); + //Makes containers for different gFEX Jet objects m_gRhoContainer = std::make_unique<xAOD::gFexJetRoIContainer> (); m_gRhoAuxContainer = std::make_unique<xAOD::gFexJetRoIAuxContainer> (); m_gRhoContainer->setStore(m_gRhoAuxContainer.get()); @@ -224,9 +247,24 @@ namespace LVL1 { m_gJetAuxContainer = std::make_unique<xAOD::gFexJetRoIAuxContainer> (); m_gJetContainer->setStore(m_gJetAuxContainer.get()); - m_gGlobalContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> (); - m_gGlobalAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> (); - m_gGlobalContainer->setStore(m_gGlobalAuxContainer.get()); + //Makes containers for different gFEX Global objects + m_gScalarEJwojContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> (); + m_gScalarEJwojAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> (); + m_gScalarEJwojContainer->setStore(m_gScalarEJwojAuxContainer.get()); + + m_gMETComponentsJwojContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> (); + m_gMETComponentsJwojAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> (); + m_gMETComponentsJwojContainer->setStore(m_gMETComponentsJwojAuxContainer.get()); + + m_gMHTComponentsJwojContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> (); + m_gMHTComponentsJwojAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> (); + m_gMHTComponentsJwojContainer->setStore(m_gMHTComponentsJwojAuxContainer.get()); + + m_gMSTComponentsJwojContainer = std::make_unique<xAOD::gFexGlobalRoIContainer> (); + m_gMSTComponentsJwojAuxContainer = std::make_unique<xAOD::gFexGlobalRoIAuxContainer> (); + m_gMSTComponentsJwojContainer->setStore(m_gMSTComponentsJwojAuxContainer.get()); + + //iterate over all gRho Tobs and fill EDM with them for(auto &tob : m_allgRhoTobs){ @@ -241,16 +279,59 @@ namespace LVL1 { for(auto &tob : m_allgJetTobs){ ATH_CHECK(fillgJetEDM(tob)); } - //iterate over all Global Tobs and fill EDM with them - for(auto &tob : m_allgGlobalTobs){ - ATH_CHECK(fillgGlobalEDM(tob)); + + + //iterate over all JwoJ scalar energy Tobs and fill EDM with them (should be only one) + for(auto &tob : m_allgScalarEJwojTobs){ + ATH_CHECK(fillgScalarEJwojEDM(tob)); + } + //iterate over all JwoJ METcomponents Tobs and fill EDM with them (should be only one) + for(auto &tob : m_allgMETComponentsJwojTobs){ + ATH_CHECK(fillgMETComponentsJwojEDM(tob)); } + //iterate over all JwoJ MHTcomponents Tobs and fill EDM with them (should be only one) + for(auto &tob : m_allgMHTComponentsJwojTobs){ + ATH_CHECK(fillgMHTComponentsJwojEDM(tob)); + } + //iterate over all JwoJ MSTcomponents Tobs and fill EDM with them (should be only one) + for(auto &tob : m_allgMSTComponentsJwojTobs){ + ATH_CHECK(fillgMSTComponentsJwojEDM(tob)); + } + + - SG::WriteHandle<xAOD::gFexJetRoIContainer> outputgFexJetHandle(m_gFexJetOutKey/*, ctx*/); + + + SG::WriteHandle<xAOD::gFexJetRoIContainer> outputgFexRhoHandle(m_gFexRhoOutKey); + ATH_MSG_DEBUG(" write: " << outputgFexRhoHandle.key() << " = " << "..." ); + ATH_CHECK(outputgFexRhoHandle.record(std::move(m_gRhoContainer),std::move(m_gRhoAuxContainer))); + + SG::WriteHandle<xAOD::gFexJetRoIContainer> outputgFexBlockHandle(m_gFexBlockOutKey); + ATH_MSG_DEBUG(" write: " << outputgFexBlockHandle.key() << " = " << "..." ); + ATH_CHECK(outputgFexBlockHandle.record(std::move(m_gBlockContainer),std::move(m_gBlockAuxContainer))); + + SG::WriteHandle<xAOD::gFexJetRoIContainer> outputgFexJetHandle(m_gFexJetOutKey); ATH_MSG_DEBUG(" write: " << outputgFexJetHandle.key() << " = " << "..." ); ATH_CHECK(outputgFexJetHandle.record(std::move(m_gJetContainer),std::move(m_gJetAuxContainer))); - return StatusCode::SUCCESS; + + SG::WriteHandle<xAOD::gFexGlobalRoIContainer> outputgScalarEJwojHandle(m_gScalarEJwojOutKey); + ATH_MSG_DEBUG(" write: " << outputgScalarEJwojHandle.key() << " = " << "..." ); + ATH_CHECK(outputgScalarEJwojHandle.record(std::move(m_gScalarEJwojContainer),std::move(m_gScalarEJwojAuxContainer))); + + SG::WriteHandle<xAOD::gFexGlobalRoIContainer> outputgMETComponentsJwojHandle(m_gMETComponentsJwojOutKey); + ATH_MSG_DEBUG(" write: " << outputgMETComponentsJwojHandle.key() << " = " << "..." ); + ATH_CHECK(outputgMETComponentsJwojHandle.record(std::move(m_gMETComponentsJwojContainer),std::move(m_gMETComponentsJwojAuxContainer))); + + SG::WriteHandle<xAOD::gFexGlobalRoIContainer> outputgMHTComponentsJwojHandle(m_gMHTComponentsJwojOutKey); + ATH_MSG_DEBUG(" write: " << outputgMHTComponentsJwojHandle.key() << " = " << "..." ); + ATH_CHECK(outputgMHTComponentsJwojHandle.record(std::move(m_gMHTComponentsJwojContainer),std::move(m_gMHTComponentsJwojAuxContainer))); + + SG::WriteHandle<xAOD::gFexGlobalRoIContainer> outputgMSTComponentsJwojHandle(m_gMSTComponentsJwojOutKey); + ATH_MSG_DEBUG(" write: " << outputgMSTComponentsJwojHandle.key() << " = " << "..." ); + ATH_CHECK(outputgMSTComponentsJwojHandle.record(std::move(m_gMSTComponentsJwojContainer),std::move(m_gMSTComponentsJwojAuxContainer))); + + return StatusCode::SUCCESS; } StatusCode gFEXSysSim::fillgRhoEDM(uint32_t tobWord){ @@ -280,14 +361,40 @@ namespace LVL1 { return StatusCode::SUCCESS; } - StatusCode gFEXSysSim::fillgGlobalEDM(uint32_t tobWord){ + StatusCode gFEXSysSim::fillgMETComponentsJwojEDM(uint32_t tobWord){ + + std::unique_ptr<xAOD::gFexGlobalRoI> myEDM (new xAOD::gFexGlobalRoI()); + m_gMETComponentsJwojContainer->push_back(std::move(myEDM)); + m_gMETComponentsJwojContainer->back()->initialize(tobWord); + + return StatusCode::SUCCESS; + } + + StatusCode gFEXSysSim::fillgMHTComponentsJwojEDM(uint32_t tobWord){ std::unique_ptr<xAOD::gFexGlobalRoI> myEDM (new xAOD::gFexGlobalRoI()); - m_gGlobalContainer->push_back(std::move(myEDM)); - m_gGlobalContainer->back()->initialize(tobWord); + m_gMHTComponentsJwojContainer->push_back(std::move(myEDM)); + m_gMHTComponentsJwojContainer->back()->initialize(tobWord); return StatusCode::SUCCESS; } + StatusCode gFEXSysSim::fillgMSTComponentsJwojEDM(uint32_t tobWord){ + + std::unique_ptr<xAOD::gFexGlobalRoI> myEDM (new xAOD::gFexGlobalRoI()); + m_gMSTComponentsJwojContainer->push_back(std::move(myEDM)); + m_gMSTComponentsJwojContainer->back()->initialize(tobWord); + + return StatusCode::SUCCESS; + } + + StatusCode gFEXSysSim::fillgScalarEJwojEDM(uint32_t tobWord){ + + std::unique_ptr<xAOD::gFexGlobalRoI> myEDM (new xAOD::gFexGlobalRoI()); + m_gScalarEJwojContainer->push_back(std::move(myEDM)); + m_gScalarEJwojContainer->back()->initialize(tobWord); + + return StatusCode::SUCCESS; + } } // end of namespace bracket diff --git a/Trigger/TrigT1/L1CaloFEXToolInterfaces/L1CaloFEXToolInterfaces/IgFEXSim.h b/Trigger/TrigT1/L1CaloFEXToolInterfaces/L1CaloFEXToolInterfaces/IgFEXSim.h index 38c70ed13c279c3a6329806b89131c7a5a7e399a..2d59d33c3e908f51563448db981b39c01d443e9d 100644 --- a/Trigger/TrigT1/L1CaloFEXToolInterfaces/L1CaloFEXToolInterfaces/IgFEXSim.h +++ b/Trigger/TrigT1/L1CaloFEXToolInterfaces/L1CaloFEXToolInterfaces/IgFEXSim.h @@ -36,7 +36,15 @@ Interface definition for gFEXSim virtual std::vector<uint32_t> getgJetTOBs() const =0; - virtual std::vector<uint32_t> getgGlobalTOBs() const =0; + virtual std::vector<uint32_t> getgScalarEJwojTOBs() const =0; + + virtual std::vector<uint32_t> getgMETComponentsJwojTOBs() const =0; + + virtual std::vector<uint32_t> getgMHTComponentsJwojTOBs() const =0; + + virtual std::vector<uint32_t> getgMSTComponentsJwojTOBs() const =0; + + private: diff --git a/Trigger/TrigT1/L1CaloFEXToolInterfaces/L1CaloFEXToolInterfaces/IgFEXSysSim.h b/Trigger/TrigT1/L1CaloFEXToolInterfaces/L1CaloFEXToolInterfaces/IgFEXSysSim.h index 24c9469abd6e0a6a8299240aa2968af921db03fd..4d23327accd707f58b43104b448c3063f07b8dfd 100644 --- a/Trigger/TrigT1/L1CaloFEXToolInterfaces/L1CaloFEXToolInterfaces/IgFEXSysSim.h +++ b/Trigger/TrigT1/L1CaloFEXToolInterfaces/L1CaloFEXToolInterfaces/IgFEXSysSim.h @@ -33,7 +33,15 @@ Interface definition for gFEXSysSim virtual StatusCode fillgJetEDM(uint32_t tobWord) = 0; - virtual StatusCode fillgGlobalEDM(uint32_t tobWord) = 0; + virtual StatusCode fillgScalarEJwojEDM(uint32_t tobWord) = 0; + + virtual StatusCode fillgMETComponentsJwojEDM(uint32_t tobWord) = 0; + + virtual StatusCode fillgMHTComponentsJwojEDM(uint32_t tobWord) = 0; + + virtual StatusCode fillgMSTComponentsJwojEDM(uint32_t tobWord) = 0; + + private: