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