From 7e91000c1e0e1b5a35c23fe23566408f7492c1ce Mon Sep 17 00:00:00 2001 From: tmadlener <thomas.madlener@desy.de> Date: Tue, 30 Jan 2024 18:47:45 +0100 Subject: [PATCH] Make the renaming of TrackerHit -> TrackerHit3D transparent --- DDDigi/io/DigiEdm4hepOutput.cpp | 9 ++++----- DDDigi/io/DigiEdm4hepOutput.h | 13 ++++++++++--- DDDigi/io/DigiIO.cpp | 9 ++++++++- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/DDDigi/io/DigiEdm4hepOutput.cpp b/DDDigi/io/DigiEdm4hepOutput.cpp index 6c324e25e..477ae16c9 100644 --- a/DDDigi/io/DigiEdm4hepOutput.cpp +++ b/DDDigi/io/DigiEdm4hepOutput.cpp @@ -29,7 +29,6 @@ #include <podio/Frame.h> #include <edm4hep/SimTrackerHit.h> #include <edm4hep/MCParticleCollection.h> -#include <edm4hep/TrackerHitCollection.h> #include <edm4hep/EventHeaderCollection.h> #include <edm4hep/CalorimeterHitCollection.h> #include <edm4hep/CaloHitContributionCollection.h> @@ -64,7 +63,7 @@ namespace dd4hep { /// MC particle collection particlecollection_t m_particles { }; /// Collection of all edm4hep tracker object collections - std::map<std::string, std::unique_ptr<edm4hep::TrackerHitCollection> > m_tracker_collections; + std::map<std::string, std::unique_ptr<edm4hep::TrackerHit3DCollection> > m_tracker_collections; /// Collection of all edm4hep calorimeter object collections std::map<std::string, std::unique_ptr<edm4hep::CalorimeterHitCollection> > m_calo_collections; /// Output section name @@ -122,7 +121,7 @@ namespace dd4hep { m_particles = std::make_pair(nam, std::make_unique<edm4hep::MCParticleCollection>()); } else if ( typ == "TrackerHits" ) { - m_tracker_collections.emplace(nam, std::make_unique<edm4hep::TrackerHitCollection>()); + m_tracker_collections.emplace(nam, std::make_unique<edm4hep::TrackerHit3DCollection>()); } else if ( typ == "CalorimeterHits" ) { m_calo_collections.emplace(nam, std::make_unique<edm4hep::CalorimeterHitCollection>()); @@ -286,7 +285,7 @@ namespace dd4hep { template <typename T> void DigiEdm4hepOutputProcessor::convert_depos(const T& cont, const predicate_t& predicate, - edm4hep::TrackerHitCollection* collection) const + edm4hep::TrackerHit3DCollection* collection) const { std::array<float,6> covMat = {0., 0., m_pointResoutionRPhi*m_pointResoutionRPhi, 0., 0., m_pointResoutionZ*m_pointResoutionZ @@ -320,7 +319,7 @@ namespace dd4hep { if ( !cont.empty() ) { switch(cont.data_type) { case SegmentEntry::TRACKER_HITS: - convert_depos(cont, predicate, static_cast<edm4hep::TrackerHitCollection*>(coll)); + convert_depos(cont, predicate, static_cast<edm4hep::TrackerHit3DCollection*>(coll)); break; case SegmentEntry::CALORIMETER_HITS: convert_depos(cont, predicate, static_cast<edm4hep::CalorimeterHitCollection*>(coll)); diff --git a/DDDigi/io/DigiEdm4hepOutput.h b/DDDigi/io/DigiEdm4hepOutput.h index 09998b70f..8711967e6 100644 --- a/DDDigi/io/DigiEdm4hepOutput.h +++ b/DDDigi/io/DigiEdm4hepOutput.h @@ -17,10 +17,17 @@ #include <DDDigi/DigiOutputAction.h> /// C/C++ include files +#if __has_include("edm4hep/TrackerHitCollection.h") +#include <edm4hep/TrackerHitCollection.h> +namespace edm4hep { + using TrackerHit3DCollection = edm4hep::TrackerHitCollection; +} +#else +#include <edm4hep/TrackerHit3DCollection.h> +#endif /// Forward declarations from edm4hep namespace edm4hep { - class TrackerHitCollection; class CalorimeterHitCollection; } @@ -35,7 +42,7 @@ namespace dd4hep { * Supported output containers types are: * - edm4hep::MCParticles aka "MCParticles" * - edm4hep::CalorimeterHitCollection aka "CalorimeterHits" - * - edm4hep::TrackerHitCollection aka "TracketHits" + * - edm4hep::TrackerHit3DCollection aka "TracketHits" * * This entity actually is only the work dispatcher: * It opens files and dumps data into @@ -103,7 +110,7 @@ namespace dd4hep { /// Convert tracker hits to edm4hep template <typename T> void - convert_depos(const T& cont, const predicate_t& predicate, edm4hep::TrackerHitCollection* collection) const; + convert_depos(const T& cont, const predicate_t& predicate, edm4hep::TrackerHit3DCollection* collection) const; /// Convert calorimeter hits to edm4hep template <typename T> void diff --git a/DDDigi/io/DigiIO.cpp b/DDDigi/io/DigiIO.cpp index 10074ef94..e259a7865 100644 --- a/DDDigi/io/DigiIO.cpp +++ b/DDDigi/io/DigiIO.cpp @@ -28,7 +28,14 @@ #include <edm4hep/SimTrackerHit.h> #include <edm4hep/MCParticle.h> #include <edm4hep/MCParticleCollection.h> +#if __has_include("edm4hep/TrackerHitCollection.h") #include <edm4hep/TrackerHitCollection.h> +namespace edm4hep { + using TrackerHit3DCollection = edm4hep::TrackerHitCollection; +} +#else +#include <edm4hep/TrackerHit3DCollection.h> +#endif #include <edm4hep/SimTrackerHitCollection.h> #include <edm4hep/CalorimeterHitCollection.h> #include <edm4hep/SimCalorimeterHitCollection.h> @@ -224,7 +231,7 @@ namespace dd4hep { template <> template <> void data_io<edm4hep_input>::_to_edm4hep(const std::pair<const CellID, EnergyDeposit>& dep, const std::array<float, 6>& covMat, - edm4hep::TrackerHitCollection& collection, + edm4hep::TrackerHit3DCollection& collection, int hit_type) { -- GitLab