Author: phansson
Date: Tue Nov 4 22:00:43 2014
New Revision: 3413
Log:
Make local half-module coordinate system comply with SiSensor definition. Fix override problem with choosing which part of the geometry to build.
Modified:
projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014GeometryDefinition.java
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/HPSTrackerGeometryDefinition.java
Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014GeometryDefinition.java
=============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014GeometryDefinition.java (original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTestRunTracker2014GeometryDefinition.java Tue Nov 4 22:00:43 2014
@@ -24,15 +24,7 @@
- //steering
- public final boolean doAxial = true;
- public final boolean doStereo = true;
- public final boolean doColdBlock = false;
- public final boolean doBottom = true;
- public final boolean doTop = true;
- public final int layerBitMask = 0x1F; //0x1;//
-
-
+
//General
protected static final boolean useSiStripsConvention = true;
protected static final boolean use30mradRotation = true;
@@ -47,6 +39,12 @@
public HPSTestRunTracker2014GeometryDefinition(boolean debug, Element node) {
super(debug, node);
+ doAxial = true;
+ doStereo = true;
+ doColdBlock = false;
+ doBottom = true;
+ doTop = true;
+ layerBitMask = 0x1F; //0x1;//
}
@@ -1163,11 +1161,18 @@
// Note that this can be different between axial and stereo since the survey positions determine the local coordinate
// system now.
// I'm not sure this feels good but this has to be done somewhere
+// double box_center_local_x = TestRunHalfModule.getLength()/2.0 - ( (170.00 + 10.00) - Sensor.getSensorLength()/2.0);
+// double box_center_local_y = -1.0*TestRunHalfModule.getThickness()/2.0 + (TestRunHalfModule.getCFThickness() + HalfModuleLamination.kapton_thickness + Sensor.getSensorThickness()/2.0);
+// double box_center_local_z = TestRunHalfModule.getWidth()/2.0 - ( 12.66 - (8.83 -3.00) + Sensor.getSensorWidth()/2.0 );
+
double box_center_local_x = TestRunHalfModule.getLength()/2.0 - ( (170.00 + 10.00) - Sensor.getSensorLength()/2.0);
- double box_center_local_y = -1.0*TestRunHalfModule.getThickness()/2.0 + (TestRunHalfModule.getCFThickness() + HalfModuleLamination.kapton_thickness + Sensor.getSensorThickness()/2.0);
+ double box_center_local_y = - Sensor.getSensorThickness()/2.0 - HalfModuleLamination.kapton_thickness - CarbonFiber.cf_thickness + half_module_thickness/2.0;
double box_center_local_z = TestRunHalfModule.getWidth()/2.0 - ( 12.66 - (8.83 -3.00) + Sensor.getSensorWidth()/2.0 );
+
+
if(useSiStripsConvention) {
- setCenter(box_center_local_z, box_center_local_x, box_center_local_y);
+ //setCenter(box_center_local_z, box_center_local_x, box_center_local_y);
+ setCenter(-1.0*box_center_local_z, box_center_local_x, box_center_local_y);
} else {
setCenter(box_center_local_x, box_center_local_y, box_center_local_z);
}
@@ -1253,12 +1258,19 @@
if(useSiStripsConvention) {
+// vee_pos_halfmod_local_x = ball_pos_halfmod_local_x;
+// vee_pos_halfmod_local_y = ball_pos_halfmod_local_y;
+// vee_pos_halfmod_local_z = ball_pos_halfmod_local_z + Sensor.getSensorWidth()/2.0;
+// flat_pos_halfmod_local_x = ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
+// flat_pos_halfmod_local_y = ball_pos_halfmod_local_y;
+// flat_pos_halfmod_local_z = ball_pos_halfmod_local_z;
vee_pos_halfmod_local_x = ball_pos_halfmod_local_x;
vee_pos_halfmod_local_y = ball_pos_halfmod_local_y;
- vee_pos_halfmod_local_z = ball_pos_halfmod_local_z + Sensor.getSensorWidth()/2.0;
+ vee_pos_halfmod_local_z = ball_pos_halfmod_local_z - Sensor.getSensorWidth()/2.0;
flat_pos_halfmod_local_x = ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
flat_pos_halfmod_local_y = ball_pos_halfmod_local_y;
flat_pos_halfmod_local_z = ball_pos_halfmod_local_z;
+
} else {
vee_pos_halfmod_local_x = ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
vee_pos_halfmod_local_y = ball_pos_halfmod_local_y;
@@ -1278,6 +1290,9 @@
}
}
+
+
+
}
@@ -1332,12 +1347,12 @@
if(useSiStripsConvention) {
- vee_pos_halfmod_local_x = ball_pos_halfmod_local_x ;
- vee_pos_halfmod_local_y = ball_pos_halfmod_local_y;
- vee_pos_halfmod_local_z = ball_pos_halfmod_local_z + Sensor.getSensorWidth()/2.0;
- flat_pos_halfmod_local_x = ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
- flat_pos_halfmod_local_y = ball_pos_halfmod_local_y;
- flat_pos_halfmod_local_z = ball_pos_halfmod_local_z;
+// vee_pos_halfmod_local_x = ball_pos_halfmod_local_x ;
+// vee_pos_halfmod_local_y = ball_pos_halfmod_local_y;
+// vee_pos_halfmod_local_z = ball_pos_halfmod_local_z + Sensor.getSensorWidth()/2.0;
+// flat_pos_halfmod_local_x = ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
+// flat_pos_halfmod_local_y = ball_pos_halfmod_local_y;
+// flat_pos_halfmod_local_z = ball_pos_halfmod_local_z;
@@ -1348,6 +1363,14 @@
// flat_pos_halfmod_local_y = ball_pos_halfmod_local_y;
// flat_pos_halfmod_local_z = ball_pos_halfmod_local_z;
+
+ vee_pos_halfmod_local_x = ball_pos_halfmod_local_x;
+ vee_pos_halfmod_local_y = ball_pos_halfmod_local_y;
+ vee_pos_halfmod_local_z = ball_pos_halfmod_local_z - Sensor.getSensorWidth()/2.0;
+ flat_pos_halfmod_local_x = ball_pos_halfmod_local_x + Sensor.getSensorLength()/2.0;
+ flat_pos_halfmod_local_y = ball_pos_halfmod_local_y;
+ flat_pos_halfmod_local_z = ball_pos_halfmod_local_z;
+
} else {
@@ -1660,7 +1683,7 @@
*/
public static class HalfModuleLamination extends HalfModuleComponent {
protected static final double kapton_length = 184.0;
- protected static final double kapton_width = 40.0;
+ protected static final double kapton_width = 40.0; // -2.0; // width under the sensor, 2mm wider under hybrid.
protected static final double kapton_thickness = 0.050;
public HalfModuleLamination(String name, SurveyVolume m, int id) {
super(name, m, null, id);
@@ -1680,31 +1703,38 @@
// double flat_pos_kapton_local_y = ball_pos_kapton_local_y + HalfModuleLamination.kapton_thickness/2.0; // arbitrary distance
// double flat_pos_kapton_local_z = ball_pos_kapton_local_z;
- double ball_pos_kapton_local_x = -1 * (Sensor.getSensorWidth()/2.0 + 12.66) + 8.83 - 3.00 + 6.00;
- double ball_pos_kapton_local_y = -1 * (180.0 - Sensor.getSensorLength()/2.0) + 8.5;
- double ball_pos_kapton_local_z = (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness/2.0);
- double vee_pos_kapton_local_x = ball_pos_kapton_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
- double vee_pos_kapton_local_y = ball_pos_kapton_local_y;
- double vee_pos_kapton_local_z = ball_pos_kapton_local_z;
- double flat_pos_kapton_local_x = ball_pos_kapton_local_x;
- double flat_pos_kapton_local_y = ball_pos_kapton_local_y + Sensor.getSensorLength(); // arbitrary distance
- double flat_pos_kapton_local_z = ball_pos_kapton_local_z;
-
-
-
+// double ball_pos_kapton_local_x = -1 * (Sensor.getSensorWidth()/2.0 + 12.66) + 8.83 - 3.00 + 6.00;
+// double ball_pos_kapton_local_y = -1 * (180.0 - Sensor.getSensorLength()/2.0) + 8.5;
+// double ball_pos_kapton_local_z = (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness/2.0);
+// double vee_pos_kapton_local_x = ball_pos_kapton_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
+// double vee_pos_kapton_local_y = ball_pos_kapton_local_y;
+// double vee_pos_kapton_local_z = ball_pos_kapton_local_z;
+// double flat_pos_kapton_local_x = ball_pos_kapton_local_x;
+// double flat_pos_kapton_local_y = ball_pos_kapton_local_y + Sensor.getSensorLength(); // arbitrary distance
+// double flat_pos_kapton_local_z = ball_pos_kapton_local_z;
+
+ double ball_pos_kapton_local_x = Sensor.sensor_width/2.0 + 6.83 - 6.0 - kapton_width/2.0;
+ double ball_pos_kapton_local_y = Sensor.getSensorLength()/2.0 - 170.0 - 10.0 + 8.5 + kapton_length/2.0;
+ double ball_pos_kapton_local_z = -1.0 * (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness/2.0);
+
+ //ballPos = new BasicHep3Vector(ball_pos_kapton_local_x,ball_pos_kapton_local_y,ball_pos_kapton_local_z);
+ //veePos = new BasicHep3Vector(vee_pos_kapton_local_x,vee_pos_kapton_local_y,vee_pos_kapton_local_z);
+ //flatPos = new BasicHep3Vector(flat_pos_kapton_local_x,flat_pos_kapton_local_y,flat_pos_kapton_local_z);
ballPos = new BasicHep3Vector(ball_pos_kapton_local_x,ball_pos_kapton_local_y,ball_pos_kapton_local_z);
- veePos = new BasicHep3Vector(vee_pos_kapton_local_x,vee_pos_kapton_local_y,vee_pos_kapton_local_z);
- flatPos = new BasicHep3Vector(flat_pos_kapton_local_x,flat_pos_kapton_local_y,flat_pos_kapton_local_z);
-
+ veePos = new BasicHep3Vector(ballPos.x() + 1.0,ballPos.y(),ballPos.z());
+ flatPos = new BasicHep3Vector(ballPos.x(),ballPos.y()+ 1.0,ballPos.z());
+
+
if(debug) {
System.out.printf("%s: survey positions for %s\n",this.getClass().getSimpleName(),getName());
printSurveyPos();
}
}
protected void setCenter() {
- setCenter(getWidth()/2.0, getLength()/2.0,0.0);
- //setCenter(getLength()/2.0, 0.0, getWidth()/2.0);
+ setCenter(0.0, 0.0, 0.0);
+ //setCenter(getWidth()/2.0, getLength()/2.0,0.0);
+ //setCenter(getWidth()/2.0, getLength()/2.0,0.0);
}
protected double getThickness() {
return kapton_thickness;
@@ -1755,19 +1785,27 @@
// setVeePos(vee_pos_cf_local_x,vee_pos_cf_local_y,vee_pos_cf_local_z);
// setFlatPos(flat_pos_cf_local_x,flat_pos_cf_local_y,flat_pos_cf_local_z);
- final double ball_pos_cf_local_x = -1 * (Sensor.getSensorWidth()/2.0 + 12.66) + 8.83 - 3.00;
- final double ball_pos_cf_local_y = -1 * (180.0 - Sensor.getSensorLength()/2.0);
- final double ball_pos_cf_local_z = (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness + TestRunHalfModule.getCFThickness()/2.0);
- final double vee_pos_cf_local_x = ball_pos_cf_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
- final double vee_pos_cf_local_y = ball_pos_cf_local_y;
- final double vee_pos_cf_local_z = ball_pos_cf_local_z;
- final double flat_pos_cf_local_x = ball_pos_cf_local_x;
- final double flat_pos_cf_local_y = ball_pos_cf_local_y + Sensor.getSensorLength()/2.0; // arbitrary distance
- final double flat_pos_cf_local_z = ball_pos_cf_local_z;
- setBallPos(ball_pos_cf_local_x,ball_pos_cf_local_y,ball_pos_cf_local_z);
- setVeePos(vee_pos_cf_local_x,vee_pos_cf_local_y,vee_pos_cf_local_z);
- setFlatPos(flat_pos_cf_local_x,flat_pos_cf_local_y,flat_pos_cf_local_z);
-
+// final double ball_pos_cf_local_x = -1 * (Sensor.getSensorWidth()/2.0 + 12.66) + 8.83 - 3.00;
+// final double ball_pos_cf_local_y = -1 * (180.0 - Sensor.getSensorLength()/2.0);
+// final double ball_pos_cf_local_z = (Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness + TestRunHalfModule.getCFThickness()/2.0);
+// final double vee_pos_cf_local_x = ball_pos_cf_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
+// final double vee_pos_cf_local_y = ball_pos_cf_local_y;
+// final double vee_pos_cf_local_z = ball_pos_cf_local_z;
+// final double flat_pos_cf_local_x = ball_pos_cf_local_x;
+// final double flat_pos_cf_local_y = ball_pos_cf_local_y + Sensor.getSensorLength()/2.0; // arbitrary distance
+// final double flat_pos_cf_local_z = ball_pos_cf_local_z;
+// setBallPos(ball_pos_cf_local_x,ball_pos_cf_local_y,ball_pos_cf_local_z);
+// setVeePos(vee_pos_cf_local_x,vee_pos_cf_local_y,vee_pos_cf_local_z);
+// setFlatPos(flat_pos_cf_local_x,flat_pos_cf_local_y,flat_pos_cf_local_z);
+
+
+ final double ball_pos_cf_local_x = Sensor.getSensorWidth()/2.0 + 6.83 - cf_width/2.0;
+ final double ball_pos_cf_local_y = Sensor.getSensorLength()/2.0 - 170.0 - 10.0 + cf_length/2.0;
+ final double ball_pos_cf_local_z = -1 * ( Sensor.getSensorThickness()/2.0 + HalfModuleLamination.kapton_thickness + TestRunHalfModule.getCFThickness()/2.0 );
+
+ ballPos = new BasicHep3Vector(ball_pos_cf_local_x, ball_pos_cf_local_y, ball_pos_cf_local_z);
+ veePos = new BasicHep3Vector(ballPos.x() + 1.0, ballPos.y(), ballPos.z());
+ flatPos = new BasicHep3Vector(ballPos.x(), ballPos.y() + 1.0, ballPos.z());
@@ -1778,7 +1816,8 @@
}
protected void setCenter() {
- setCenter(getWidth()/2.0, getLength()/2.0, 0.0);
+ setCenter(0.0, 0.0, 0.0);
+ //setCenter(getWidth()/2.0, getLength()/2.0, 0.0);
//setCenter(getLength()/2.0, 0.0, getWidth()/2.0);
}
protected double getThickness() {
@@ -1830,18 +1869,27 @@
// setVeePos(vee_pos_hybrid_local_x,vee_pos_hybrid_local_y,vee_pos_hybrid_local_z);
// setFlatPos(flat_pos_hybrid_local_x,flat_pos_hybrid_local_y,flat_pos_hybrid_local_z);
- final double ball_pos_hybrid_local_x = -1 * (Sensor.getSensorWidth()/2.0);
- final double ball_pos_hybrid_local_y = -1 * (170.0 - Sensor.getSensorLength()/2.0);
- final double ball_pos_hybrid_local_z = (Sensor.getSensorThickness()/2.0 - TestRunHalfModule.getHybridThickness()/2.0);
- final double vee_pos_hybrid_local_x = ball_pos_hybrid_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
- final double vee_pos_hybrid_local_y = ball_pos_hybrid_local_y;
- final double vee_pos_hybrid_local_z = ball_pos_hybrid_local_z;
- final double flat_pos_hybrid_local_x = ball_pos_hybrid_local_x;
- final double flat_pos_hybrid_local_y = ball_pos_hybrid_local_y + Sensor.getSensorLength()/2.0; // arbitrary distance
- final double flat_pos_hybrid_local_z = ball_pos_hybrid_local_z;
- setBallPos(ball_pos_hybrid_local_x,ball_pos_hybrid_local_y,ball_pos_hybrid_local_z);
- setVeePos(vee_pos_hybrid_local_x,vee_pos_hybrid_local_y,vee_pos_hybrid_local_z);
- setFlatPos(flat_pos_hybrid_local_x,flat_pos_hybrid_local_y,flat_pos_hybrid_local_z);
+// final double ball_pos_hybrid_local_x = -1 * (Sensor.getSensorWidth()/2.0);
+// final double ball_pos_hybrid_local_y = -1 * (170.0 - Sensor.getSensorLength()/2.0);
+// final double ball_pos_hybrid_local_z = (Sensor.getSensorThickness()/2.0 - TestRunHalfModule.getHybridThickness()/2.0);
+// final double vee_pos_hybrid_local_x = ball_pos_hybrid_local_x + Sensor.getSensorWidth()/2.0; // arbitrary distance
+// final double vee_pos_hybrid_local_y = ball_pos_hybrid_local_y;
+// final double vee_pos_hybrid_local_z = ball_pos_hybrid_local_z;
+// final double flat_pos_hybrid_local_x = ball_pos_hybrid_local_x;
+// final double flat_pos_hybrid_local_y = ball_pos_hybrid_local_y + Sensor.getSensorLength()/2.0; // arbitrary distance
+// final double flat_pos_hybrid_local_z = ball_pos_hybrid_local_z;
+// setBallPos(ball_pos_hybrid_local_x,ball_pos_hybrid_local_y,ball_pos_hybrid_local_z);
+// setVeePos(vee_pos_hybrid_local_x,vee_pos_hybrid_local_y,vee_pos_hybrid_local_z);
+// setFlatPos(flat_pos_hybrid_local_x,flat_pos_hybrid_local_y,flat_pos_hybrid_local_z);
+
+ final double ball_pos_hybrid_local_x = 0.0;
+ final double ball_pos_hybrid_local_y = Sensor.getSensorLength()/2.0 - 170.0 + hybrid_length/2.0;
+ final double ball_pos_hybrid_local_z = -1.0*Sensor.getSensorThickness()/2.0 + hybrid_thickness/2.0;
+
+ ballPos = new BasicHep3Vector(ball_pos_hybrid_local_x,ball_pos_hybrid_local_y, ball_pos_hybrid_local_z);
+ veePos = new BasicHep3Vector(ballPos.x() + 1.0, ballPos.y(), ballPos.z());
+ flatPos = new BasicHep3Vector(ballPos.x(), ballPos.y() + 1.0, ballPos.z());
+
if(debug) {
@@ -1850,7 +1898,8 @@
}
}
protected void setCenter() {
- setCenter(getWidth()/2.0, getLength()/2.0, 0.0);
+ setCenter(0.0, 0.0, 0.0);
+ //setCenter(getWidth()/2.0, getLength()/2.0, 0.0);
//setCenter(getLength()/2.0, 0.0, getWidth()/2.0);
}
protected double getThickness() {
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 Tue Nov 4 22:00:43 2014
@@ -19,18 +19,14 @@
- //steering
- public final boolean doAxial = false;
- public final boolean doStereo = false;
- public final boolean doColdBlock = false;
- public final boolean doBottom = true;
- public final boolean doTop = false;
- public final int layerBitMask = 0x7; //0x1;//
-
-
-
public HPSTracker2014GeometryDefinition(boolean debug, Element node) {
super(debug, node);
+ doAxial = false;
+ doStereo = false;
+ doColdBlock = false;
+ doBottom = true;
+ doTop = false;
+ layerBitMask = 0x7;
}
Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerGeometryDefinition.java
=============================================================================
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerGeometryDefinition.java (original)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/HPSTrackerGeometryDefinition.java Tue Nov 4 22:00:43 2014
@@ -19,12 +19,12 @@
//steering
- public final boolean doAxial = true;
- public final boolean doStereo = true;
- public final boolean doColdBlock = false;
- public final boolean doBottom = true;
- public final boolean doTop = true;
- public final int layerBitMask = 0x1; //0x1;//
+ public boolean doAxial = true;
+ public boolean doStereo = true;
+ public boolean doColdBlock = false;
+ public boolean doBottom = true;
+ public boolean doTop = true;
+ public int layerBitMask = 0x1; //0x1;//
//General
########################################################################
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
|