Author: [log in to unmask] Date: Tue Dec 16 22:15:20 2014 New Revision: 3461 Log: Start to merge the java and lcdd survey volumes. Work in progress. Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/JavaGhostSurveyVolume.java projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/JavaSurveyVolume.java projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/LCDDGhostSurveyVolume.java projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/LCDDSurveyVolume.java projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/SurveyVolumeImpl.java Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/JavaGhostSurveyVolume.java ============================================================================= --- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/JavaGhostSurveyVolume.java (original) +++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/JavaGhostSurveyVolume.java Tue Dec 16 22:15:20 2014 @@ -11,17 +11,16 @@ /** * Initialize with base and mother. This is typically for a reference geometry object * that is used for referencing coordinate systems but that doesn't have a volume itself. - * @param base - object used to get geometry definitions + * @param surveyVolume - object used to get geometry definitions * @param mother - mother object */ - public JavaGhostSurveyVolume(SurveyVolume base, JavaSurveyVolume mother) { - super(); - if(isDebug()) System.out.printf("%s: constructing JAVA ghost object %s with mother %s\n", this.getClass().getSimpleName(),base.getName(),mother==null?"null":mother.getName()); - setName(base.getName()); + public JavaGhostSurveyVolume(SurveyVolume surveyVolume, JavaSurveyVolume mother) { + super(surveyVolume); + if(isDebug()) System.out.printf("%s: constructing JAVA ghost object %s with mother %s\n", this.getClass().getSimpleName(),surveyVolume.getName(),mother==null?"null":mother.getName()); setMother(mother); mother.addDaughter(this); - setPositionAndRotation(base); - if(isDebug()) System.out.printf("%s: DONE constructing JAVA object %s\n", this.getClass().getSimpleName(),base.getName()); + setPositionAndRotation(surveyVolume); + if(isDebug()) System.out.printf("%s: DONE constructing JAVA object %s\n", this.getClass().getSimpleName(),surveyVolume.getName()); } Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/JavaSurveyVolume.java ============================================================================= --- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/JavaSurveyVolume.java (original) +++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/JavaSurveyVolume.java Tue Dec 16 22:15:20 2014 @@ -25,9 +25,7 @@ * Interface to the JAVA converter geometry for the geometry definition. * @author Per Hansson Adrian <[log in to unmask]> */ -public class JavaSurveyVolume { - private boolean debug = true; - private String name; +public class JavaSurveyVolume extends SurveyVolumeImpl { private Box box= null; private ILogicalVolume volume = null; private ITranslation3D pos = null; @@ -40,44 +38,45 @@ /** * Default constructor */ - public JavaSurveyVolume() { + public JavaSurveyVolume(SurveyVolume surveyVolume) { + super(surveyVolume); } /** * Construct a JAVA geometry object from its geometry definition and an already built logical volume. * This is typically used by the tracking volume. - * @param geomObject - input geometry definition + * @param surveyVolume - input geometry definition * @param vol - logical volume */ - public JavaSurveyVolume(SurveyVolume geomObject, ILogicalVolume vol) { - if(isDebug()) System.out.printf("%s: JavaBaseGeometry %s (given logical volume %s)\n", this.getClass().getSimpleName(),geomObject.getName(),vol.getName()); + public JavaSurveyVolume(SurveyVolume surveyVolume, ILogicalVolume vol) { + super(surveyVolume); + if(isDebug()) System.out.printf("%s: JavaBaseGeometry %s (given logical volume %s)\n", this.getClass().getSimpleName(),surveyVolume.getName(),vol.getName()); // this must be tracking volume. May change in the future and is probably weird to make this requirement here. - if(!geomObject.getName().contains("tracking")) throw new RuntimeException("this constructor is only used with the tracking volume!?"); - setName(geomObject.getName()); + if(!surveyVolume.getName().contains("tracking")) throw new RuntimeException("this constructor is only used with the tracking volume!?"); setVolume(vol); // since it's tracking volume, set the pos and rotation trivially - Hep3Vector lcdd_rot_angles = TransformationUtils.getCardanAngles(geomObject.getCoord().v(), geomObject.getCoord().w(), new BasicHep3Vector(0,1,0),new BasicHep3Vector(0,0,1)); + Hep3Vector lcdd_rot_angles = TransformationUtils.getCardanAngles(surveyVolume.getCoord().v(), surveyVolume.getCoord().w(), new BasicHep3Vector(0,1,0),new BasicHep3Vector(0,0,1)); setPos(new Translation3D(0,0,0)); setRot(new RotationGeant(lcdd_rot_angles.x(), lcdd_rot_angles.y(), lcdd_rot_angles.z())); - if(isDebug()) System.out.printf("%s: DONE JavaBaseGeometry %s\n", this.getClass().getSimpleName(),geomObject.getName()); + if(isDebug()) System.out.printf("%s: DONE JavaBaseGeometry %s\n", this.getClass().getSimpleName(),surveyVolume.getName()); } /** * Construct a JAVA geometry object from its geometry definition. - * @param geomObject - input geometry definition + * @param surveyVolume - input geometry definition * @param mother - reference to mother JAVA definition * @param volumeId - component id number */ - public JavaSurveyVolume(SurveyVolume geomObject, JavaSurveyVolume mother, int volumeId) { - if(isDebug()) System.out.printf("%s: JavaBaseGeometry %s (volumeID %d, mother %s)\n", this.getClass().getSimpleName(),geomObject.getName(),volumeId,mother==null?"null":mother.getName()); - setName(geomObject.getName()); + public JavaSurveyVolume(SurveyVolume surveyVolume, JavaSurveyVolume mother, int volumeId) { + super(surveyVolume); + if(isDebug()) System.out.printf("%s: JavaBaseGeometry %s (volumeID %d, mother %s)\n", this.getClass().getSimpleName(),surveyVolume.getName(),volumeId,mother==null?"null":mother.getName()); setComponentId(volumeId); setMother(mother); mother.addDaughter(this); - buildBox(geomObject); - buildVolume(geomObject); - setPositionAndRotation(geomObject); - if(isDebug()) System.out.printf("%s: DONE JavaBaseGeometry %s\n", this.getClass().getSimpleName(),geomObject.getName()); + buildBox(surveyVolume); + buildVolume(surveyVolume); + setPositionAndRotation(surveyVolume); + if(isDebug()) System.out.printf("%s: DONE JavaBaseGeometry %s\n", this.getClass().getSimpleName(),surveyVolume.getName()); } protected boolean hasCoordinateSystemInfo() { @@ -88,21 +87,21 @@ public void buildPhysVolume() { if(isDebug()) System.out.printf("%s: build phys volume for %s with mother %s and physical mother %s\n", this.getClass().getSimpleName(),getName(),getMother().getName(),getPhysMother().getName()); JavaSurveyVolume physMother = getPhysMother(); - setPhysVolume(new PhysicalVolume(new Transform3D(getPos(), getRot()), name, volume, physMother.getVolume(),getComponentId())); - } - protected void buildBox(SurveyVolume base) { + setPhysVolume(new PhysicalVolume(new Transform3D(getPos(), getRot()), getName(), volume, physMother.getVolume(),getComponentId())); + } + public void buildBox(SurveyVolume base) { Hep3Vector b = base.getBoxDim(); b = VecOp.mult(0.5, b); if(isDebug()) System.out.printf("%s: build box for %s with dimensions %s \n", this.getClass().getSimpleName(),getName(), b); setBox(new Box(getName() + "Box", b.x(), b.y(), b.z())); } - protected void buildVolume(SurveyVolume base) { + public void buildVolume(SurveyVolume base) { if(isDebug()) System.out.printf("%s: build volume for %s with material %s\n", this.getClass().getSimpleName(),getName(),base.getMaterial()); IMaterial material = MaterialStore.getInstance().get(base.getMaterial()); setVolume(new LogicalVolume(getName() + "_volume", box, material)); } - protected void setPositionAndRotation(SurveyVolume base) { + public void setPositionAndRotation(SurveyVolume base) { if(isDebug()) System.out.printf("%s: set position and rotation for volume %s\n", this.getClass().getSimpleName(),getName()); // no mother, this must be the world/tracking volume!? @@ -239,12 +238,6 @@ protected void setBox(Box b) { box = b; } - public String getName() { - return name; - } - protected void setName(String name) { - this.name = name; - } protected ITranslation3D getPos() { return pos; } @@ -268,9 +261,6 @@ } protected void setPhysVolume(PhysicalVolume physVolume) { this.physVolume = physVolume; - } - public boolean isDebug() { - return debug; } public List<JavaSurveyVolume> getDaughters() { Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/LCDDGhostSurveyVolume.java ============================================================================= --- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/LCDDGhostSurveyVolume.java (original) +++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/LCDDGhostSurveyVolume.java Tue Dec 16 22:15:20 2014 @@ -19,9 +19,8 @@ * @param mother - mother LCDD object */ public LCDDGhostSurveyVolume(SurveyVolume base, LCDDSurveyVolume mother) { - super(); + super(base); if(isDebug()) System.out.printf("%s: constructing LCDD ghost object %s with mother %s\n", this.getClass().getSimpleName(),base.getName(),mother==null?"null":mother.getName()); - setName(base.getName()); setMother(mother); mother.addDaughter(this); if(isDebug()) System.out.printf("%s: DONE constructing LCDD object %s\n", this.getClass().getSimpleName(),base.getName()); Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/LCDDSurveyVolume.java ============================================================================= --- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/LCDDSurveyVolume.java (original) +++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/LCDDSurveyVolume.java Tue Dec 16 22:15:20 2014 @@ -9,7 +9,6 @@ import java.util.Map; import org.jdom.JDOMException; -import org.lcsim.detector.PhysicalVolume; import org.lcsim.detector.Transform3D; import org.lcsim.geometry.compact.converter.lcdd.util.Box; import org.lcsim.geometry.compact.converter.lcdd.util.LCDD; @@ -37,44 +36,45 @@ public List<LCDDSurveyVolume> daughters = new ArrayList<LCDDSurveyVolume>(); /** * Default constructor - */ - public LCDDSurveyVolume() { + * @param surveyVolume - core geometry definitions + */ + public LCDDSurveyVolume(SurveyVolume surveyVolume) { + super(surveyVolume); } /** * Initialize this object with a known volume and no mother. Typically the world volume would use this. - * @param base - object used to get geometry definitions + * @param surveyVolume - core geometry definitions * @param vol - given volume */ - public LCDDSurveyVolume(SurveyVolume base, Volume volume) { - super(); - if(isDebug()) System.out.printf("%s: constructing LCDD object %s with volume name %s\n", this.getClass().getSimpleName(),base.getName(),volume.getName()); - setName(base.getName()); + public LCDDSurveyVolume(SurveyVolume surveyVolume, Volume volume) { + super(surveyVolume); + if(isDebug()) System.out.printf("%s: constructing LCDD object %s with volume name %s\n", this.getClass().getSimpleName(),surveyVolume.getName(),volume.getName()); setVolume(volume); - if(isDebug()) System.out.printf("%s: DONE constructing LCDD object %s\n", this.getClass().getSimpleName(),base.getName()); - Hep3Vector lcdd_rot_angles = TransformationUtils.getCardanAngles(base.getCoord().v(), base.getCoord().w(), new BasicHep3Vector(0,1,0),new BasicHep3Vector(0,0,1)); + if(isDebug()) System.out.printf("%s: DONE constructing LCDD object %s\n", this.getClass().getSimpleName(),surveyVolume.getName()); + Hep3Vector lcdd_rot_angles = TransformationUtils.getCardanAngles(surveyVolume.getCoord().v(), surveyVolume.getCoord().w(), new BasicHep3Vector(0,1,0),new BasicHep3Vector(0,0,1)); setPos(new Position(getName() + "_position", 0, 0, 0)); setRot(new Rotation(getName() + "_rotation",lcdd_rot_angles.x(), lcdd_rot_angles.y(), lcdd_rot_angles.z())); - if(isDebug()) System.out.printf("%s: DONE %s\n", this.getClass().getSimpleName(),base.getName()); + if(isDebug()) System.out.printf("%s: DONE %s\n", this.getClass().getSimpleName(),surveyVolume.getName()); } /** * Interface to the LCDD converter geometry for the geometry definition. - * @param base - input geometry definition + * @param surveyVolume - core geometry definition * @param lcdd - lcdd file * @param mother - reference to mother LCDD definition */ - public LCDDSurveyVolume(SurveyVolume base, LCDD lcdd, LCDDSurveyVolume mother) { - if(isDebug()) System.out.printf("%s: constructing LCDD object %s with mother %s\n", this.getClass().getSimpleName(),base.getName(),mother==null?"null":mother.getName()); + public LCDDSurveyVolume(SurveyVolume surveyVolume, LCDD lcdd, LCDDSurveyVolume mother) { + super(surveyVolume); + if(isDebug()) System.out.printf("%s: constructing LCDD object %s with mother %s\n", this.getClass().getSimpleName(),surveyVolume.getName(),mother==null?"null":mother.getName()); this.lcdd = lcdd; - setName(base.getName()); setMother(mother); mother.addDaughter(this); - buildBox(base); - buildVolume(base); - setPositionAndRotation(base); + buildBox(surveyVolume); + buildVolume(surveyVolume); + setPositionAndRotation(surveyVolume); //buildPhysVolume(mother); - if(isDebug()) System.out.printf("%s: DONE constructing LCDD object %s\n", this.getClass().getSimpleName(),base.getName()); + if(isDebug()) System.out.printf("%s: DONE constructing LCDD object %s\n", this.getClass().getSimpleName(),surveyVolume.getName()); } Modified: projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/SurveyVolumeImpl.java ============================================================================= --- projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/SurveyVolumeImpl.java (original) +++ projects/lcsim/trunk/detector-framework/src/main/java/org/lcsim/geometry/compact/converter/SurveyVolumeImpl.java Tue Dec 16 22:15:20 2014 @@ -3,10 +3,11 @@ public abstract class SurveyVolumeImpl extends SurveyVolumeVisualization { private boolean debug = true; - private String name; + protected SurveyVolume surveyVolume = null; - public SurveyVolumeImpl() { + public SurveyVolumeImpl(SurveyVolume surveyVolume) { super(); + this.surveyVolume = surveyVolume; } public abstract void buildPhysVolume(); @@ -18,11 +19,7 @@ public abstract void setPositionAndRotation(SurveyVolume base); public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; + return surveyVolume.getName(); } public boolean isDebug() { ######################################################################## 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