diff --git a/Event/DumpEventDataToJSON/python/DumpEventDataToJSONConfig.py b/Event/DumpEventDataToJSON/python/DumpEventDataToJSONConfig.py index d60a19c873b4d6a0cdde79209715667a18e00102..93b2df107d02535b71c2b11e03ea36d241cf5746 100644 --- a/Event/DumpEventDataToJSON/python/DumpEventDataToJSONConfig.py +++ b/Event/DumpEventDataToJSON/python/DumpEventDataToJSONConfig.py @@ -31,6 +31,8 @@ def DumpEventDataToJSONAlgCfg(flags, doExtrap=False, doACTSEDM = True, **kwargs) kwargs.setdefault('TrackContainerKeys', []) if 'StreamDAOD_PHYSLITE' in flags.Input.Collections: + # Not all data is available in PhysLite files. + kwargs.setdefault('PHYSLITE', True) # AnalysisJets and AnalysisLargeRJets are the standard jet containers kwargs.setdefault('JetContainerKeys', ['AnalysisJets','AnalysisLargeRJets']) # AnalysisMuons are the standard calibrated muon container @@ -47,8 +49,7 @@ def DumpEventDataToJSONAlgCfg(flags, doExtrap=False, doACTSEDM = True, **kwargs) # No real track collections in DAOD_PHYSLITE kwargs.setdefault('TrackCollectionKeys', []) kwargs.setdefault('TrackContainerKeys', []) - # InDetTrackParticles are heavily skimmed, so not useful output - keep only muons - kwargs.setdefault('TrackParticleContainerKeys', []) #['CombinedMuonTrackParticles']) + kwargs.setdefault('TrackParticleContainerKeys', ['InDetTrackParticles', 'CombinedMuonTrackParticles']) #['CombinedMuonTrackParticles']) # No prep raw data in DAOD_PHYSLITE kwargs.setdefault('MdtPrepRawDataKey', '') kwargs.setdefault('RpcPrepRawDataKey', '') @@ -65,7 +66,8 @@ def DumpEventDataToJSONAlgCfg(flags, doExtrap=False, doACTSEDM = True, **kwargs) if __name__ == "__main__": - # Run this with python -m DumpEventDataToJSON.DumpEventDataToJSONConfig myESD.pool.root + # Run this with python -m DumpEventDataToJSON.DumpEventDataToJSONConfig --filesInput myESD.pool.root + # For help, python -m DumpEventDataToJSON.DumpEventDataToJSONConfig --help from AthenaConfiguration.AllConfigFlags import initConfigFlags flags = initConfigFlags() parser = flags.getArgumentParser() @@ -151,4 +153,4 @@ if __name__ == "__main__": cfg.merge(topoAcc) - cfg.run(2) + cfg.run() diff --git a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx index 6ffce8821dc360db6263f9f9fe8af5be05c25c33..8f86ccd1b287758697345aefdf87f8f51c87405a 100644 --- a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx +++ b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.cxx @@ -318,6 +318,11 @@ nlohmann::json DumpEventDataToJsonAlg::getData(const xAOD::TrackParticle &tp) { data["dof"] = tp.numberDoF(); data["dparams"] = {tp.d0(), tp.z0(), tp.phi0(), tp.theta(), tp.qOverP()}; + if (m_physlite) { + ATH_MSG_VERBOSE("Physlite mode enabled. Not adding track parameters."); + return data; + } + if (m_extrapolator.empty()) { data["pos"] = {tp.perigeeParameters().position().x(), tp.perigeeParameters().position().y(), @@ -360,12 +365,14 @@ nlohmann::json DumpEventDataToJsonAlg::getData(const xAOD::TrackParticle &tp) { data["pos"].push_back(pos.y()); data["pos"].push_back(pos.z()); } + } else { ATH_MSG_WARNING( "Failure in extrapolation for Track with start parameters " << startParameters); } } + return data; } diff --git a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h index 222a224a8cc6320db4e21038834242612b441dce..5a87fdca3a1a84a3bf9e06aaab192981c5d7ed7e 100644 --- a/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h +++ b/Event/DumpEventDataToJSON/src/DumpEventDataToJsonAlg.h @@ -113,6 +113,7 @@ protected: Gaudi::Property<std::string> m_outputJSON_Name{this, "OutputLocation", "EventData.json", "Default filename for "}; Gaudi::Property<bool> m_dumpTestEvent{this, "DumpTestEvent", false, "If true, prepend a test event with some calibration data in it."}; + Gaudi::Property<bool> m_physlite{this, "PHYSLITE", false, "If true, do not try to access data which is not available in PHYSLITE files."}; nlohmann::json m_eventData; };