Author: [log in to unmask] Date: Sat Apr 25 15:23:58 2015 New Revision: 3593 Log: Fixed bug that returned to base class of the half-module. Create base class to be more cleanly able to create a new converter by simply overriding one module. Add some docs, more needed. Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1GeometryDefinition.java projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerBuilder.java Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java ============================================================================= --- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java (original) +++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014GeometryDefinition.java Sat Apr 25 15:23:58 2015 @@ -1672,7 +1672,24 @@ - public static class LongAxialSlotHalfModule extends LongHalfModule { + public abstract static class LongAxialSlotHalfModuleBase extends LongHalfModule { + + private final static double sensor_x = 1.382*inch; + private final static double sensor_y = 7.863*inch; + + public LongAxialSlotHalfModuleBase(String name, SurveyVolume mother, + AlignmentCorrection alignmentCorrection, int layer, + String half) { + super(name, mother, alignmentCorrection, layer, half); + } + + protected Hep3Vector getSensorPosition() { + return new BasicHep3Vector(-sensor_x, sensor_y, -sensor_z); + } + + } + + public static class LongAxialSlotHalfModule extends LongAxialSlotHalfModuleBase { private final static double sensor_x = 1.382*inch; private final static double sensor_y = 7.863*inch; @@ -1688,11 +1705,8 @@ protected Hep3Vector getSensorPosition() { return new BasicHep3Vector(-sensor_x, sensor_y, -sensor_z); } - - - - } - + } + public abstract static class LongStereoHalfModule extends LongHalfModule { @@ -1717,12 +1731,18 @@ // Build full rotation Rotation r = r2.applyTo(r1); //Rotation r = r1; - if(debug) System.out.printf("%s: Coord before corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); - if(debug) System.out.printf("%s: box center before corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + if(debug) { + System.out.printf("%s: LongStereoHalfModule Generic Corrections\n", getClass().getSimpleName()); + System.out.printf("%s: Coord before corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); + System.out.printf("%s: box center before corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + } + getCoord().rotateApache(r); - if(debug) System.out.printf("%s: Coord after corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); - if(debug) System.out.printf("%s: box center after corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); - + + if(debug) { + System.out.printf("%s: Coord after corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); + System.out.printf("%s: box center after corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + } } @@ -1752,24 +1772,31 @@ - public static class LongStereoSlotHalfModule extends LongStereoHalfModule { + public static abstract class LongStereoSlotHalfModuleBase extends LongStereoHalfModule { private final static double sensor_x = 1.481*inch; private final static double sensor_y = 7.861*inch; + public LongStereoSlotHalfModuleBase(String name, SurveyVolume mother, + AlignmentCorrection alignmentCorrection, int layer, + String half) { + super(name, mother, alignmentCorrection, layer, half); + } + + protected Hep3Vector getSensorPosition() { + return new BasicHep3Vector(-sensor_x, sensor_y, -sensor_z); + } + } + + public static class LongStereoSlotHalfModule extends LongStereoSlotHalfModuleBase { public LongStereoSlotHalfModule(String name, SurveyVolume mother, AlignmentCorrection alignmentCorrection, int layer, String half) { super(name, mother, alignmentCorrection, layer, half); init(); } - - protected Hep3Vector getSensorPosition() { - return new BasicHep3Vector(-sensor_x, sensor_y, -sensor_z); - } - - } - + } + /** * @SurveyVolume volume defining the coordinate system of the axial half-module in module L1-3 @@ -1908,12 +1935,7 @@ protected void setBoxDim() { setBoxDim(width, length, height); } - - - - - } - + } @@ -2139,11 +2161,10 @@ // create the half module components - makeHalfModuleComponentSensor(halfModule); - + makeLongHalfModuleComponentKapton(halfModule); - + //makeHalfModuleComponentCF(halfModule); //makeHalfModuleComponentHybrid(halfModule); @@ -2192,12 +2213,30 @@ } + /** + * Create {@link LongAxialSlotHalfModule} {@link SurveyVolume}. + * @param name + * @param mother + * @param alignmentCorrection + * @param layer + * @param half + * @return + */ protected LongHalfModule createLongAxialSlotHalfModule(String name, SurveyVolume mother, AlignmentCorrection alignmentCorrection, int layer, String half) { return new LongAxialSlotHalfModule(name, mother, alignmentCorrection, layer, half); } + /** + * Create {@link LongStereoSlotHalfModule} {@link SurveyVolume}. + * @param name + * @param mother + * @param alignmentCorrection + * @param layer + * @param half + * @return + */ protected LongHalfModule createLongStereoSlotHalfModule(String name, SurveyVolume mother, AlignmentCorrection alignmentCorrection, int layer, String half) { Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1GeometryDefinition.java ============================================================================= --- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1GeometryDefinition.java (original) +++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014v1GeometryDefinition.java Sat Apr 25 15:23:58 2015 @@ -17,44 +17,63 @@ super(debug, node); } - public static class LongAxialSlotHalfModule extends HPSTracker2014GeometryDefinition.LongAxialSlotHalfModule { + public static class LongAxialSlotHalfModule extends HPSTracker2014GeometryDefinition.LongAxialSlotHalfModuleBase { public LongAxialSlotHalfModule(String name, SurveyVolume mother, AlignmentCorrection alignmentCorrection, int layer, String half) { super(name, mother, alignmentCorrection, layer, half); + init(); } @Override protected void applyGenericCoordinateSystemCorrections() { + super.applyGenericCoordinateSystemCorrections(); - // apply 180 degree rotation around w ~ normal to the sensor plane - if(debug) System.out.printf("%s: Coord before corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); - if(debug) System.out.printf("%s: box center before corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + + // apply 180 degree rotation around w to get hybrid on the correct side + + if(debug) { + System.out.printf("%s: Coord before corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); + System.out.printf("%s: box center before corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + } getCoord().rotateApache(getSlotRotation()); - if(debug) System.out.printf("%s: Coord after corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); - if(debug) System.out.printf("%s: box center after corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + + if(debug) { + System.out.printf("%s: Coord after corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); + System.out.printf("%s: box center after corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + } } } - public static class LongStereoSlotHalfModule extends HPSTracker2014GeometryDefinition.LongStereoSlotHalfModule { + public static class LongStereoSlotHalfModule extends HPSTracker2014GeometryDefinition.LongStereoSlotHalfModuleBase { public LongStereoSlotHalfModule(String name, SurveyVolume mother, AlignmentCorrection alignmentCorrection, int layer, String half) { super(name, mother, alignmentCorrection, layer, half); + init(); } @Override protected void applyGenericCoordinateSystemCorrections() { - // TODO Auto-generated method stub + super.applyGenericCoordinateSystemCorrections(); - // apply 180 degree rotation around w ~ normal to the sensor plane - if(debug) System.out.printf("%s: Coord before corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); - if(debug) System.out.printf("%s: box center before corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + + if(debug) { + System.out.printf("%s: v1 LongStereoSlotHalfModule Generic Corrections\n", getClass().getSimpleName()); + System.out.printf("%s: Coord before corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); + System.out.printf("%s: box center before corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + } + getCoord().rotateApache(getSlotRotation()); - if(debug) System.out.printf("%s: Coord after corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); - if(debug) System.out.printf("%s: box center after corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + + if(debug) { + System.out.printf("%s: Coord after corrections\n%s\n", getClass().getSimpleName(),getCoord().toString()); + System.out.printf("%s: box center after corrections\n%s\n", getClass().getSimpleName(),getBoxDim().toString()); + } } + + } @Override @@ -69,9 +88,7 @@ SurveyVolume mother, AlignmentCorrection alignmentCorrection, int layer, String half) { - // TODO Auto-generated method stub - return super.createLongStereoSlotHalfModule(name, mother, alignmentCorrection, - layer, half); + return new LongStereoSlotHalfModule(name, mother, alignmentCorrection, layer, half); } Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerBuilder.java ============================================================================= --- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerBuilder.java (original) +++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerBuilder.java Sat Apr 25 15:23:58 2015 @@ -198,8 +198,8 @@ public HalfModuleBundle() { } public void print() { - System.out.printf("%s: %s\n", this.getClass().getSimpleName(),halfModule.toString()); - System.out.printf("%s: %s\n", this.getClass().getSimpleName(),activeSensor.toString()); + if(halfModule!=null) System.out.printf("%s: %s\n", this.getClass().getSimpleName(),halfModule.toString()); + if(activeSensor!=null) System.out.printf("%s: %s\n", this.getClass().getSimpleName(),activeSensor.toString()); } } ######################################################################## 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