diff --git a/Event/xAOD/xAODTrigL1Calo/CMakeLists.txt b/Event/xAOD/xAODTrigL1Calo/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..6e8b57d76fb4d530d3ff6ac4b5920cb28a023252 --- /dev/null +++ b/Event/xAOD/xAODTrigL1Calo/CMakeLists.txt @@ -0,0 +1,34 @@ +################################################################################ +# Package: xAODTrigL1Calo +################################################################################ + +# Declare the package name: +atlas_subdir( xAODTrigL1Calo ) + +# Declare the package's dependencies: +atlas_depends_on_subdirs( PUBLIC + Control/AthContainers + Control/CxxUtils + Event/xAOD/xAODBase + Event/xAOD/xAODCore + PRIVATE + Control/AthLinks ) + +# External dependencies: +find_package( ROOT COMPONENTS Physics Core Tree MathCore Hist RIO pthread ) + +# Component(s) in the package: +atlas_add_library( xAODTrigL1Calo + Root/*.cxx + PUBLIC_HEADERS xAODTrigL1Calo + PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES AthContainers CxxUtils xAODBase xAODCore + PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthLinks ) + +atlas_add_dictionary( xAODTrigL1CaloDict + xAODTrigL1Calo/xAODTrigL1CaloDict.h + xAODTrigL1Calo/selection.xml + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers CxxUtils xAODBase xAODCore AthLinks xAODTrigL1Calo + EXTRA_FILES Root/dict/*.cxx ) + diff --git a/Event/xAOD/xAODTrigL1Calo/Root/CMXRoI_v1.cxx b/Event/xAOD/xAODTrigL1Calo/Root/CMXRoI_v1.cxx index 154f61401fe222acdbd6386253f36f31807125c5..1eb61e39679f94e403cfb781a60a54c2860138e2 100644 --- a/Event/xAOD/xAODTrigL1Calo/Root/CMXRoI_v1.cxx +++ b/Event/xAOD/xAODTrigL1Calo/Root/CMXRoI_v1.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -// $Id: CMXRoI_v1.cxx 681007 2015-07-07 13:34:12Z morrisj $ +// $Id: CMXRoI_v1.cxx 723918 2016-02-15 07:52:49Z amazurov $ // System include(s): #include <cmath> @@ -13,155 +13,140 @@ // Local include(s): #include "xAODTrigL1Calo/versions/CMXRoI_v1.h" -namespace xAOD{ - - CMXRoI_v1::CMXRoI_v1() : - SG::AuxElement() - { - } - - AUXSTORE_OBJECT_SETTER_AND_GETTER( CMXRoI_v1 , std::vector<uint32_t> , cmxRoIWords , setCmxRoIWords ) - - /// initialize - void CMXRoI_v1::initialize(uint32_t roiWord0, uint32_t roiWord1, uint32_t roiWord2, - uint32_t roiWord3, uint32_t roiWord4, uint32_t roiWord5) - { - std::vector<uint32_t> myRoIWords(s_maxRoiWords); - myRoIWords[0] = roiWord0; - myRoIWords[1] = roiWord1; - myRoIWords[2] = roiWord2; - myRoIWords[3] = roiWord3; - myRoIWords[4] = roiWord4; - myRoIWords[5] = roiWord5; - setCmxRoIWords( myRoIWords ); - } - - /// initialize - void CMXRoI_v1::initialize(unsigned int ex, unsigned int ey, unsigned int et, - int exError, int eyError, int etError, - unsigned int sumEtHits, unsigned int missingEtHits, - unsigned int missingEtSigHits, - unsigned int exM, unsigned int eyM, unsigned int etM, - int exErrorM, int eyErrorM, int etErrorM, - unsigned int sumEtHitsM, unsigned int missingEtHitsM) - { - std::vector<uint32_t> myRoIWords(s_maxRoiWords); - - int type = NORMAL; - int ix = s_exOffset + type; - myRoIWords[ix] = s_wordIdVal0 << s_wordIdBit; - myRoIWords[ix] |= type << s_sumTypeBit; - myRoIWords[ix] |= (ex & s_energyMask) << s_energyBit; - myRoIWords[ix] |= (exError & s_overflowMask) << s_overflowBit; - myRoIWords[ix] |= (missingEtSigHits & s_missingEtSigHitsMask) - << s_missingEtSigHitsBit; - type = MASKED; - ix = s_exOffset + type; - myRoIWords[ix] = s_wordIdVal0 << s_wordIdBit; - myRoIWords[ix] |= type << s_sumTypeBit; - myRoIWords[ix] |= (exM & s_energyMask) << s_energyBit; - myRoIWords[ix] |= (exErrorM & s_overflowMask) << s_overflowBit; - - type = NORMAL; - ix = s_eyOffset + type; - myRoIWords[ix] = s_wordIdVal1 << s_wordIdBit; - myRoIWords[ix] |= type << s_sumTypeBit; - myRoIWords[ix] |= (ey & s_energyMask) << s_energyBit; - myRoIWords[ix] |= (eyError & s_overflowMask) << s_overflowBit; - myRoIWords[ix] |= (missingEtHits & s_missingEtHitsMask) - << s_missingEtHitsBit; - type = MASKED; - ix = s_eyOffset + type; - myRoIWords[ix] = s_wordIdVal1 << s_wordIdBit; - myRoIWords[ix] |= type << s_sumTypeBit; - myRoIWords[ix] |= (eyM & s_energyMask) << s_energyBit; - myRoIWords[ix] |= (eyErrorM & s_overflowMask) << s_overflowBit; - myRoIWords[ix] |= (missingEtHitsM & s_missingEtHitsMask) - << s_missingEtHitsBit; - type = NORMAL; - ix = s_etOffset + type; - myRoIWords[ix] = s_wordIdVal2 << s_wordIdBit; - myRoIWords[ix] |= type << s_sumTypeBit; - myRoIWords[ix] |= (et & s_energyMask) << s_energyBit; - myRoIWords[ix] |= (etError & s_overflowMask) << s_overflowBit; - myRoIWords[ix] |= (sumEtHits & s_sumEtHitsMask) << s_sumEtHitsBit; - - type = MASKED; - ix = s_etOffset + type; - myRoIWords[ix] = s_wordIdVal2 << s_wordIdBit; - myRoIWords[ix] |= type << s_sumTypeBit; - myRoIWords[ix] |= (etM & s_energyMask) << s_energyBit; - myRoIWords[ix] |= (etErrorM & s_overflowMask) << s_overflowBit; - myRoIWords[ix] |= (sumEtHitsM & s_sumEtHitsMask) << s_sumEtHitsBit; - - setCmxRoIWords( myRoIWords ); - } - - /// Return Ex - unsigned int CMXRoI_v1::ex(SumType type) const - { - return (cmxRoIWords()[s_eyOffset+type] >> s_energyBit ) & s_energyMask; - } - /// Return Ey - unsigned int CMXRoI_v1::ey(SumType type) const - { - return (cmxRoIWords()[s_eyOffset+type] >> s_energyBit) & s_energyMask; - } - /// Return Et - unsigned int CMXRoI_v1::et(SumType type) const - { - return (cmxRoIWords()[s_etOffset+type] >> s_energyBit) & s_energyMask; - } - /// Return Ex error flags (bit 0 Overflow) - int CMXRoI_v1::exError(SumType type) const - { - return (cmxRoIWords()[s_exOffset+type] >> s_overflowBit) & s_overflowMask; - } - /// Return Ey error flags (bit 0 Overflow) - int CMXRoI_v1::eyError(SumType type) const - { - return (cmxRoIWords()[s_eyOffset+type] >> s_overflowBit) & s_overflowMask; - } - /// Return Et error flags (bit 0 Overflow) - int CMXRoI_v1::etError(SumType type) const - { - return (cmxRoIWords()[s_etOffset+type] >> s_overflowBit) & s_overflowMask; - } - /// Return Sum-ET hits - unsigned int CMXRoI_v1::sumEtHits(SumType type) const - { - return (cmxRoIWords()[s_etOffset+type] >> s_sumEtHitsBit) & s_sumEtHitsMask; - } - /// Return Missing-ET hits - unsigned int CMXRoI_v1::missingEtHits(SumType type) const - { - return (cmxRoIWords()[s_eyOffset+type] >> s_missingEtHitsBit) & s_missingEtHitsMask; - } - /// Return Missing-ET-Sig hits - unsigned int CMXRoI_v1::missingEtSigHits() const - { - return (cmxRoIWords()[s_exOffset+NORMAL] >> s_missingEtSigHitsBit) & s_missingEtSigHitsMask; - } - - /// Return packed Energy RoI word (0-5) - uint32_t CMXRoI_v1::roiWord(int word) const - { - return (word < s_maxRoiWords) ? cmxRoIWords()[word] : 0; - } - /// Return Ex RoI word - unsigned int CMXRoI_v1::exWord(SumType type) const - { - return cmxRoIWords()[s_exOffset+type]; - } - /// Return Ey RoI word - unsigned int CMXRoI_v1::eyWord(SumType type) const - { - return cmxRoIWords()[s_eyOffset+type]; - } - /// Return ET RoI word - unsigned int CMXRoI_v1::etWord(SumType type) const - { - return cmxRoIWords()[s_etOffset+type]; - } - -} // namespace xAOD +namespace xAOD { + +CMXRoI_v1::CMXRoI_v1() : SG::AuxElement() {} + +AUXSTORE_OBJECT_SETTER_AND_GETTER(CMXRoI_v1, std::vector<uint32_t>, cmxRoIWords, + setCmxRoIWords) + +/// initialize +void CMXRoI_v1::initialize(uint32_t roiWord0, uint32_t roiWord1, + uint32_t roiWord2, uint32_t roiWord3, + uint32_t roiWord4, uint32_t roiWord5) { + std::vector<uint32_t> myRoIWords(s_maxRoiWords); + myRoIWords[0] = roiWord0; + myRoIWords[1] = roiWord1; + myRoIWords[2] = roiWord2; + myRoIWords[3] = roiWord3; + myRoIWords[4] = roiWord4; + myRoIWords[5] = roiWord5; + setCmxRoIWords(myRoIWords); +} + +/// initialize +void CMXRoI_v1::initialize(unsigned int ex, unsigned int ey, unsigned int et, + int exError, int eyError, int etError, + unsigned int sumEtHits, unsigned int missingEtHits, + unsigned int missingEtSigHits, unsigned int exM, + unsigned int eyM, unsigned int etM, int exErrorM, + int eyErrorM, int etErrorM, unsigned int sumEtHitsM, + unsigned int missingEtHitsM) { + std::vector<uint32_t> myRoIWords(s_maxRoiWords); + + int type = NORMAL; + int ix = s_exOffset + type; + myRoIWords[ix] = s_wordIdVal0 << s_wordIdBit; + myRoIWords[ix] |= type << s_sumTypeBit; + myRoIWords[ix] |= (ex & s_energyMask) << s_energyBit; + myRoIWords[ix] |= (exError & s_overflowMask) << s_overflowBit; + myRoIWords[ix] |= (missingEtSigHits & s_missingEtSigHitsMask) + << s_missingEtSigHitsBit; + type = MASKED; + ix = s_exOffset + type; + myRoIWords[ix] = s_wordIdVal0 << s_wordIdBit; + myRoIWords[ix] |= type << s_sumTypeBit; + myRoIWords[ix] |= (exM & s_energyMask) << s_energyBit; + myRoIWords[ix] |= (exErrorM & s_overflowMask) << s_overflowBit; + + type = NORMAL; + ix = s_eyOffset + type; + myRoIWords[ix] = s_wordIdVal1 << s_wordIdBit; + myRoIWords[ix] |= type << s_sumTypeBit; + myRoIWords[ix] |= (ey & s_energyMask) << s_energyBit; + myRoIWords[ix] |= (eyError & s_overflowMask) << s_overflowBit; + myRoIWords[ix] |= (missingEtHits & s_missingEtHitsMask) << s_missingEtHitsBit; + type = MASKED; + ix = s_eyOffset + type; + myRoIWords[ix] = s_wordIdVal1 << s_wordIdBit; + myRoIWords[ix] |= type << s_sumTypeBit; + myRoIWords[ix] |= (eyM & s_energyMask) << s_energyBit; + myRoIWords[ix] |= (eyErrorM & s_overflowMask) << s_overflowBit; + myRoIWords[ix] |= (missingEtHitsM & s_missingEtHitsMask) + << s_missingEtHitsBit; + type = NORMAL; + ix = s_etOffset + type; + myRoIWords[ix] = s_wordIdVal2 << s_wordIdBit; + myRoIWords[ix] |= type << s_sumTypeBit; + myRoIWords[ix] |= (et & s_energyMask) << s_energyBit; + myRoIWords[ix] |= (etError & s_overflowMask) << s_overflowBit; + myRoIWords[ix] |= (sumEtHits & s_sumEtHitsMask) << s_sumEtHitsBit; + + type = MASKED; + ix = s_etOffset + type; + myRoIWords[ix] = s_wordIdVal2 << s_wordIdBit; + myRoIWords[ix] |= type << s_sumTypeBit; + myRoIWords[ix] |= (etM & s_energyMask) << s_energyBit; + myRoIWords[ix] |= (etErrorM & s_overflowMask) << s_overflowBit; + myRoIWords[ix] |= (sumEtHitsM & s_sumEtHitsMask) << s_sumEtHitsBit; + + setCmxRoIWords(myRoIWords); +} + +/// Return Ex +unsigned int CMXRoI_v1::ex(SumType type) const { + return (cmxRoIWords()[s_exOffset + type] >> s_energyBit) & s_energyMask; +} +/// Return Ey +unsigned int CMXRoI_v1::ey(SumType type) const { + return (cmxRoIWords()[s_eyOffset + type] >> s_energyBit) & s_energyMask; +} +/// Return Et +unsigned int CMXRoI_v1::et(SumType type) const { + return (cmxRoIWords()[s_etOffset + type] >> s_energyBit) & s_energyMask; +} +/// Return Ex error flags (bit 0 Overflow) +int CMXRoI_v1::exError(SumType type) const { + return (cmxRoIWords()[s_exOffset + type] >> s_overflowBit) & s_overflowMask; +} +/// Return Ey error flags (bit 0 Overflow) +int CMXRoI_v1::eyError(SumType type) const { + return (cmxRoIWords()[s_eyOffset + type] >> s_overflowBit) & s_overflowMask; +} +/// Return Et error flags (bit 0 Overflow) +int CMXRoI_v1::etError(SumType type) const { + return (cmxRoIWords()[s_etOffset + type] >> s_overflowBit) & s_overflowMask; +} +/// Return Sum-ET hits +unsigned int CMXRoI_v1::sumEtHits(SumType type) const { + return (cmxRoIWords()[s_etOffset + type] >> s_sumEtHitsBit) & s_sumEtHitsMask; +} +/// Return Missing-ET hits +unsigned int CMXRoI_v1::missingEtHits(SumType type) const { + return (cmxRoIWords()[s_eyOffset + type] >> s_missingEtHitsBit) & + s_missingEtHitsMask; +} +/// Return Missing-ET-Sig hits +unsigned int CMXRoI_v1::missingEtSigHits() const { + return (cmxRoIWords()[s_exOffset + NORMAL] >> s_missingEtSigHitsBit) & + s_missingEtSigHitsMask; +} + +/// Return packed Energy RoI word (0-5) +uint32_t CMXRoI_v1::roiWord(int word) const { + return (word < s_maxRoiWords) ? cmxRoIWords()[word] : 0; +} +/// Return Ex RoI word +unsigned int CMXRoI_v1::exWord(SumType type) const { + return cmxRoIWords()[s_exOffset + type]; +} +/// Return Ey RoI word +unsigned int CMXRoI_v1::eyWord(SumType type) const { + return cmxRoIWords()[s_eyOffset + type]; +} +/// Return ET RoI word +unsigned int CMXRoI_v1::etWord(SumType type) const { + return cmxRoIWords()[s_etOffset + type]; +} + +} // namespace xAOD diff --git a/Event/xAOD/xAODTrigL1Calo/Root/TriggerTower_v2.cxx b/Event/xAOD/xAODTrigL1Calo/Root/TriggerTower_v2.cxx index 6ca186e06cafc6c493b8a54dbc569a6fdafbc8ba..197b9a88b67c337254cd5b16b701e05c8589fc15 100644 --- a/Event/xAOD/xAODTrigL1Calo/Root/TriggerTower_v2.cxx +++ b/Event/xAOD/xAODTrigL1Calo/Root/TriggerTower_v2.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -// $Id: TriggerTower_v2.cxx 700710 2015-10-15 10:46:15Z morrisj $ +// $Id: TriggerTower_v2.cxx 700709 2015-10-15 10:45:46Z morrisj $ // EDM includes(s): #include "xAODCore/AuxStoreAccessorMacros.h"