From 7a855d4e97a994f13b4e213b46bce6e2b2b85307 Mon Sep 17 00:00:00 2001
From: lintao <lintao51@gmail.com>
Date: Tue, 15 Oct 2019 16:52:03 +0800
Subject: [PATCH] WIP: Create sim tracker collections.

---
 Simulation/DetSimAna/CMakeLists.txt             | 5 +++--
 Simulation/DetSimAna/src/ExampleAnaElemTool.cpp | 6 ++++++
 Simulation/DetSimAna/src/ExampleAnaElemTool.h   | 7 +++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/Simulation/DetSimAna/CMakeLists.txt b/Simulation/DetSimAna/CMakeLists.txt
index 458772ae..9ce97422 100644
--- a/Simulation/DetSimAna/CMakeLists.txt
+++ b/Simulation/DetSimAna/CMakeLists.txt
@@ -2,6 +2,7 @@
 gaudi_subdir(DetSimAna v0r0)
 
 gaudi_depends_on_subdirs(
+    FWCore
     Simulation/DetSimInterface
 )
 
@@ -20,8 +21,8 @@ set(DetSimAna_srcs
 message("podio_LIBRARIES: ${podio_LIBRARIES}")
 message("plcio_LIBRARIES: ${plcio_LIBRARIES}")
 gaudi_add_module(DetSimAna ${DetSimAna_srcs}
-    INCLUDE_DIRS DetSimInterface DD4hep GaudiKernel Geant4 
+    INCLUDE_DIRS DetSimInterface FWCore DD4hep GaudiKernel Geant4 
                  ${plcio_INCLUDE_DIRS} ${podio_INCLUDE_DIRS}
-    LINK_LIBRARIES DetSimInterface DD4hep ${DD4hep_COMPONENT_LIBRARIES} GaudiKernel Geant4
+    LINK_LIBRARIES DetSimInterface FWCore DD4hep ${DD4hep_COMPONENT_LIBRARIES} GaudiKernel Geant4
                  ${plcio_LIBRARIES} ${podio_LIBRARIES}
 )
diff --git a/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp b/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp
index 0b59081d..518debac 100644
--- a/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp
+++ b/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp
@@ -33,6 +33,9 @@ ExampleAnaElemTool::EndOfEventAction(const G4Event* anEvent) {
 
     // save all data
 
+    // create collections.
+    auto trackercols = m_trackerCol.createAndPut();
+
     // readout defined in DD4hep
     auto lcdd = &(dd4hep::Detector::getInstance());
     auto allReadouts = lcdd->readouts();
@@ -107,6 +110,9 @@ ExampleAnaElemTool::EndOfEventAction(const G4Event* anEvent) {
                 dd4hep::sim::Geant4TrackerHit* trk_hit = dynamic_cast<dd4hep::sim::Geant4TrackerHit*>(h);
                 if (trk_hit) {
                     info() << " cast to dd4hep::sim::Geant4TrackerHit. " << endmsg;
+
+                    auto edm_trk_hit = trackercols->create();
+
                 }
 
                 dd4hep::sim::Geant4CalorimeterHit* cal_hit = dynamic_cast<dd4hep::sim::Geant4CalorimeterHit*>(h);
diff --git a/Simulation/DetSimAna/src/ExampleAnaElemTool.h b/Simulation/DetSimAna/src/ExampleAnaElemTool.h
index 01e6275e..156b604a 100644
--- a/Simulation/DetSimAna/src/ExampleAnaElemTool.h
+++ b/Simulation/DetSimAna/src/ExampleAnaElemTool.h
@@ -2,8 +2,11 @@
 #define ExampleAnaElemTool_h
 
 #include "GaudiKernel/AlgTool.h"
+#include "FWCore/DataHandle.h"
 #include "DetSimInterface/IAnaElemTool.h"
 
+#include "plcio/SimTrackerHitCollection.h"
+
 class ExampleAnaElemTool: public extends<AlgTool, IAnaElemTool> {
 
 public:
@@ -31,6 +34,10 @@ public:
     StatusCode initialize() override;
     StatusCode finalize() override;
 
+private:
+    DataHandle<plcio::SimTrackerHitCollection> m_trackerCol{"SimTrackerCol", 
+            Gaudi::DataHandle::Writer, this};
+
 };
 
 #endif
-- 
GitLab