Author: phansson
Date: Mon Nov 10 11:55:25 2014
New Revision: 3417
Log:
Adding L4-6 bottom u-channel and plate. Work in progress.
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/HPSTracker2014LCDDBuilder.java
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/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 Mon Nov 10 11:55:25 2014
@@ -72,6 +72,13 @@
UChannelL13BottomPlate uChannelL13BottomPlate = new UChannelL13BottomPlate("support_plate_bottom_L13", uChannelL13Bottom, null);
surveyVolumes.add(uChannelL13BottomPlate);
+
+ UChannelL46Bottom uChannelL46Bottom = new UChannelL46Bottom("support_bottom_L46", svtBox, null, svtBoxBasePlate);
+ surveyVolumes.add(uChannelL46Bottom);
+
+ UChannelL46BottomPlate uChannelL46BottomPlate = new UChannelL46BottomPlate("support_plate_bottom_L46", uChannelL46Bottom, null);
+ surveyVolumes.add(uChannelL46BottomPlate);
+
for(int l=1; l<=6;++l) {
if(doLayer(l)) {
@@ -452,7 +459,128 @@
-
+ /**
+ * @SurveyVolume volume defining the coordinate system of the u-channel
+ * Reference: SVTBox base plate coordinate system
+ * Origin: midpoint between upstream survey cones
+ * Orientation: u - width pointing towards electron side, v - pointing along the U-channel in the beam direction
+ *
+ * @author Per Hansson Adrian <[log in to unmask]>
+ *
+ */
+ public static class UChannelL46Bottom extends SurveyVolume {
+ public final static double width = UChannelL46BottomPlate.width;
+ public final static double length = UChannelL46BottomPlate.length;
+ public final static double height = 2.575*inch;
+ public static final double kin_mount_to_edge_of_plate_x = width/2.0-5.75*inch;
+ public static final double kin_mount_to_edge_of_plate_y = 0.2*inch;
+ public final static double cone_to_edge_of_plate_y = 2.75*inch;
+ public final static double side_plate_cone_y = 2.0*inch;
+ public final static double cone_to_L1_hole_y = cone_to_edge_of_plate_y - kin_mount_to_edge_of_plate_y;
+
+
+
+
+ public UChannelL46Bottom(String name, SurveyVolume m,
+ AlignmentCorrection alignmentCorrection,
+ SurveyVolume ref) {
+ super(name, m, alignmentCorrection, ref);
+ init();
+ }
+ protected void setCenter() {
+ final double x = 0.0;
+ final double y = -cone_to_edge_of_plate_y + length/2.0;
+ final double z = -side_plate_cone_y - UChannelL46BottomPlate.height + height/2.0;
+ setCenter(x,y,z);
+ }
+ protected void setBoxDim() {
+ setBoxDim(width,length,height);
+ }
+ protected void setPos() {
+ //locate cone from pin hole
+// final double ball_pos_x = 4*inch;
+// final double ball_pos_y = (4.175 + 2*3.937) * inch;
+// final double ball_pos_z = side_plate_cone_y; // TODO need to find distance to surface from kin mount
+ final double ball_pos_x = 0.0;
+ final double ball_pos_y = 0.0;
+ final double ball_pos_z = 0.0;
+
+ ballPos = new BasicHep3Vector(ball_pos_x, ball_pos_y, ball_pos_z);
+ veePos = new BasicHep3Vector(ballPos.x()-1, ballPos.y(), ballPos.z());
+ flatPos = new BasicHep3Vector(ballPos.x(), ballPos.y()-1, ballPos.z());
+ }
+ }
+
+
+
+
+ public abstract static class UChannelL46Plate extends SurveyVolume {
+ public final static double pocket_depth_L4 = 0.1;
+ public final static double pocket_depth_L5 = pocket_depth_L4 + 0.118;
+ public final static double pocket_depth_L6 = pocket_depth_L5 + 0.118;
+ public final static double hole_to_hole_x =7.874*inch;
+
+ public UChannelL46Plate(String name, SurveyVolume m,
+ AlignmentCorrection alignmentCorrection) {
+ super(name, m, alignmentCorrection);
+ }
+
+ /**
+ * Get pocket depth for this plate
+ * @param layer
+ * @return pocket depth
+ */
+ public static double getPocketDepth(int layer) {
+ if(layer==4) return pocket_depth_L4;
+ else if(layer==5) return pocket_depth_L5;
+ else if(layer==6) return pocket_depth_L6;
+ else {
+ throw new RuntimeException("Trying to create a L4-6 module with invalid layer nr: " + layer);
+ }
+ }
+
+ }
+
+ /**
+ * @SurveyVolume volume defining the coordinate system of the u-channel plate
+ * Reference: @UChannelL13Bottom coordinate system
+ * Origin: same as reference
+ * Orientation: same as reference
+ *
+ * @author Per Hansson Adrian <[log in to unmask]>
+ *
+ */
+ public static class UChannelL46BottomPlate extends UChannelL46Plate {
+ public final static double width = 13.5*inch;
+ public final static double length = 21.0*inch;
+ public final static double height = 0.5*inch;
+
+
+ public UChannelL46BottomPlate(String name, SurveyVolume m,
+ AlignmentCorrection alignmentCorrection) {
+ super(name, m, alignmentCorrection);
+ setMaterial("Aluminum");
+ init();
+ }
+
+ protected void setCenter() {
+ final double x = 0.0;
+ final double y = -UChannelL46Bottom.cone_to_edge_of_plate_y + length/2.0;
+ final double z = -UChannelL46Bottom.side_plate_cone_y - height/2.0;
+ setCenter(x,y,z);
+ }
+ protected void setBoxDim() {
+ setBoxDim(width,length,height);
+ }
+ protected void setPos() {
+ ballPos = new BasicHep3Vector(0, 0, 0);
+ veePos = new BasicHep3Vector(1, 0, 0);
+ flatPos = new BasicHep3Vector(0, 1, 0);
+ }
+
+
+
+ }
/**
* @SurveyVolume volume defining the coordinate system of module L1-3
Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014LCDDBuilder.java
=============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014LCDDBuilder.java (original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTracker2014LCDDBuilder.java Mon Nov 10 11:55:25 2014
@@ -8,6 +8,8 @@
import org.lcsim.geometry.compact.converter.HPSTracker2014GeometryDefinition.SvtBox;
import org.lcsim.geometry.compact.converter.HPSTracker2014GeometryDefinition.UChannelL13Bottom;
import org.lcsim.geometry.compact.converter.HPSTracker2014GeometryDefinition.UChannelL13BottomPlate;
+import org.lcsim.geometry.compact.converter.HPSTracker2014GeometryDefinition.UChannelL46Bottom;
+import org.lcsim.geometry.compact.converter.HPSTracker2014GeometryDefinition.UChannelL46BottomPlate;
import org.lcsim.geometry.compact.converter.HPSTrackerBuilder.ModuleBundle;
import org.lcsim.geometry.compact.converter.HPSTrackerGeometryDefinition.TrackingVolume;
import org.lcsim.geometry.compact.converter.lcdd.util.LCDD;
@@ -80,6 +82,12 @@
add(uChannelL13BottomPlate);
+ LCDDSurveyVolume uChannelL46Bottom = new LCDDSurveyVolume(_builder.getSurveyVolume(UChannelL46Bottom.class), lcdd, svtBox);
+ add(uChannelL46Bottom);
+
+ LCDDSurveyVolume uChannelL46BottomPlate = new LCDDSurveyVolume(_builder.getSurveyVolume(UChannelL46BottomPlate.class), lcdd, uChannelL46Bottom);
+ add(uChannelL46BottomPlate);
+
// build modules
if(isDebug()) System.out.printf("%s: build modules\n", getClass().getSimpleName());
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 Nov 10 11:55:25 2014
@@ -296,9 +296,9 @@
}
public String toString() {
String s = "==\n" + getName() + ":\n";
- if(getCenter()!=null) s += "Center of box in local coordinates: %s \n" + getCenter().toString();
- if( getBoxDim()!=null) s += "Box dimensions: %s \n" + getBoxDim().toString();
- s += "Coordinate system:\n" + getCoord().toString();
+ if(getCenter()!=null) s += "Center of box in local coordinates: " + getCenter().toString() + "\n";
+ if( getBoxDim()!=null) s += "Box dimensions: " + getBoxDim().toString() + "\n";
+ s += "Coordinate system:\n" + getCoord().toString() + "\n";
return s;
}
########################################################################
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
|