From 42712fbda346b2bf94fac7f133061ed25ea1f225 Mon Sep 17 00:00:00 2001 From: lintao <lintao51@gmail.com> Date: Thu, 31 Oct 2019 20:09:58 +0800 Subject: [PATCH] Convert between dd4hep::sim::Geant4TrackerHit and plcio tracker hit. --- Simulation/DetSimAna/src/ExampleAnaElemTool.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp b/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp index 518debac..73f96378 100644 --- a/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp +++ b/Simulation/DetSimAna/src/ExampleAnaElemTool.cpp @@ -112,7 +112,22 @@ ExampleAnaElemTool::EndOfEventAction(const G4Event* anEvent) { info() << " cast to dd4hep::sim::Geant4TrackerHit. " << endmsg; auto edm_trk_hit = trackercols->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); + edm_trk_hit->setEDep(trk_hit->energyDeposit/CLHEP::GeV); + edm_trk_hit->setTime(trk_hit->truth.time/CLHEP::ns); + edm_trk_hit->setPathLength(trk_hit->length/CLHEP::mm); + // lc_hit->setMCParticle(lc_mcp); + double pos[3] = {trk_hit->position.x()/CLHEP::mm, + trk_hit->position.y()/CLHEP::mm, + trk_hit->position.z()/CLHEP::mm}; + edm_trk_hit->setPosition(plcio::DoubleThree(pos)); + + float mom[3] = {trk_hit->momentum.x()/CLHEP::GeV, + trk_hit->momentum.y()/CLHEP::GeV, + trk_hit->momentum.z()/CLHEP::GeV}; + edm_trk_hit->setMomentum(plcio::FloatThree(mom)); } dd4hep::sim::Geant4CalorimeterHit* cal_hit = dynamic_cast<dd4hep::sim::Geant4CalorimeterHit*>(h); -- GitLab