From e36e16f67f623142f59fb98b52a387e4f98dfa77 Mon Sep 17 00:00:00 2001
From: lintao <lintao51@gmail.com>
Date: Fri, 18 Sep 2020 15:10:26 +0800
Subject: [PATCH] WIP: fix the typo when create SD.

---
 Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp | 5 +++--
 Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp    | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp
index 9ef16425..954664bf 100644
--- a/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp
+++ b/Simulation/DetSimAna/src/Edm4hepWriterAnaElemTool.cpp
@@ -173,7 +173,7 @@ Edm4hepWriterAnaElemTool::EndOfEventAction(const G4Event* anEvent) {
                 }
 
                 dd4hep::sim::Geant4TrackerHit* trk_hit = dynamic_cast<dd4hep::sim::Geant4TrackerHit*>(h);
-                if (trk_hit) {
+                if (trk_hit && tracker_col_ptr) {
                     ++n_trk_hit;
                     // auto edm_trk_hit = trackercols->create();
                     auto edm_trk_hit = tracker_col_ptr->create();
@@ -192,10 +192,11 @@ Edm4hepWriterAnaElemTool::EndOfEventAction(const G4Event* anEvent) {
                                     trk_hit->momentum.y()/CLHEP::GeV,
                                     trk_hit->momentum.z()/CLHEP::GeV};
                     edm_trk_hit.setMomentum(edm4hep::Vector3f(mom));
+
                 }
 
                 dd4hep::sim::Geant4CalorimeterHit* cal_hit = dynamic_cast<dd4hep::sim::Geant4CalorimeterHit*>(h);
-                if (cal_hit) {
+                if (cal_hit && calo_col_ptr) {
                     ++n_cal_hit;
                     auto edm_calo_hit = calo_col_ptr->create();
                     edm_calo_hit.setCellID(cal_hit->cellID);
diff --git a/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp b/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp
index 0212a0e3..e78170bc 100644
--- a/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp
+++ b/Simulation/DetSimGeom/src/AnExampleDetElemTool.cpp
@@ -115,7 +115,7 @@ AnExampleDetElemTool::ConstructSDandField() {
                     m_driftchamber_sdtool = ToolHandle<ISensDetTool>("DriftChamberSensDetTool");
                     if (m_driftchamber_sdtool) {
                         info() << "Find the DriftChamberSensDetTool" << endmsg;
-                        g4sd = m_calo_sdtool->createSD(nam);
+                        g4sd = m_driftchamber_sdtool->createSD(nam);
                     } else {
                         warning() << "DriftChamberSensDetTool is not found. " << endmsg;
                     }
-- 
GitLab