diff --git a/Event/xAOD/xAODTrigger/CMakeLists.txt b/Event/xAOD/xAODTrigger/CMakeLists.txt index 65c91c4d1c952c41c2f6b9e48ca2d56223efbf37..023a5307e56dbae05b2a229dcff65b58eb6f30ed 100644 --- a/Event/xAOD/xAODTrigger/CMakeLists.txt +++ b/Event/xAOD/xAODTrigger/CMakeLists.txt @@ -42,6 +42,10 @@ atlas_add_test( ut_xaodtrigger_bytestreamauxcontainer_v1_test SOURCES test/ut_xaodtrigger_bytestreamauxcontainer_v1_test.cxx LINK_LIBRARIES AthContainers xAODTrigger ) +atlas_add_test( ut_xaodtrigger_gFexEDM_test + SOURCES test/ut_xaodtrigger_gFexEDM_test.cxx + LINK_LIBRARIES AthContainers xAODTrigger) + if( NOT XAOD_STANDALONE ) atlas_add_test( ut_xaodtrigger_trigcomposite_test SOURCES test/ut_xaodtrigger_trigcomposite_test.cxx diff --git a/Event/xAOD/xAODTrigger/Root/dict/ContainerProxies.cxx b/Event/xAOD/xAODTrigger/Root/dict/ContainerProxies.cxx index 04a66ad2406c17d4d09022e7363570372ebdf8cf..33e79d1dfb781b05ab518bb89dd69fad9967cddd 100644 --- a/Event/xAOD/xAODTrigger/Root/dict/ContainerProxies.cxx +++ b/Event/xAOD/xAODTrigger/Root/dict/ContainerProxies.cxx @@ -17,6 +17,8 @@ #include "xAODTrigger/versions/JetRoIContainer_v2.h" #include "xAODTrigger/versions/MuonRoIContainer_v1.h" #include "xAODTrigger/versions/eFexEMRoIContainer_v1.h" +#include "xAODTrigger/versions/gFexJetRoIContainer_v1.h" +#include "xAODTrigger/versions/gFexGlobalRoIContainer_v1.h" #include "xAODTrigger/versions/TrigCompositeContainer_v1.h" #include "xAODTrigger/versions/BunchConfContainer_v1.h" @@ -32,6 +34,8 @@ ADD_NS_DV_PROXY( xAOD, JetRoIContainer_v1 ); ADD_NS_DV_PROXY( xAOD, JetRoIContainer_v2 ); ADD_NS_DV_PROXY( xAOD, MuonRoIContainer_v1 ); ADD_NS_DV_PROXY( xAOD, eFexEMRoIContainer_v1 ); +ADD_NS_DV_PROXY( xAOD, gFexJetRoIContainer_v1 ); +ADD_NS_DV_PROXY( xAOD, gFexGlobalRoIContainer_v1 ); ADD_NS_DV_PROXY( xAOD, TrigCompositeContainer_v1 ); ADD_NS_DV_PROXY( xAOD, BunchConfContainer_v1 ); diff --git a/Event/xAOD/xAODTrigger/Root/gFexGlobalRoIAuxContainer_v1.cxx b/Event/xAOD/xAODTrigger/Root/gFexGlobalRoIAuxContainer_v1.cxx new file mode 100644 index 0000000000000000000000000000000000000000..4dbd531e1bc49c0d412906ff5706d910c73e76d5 --- /dev/null +++ b/Event/xAOD/xAODTrigger/Root/gFexGlobalRoIAuxContainer_v1.cxx @@ -0,0 +1,23 @@ +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +// Local include(s): +#include "xAODTrigger/versions/gFexGlobalRoIAuxContainer_v1.h" + +namespace xAOD { + + gFexGlobalRoIAuxContainer_v1::gFexGlobalRoIAuxContainer_v1() + : AuxContainerBase() { + + AUX_VARIABLE( word); + AUX_VARIABLE( saturated); + AUX_VARIABLE( globalType); + AUX_VARIABLE( statusOne); + AUX_VARIABLE( statusTwo); + AUX_VARIABLE( quantityOne); + AUX_VARIABLE( quantityTwo); + + } + +} // namespace xAOD diff --git a/Event/xAOD/xAODTrigger/Root/gFexGlobalRoI_v1.cxx b/Event/xAOD/xAODTrigger/Root/gFexGlobalRoI_v1.cxx new file mode 100755 index 0000000000000000000000000000000000000000..b25b525b34c06e8ad35d4c98715a19a535c449f1 --- /dev/null +++ b/Event/xAOD/xAODTrigger/Root/gFexGlobalRoI_v1.cxx @@ -0,0 +1,159 @@ + +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + + +// System include(s): +#include <stdexcept> + +// xAOD include(s): +#include "xAODCore/AuxStoreAccessorMacros.h" + +// Local include(s): +#include "xAODTrigger/versions/gFexGlobalRoI_v1.h" + +namespace xAOD { + + /// Constants used in converting to ATLAS units + const float gFexGlobalRoI_v1::s_tobEtScale = 3200.; ///3.2 GeV is the energy range size (step between two adjiacent bits) + + + gFexGlobalRoI_v1::gFexGlobalRoI_v1() + : SG::AuxElement() { + + } + + void gFexGlobalRoI_v1::initialize( uint32_t word ) { + + setWord( word ); + setGlobalType(unpackType()); + setQuantityOne( unpackQuantityOneIndex() ); + setQuantityTwo( unpackQuantityTwoIndex() ); + setStatusOne( unpackStatusOne()); + setStatusTwo( unpackStatusTwo()); + setSaturated(unpackSaturated()); + + } + + + /// Raw data words + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexGlobalRoI_v1, uint32_t, word, + setWord ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexGlobalRoI_v1, char, statusOne, + setStatusOne ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexGlobalRoI_v1, char, statusTwo, + setStatusTwo ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexGlobalRoI_v1, char, saturated, + setSaturated ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexGlobalRoI_v1, int, globalType, + setGlobalType ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexGlobalRoI_v1, uint16_t, quantityOne, + setQuantityOne ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexGlobalRoI_v1, uint16_t, quantityTwo, + setQuantityTwo ) + + + /// Methods to decode data from the TOB/RoI and return to the user + + + /// Object disambiguation () + int gFexGlobalRoI_v1::unpackType() const { + auto tobID = (word() >> s_tobIDBit) & s_tobIDMask; + if (tobID == 0 ) return gNull; + else if (tobID == 1 ) return gScalar; /// scalar values (MET, SumET) + else if (tobID == 2 ) return gMET; /// MET components (METx, METy) + else if (tobID == 3 ) return gMHT; /// MET hard term components (MHTx, MHTy) + else if (tobID == 4 ) return gMST; /// MET soft term components (MSTx, MSTy) + else return -999; + } + + bool gFexGlobalRoI_v1::isgScalar() const { + if (globalType() == gScalar){ + return true; + } + return false; + } + + bool gFexGlobalRoI_v1::isgMET() const { + if (globalType() == gMET){ + return true; + } + return false; + } + + bool gFexGlobalRoI_v1::isgMHT() const { + if (globalType() == gMHT){ + return true; + } + return false; + } + + bool gFexGlobalRoI_v1::isgMST() const { + if (globalType() == gMST){ + return true; + } + return false; + } + + + + unsigned int gFexGlobalRoI_v1::unpackStatusOne() const{ + return (word() >> s_statusOneBit) & s_statusOneMask; + } + + unsigned int gFexGlobalRoI_v1::unpackStatusTwo() const{ + return (word() >> s_statusTwoBit) & s_statusTwoMask; + } + + unsigned int gFexGlobalRoI_v1::unpackSaturated() const{ + return (word() >> s_saturBit) & s_saturMask; + } + + + /// Raw quantity on TOB scale (3200 MeV/count) + unsigned int gFexGlobalRoI_v1::unpackQuantityOneIndex() const { + // Data content = TOB + return (word() >> s_quantityOneBit) & s_quantityOneMask; + + } + + unsigned int gFexGlobalRoI_v1::unpackQuantityTwoIndex() const { + // Data content = TOB + return (word() >> s_quantityTwoBit) & s_quantityTwoMask; + + } + + + /// Methods that require combining results or applying scales + + /// MET/SumEt on TOB scale + float gFexGlobalRoI_v1::METquantityOne() const { + if (globalType() != gNull){ + return quantityOne()*s_tobEtScale; + } + return -999; + } + + float gFexGlobalRoI_v1::METquantityTwo() const { + if (globalType() != gNull){ + return quantityTwo()*s_tobEtScale; + } + return -999; + } + + float gFexGlobalRoI_v1::SumEt() const { + if (globalType() == gScalar ){ + return quantityTwo()*s_tobEtScale; + } + return -999; + } + + + + + + + + +} // namespace xAOD diff --git a/Event/xAOD/xAODTrigger/Root/gFexJetRoIAuxContainer_v1.cxx b/Event/xAOD/xAODTrigger/Root/gFexJetRoIAuxContainer_v1.cxx new file mode 100644 index 0000000000000000000000000000000000000000..ebced408185f48f9a8dd9e756d8d6ae0b64b396f --- /dev/null +++ b/Event/xAOD/xAODTrigger/Root/gFexJetRoIAuxContainer_v1.cxx @@ -0,0 +1,24 @@ +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + +// $Id: gFexJetRoIAuxContainer_v1.cxx 2020-12-15 ctosciri $ + +// Local include(s): +#include "xAODTrigger/versions/gFexJetRoIAuxContainer_v1.h" + +namespace xAOD { + + gFexJetRoIAuxContainer_v1::gFexJetRoIAuxContainer_v1() + : AuxContainerBase() { + + AUX_VARIABLE( word); + AUX_VARIABLE( gFexType); + AUX_VARIABLE( tobEt); + AUX_VARIABLE( iEta); + AUX_VARIABLE( iPhi); + AUX_VARIABLE( status); + AUX_VARIABLE( saturated); + } + +} // namespace xAOD diff --git a/Event/xAOD/xAODTrigger/Root/gFexJetRoI_v1.cxx b/Event/xAOD/xAODTrigger/Root/gFexJetRoI_v1.cxx new file mode 100755 index 0000000000000000000000000000000000000000..d3932e313b5a1f4c746fb6eeff41b1dae9ea55e7 --- /dev/null +++ b/Event/xAOD/xAODTrigger/Root/gFexJetRoI_v1.cxx @@ -0,0 +1,203 @@ + +/* + Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration +*/ + + +// System include(s): +#include <stdexcept> + +// xAOD include(s): +#include "xAODCore/AuxStoreAccessorMacros.h" + +// Local include(s): +#include "xAODTrigger/versions/gFexJetRoI_v1.h" + +namespace xAOD { + + /// Constants used in converting to ATLAS units + const float gFexJetRoI_v1::s_tobEtScale = 3200.; ///3.2 GeV is the energy range size (step between two adjiacent bits) + const float gFexJetRoI_v1::s_centralPhiWidth = 0.2; ///Phi is 32-bit starting from 0 with steps of 0.2; gPhi = 0 is 0.0 < phi < 0.2 while gPhi = 31 is 6.2 < phi < 6.4 + const float gFexJetRoI_v1::s_forwardPhiWidth = 0.4; ///Phi is 32-bit starting from 0 with steps of 0.4; gPhi = 0 is 0.0 < phi < 0.4 while gPhi = 15 is 6.2 < phi < 6.4 + const std::vector<float> gFexJetRoI_v1::s_EtaPosition = { -4.9, -4.45, -4.0, -3.5, -3.2, -3.1, + -2.9, -2.7, -2.5, -2.2, -2.0, -1.8, -1.6, -1.4, -1.2, -1.0, + -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, + 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.5, 2.7, 2.9, + 3.1, 3.2, 3.5, 4.0, 4.45, 4.9 }; + + //vector<float> gFexJetRoI_v1::s_maxEta = {}; + + gFexJetRoI_v1::gFexJetRoI_v1() + : SG::AuxElement() { + + } + + void gFexJetRoI_v1::initialize( uint32_t word ) { + + setWord( word ); + setgFexType(unpackType()); + setTobEt( unpackEtIndex() ); + setEta( unpackEtaIndex() ); + setPhi( unpackPhiIndex() ); + setStatus( unpackStatus()); + setSaturated(unpackSaturated()); + + } + + + /// Raw data words + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexJetRoI_v1, uint32_t, word, + setWord ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexJetRoI_v1, char, status, + setStatus ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexJetRoI_v1, char, saturated, + setSaturated ) + + /// Only calculable externally + ///eFex puts here RetaCore, RetaEnv, RhadEM, RhadHad, WstotNumerator etc (coming from algorithms) + + /// Extracted from data words + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexJetRoI_v1, int, gFexType, + setgFexType ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexJetRoI_v1, uint16_t, tobEt, + setTobEt ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexJetRoI_v1, uint8_t, iEta, + setEta ) + AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( gFexJetRoI_v1, uint8_t, iPhi, + setPhi ) + + + /// Methods to decode data from the TOB/RoI and return to the user + + + /// Object disambiguation () + int gFexJetRoI_v1::unpackType() const { + auto tobID = (word() >> s_tobIDBit) & s_tobIDMask; + if (tobID == 0 ){ + return gRho; + } + else if (tobID == 1 || tobID == 2 || tobID == 3 || tobID == 4 ) { + return gBlock; + } + else if (tobID == 5 || tobID == 6) { + return gJet; + } + else return -999; + } + + bool gFexJetRoI_v1::isgBlock() const { + if (gFexType() == gBlock){ + return true; + } + return false; + } + + bool gFexJetRoI_v1::isgJet() const { + if (gFexType() == gJet){ + return true; + } + return false; + } + + bool gFexJetRoI_v1::isgRho() const { + if (gFexType() == gRho){ + return true; + } + return false; + } + + bool gFexJetRoI_v1::isLeadingJet() const { + auto tobID = (word() >> s_tobIDBit) & s_tobIDMask; + if (tobID == 1 || tobID == 2 || tobID == 5 || tobID == 6){ + return true; + } + return false; + } + + unsigned int gFexJetRoI_v1::unpackStatus() const{ + return (word() >> s_statusBit) & s_statusMask; + } + + unsigned int gFexJetRoI_v1::unpackSaturated() const{ + return (word() >> s_saturBit) & s_saturMask; + } + + + /// Raw ET on TOB scale (3200 MeV/count) + unsigned int gFexJetRoI_v1::unpackEtIndex() const { + // Data content = TOB + return (word() >> s_etBit) & s_etMask; + + } + + /// Return an eta index in the range 0-49 + unsigned int gFexJetRoI_v1::unpackEtaIndex() const { + return (word() >> s_etaBit) & s_etaMask; + + } + + /// Return an eta index in the range 0-32 + unsigned int gFexJetRoI_v1::unpackPhiIndex() const { + return (word() >> s_phiBit) & s_phiMask; + + } + + /// Methods that require combining results or applying scales + + /// ET on TOB scale + float gFexJetRoI_v1::etMin() const { + return tobEt()*s_tobEtScale; + } + + float gFexJetRoI_v1::etMax() const { + return tobEt()*s_tobEtScale + s_tobEtScale; + } + + /// Floating point coordinates. Return he minimum Eta and he maximum Eta of the Eta range. + float gFexJetRoI_v1::etaMin() const { + if (gFexType() != gRho){ + return s_EtaPosition[iEta()]; + } + return -999; + + } + + float gFexJetRoI_v1::etaMax() const { + if (gFexType() != gRho){ + return s_EtaPosition[iEta()+1]; + } + return -999; + + } + + /// Floating point coordinates. + float gFexJetRoI_v1::phiMin() const { + if (gFexType() != gRho){ + if (( iEta() <= 4 ) || ( (iEta() >= 34) && (iEta() <= 38) )){ + return iPhi() * s_forwardPhiWidth; + } + else if ( iEta() > 4 && iEta() < 34 ){ + return iPhi() * s_centralPhiWidth; + } + else return -999; + } + return -999; + } + + float gFexJetRoI_v1::phiMax() const { + if (gFexType() != gRho){ + if (( iEta() <= 4 ) || ( iEta() >= 34 && iEta() <= 38 )){ + return iPhi() * s_forwardPhiWidth + s_forwardPhiWidth; + } + else if ( iEta() > 4 && iEta() < 34 ){ + return iPhi() * s_centralPhiWidth + s_centralPhiWidth; + } + else return -999; + } + return -999; + } + + + + +} // namespace xAOD diff --git a/Event/xAOD/xAODTrigger/Root/xAODTriggerCLIDs.cxx b/Event/xAOD/xAODTrigger/Root/xAODTriggerCLIDs.cxx index 3f117e029d7ea05eba44a1520d5c3d956a67239f..87b0f08194236afb7d4643fe5f0a530902edb170 100644 --- a/Event/xAOD/xAODTrigger/Root/xAODTriggerCLIDs.cxx +++ b/Event/xAOD/xAODTrigger/Root/xAODTriggerCLIDs.cxx @@ -32,3 +32,7 @@ #include "xAODTrigger/RoiDescriptorStoreAuxInfo.h" #include "xAODTrigger/eFexEMRoIContainer.h" #include "xAODTrigger/eFexEMRoIAuxContainer.h" +#include "xAODTrigger/gFexJetRoIContainer.h" +#include "xAODTrigger/gFexJetRoIAuxContainer.h" +#include "xAODTrigger/gFexGlobalRoIContainer.h" +#include "xAODTrigger/gFexGlobalRoIAuxContainer.h" diff --git a/Event/xAOD/xAODTrigger/share/ut_xaodtrigger_gFexEDM_test.ref b/Event/xAOD/xAODTrigger/share/ut_xaodtrigger_gFexEDM_test.ref new file mode 100644 index 0000000000000000000000000000000000000000..9378a57be3265878be9f6172c4803e93068a1a29 --- /dev/null +++ b/Event/xAOD/xAODTrigger/share/ut_xaodtrigger_gFexEDM_test.ref @@ -0,0 +1,4 @@ +Initializing test object: jet TOB +Test jet TOB completed! +Initializing test object: global TOB +Test global TOB completed! diff --git a/Event/xAOD/xAODTrigger/test/ut_xaodtrigger_gFexEDM_test.cxx b/Event/xAOD/xAODTrigger/test/ut_xaodtrigger_gFexEDM_test.cxx new file mode 100644 index 0000000000000000000000000000000000000000..541856d4bc24963b48f3e28d35d48a37025128e6 --- /dev/null +++ b/Event/xAOD/xAODTrigger/test/ut_xaodtrigger_gFexEDM_test.cxx @@ -0,0 +1,106 @@ +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +// System include(s): +#undef NDEBUG +#include <iostream> +#include <sstream> +#include <cassert> + +// Local include(s): +#include "xAODTrigger/gFexJetRoI.h" +#include "xAODTrigger/versions/gFexJetRoIAuxContainer_v1.h" +#include "xAODTrigger/gFexJetRoIAuxContainer.h" +#include "xAODTrigger/gFexJetRoIContainer.h" +#include "xAODTrigger/gFexGlobalRoI.h" +#include "xAODTrigger/versions/gFexGlobalRoIAuxContainer_v1.h" +#include "xAODTrigger/gFexGlobalRoIAuxContainer.h" +#include "xAODTrigger/gFexGlobalRoIContainer.h" + +/// Helper macro for testing the code +#define SIMPLE_ASSERT( EXP ) \ + do { \ + const bool result = EXP; \ + if( ! result ) { \ + std::cerr << __FILE__ << ":" << __LINE__ \ + << " Failed test: " << #EXP << std::endl; \ + throw std::runtime_error( "Failed " #EXP ); \ + } \ + } while( 0 ) + + +/// Testing the 32-bit TOB +void testgFexJetRoI() { + + // Create the container that we want to test: + xAOD::gFexJetRoIAuxContainer aux; + xAOD::gFexJetRoIContainer c; + c.setStore( &aux ); + + // Create a test object: + xAOD::gFexJetRoI* obj = new xAOD::gFexJetRoI(); + c.push_back( obj ); + + std::cout << "Initializing test object: jet TOB" << std::endl; + uint32_t word = 205353989; + obj->initialize(word); + + SIMPLE_ASSERT( obj->isgRho() == 0 ); + SIMPLE_ASSERT( obj->isgBlock() == 0 ); + SIMPLE_ASSERT( obj->isgJet() == 1 ); + SIMPLE_ASSERT( obj->gFexType() == 1 ); + SIMPLE_ASSERT( obj->isLeadingJet() == 1 ); + + SIMPLE_ASSERT( obj->etMin() == 11020800 ); + SIMPLE_ASSERT( obj->etMax() == 11024000 ); + SIMPLE_ASSERT( obj->etaMin() == static_cast<float>(-3.5) ); + SIMPLE_ASSERT( obj->etaMax() == static_cast<float>(-3.2) ); + SIMPLE_ASSERT( obj->phiMin() == static_cast<float>(1.2) ); + SIMPLE_ASSERT( obj->phiMax() == static_cast<float>(1.6) ); + + std::cout << "Test jet TOB completed!" << std::endl; + + +} + +void testgFexGlobalRoI() { + + // Create the container that we want to test: + xAOD::gFexGlobalRoIAuxContainer aux; + xAOD::gFexGlobalRoIContainer c; + c.setStore( &aux ); + + // Create a test object: + xAOD::gFexGlobalRoI* obj = new xAOD::gFexGlobalRoI(); + c.push_back( obj ); + + std::cout << "Initializing test object: global TOB" << std::endl; + uint32_t word = 192035055; + obj->initialize(word); + + SIMPLE_ASSERT( obj->isgScalar() == 0 ); + SIMPLE_ASSERT( obj->isgMET() == 1 ); + SIMPLE_ASSERT( obj->isgMHT() == 0 ); + SIMPLE_ASSERT( obj->isgMST() == 0 ); + SIMPLE_ASSERT( obj->globalType() == 2 ); + + SIMPLE_ASSERT( obj->METquantityOne() == 5846400 ); + SIMPLE_ASSERT( obj->METquantityTwo() == 7318400 ); + SIMPLE_ASSERT( obj->SumEt() == -999 ); + + std::cout << "Test global TOB completed!" << std::endl; + + +} +int main() { + + // Run the tests: + testgFexJetRoI(); + testgFexGlobalRoI(); + + // Return gracefully: + return 0; + + +} diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/gFexGlobalRoI.h b/Event/xAOD/xAODTrigger/xAODTrigger/gFexGlobalRoI.h new file mode 100644 index 0000000000000000000000000000000000000000..e32a8defd60780196483ed1a19e2e668bddbcff1 --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/gFexGlobalRoI.h @@ -0,0 +1,21 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODGFEXGLOBALROI_H +#define XAODGFEXGLOBALROI_H + +// Local include(s): +#include "xAODTrigger/versions/gFexGlobalRoI_v1.h" + +// Namespace holding all the xAOD EDM classes +namespace xAOD{ + /// Define the latest version of the eFexEMRoI class + typedef gFexGlobalRoI_v1 gFexGlobalRoI; +} + +#include "xAODCore/CLASS_DEF.h" +CLASS_DEF( xAOD::gFexGlobalRoI , 32073859 , 1 ) +#endif diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/gFexGlobalRoIAuxContainer.h b/Event/xAOD/xAODTrigger/xAODTrigger/gFexGlobalRoIAuxContainer.h new file mode 100644 index 0000000000000000000000000000000000000000..03d3accf559241ee873e4a708ce42db49c37ba31 --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/gFexGlobalRoIAuxContainer.h @@ -0,0 +1,21 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_GFEXGLOBALROIAUXCONTAINER_H +#define XAODTRIGGER_GFEXGLOBALROIAUXCONTAINER_H + +// Local include(s): +#include "xAODTrigger/versions/gFexGlobalRoIAuxContainer_v1.h" + +namespace xAOD{ + typedef gFexGlobalRoIAuxContainer_v1 gFexGlobalRoIAuxContainer; +} + +// Set up a CLID for the class: +#include "xAODCore/CLASS_DEF.h" +CLASS_DEF( xAOD::gFexGlobalRoIAuxContainer , 1089357246 , 1 ) + +#endif // XAODTRIGGER_GFEXGLOBALROIAUXCONTAINER_H diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/gFexGlobalRoIContainer.h b/Event/xAOD/xAODTrigger/xAODTrigger/gFexGlobalRoIContainer.h new file mode 100644 index 0000000000000000000000000000000000000000..72b2ccf11b416df039bb97003789f11a69bb2160 --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/gFexGlobalRoIContainer.h @@ -0,0 +1,22 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_GFEXGLOBALROICONTAINER_H +#define XAODTRIGGER_GFEXGLOBALROICONTAINER_H + +// Local include(s): +#include "xAODTrigger/gFexGlobalRoI.h" +#include "xAODTrigger/versions/gFexGlobalRoIContainer_v1.h" + +namespace xAOD{ + typedef gFexGlobalRoIContainer_v1 gFexGlobalRoIContainer; +} + +// Set up a CLID for the container: +#include "xAODCore/CLASS_DEF.h" +CLASS_DEF( xAOD::gFexGlobalRoIContainer , 1186121853 , 1 ) + +#endif // XAODTRIGGER_GFEXGLOBALROICONTAINER_H diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/gFexJetRoI.h b/Event/xAOD/xAODTrigger/xAODTrigger/gFexJetRoI.h new file mode 100644 index 0000000000000000000000000000000000000000..411d32d6b6638765350ee1a016f2065fa08c74ba --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/gFexJetRoI.h @@ -0,0 +1,21 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODGFEXJETROI_H +#define XAODGFEXJETROI_H + +// Local include(s): +#include "xAODTrigger/versions/gFexJetRoI_v1.h" + +// Namespace holding all the xAOD EDM classes +namespace xAOD{ + /// Define the latest version of the gFexJetRoI class + typedef gFexJetRoI_v1 gFexJetRoI; +} + +#include "xAODCore/CLASS_DEF.h" +CLASS_DEF( xAOD::gFexJetRoI , 32077851 , 1 ) +#endif diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/gFexJetRoIAuxContainer.h b/Event/xAOD/xAODTrigger/xAODTrigger/gFexJetRoIAuxContainer.h new file mode 100644 index 0000000000000000000000000000000000000000..1e7ac88ff5cc0ddf6b5302bda5fd743686456b96 --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/gFexJetRoIAuxContainer.h @@ -0,0 +1,21 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_GFEXJETROIAUXCONTAINER_H +#define XAODTRIGGER_GFEXJETROIAUXCONTAINER_H + +// Local include(s): +#include "xAODTrigger/versions/gFexJetRoIAuxContainer_v1.h" + +namespace xAOD{ + typedef gFexJetRoIAuxContainer_v1 gFexJetRoIAuxContainer; +} + +// Set up a CLID for the class: +#include "xAODCore/CLASS_DEF.h" +CLASS_DEF( xAOD::gFexJetRoIAuxContainer , 1099347246 , 1 ) + +#endif // XAODTRIGGER_GFEXJETRoIAUXCONTAINER_H diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/gFexJetRoIContainer.h b/Event/xAOD/xAODTrigger/xAODTrigger/gFexJetRoIContainer.h new file mode 100644 index 0000000000000000000000000000000000000000..000c01001b24752d1749c9e14c3b2fe984c62742 --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/gFexJetRoIContainer.h @@ -0,0 +1,22 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_GFEXJETROICONTAINER_H +#define XAODTRIGGER_GFEXJETROICONTAINER_H + +// Local include(s): +#include "xAODTrigger/gFexJetRoI.h" +#include "xAODTrigger/versions/gFexJetRoIContainer_v1.h" + +namespace xAOD{ + typedef gFexJetRoIContainer_v1 gFexJetRoIContainer; +} + +// Set up a CLID for the container: +#include "xAODCore/CLASS_DEF.h" +CLASS_DEF( xAOD::gFexJetRoIContainer , 1176191653 , 1 ) + +#endif // XAODTRIGGER_GFEXJETRoICONTAINER_H diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/selection.xml b/Event/xAOD/xAODTrigger/xAODTrigger/selection.xml index f6cf1bdca61d07afc21d662f56479ab367fc972f..d153a26b6972ba817a40d50175ff1e666fa2e57c 100644 --- a/Event/xAOD/xAODTrigger/xAODTrigger/selection.xml +++ b/Event/xAOD/xAODTrigger/xAODTrigger/selection.xml @@ -127,6 +127,30 @@ id="6A1D7149-7476-4F23-8896-D88CB3BF6846" /> <typedef name="xAOD::eFexEMRoIAuxContainer" /> + + <class name="xAOD::gFexJetRoI_v1" /> + <class name="xAOD::gFexJetRoIContainer_v1" + id="4BFC5008-7A84-4A04-9E7D-ABF8B124CFEF" /> + <typedef name="xAOD::gFexJetRoI" /> + <typedef name="xAOD::gFexJetRoIContainer" /> + + <!-- RoI auxilliary types --> + <class name="xAOD::gFexJetRoIAuxContainer_v1" + id="6E01273B-FFF8-4D3C-95F9-7F0691DB85E8" /> + <typedef name="xAOD::gFexJetRoIAuxContainer" /> + + <class name="xAOD::gFexGlobalRoI_v1" /> + <class name="xAOD::gFexGlobalRoIContainer_v1" + id="CD053646-F310-4EDA-9378-E1282C413A22" /> + <typedef name="xAOD::gFexGlobalRoI" /> + <typedef name="xAOD::gFexGlobalRoIContainer" /> + + <!-- RoI auxilliary types --> + <class name="xAOD::gFexGlobalRoIAuxContainer_v1" + id="B73CF3F4-9E94-4F99-834D-A6AE68968B2D" /> + <typedef name="xAOD::gFexGlobalRoIAuxContainer" /> + + <!-- xAOD::TriggerMenu interface type(s). --> <class name="xAOD::TriggerMenu_v1" /> <class name="xAOD::TriggerMenuContainer_v1" diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexGlobalRoIAuxContainer_v1.h b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexGlobalRoIAuxContainer_v1.h new file mode 100644 index 0000000000000000000000000000000000000000..b6ce040c65bd6df6eadb0711fc6e58ffb357558f --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexGlobalRoIAuxContainer_v1.h @@ -0,0 +1,50 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_VERSIONS_GFEXGLOBALROIAUXCONTAINER_V1_H +#define XAODTRIGGER_VERSIONS_GFEXGLOBALROIAUXCONTAINER_V1_H + +// System include(s): +extern "C" { +# include <stdint.h> +} +#include <vector> +#include <string> + +// EDM include(s): +#include "xAODCore/AuxContainerBase.h" + +namespace xAOD { + + /// Auxiliary store for the LVL1 GFEX TOB container + /// + /// This auxiliary container can describe the properties of a container + /// of LVL1 GLOBAL TOB. + + class gFexGlobalRoIAuxContainer_v1 : public AuxContainerBase { + + public: + /// Default constuctor + gFexGlobalRoIAuxContainer_v1(); + + private: + std::vector< uint32_t > word; + std::vector< char > saturated; + std::vector< int > globalType; + std::vector< char > statusOne; + std::vector< char > statusTwo; + std::vector< uint16_t > quantityOne; + std::vector< uint16_t > quantityTwo; + + }; // class gFexGlobalRoIAuxContainer_v1 + +} // namespace xAOD + +// Declare the inheritance of the container: +#include "xAODCore/BaseInfo.h" +SG_BASE( xAOD::gFexGlobalRoIAuxContainer_v1, xAOD::AuxContainerBase ); + +#endif // XAODTRIGGER_VERSIONS_gFexGlobalRoIAuxContainer_V1_H diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexGlobalRoIContainer_v1.h b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexGlobalRoIContainer_v1.h new file mode 100644 index 0000000000000000000000000000000000000000..ec347425313478dbbff19404931b00e758b72f36 --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexGlobalRoIContainer_v1.h @@ -0,0 +1,21 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_VERSIONS_GFEXGLOBALROICONTAINER_V1_H +#define XAODTRIGGER_VERSIONS_GFEXGLOBALROICONTAINER_V1_H + +// Core include(s): +#include "AthContainers/DataVector.h" + +// Local include(s): +#include "xAODTrigger/versions/gFexGlobalRoI_v1.h" + +namespace xAOD { + /// Declare the Global TOB container type + typedef DataVector< xAOD::gFexGlobalRoI_v1 > gFexGlobalRoIContainer_v1; +} + +#endif // XAODTRIGGER_VERSIONS_GFEXGLOBALROICONTAINER_V1_H diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexGlobalRoI_v1.h b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexGlobalRoI_v1.h new file mode 100644 index 0000000000000000000000000000000000000000..315d7ac4b15f9b84597f98fad2b1991253bddb81 --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexGlobalRoI_v1.h @@ -0,0 +1,125 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_VERSIONS_GFEXGLOBALROI_V1_H +#define XAODTRIGGER_VERSIONS_GFEXGLOBALROI_V1_H + +// System include(s): +extern "C" { +# include <stdint.h> +} +#include <vector> +#include <string> + +// xAOD include(s): +#include "AthContainers/AuxElement.h" + +namespace xAOD { + + /// Class describing properties of a LVL1 gFEX global Trigger Object (TOB) + /// in the xAOD format. + + class gFexGlobalRoI_v1 : public SG::AuxElement { + + public: + /// Default constructor + gFexGlobalRoI_v1(); + + /// Initialise the object with its most important properties: only the word for gFEX + void initialize( uint32_t word ); + + /// Object types + enum ObjectType { + gNull = 0, /// indicaes a null value (should be accompanied by a Status=0) + gScalar = 1, /// scalar values (MET, SumET)) + gMET = 2, /// MET components (METx, METy) + gMHT = 3, /// MET hard term components (MHTx, MHTy) + gMST = 4 /// MET soft term components (MSTx, MSTy) + }; + + + /// The "raw" 32-bit word describing the object candidate + uint32_t word() const; + /// Set the "raw" 32-bit words describing the object candidate + void setWord( uint32_t value ); + + + /// TOB ET (decoded from TOB, stored for convenience) + uint16_t quantityOne() const; /// getter for integer ET on TOB scale (3.2 GeV/count) + void setQuantityOne( uint16_t value); /// setter for the above + unsigned int unpackQuantityOneIndex( ) const; /// retrieves the Et index from the 32-bit word + + uint16_t quantityTwo() const; /// getter for integer ET on TOB scale (3.2 GeV/count) + void setQuantityTwo( uint16_t value); /// setter for the above + unsigned int unpackQuantityTwoIndex( ) const; /// retrieves the Et index from the 32-bit word + + float METquantityOne() const; /// floating point value (GeV, TOB scale) + float METquantityTwo() const; /// floating point value (GeV, TOB scale) + float SumEt() const; /// floating point value (GeV, TOB scale) + + + + /// TOB status: set to 0 if values are null + char statusOne() const; + void setStatusOne( char value ) ; + char statusTwo() const; + void setStatusTwo( char value ) ; + unsigned int unpackStatusOne( ) const; /// retrieves the Status info for Quantity 1 from the 32-bit word + unsigned int unpackStatusTwo( ) const; /// retrieves the Status info for Quantity 2 from the 32-bit word + /// Energy saturation in tthe global TOB values + char saturated() const; + void setSaturated( char value ) ; + unsigned int unpackSaturated( ) const; /// retrieves the energy saturation status from the 32-bit word + + int globalType () const; + void setGlobalType ( int type) ; + int unpackType( ) const; + ///Identification of object type with flags + bool isgScalar() const; + bool isgMET() const; + bool isgMHT() const; + bool isgMST() const; + + + + + private: + + + /// Constants used in converting to ATLAS units + static const float s_tobEtScale; + + + // Constants used in decoding TOB words + + + // Data locations within word + static const int s_saturBit = 31; + static const int s_tobIDBit = 26; + static const int s_statusOneBit = 25; + static const int s_statusTwoBit = 24; + static const int s_quantityOneBit = 12; + static const int s_quantityTwoBit = 0; + + // Data masks + static const int s_saturMask = 0x1; + static const int s_tobIDMask = 0x1f; + static const int s_statusOneMask = 0x1; + static const int s_statusTwoMask = 0x1; + static const int s_quantityOneMask = 0xfff; + static const int s_quantityTwoMask = 0xfff; + + + }; // class gFexGlobalRoI_v1 + +} // namespace xAOD + +// Declare the inheritance of the type: +#include "xAODCore/BaseInfo.h" +SG_BASE( xAOD::gFexGlobalRoI_v1, SG::AuxElement ); + +#endif // XAODTRIGGER_VERSIONS_GFEXGLOBALROI_V1_H + diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexJetRoIAuxContainer_v1.h b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexJetRoIAuxContainer_v1.h new file mode 100644 index 0000000000000000000000000000000000000000..b8cde65d3aecbe8ac01109890b95ec476eb38286 --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexJetRoIAuxContainer_v1.h @@ -0,0 +1,50 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_VERSIONS_GFEXJETROIAUXCONTAINER_V1_H +#define XAODTRIGGER_VERSIONS_GFEXJETROIAUXCONTAINER_V1_H + +// System include(s): +extern "C" { +# include <stdint.h> +} +#include <vector> +#include <string> + +// EDM include(s): +#include "xAODCore/AuxContainerBase.h" + +namespace xAOD { + + /// Auxiliary store for the LVL1 GFEX TOB container + /// + /// This auxiliary container can describe the properties of a container + /// of LVL1 JET TOB. + + class gFexJetRoIAuxContainer_v1 : public AuxContainerBase { + + public: + /// Default constuctor + gFexJetRoIAuxContainer_v1(); + + private: + std::vector< uint32_t > word; + std::vector< int > gFexType; + std::vector< uint16_t > tobEt; + std::vector< uint8_t > iEta; + std::vector< uint8_t > iPhi; + std::vector< char > status; + std::vector< char > saturated; + + }; // class gFexJetRoIAuxContainer_v1 + +} // namespace xAOD + +// Declare the inheritance of the container: +#include "xAODCore/BaseInfo.h" +SG_BASE( xAOD::gFexJetRoIAuxContainer_v1, xAOD::AuxContainerBase ); + +#endif // XAODTRIGGER_VERSIONS_gFexJetRoIAuxContainer_V1_H diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexJetRoIContainer_v1.h b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexJetRoIContainer_v1.h new file mode 100644 index 0000000000000000000000000000000000000000..d684ce4248bc5ac18a0d07b8701022338c6e8fe5 --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexJetRoIContainer_v1.h @@ -0,0 +1,21 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_VERSIONS_GFEXJETROICONTAINER_V1_H +#define XAODTRIGGER_VERSIONS_GFEXJETROICONTAINER_V1_H + +// Core include(s): +#include "AthContainers/DataVector.h" + +// Local include(s): +#include "xAODTrigger/versions/gFexJetRoI_v1.h" + +namespace xAOD { + /// Declare the Jet TOB container type + typedef DataVector< xAOD::gFexJetRoI_v1 > gFexJetRoIContainer_v1; +} + +#endif // XAODTRIGGER_VERSIONS_GFEXJETROICONTAINER_V1_H diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexJetRoI_v1.h b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexJetRoI_v1.h new file mode 100644 index 0000000000000000000000000000000000000000..81ea6f7337bebc92684fc2d5985e8e8fb1ef609e --- /dev/null +++ b/Event/xAOD/xAODTrigger/xAODTrigger/versions/gFexJetRoI_v1.h @@ -0,0 +1,135 @@ +// Dear emacs, this is -*- c++ -*- + +/* + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef XAODTRIGGER_VERSIONS_GFEXJETROI_V1_H +#define XAODTRIGGER_VERSIONS_GFEXJETROI_V1_H + +// System include(s): +extern "C" { +# include <stdint.h> +} +#include <vector> +#include <string> + +// xAOD include(s): +#include "AthContainers/AuxElement.h" + +namespace xAOD { + + /// Class describing properties of a LVL1 gFEX jet Trigger Object (TOB) + /// in the xAOD format. + + class gFexJetRoI_v1 : public SG::AuxElement { + + public: + /// Default constructor + gFexJetRoI_v1(); + + /// Initialise the object with its most important properties: only the word for gFEX + void initialize( uint32_t word ); + + /// Object types + enum ObjectType { + gBlock = 0, ///< This object is a TOB (32 bit word) + gJet = 1, ///< This object is a TOB (32 bit word) + gRho = 2 ///< This object is a TOB (32 bit word) + }; + + /// The "raw" 32-bit word describing the object candidate + uint32_t word() const; + /// Set the "raw" 32-bit words describing the object candidate + void setWord( uint32_t value ); + + + /// TOB ET (decoded from TOB, stored for convenience) + uint16_t tobEt() const; /// getter for integer ET on TOB scale (3.2 GeV/count) + void setTobEt( uint16_t value); /// setter for the above + unsigned int unpackEtIndex( ) const; /// retrieves the Et index from the 32-bit word + float etMax() const; /// floating point value (GeV, TOB scale) + float etMin() const; /// floating point value (GeV, TOB scale) + + /// Eta Coordinates (decoded from TOB, stored for convenience) + uint8_t iEta() const; /// getter for integer eta index (0-63) + void setEta( uint8_t value); /// setter for the above + unsigned int unpackEtaIndex( ) const; /// retrieves the Eta index from the 32-bit word + float etaMin() const; /// Floating point + float etaMax() const; /// Floating point + + /// Phi coordinates + uint8_t iPhi() const; /// Getter for integer phi index (0-32) --> check numbers for gFEX + void setPhi( uint8_t value); /// Setter for the above + unsigned int unpackPhiIndex( ) const; /// retrieves the phi index from the 32-bit word + float phiMin() const; /// Minimum value of phi corresponding to phi index. Range is always 0.2 + float phiMax() const; /// Minimum value of phi corresponding to phi index. Range is always 0.2 + + /// TOB status: set to 1 if TOB Et exceeds TOB threshold (gBlocks & gJets). Status is set to 1 if Rho calculation is valid + char status() const; + void setStatus( char value ) ; + unsigned int unpackStatus( ) const; /// retrieves the Status info from the 32-bit word + /// Energy saturation: if any gTower is saturated within gBlock and gJet, this bit is set. Always 0 for Rho. + char saturated() const; + void setSaturated( char value ) ; + unsigned int unpackSaturated( ) const; /// retrieves the Saturated info from the 32-bit word + + int gFexType () const; + void setgFexType ( int type) ; + int unpackType( ) const; + ///Identification of object type with flags + bool isgBlock() const; + //void setIsgBlock( char value); + bool isgJet() const; + //void setIsgJet( char value); + bool isgRho() const; + //void setIsgRho( char value); + bool isLeadingJet() const; + + + + + + private: + + + /// Constants used in converting to ATLAS units + static const float s_tobEtScale; + static const float s_centralPhiWidth; + static const float s_forwardPhiWidth; + static const std::vector<float> s_EtaPosition; + + + /** Constants used in decoding TOB words + For TOB word format changes these can be replaced + by arrays in the _v2 object so that different + versions can be decoded by one class */ + + // Data locations within word + static const int s_saturBit = 31; + static const int s_phiBit = 26; + static const int s_etaBit = 20; + static const int s_etBit = 8; + static const int s_statusBit = 7; + static const int s_resBit = 5; + static const int s_tobIDBit = 0; + + // Data masks + static const int s_saturMask = 0x1; + static const int s_phiMask = 0x1f; + static const int s_etaMask = 0x3f; + static const int s_etMask = 0xfff; + static const int s_statusMask = 0x1; + static const int s_resMask = 0x3; + static const int s_tobIDMask = 0x1f; + + }; // class gFexJetRoI_v1 + +} // namespace xAOD + +// Declare the inheritance of the type: +#include "xAODCore/BaseInfo.h" +SG_BASE( xAOD::gFexJetRoI_v1, SG::AuxElement ); + +#endif // XAODTRIGGER_VERSIONS_GFEXJETROI_V1_H + diff --git a/Event/xAOD/xAODTrigger/xAODTrigger/xAODTriggerDict.h b/Event/xAOD/xAODTrigger/xAODTrigger/xAODTriggerDict.h index 05c57c3beedc2724f3acba9ee09bf2575aef294e..e01626b1eb6fb7a000e02a0dc803e63dd2f09b34 100644 --- a/Event/xAOD/xAODTrigger/xAODTrigger/xAODTriggerDict.h +++ b/Event/xAOD/xAODTrigger/xAODTrigger/xAODTriggerDict.h @@ -68,6 +68,20 @@ #include "xAODTrigger/versions/eFexEMRoIContainer_v1.h" #include "xAODTrigger/versions/eFexEMRoIAuxContainer_v1.h" +#include "xAODTrigger/gFexJetRoI.h" +#include "xAODTrigger/gFexJetRoIContainer.h" +#include "xAODTrigger/gFexJetRoIAuxContainer.h" +#include "xAODTrigger/versions/gFexJetRoI_v1.h" +#include "xAODTrigger/versions/gFexJetRoIContainer_v1.h" +#include "xAODTrigger/versions/gFexJetRoIAuxContainer_v1.h" + +#include "xAODTrigger/gFexGlobalRoI.h" +#include "xAODTrigger/gFexGlobalRoIContainer.h" +#include "xAODTrigger/gFexGlobalRoIAuxContainer.h" +#include "xAODTrigger/versions/gFexGlobalRoI_v1.h" +#include "xAODTrigger/versions/gFexGlobalRoIContainer_v1.h" +#include "xAODTrigger/versions/gFexGlobalRoIAuxContainer_v1.h" + #include "xAODTrigger/TrigDecision.h" #include "xAODTrigger/TrigDecisionAuxInfo.h" #include "xAODTrigger/versions/TrigDecision_v1.h" @@ -130,6 +144,9 @@ namespace { XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, eFexEMRoIContainer_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, gFexJetRoIContainer_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, gFexGlobalRoIContainer_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, TrigCompositeContainer_v1 ); XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, TrigPassBitsContainer_v1 );