projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTestRunTracker2014JavaBuilder.java 2014-09-16 22:04:11 UTC (rev 3323)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTestRunTracker2014JavaBuilder.java 2014-09-17 03:16:00 UTC (rev 3324)
@@ -6,6 +6,7 @@
import java.util.ArrayList;
import org.lcsim.detector.ILogicalVolume;
+import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014Builder;
import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014GeometryDefinition.Base;
import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014GeometryDefinition.BasePlate;
import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014GeometryDefinition.SupportBottom;
@@ -13,6 +14,9 @@
import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014GeometryDefinition.SupportPlateTop;
import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014GeometryDefinition.SupportTop;
import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014GeometryDefinition.TrackingBase;
+import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014Dev1Builder;
+import org.lcsim.geometry.compact.converter.lcdd.HPSTrackerBuilder.HalfModuleBundle;
+import org.lcsim.geometry.compact.converter.lcdd.HPSTrackerBuilder.ModuleBundle;
import org.lcsim.geometry.compact.converter.lcdd.HPSTrackerJavaBuilder;
@@ -41,29 +45,40 @@
* @param trackingVolume - the reference volume.
*/
public void build(ILogicalVolume trackingVolume) {
+
+ // build geometry
+ setBuilder(new HPSTestRunTracker2014Builder(this._debug));
+ if(_builder==null) throw new RuntimeException("need to set builder class before calling build!");
+
+ if(isDebug()) System.out.printf("%s: build the base geometry objects\n", getClass().getSimpleName());
+
+ _builder.build();
+
+ if(isDebug()) System.out.printf("%s: DONE build the base geometry objects\n", getClass().getSimpleName());
+
if(isDebug()) System.out.printf("%s: build the JAVA geometry objects\n", getClass().getSimpleName());
// initialize the list to store a reference to each object
java_objects = new ArrayList<JavaBaseGeometry>();
// Go through the list of volumes to build that is created in the generic builder class
- JavaBaseGeometry trackingGeometry = new JavaBaseGeometry(getBaseGeometry(TrackingBase.class), trackingVolume);
+ JavaBaseGeometry trackingGeometry = new JavaBaseGeometry(_builder.getBaseGeometry(TrackingBase.class), trackingVolume);
add(trackingGeometry);
- setBaseTrackerGeometry(new GhostJavaBaseGeom(getBaseGeometry(Base.class), trackingGeometry));
+ setBaseTrackerGeometry(new GhostJavaBaseGeom(_builder.getBaseGeometry(Base.class), trackingGeometry));
add(getBaseTrackerGeometry());
- JavaBaseGeometry basePlateGeometry = new GhostJavaBaseGeom(getBaseGeometry(BasePlate.class), getBaseTrackerGeometry());
+ JavaBaseGeometry basePlateGeometry = new GhostJavaBaseGeom(_builder.getBaseGeometry(BasePlate.class), getBaseTrackerGeometry());
add(basePlateGeometry);
// skip the c-support, this is purely a reference volume in the builder so should have no use here!?
- //JavaBaseGeometry cSupportGeometry = new GhostJavaBaseGeom(getBaseGeometry(CSupport.class), baseTrackerGeometry);
+ //JavaBaseGeometry cSupportGeometry = new GhostJavaBaseGeom(_builder.getBaseGeometry(CSupport.class), baseTrackerGeometry);
//add(cSupportGeometry);
- JavaBaseGeometry supportBottomGeometry = new GhostJavaBaseGeom(getBaseGeometry(SupportBottom.class), getBaseTrackerGeometry());
+ JavaBaseGeometry supportBottomGeometry = new GhostJavaBaseGeom(_builder.getBaseGeometry(SupportBottom.class), getBaseTrackerGeometry());
add(supportBottomGeometry);
- JavaBaseGeometry supportPlateBottomGeometry = new GhostJavaBaseGeom(getBaseGeometry(SupportPlateBottom.class), getBaseTrackerGeometry());
+ JavaBaseGeometry supportPlateBottomGeometry = new GhostJavaBaseGeom(_builder.getBaseGeometry(SupportPlateBottom.class), getBaseTrackerGeometry());
add(supportPlateBottomGeometry);
- JavaBaseGeometry supportTopGeometry = new GhostJavaBaseGeom(getBaseGeometry(SupportTop.class), getBaseTrackerGeometry());
+ JavaBaseGeometry supportTopGeometry = new GhostJavaBaseGeom(_builder.getBaseGeometry(SupportTop.class), getBaseTrackerGeometry());
add(supportTopGeometry);
- JavaBaseGeometry supportPlateTopGeometry = new GhostJavaBaseGeom(getBaseGeometry(SupportPlateTop.class), getBaseTrackerGeometry());
+ JavaBaseGeometry supportPlateTopGeometry = new GhostJavaBaseGeom(_builder.getBaseGeometry(SupportPlateTop.class), getBaseTrackerGeometry());
add(supportPlateTopGeometry);
// build modules
@@ -71,13 +86,8 @@
if(isDebug()) System.out.printf("%s: build JAVA modules\n", getClass().getSimpleName());
// Loop over all modules created
- for(ModuleBundle m : modules) {
-
- // Do only L1?
- if(onlyL1 && m.getLayer()!=1) continue;
-
- if(onlyBottom && m.getHalf()!="bottom") continue;
-
+ for(ModuleBundle m : _builder.modules) {
+
if(isDebug()) {
System.out.printf("%s: build module %s (layer %d half %s)\n", getClass().getSimpleName(),m.module.getName(),m.getLayer(),m.getHalf());
m.print();
@@ -143,9 +153,7 @@
// add half modules
addHalfModule(bundle.halfModuleAxial,lcddM);
- if(!onlyAxial) {
- addHalfModule(bundle.halfModuleStereo,lcddM);
- }
+ addHalfModule(bundle.halfModuleStereo,lcddM);
if(isDebug()) {
System.out.printf("%s: DONE addModule %s \n",this.getClass().getSimpleName(), bundle.module.getName());
projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact
--- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTestRunTracker2014Test1JavaBuilder.java 2014-09-16 22:04:11 UTC (rev 3323)
+++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/detector/converter/compact/HPSTestRunTracker2014Test1JavaBuilder.java 2014-09-17 03:16:00 UTC (rev 3324)
@@ -9,6 +9,10 @@
import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014GeometryDefinition.TestRunHalfModule;
import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014GeometryDefinition.TestRunHalfModuleAxial;
import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014GeometryDefinition.TrackingBase;
+import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014Builder;
+import org.lcsim.geometry.compact.converter.lcdd.HPSTestRunTracker2014Test1Builder;
+import org.lcsim.geometry.compact.converter.lcdd.HPSTrackerBuilder.HalfModuleBundle;
+import org.lcsim.geometry.compact.converter.lcdd.HPSTrackerBuilder.ModuleBundle;
import org.lcsim.geometry.compact.converter.lcdd.HPSTrackerJavaBuilder;
@@ -37,14 +41,24 @@
* @param trackingVolume - the reference volume.
*/
public void build(ILogicalVolume trackingVolume) {
-
+ // build geometry
+ setBuilder(new HPSTestRunTracker2014Test1Builder(this._debug));
+
+ if(_builder==null) throw new RuntimeException("need to set builder class before calling build!");
+
+ if(isDebug()) System.out.printf("%s: build the base geometry objects\n", getClass().getSimpleName());
+
+ _builder.build();
+
+ if(isDebug()) System.out.printf("%s: DONE build the base geometry objects\n", getClass().getSimpleName());
+
if(isDebug()) System.out.printf("%s: build the JAVA geometry objects\n", getClass().getSimpleName());
// initialize the list to store a reference to each object
java_objects = new ArrayList<JavaBaseGeometry>();
// Go through the list of volumes to build that is created in the generic builder class
- JavaBaseGeometry trackingGeometry = new JavaBaseGeometry(getBaseGeometry(TrackingBase.class), trackingVolume);
+ JavaBaseGeometry trackingGeometry = new JavaBaseGeometry(_builder.getBaseGeometry(TrackingBase.class), trackingVolume);
add(trackingGeometry);
setBaseTrackerGeometry(trackingGeometry);
// setBaseTrackerGeometry(new GhostJavaBaseGeom(getBaseGeometry(Base.class), trackingGeometry));
@@ -68,13 +82,13 @@
if(isDebug()) System.out.printf("%s: build JAVA modules\n", getClass().getSimpleName());
// Loop over all modules created
- for(ModuleBundle m : modules) {
+ for(ModuleBundle m : _builder.modules) {
// Do only L1?
- if(onlyL1 && m.getLayer()!=1) continue;
-
- if(onlyBottom && m.getHalf()!="bottom") continue;
-
+ if(HPSTestRunTracker2014Test1Builder.onlyL1 && m.getLayer()!=1) continue;
+
+ if(HPSTestRunTracker2014Test1Builder.onlyBottom && m.getHalf()!="bottom") continue;
+
if(isDebug()) {
System.out.printf("%s: build module %s (layer %d half %s)\n", getClass().getSimpleName(),m.module.getName(),m.getLayer(),m.getHalf());
m.print();