Print

Print


Author: [log in to unmask]
Date: Fri Jun 12 12:04:15 2015
New Revision: 3142

Log:
Fix sign of correction for rotations.

Modified:
    java/trunk/detector-model/src/main/java/org/lcsim/geometry/compact/converter/MilleParameter.java
    java/trunk/tracking/src/main/java/org/hps/svt/alignment/BuildMillepedeCompact.java

Modified: java/trunk/detector-model/src/main/java/org/lcsim/geometry/compact/converter/MilleParameter.java
 =============================================================================
--- java/trunk/detector-model/src/main/java/org/lcsim/geometry/compact/converter/MilleParameter.java	(original)
+++ java/trunk/detector-model/src/main/java/org/lcsim/geometry/compact/converter/MilleParameter.java	Fri Jun 12 12:04:15 2015
@@ -26,6 +26,12 @@
 	public static final int half_offset = 10000;
 	public static final int type_offset = 1000; 
 	public static final int dimension_offset = 100;
+	public static enum Type {
+	    TRANSLATION(1), ROTATION(2);
+	    private int value;
+	    private Type(int value) {this.value = value;}
+	    public int getType() {return this.value;}
+	};
 	
 	public MilleParameter(String line) {
 		String[] vals = StringUtils.split(line);// line.split("\\s+");

Modified: java/trunk/tracking/src/main/java/org/hps/svt/alignment/BuildMillepedeCompact.java
 =============================================================================
--- java/trunk/tracking/src/main/java/org/hps/svt/alignment/BuildMillepedeCompact.java	(original)
+++ java/trunk/tracking/src/main/java/org/hps/svt/alignment/BuildMillepedeCompact.java	Fri Jun 12 12:04:15 2015
@@ -176,7 +176,11 @@
 		                            if(replaceConstant) {
 		                                newValue = correction;
 		                            } else {
-		                                newValue = oldValue + correction;
+		                                if (p.getType() == MilleParameter.Type.ROTATION.getType()) {
+		                                    newValue = oldValue - correction;
+		                                } else {
+		                                    newValue = oldValue + correction;
+		                                }
 		                            }
 		                            System.out.println("Update " + p.getId() + ": " + oldValue + " (corr. " + correction + ") ->  "  + newValue );
 		                            node.setAttribute("value", String.format("%.6f",newValue));