diff --git a/Event/DumpEventDataToJSON/CMakeLists.txt b/Event/DumpEventDataToJSON/CMakeLists.txt index 56cedf1805f000b082feac8ae87647253b540110..6682c4db95ac2ef54fb4ec4a187202e9edb00f63 100644 --- a/Event/DumpEventDataToJSON/CMakeLists.txt +++ b/Event/DumpEventDataToJSON/CMakeLists.txt @@ -11,7 +11,7 @@ find_package( Acts COMPONENTS Core ) atlas_add_component( DumpEventDataToJSON src/*.cxx src/components/*.cxx - LINK_LIBRARIES ActsEventLib AthenaBaseComps CaloEvent GaudiKernel StoreGateLib TrkExInterfaces MuonPrepRawData InDetPrepRawData TrkTrack nlohmann_json::nlohmann_json xAODCaloEvent xAODEventInfo xAODJet xAODMuon xAODTracking ) + LINK_LIBRARIES ActsEventLib AthenaBaseComps CaloEvent GaudiKernel StoreGateLib TrkExInterfaces MuonPrepRawData InDetPrepRawData TrkTrack nlohmann_json::nlohmann_json xAODCaloEvent xAODEgamma xAODEventInfo xAODJet xAODMuon xAODTau xAODTracking ) # Install files from the package: atlas_install_python_modules( python/*.py POST_BUILD_CMD ${ATLAS_FLAKE8} ) diff --git a/Event/DumpEventDataToJSON/python/DumpEventDataToJSONConfig.py b/Event/DumpEventDataToJSON/python/DumpEventDataToJSONConfig.py index 50117c30c430b29bfa958822c81b4b81d6819a70..d60a19c873b4d6a0cdde79209715667a18e00102 100644 --- a/Event/DumpEventDataToJSON/python/DumpEventDataToJSONConfig.py +++ b/Event/DumpEventDataToJSON/python/DumpEventDataToJSONConfig.py @@ -35,6 +35,12 @@ def DumpEventDataToJSONAlgCfg(flags, doExtrap=False, doACTSEDM = True, **kwargs) kwargs.setdefault('JetContainerKeys', ['AnalysisJets','AnalysisLargeRJets']) # AnalysisMuons are the standard calibrated muon container kwargs.setdefault('MuonContainerKeys', ['AnalysisMuons']) + # AnalysisTauJets are the calibrated tau jet container + kwargs.setdefault('TauJetContainerKeys', ['AnalysisTauJets']) + # AnalysisElectrons are the standard calibrated electron container + kwargs.setdefault('ElectronContainerKeys', ['AnalysisElectrons']) + # AnalysisPhotons are the standard calibrated photon container + kwargs.setdefault('PhotonContainerKeys', ['AnalysisPhotons']) # No clusters or cells in DAOD_PHYSLITE kwargs.setdefault('CaloClusterContainerKeys', []) kwargs.setdefault('CaloCellContainerKey', []) diff --git a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx index cc7492c71bca2193f842213d37ea58cf5ca63402..6ffce8821dc360db6263f9f9fe8af5be05c25c33 100644 --- a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx +++ b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx @@ -37,6 +37,9 @@ StatusCode DumpEventDataToJsonAlg::initialize() { ATH_CHECK(m_caloClustersKeys.initialize(!m_caloClustersKeys.empty())); ATH_CHECK(m_caloCellKey.initialize(!m_caloCellKey.empty())); ATH_CHECK(m_muonKeys.initialize(!m_muonKeys.empty())); + ATH_CHECK(m_tauJetKeys.initialize(!m_tauJetKeys.empty())); + ATH_CHECK(m_electronKeys.initialize(!m_electronKeys.empty())); + ATH_CHECK(m_photonKeys.initialize(!m_photonKeys.empty())); ATH_CHECK(m_trackCollectionKeys.initialize(!m_trackCollectionKeys.empty())); // ACTS @@ -152,6 +155,9 @@ StatusCode DumpEventDataToJsonAlg::execute() { ATH_CHECK(getAndFillArrayOfContainers(j, m_jetKeys, "Jets")); ATH_CHECK(getAndFillArrayOfContainers(j, m_trackParticleKeys, "Tracks")); ATH_CHECK(getAndFillArrayOfContainers(j, m_muonKeys, "Muons")); + ATH_CHECK(getAndFillArrayOfContainers(j, m_tauJetKeys, "Taus")); + ATH_CHECK(getAndFillArrayOfContainers(j, m_electronKeys, "Electrons")); + ATH_CHECK(getAndFillArrayOfContainers(j, m_photonKeys, "Photons")); ATH_CHECK(getAndFillArrayOfContainers(j, m_caloClustersKeys, "CaloClusters")); ATH_CHECK(getAndFillArrayOfContainers(j, m_caloCellKey, "CaloCells")); ATH_CHECK(getAndFillArrayOfContainers(j, m_trackCollectionKeys, "Tracks")); @@ -429,6 +435,38 @@ nlohmann::json DumpEventDataToJsonAlg::getData(const xAOD::Muon &muon) { return data; } +// Specialisation for Tau Jets +template <> +nlohmann::json DumpEventDataToJsonAlg::getData(const xAOD::TauJet &tauJet) { + nlohmann::json data; + data["phi"] = tauJet.phi(); + data["eta"] = tauJet.eta(); + data["energy"] = tauJet.e(); + return data; +} + +// Specialisation for Electrons +template <> +nlohmann::json DumpEventDataToJsonAlg::getData(const xAOD::Electron &electron) { + nlohmann::json data; + data["phi"] = electron.phi(); + data["eta"] = electron.eta(); + data["energy"] = electron.e(); + + return data; +} + +// Specialisation for Photons +template <> +nlohmann::json DumpEventDataToJsonAlg::getData(const xAOD::Photon &photon) { + nlohmann::json data; + data["phi"] = photon.phi(); + data["eta"] = photon.eta(); + data["energy"] = photon.e(); + + return data; +} + template <class TYPE> void DumpEventDataToJsonAlg::addLink(const TYPE &link, nlohmann::json &data) { if (link.isValid()) { diff --git a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h index 3521d2c0be7c0cb321001f1432714783c2066c3b..222a224a8cc6320db4e21038834242612b441dce 100644 --- a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h +++ b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h @@ -14,6 +14,9 @@ #include "xAODTracking/TrackParticleContainer.h" #include "xAODJet/JetContainer.h" #include "xAODMuon/MuonContainer.h" +#include "xAODTau/TauJetContainer.h" +#include "xAODEgamma/ElectronContainer.h" +#include "xAODEgamma/PhotonContainer.h" #include "xAODCaloEvent/CaloClusterContainer.h" #include "CaloEvent/CaloCellContainer.h" #include "TrkTrack/TrackCollection.h" @@ -79,6 +82,12 @@ protected: SG::ReadHandleKeyArray<xAOD::MuonContainer> m_muonKeys{this, "MuonContainerKeys", {"Muons"}, "Keys for Muon Containers"}; + SG::ReadHandleKeyArray<xAOD::TauJetContainer> m_tauJetKeys{this, "TauJetContainerKeys", {"TauJets"}, "Keys for Tau Containers"}; + + SG::ReadHandleKeyArray<xAOD::ElectronContainer> m_electronKeys{this, "ElectronContainerKeys", {"Electrons"}, "Keys for Electron Containers"}; + + SG::ReadHandleKeyArray<xAOD::PhotonContainer> m_photonKeys{this, "PhotonContainerKeys", {"Photons"}, "Keys for Photon Containers"}; + SG::ReadHandleKeyArray<xAOD::CaloClusterContainer> m_caloClustersKeys{this, "CaloClusterContainerKeys", {"CaloCalTopoClusters"}, "Keys for CaloClusters Containers"}; SG::ReadHandleKeyArray<CaloCellContainer> m_caloCellKey{this, "CaloCellContainerKey", {"AllCalo"}, "Key for CaloCell Container"};