From d4a2cba0097531433c842e3b004b54990b77b61e Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Fri, 10 Mar 2017 16:52:40 +0100 Subject: [PATCH] Fix matrix multiplication error in VolumeManager --- DDCore/src/VolumeManager.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/DDCore/src/VolumeManager.cpp b/DDCore/src/VolumeManager.cpp index f6103b1e1..2c293be4a 100644 --- a/DDCore/src/VolumeManager.cpp +++ b/DDCore/src/VolumeManager.cpp @@ -237,6 +237,7 @@ namespace DD4hep { string sd_name = sd.name(); DetElement sub_detector = m_lcdd.detector(sd_name); VolumeManager section = m_volManager.addSubdetector(sub_detector, ro); + // This is the block, we effectively have to save for each physical volume with a VolID VolumeManager::Context* context = new VolumeManager::Context; context->identifier = code.first; @@ -247,13 +248,11 @@ namespace DD4hep { for (size_t i = nodes.size(); i > 1; --i) { // Omit the placement of the parent DetElement TGeoMatrix* m = nodes[i-1]->GetMatrix(); context->toWorld.MultiplyLeft(m); - //::printf("Element [%d]: ",int(i)); m->Print(); } // context->volID = ids; // context->path = nodes; context->toDetector = context->toWorld; context->toDetector.MultiplyLeft(nodes[0]->GetMatrix()); - //context->toWorld.MultiplyLeft(&parent.nominal().worldTransformation()); context->toWorld.MultiplyLeft(&e.nominal().worldTransformation()); if ( !section.adoptPlacement(context) || m_debug ) { print_node(sd, parent, e, n, code, nodes); -- GitLab