Author: phansson Date: Mon Oct 27 22:29:40 2014 New Revision: 3394 Log: Fixed coordinate transformation to apply to local coordinate system. Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/SurveyVolume.java Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/SurveyVolume.java ============================================================================= --- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/SurveyVolume.java (original) +++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/SurveyVolume.java Mon Oct 27 22:29:40 2014 @@ -60,7 +60,7 @@ setCenter(); setBoxDim(); applyGenericCoordinateSystemCorrections(); - applyAlignmentCorrections(); + applyLocalAlignmentCorrections(); } protected void applyGenericCoordinateSystemCorrections() { @@ -99,7 +99,7 @@ } - private void applyAlignmentCorrections() { + private void applyLocalAlignmentCorrections() { // Apply alignment corrections to local coordinate system that is already built boolean debug_local = true; if(this.coord==null) throw new RuntimeException("no coordinate system was set before trying to apply alignment corrections."); @@ -111,9 +111,15 @@ // translate if(alignmentCorrections.getTranslation()!=null) { - if(debug_local) System.out.printf("%s: Apply translation %s to coordinate system\n", this.getClass().getSimpleName(),alignmentCorrections.getTranslation().toString()); - - getCoord().translate(alignmentCorrections.getTranslation()); + if(debug_local) System.out.printf("%s: Apply local translation %s\n", this.getClass().getSimpleName(),alignmentCorrections.getTranslation().toString()); + + // rotate into mother coordinate system + Hep3Vector translation_mother = getCoord().getTransformation().rotated(alignmentCorrections.getTranslation()); + + if(debug_local) System.out.printf("%s: after rotation apply translation %s to coordinate system\n", this.getClass().getSimpleName(),translation_mother.toString()); + + //apply translation + getCoord().translate(translation_mother); } else { if(debug_local) System.out.printf("%s: No translation to coordinate system\n", this.getClass().getSimpleName()); ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the LCDET-SVN list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCDET-SVN&A=1