Print

Print


Commit in projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd on MAIN
HPSTestRunTracker2014LCDDBuilder.java+19-113308 -> 3309
Added back all layers. cross-check transforms to tracking coordinates.

projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd
HPSTestRunTracker2014LCDDBuilder.java 3308 -> 3309
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTestRunTracker2014LCDDBuilder.java	2014-09-04 06:00:37 UTC (rev 3308)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/lcdd/HPSTestRunTracker2014LCDDBuilder.java	2014-09-04 06:02:19 UTC (rev 3309)
@@ -71,21 +71,22 @@
 
 		// Go through the list of volumes to build that is created in the generic builder class
 		// TODO this is manual now since I don't have a way of knowing in the generic builder class what is a ghost volume at this point.
-		LCDDBaseGeometry trackingGeom = new GhostLCDDBaseGeometry(getItem(TrackingBase.class), worldVolume);
-		add(trackingGeom);
-		baseTrackerGeometry = new LCDDBaseGeometry(getItem(Base.class), lcdd, trackingGeom);
+		LCDDBaseGeometry trackingGeometry = new GhostLCDDBaseGeometry(getBaseGeometry(TrackingBase.class), worldVolume);
+		add(trackingGeometry);
+		baseTrackerGeometry = new LCDDBaseGeometry(getBaseGeometry(Base.class), lcdd, trackingGeometry);
 		add(baseTrackerGeometry);
-		LCDDBaseGeometry basePlateGeometry = new LCDDBaseGeometry(getItem(BasePlate.class), lcdd, baseTrackerGeometry);
+		LCDDBaseGeometry basePlateGeometry = new LCDDBaseGeometry(getBaseGeometry(BasePlate.class), lcdd, baseTrackerGeometry);
 		add(basePlateGeometry);
-		LCDDBaseGeometry cSupportGeometry = new GhostLCDDBaseGeometry(getItem(CSupport.class), baseTrackerGeometry);
+		// TODO I don't think this c-support has any use at all since the coordinates of it has been already used in the builder. Should remove?
+		LCDDBaseGeometry cSupportGeometry = new GhostLCDDBaseGeometry(getBaseGeometry(CSupport.class), baseTrackerGeometry);
 		add(cSupportGeometry);
-		LCDDBaseGeometry supportBottomGeometry = new GhostLCDDBaseGeometry(getItem(SupportBottom.class), baseTrackerGeometry);
+		LCDDBaseGeometry supportBottomGeometry = new GhostLCDDBaseGeometry(getBaseGeometry(SupportBottom.class), baseTrackerGeometry);
 		add(supportBottomGeometry);
-		LCDDBaseGeometry supportPlateBottomGeometry = new LCDDBaseGeometry(getItem(SupportPlateBottom.class), lcdd, baseTrackerGeometry);
+		LCDDBaseGeometry supportPlateBottomGeometry = new LCDDBaseGeometry(getBaseGeometry(SupportPlateBottom.class), lcdd, baseTrackerGeometry);
 		add(supportPlateBottomGeometry);
-		LCDDBaseGeometry supportTopGeometry = new GhostLCDDBaseGeometry(getItem(SupportTop.class), baseTrackerGeometry);
+		LCDDBaseGeometry supportTopGeometry = new GhostLCDDBaseGeometry(getBaseGeometry(SupportTop.class), baseTrackerGeometry);
 		add(supportTopGeometry);
-		LCDDBaseGeometry supportPlateTopGeometry = new LCDDBaseGeometry(getItem(SupportPlateTop.class), lcdd, baseTrackerGeometry);
+		LCDDBaseGeometry supportPlateTopGeometry = new LCDDBaseGeometry(getBaseGeometry(SupportPlateTop.class), lcdd, baseTrackerGeometry);
 		add(supportPlateTopGeometry);
 
 		// build modules	
@@ -96,7 +97,7 @@
 		for(ModuleBundle m : modules) {
 			
 			// Do only L1?
-			if(m.getLayer()!=1) continue;
+			//if(m.getLayer()!=1) continue;
 			
 			if(isDebug()) { 
 				System.out.printf("%s: module layer %d half %s\n", getClass().getSimpleName(),m.getLayer(),m.getHalf());
@@ -145,7 +146,7 @@
 		addHalfModule(bundle.halfModuleAxial,lcddM);
 		LCDDBaseGeometry lcddCB = new LCDDBaseGeometry(bundle.coldBlock, lcdd, lcddM);
 		add(lcddCB);
-		//addHalfModule(bundle.halfModuleStereo,lcddM);
+		addHalfModule(bundle.halfModuleStereo,lcddM);
 		
 	}
 	
@@ -283,6 +284,9 @@
 			}
 		}
 		protected void setPosAndRot(BaseGeometry base) {
+			// TODO this sets position and reference w.r.t. mother coordinate system. If I'm not building that volume this will be wrong. Similar to in the JAVA converter this should be something like the physical mother.
+			
+			
 			if(isDebug()) System.out.printf("%s: set position and rotation for volume %s\n", this.getClass().getSimpleName(),getName());
 			// Vector from origin to center of box locally 
 			Hep3Vector box_center_base_local = base.getCenter();
@@ -331,6 +335,10 @@
 				System.out.printf("%s: pos                    %s\n", this.getClass().getSimpleName(), getPos().toString());
 				System.out.printf("%s: euler                  %s\n", this.getClass().getSimpleName(), lcdd_rot_angles.toString());
 				System.out.printf("%s: rot                    %s\n", this.getClass().getSimpleName(), getRot().toString());
+				
+				//calculate the position in tracking volume separately as a xcheck
+				Hep3Vector box_center_tracking_xcheck = transformToTracking(box_center_base_local, base);
+				System.out.printf("%s: box_center_tracking_xcheck  %s\n", this.getClass().getSimpleName(), box_center_tracking_xcheck.toString());
 			}
 			
 		}
SVNspam 0.1


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