From d7979753e2c87d8788e2f162f4430bb6b3af4c79 Mon Sep 17 00:00:00 2001
From: lintao <lintao51@gmail.com>
Date: Thu, 7 Nov 2019 20:25:31 +0800
Subject: [PATCH] Create VXDCollection for VXD detector.

---
 Simulation/DetSimAna/src/ExampleAnaElemTool.cpp | 13 ++++++++++++-
 Simulation/DetSimAna/src/ExampleAnaElemTool.h   |  2 ++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp b/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp
index 73f96378..b6040adf 100644
--- a/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp
+++ b/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp
@@ -35,6 +35,7 @@ ExampleAnaElemTool::EndOfEventAction(const G4Event* anEvent) {
 
     // create collections.
     auto trackercols = m_trackerCol.createAndPut();
+    auto vxdcols = m_VXDCol.createAndPut();
 
     // readout defined in DD4hep
     auto lcdd = &(dd4hep::Detector::getInstance());
@@ -111,7 +112,17 @@ ExampleAnaElemTool::EndOfEventAction(const G4Event* anEvent) {
                 if (trk_hit) {
                     info() << " cast to dd4hep::sim::Geant4TrackerHit. " << endmsg;
 
-                    auto edm_trk_hit = trackercols->create();
+                    plcio::SimTrackerHitCollection* colptr = nullptr;
+
+                    if (collect->GetName() == "VXDCollection") {
+                        colptr = vxdcols;
+                    } else {
+                        colptr = trackercols;
+                    }
+
+                    // auto edm_trk_hit = trackercols->create();
+                    auto edm_trk_hit = (*colptr)->create();
+
                     // Refer to: ./DDG4/lcio/LCIOConversions.cpp
                     edm_trk_hit->setCellID0((trk_hit->cellID >>    0         ) & 0xFFFFFFFF);
                     edm_trk_hit->setCellID1((trk_hit->cellID >> sizeof(int)*8) & 0xFFFFFFFF);
diff --git a/Simulation/DetSimAna/src/ExampleAnaElemTool.h b/Simulation/DetSimAna/src/ExampleAnaElemTool.h
index 156b604a..4428d777 100644
--- a/Simulation/DetSimAna/src/ExampleAnaElemTool.h
+++ b/Simulation/DetSimAna/src/ExampleAnaElemTool.h
@@ -37,6 +37,8 @@ public:
 private:
     DataHandle<plcio::SimTrackerHitCollection> m_trackerCol{"SimTrackerCol", 
             Gaudi::DataHandle::Writer, this};
+    DataHandle<plcio::SimTrackerHitCollection> m_VXDCol{"VXDCollection", 
+            Gaudi::DataHandle::Writer, this};
 
 };
 
-- 
GitLab