diff --git a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp
index a9d739a68e1fa8bb16f8211ea46c0c0ba711e25e..951ff463723de7ccd5af6004adc45feca0ee41da 100644
--- a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp
+++ b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp
@@ -59,6 +59,13 @@ Edm4hepWriterAnaElemTool::EndOfEventAction(const G4Event* anEvent) {
     auto ecalendcapringcol        = m_EcalEndcapRingCol.createAndPut();
     auto ecalendcapringcontribcol = m_EcalEndcapRingContributionCol.createAndPut();
 
+    auto hcalbarrelcol            = m_HcalBarrelCol.createAndPut();
+    auto hcalbarrelcontribcols    = m_HcalBarrelContributionCol.createAndPut();
+    auto hcalendcapscol           = m_HcalEndcapsCol.createAndPut();
+    auto hcalendcapscontribcols   = m_HcalEndcapsContributionCol.createAndPut();
+    auto hcalendcapringcol        = m_HcalEndcapRingCol.createAndPut();
+    auto hcalendcapringcontribcol = m_HcalEndcapRingContributionCol.createAndPut();
+
     auto driftchamberhitscol = m_DriftChamberHitsCol.createAndPut();
 
     // readout defined in DD4hep
@@ -121,6 +128,15 @@ Edm4hepWriterAnaElemTool::EndOfEventAction(const G4Event* anEvent) {
         } else if (collect->GetName() == "EcalEndcapRingCollection") {
             calo_col_ptr = ecalendcapringcol;
             calo_contrib_col_ptr = ecalendcapringcontribcol;
+        } else if (collect->GetName() == "HcalBarrelCollection") {
+            calo_col_ptr = hcalbarrelcol;
+            calo_contrib_col_ptr = hcalbarrelcontribcols;
+        } else if (collect->GetName() == "HcalEndcapsCollection") {
+            calo_col_ptr = hcalendcapscol;
+            calo_contrib_col_ptr = hcalendcapscontribcols;
+        } else if (collect->GetName() == "HcalEndcapRingCollection") {
+            calo_col_ptr = hcalendcapringcol;
+            calo_contrib_col_ptr = hcalendcapringcontribcol;
         } else if (collect->GetName() == "DriftChamberHitsCollection") {
             tracker_col_ptr = driftchamberhitscol;
         } else {
diff --git a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.h b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.h
index 746c2a4b34a3395f5ee0d4e14ed3ea59c1eae38f..bd71f932377845ca8d56b1ee84d238a6f7ce3e1d 100644
--- a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.h
+++ b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.h
@@ -81,6 +81,23 @@ private:
             "EcalEndcapRingContributionCollection", 
             Gaudi::DataHandle::Writer, this};
 
+    // Hcal
+    DataHandle<edm4hep::SimCalorimeterHitCollection> m_HcalBarrelCol{"HcalBarrelCollection", 
+            Gaudi::DataHandle::Writer, this};
+    DataHandle<edm4hep::CaloHitContributionCollection> m_HcalBarrelContributionCol{
+            "HcalBarrelContributionCollection", 
+            Gaudi::DataHandle::Writer, this};
+    DataHandle<edm4hep::SimCalorimeterHitCollection> m_HcalEndcapsCol{"HcalEndcapsCollection", 
+            Gaudi::DataHandle::Writer, this};
+    DataHandle<edm4hep::CaloHitContributionCollection> m_HcalEndcapsContributionCol{
+            "HcalEndcapsContributionCollection", 
+            Gaudi::DataHandle::Writer, this};
+    DataHandle<edm4hep::SimCalorimeterHitCollection> m_HcalEndcapRingCol{"HcalEndcapRingCollection", 
+            Gaudi::DataHandle::Writer, this};
+    DataHandle<edm4hep::CaloHitContributionCollection> m_HcalEndcapRingContributionCol{
+            "HcalEndcapRingContributionCollection", 
+            Gaudi::DataHandle::Writer, this};
+
     // Drift Chamber
     // - DriftChamberHitsCollection
     DataHandle<edm4hep::SimTrackerHitCollection> m_DriftChamberHitsCol{