diff --git a/DDRec/src/Surface.cpp b/DDRec/src/Surface.cpp index 18df477fb415537f2fde25af28e4588bc13c42b3..70f1d7743386305cd7e50765e829703e7451b449 100644 --- a/DDRec/src/Surface.cpp +++ b/DDRec/src/Surface.cpp @@ -431,9 +431,9 @@ namespace DD4hep { //=========== compute and cache world transform for surface ========== - + const TGeoHMatrix& wm = _det.worldTransformation() ; - + #if 0 // debug wm.Print() ; for( std::list<PlacedVolume>::iterator it= pVList.begin(), n = pVList.end() ; it != n ; ++it ){ @@ -445,7 +445,9 @@ namespace DD4hep { #endif // need to get the inverse transformation ( see Detector.cpp ) - std::auto_ptr<TGeoHMatrix> wtI( new TGeoHMatrix( wm.Inverse() ) ) ; + // std::auto_ptr<TGeoHMatrix> wtI( new TGeoHMatrix( wm.Inverse() ) ) ; + // has been fixed now, no need to get the inverse anymore: + std::auto_ptr<TGeoHMatrix> wtI( new TGeoHMatrix( wm ) ) ; //---- if the volSurface is not in the DetElement's volume, we need to mutliply the path to the volume to the // DetElements world transform @@ -455,7 +457,7 @@ namespace DD4hep { TGeoMatrix* m = pv->GetMatrix(); // std::cout << " +++ matrix for placed volume : " << std::endl ; // m->Print() ; - // wtI->MultiplyLeft( m ); + //wtI->MultiplyLeft( m ); wtI->Multiply( m ); }