Commit in lcsim/src/org/lcsim/contrib/onoprien/vsegment/geom/segmenter on MAIN
CylindricalBarrelSegmenter.java+6-51.1 -> 1.2
DiskToWedgesSegmenter.java+6-31.6 -> 1.7
DiskTrackerSegmenter.java+5-41.1 -> 1.2
DiskTrackerToRingsSegmenter.java+6-51.4 -> 1.5
DiskTrackerToWedgesSegmenter.java+2-21.1 -> 1.2
+25-19
5 modified files
Updates to vsegment package (heprep converters, common infrastructure moved to util, etc.)

lcsim/src/org/lcsim/contrib/onoprien/vsegment/geom/segmenter
CylindricalBarrelSegmenter.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- CylindricalBarrelSegmenter.java	30 Sep 2008 04:41:51 -0000	1.1
+++ CylindricalBarrelSegmenter.java	25 Nov 2008 21:03:05 -0000	1.2
@@ -28,7 +28,7 @@
  * 
  * 
  * @author D.Onoprienko
- * @version $Id: CylindricalBarrelSegmenter.java,v 1.1 2008/09/30 04:41:51 onoprien Exp $
+ * @version $Id: CylindricalBarrelSegmenter.java,v 1.2 2008/11/25 21:03:05 onoprien Exp $
  */
 public class CylindricalBarrelSegmenter extends RegionSegmenter {
   
@@ -74,9 +74,9 @@
    */
   public void detectorChanged(Detector detector) {
     super.detectorChanged(detector);
-    Subdetector sub = detector.getSubdetector(_sdName);
-    if (sub == null) return;
-    _detElts = AbstractSegmenter.getLeaves(sub.getDetectorElement());
+    _sd = detector.getSubdetector(_sdName);
+    if (_sd == null) return;
+    _detElts = AbstractSegmenter.getLeaves(_sd.getDetectorElement());
     for (IDetectorElement de : _detElts) {
       if (!(de.getGeometry().getLogicalVolume().getSolid() instanceof Tube)) {
         throw new RuntimeException("You are trying to apply CylindricalBarrelSegmenter to detector whose barrel is not made of Tubes");
@@ -160,7 +160,7 @@
     double stripWidth = (postfix >= _stripWidth.length) ? _stripWidth[0] : _stripWidth[postfix];
     double stripLength = (postfix >= _stripLength.length) ? _stripLength[0] : _stripLength[postfix];
     SensorType type = new Cylinder(_radius[postfix], _length[postfix], stripWidth, stripLength);
-    return new Sensor(_detElts.get(postfix), postfixToID(postfix), type, new RefFrameCylinder(_radius[postfix]));
+    return new Sensor(_sd, _detElts.get(postfix), postfixToID(postfix), type, new RefFrameCylinder(_radius[postfix]));
   }
   
   /**
@@ -173,6 +173,7 @@
 // -- Private parts :  ---------------------------------------------------------
   
   String _sdName;
+  Subdetector _sd;
   
   List<IDetectorElement> _detElts;
   

lcsim/src/org/lcsim/contrib/onoprien/vsegment/geom/segmenter
DiskToWedgesSegmenter.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- DiskToWedgesSegmenter.java	5 Nov 2008 03:32:47 -0000	1.6
+++ DiskToWedgesSegmenter.java	25 Nov 2008 21:03:05 -0000	1.7
@@ -12,6 +12,7 @@
 import org.lcsim.detector.Rotation3D;
 import org.lcsim.detector.solids.Tube;
 import org.lcsim.event.SimTrackerHit;
+import org.lcsim.geometry.Subdetector;
 
 import org.lcsim.contrib.onoprien.vsegment.geom.RegionSegmenter;
 import org.lcsim.contrib.onoprien.vsegment.geom.Sensor;
@@ -24,14 +25,15 @@
  * Simplistic <tt>Segmenter</tt> that tiles a single disk with wedges.
  * 
  * @author D. Onoprienko
- * @version $Id: DiskToWedgesSegmenter.java,v 1.6 2008/11/05 03:32:47 onoprien Exp $
+ * @version $Id: DiskToWedgesSegmenter.java,v 1.7 2008/11/25 21:03:05 onoprien Exp $
  */
 public class DiskToWedgesSegmenter extends RegionSegmenter {
   
 // -- Constructors :  ----------------------------------------------------------
   
-  public DiskToWedgesSegmenter(IDetectorElement disk, int nRadialSlices, int nPhiSlices, double pitch, boolean left) {
+  public DiskToWedgesSegmenter(Subdetector subDetector, IDetectorElement disk, int nRadialSlices, int nPhiSlices, double pitch, boolean left) {
     
+    _sd = subDetector;
     _de = disk;
     _left = left;
     _pitch = pitch;
@@ -111,11 +113,12 @@
     Hep3Vector origin = new BasicHep3Vector(r*Math.cos(phi), r*Math.sin(phi), _z);
     RefFrameCartesian rf =
          new RefFrameCartesian(origin, _rotation[indexPhi], _u[indexPhi], _v[indexPhi], ConstHep3Vector.V001);
-    return new Sensor(_de, postfixToID(postfix), _sType[indexR], rf);
+    return new Sensor(_sd, _de, postfixToID(postfix), _sType[indexR], rf);
   }
 
 // -- Private parts :  ---------------------------------------------------------
   
+  Subdetector _sd;
   IDetectorElement _de;
   
   boolean _left;

lcsim/src/org/lcsim/contrib/onoprien/vsegment/geom/segmenter
DiskTrackerSegmenter.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- DiskTrackerSegmenter.java	3 Sep 2008 16:02:51 -0000	1.1
+++ DiskTrackerSegmenter.java	25 Nov 2008 21:03:05 -0000	1.2
@@ -17,7 +17,7 @@
  * method that assigns segmenters to disks.
  *
  * @author D. Onoprienko
- * @version $Id: DiskTrackerSegmenter.java,v 1.1 2008/09/03 16:02:51 onoprien Exp $
+ * @version $Id: DiskTrackerSegmenter.java,v 1.2 2008/11/25 21:03:05 onoprien Exp $
  */
 abstract public class DiskTrackerSegmenter extends ForwardingSegmenter {
   
@@ -39,9 +39,9 @@
 // -- Initialization :  --------------------------------------------------------
   
   public void detectorChanged(Detector detector) {
-    Subdetector sub = detector.getSubdetector(_subdName);
-    if (sub == null) return;
-    _dElements = AbstractSegmenter.getLeaves(sub.getDetectorElement());
+    _sd = detector.getSubdetector(_subdName);
+    if (_sd == null) return;
+    _dElements = AbstractSegmenter.getLeaves(_sd.getDetectorElement());
     Collections.sort(_dElements, new Comparator<IDetectorElement>() {
       public int compare(IDetectorElement s1, IDetectorElement s2) {
         return (int)Math.signum(s1.getGeometry().getPosition().z()-s2.getGeometry().getPosition().z());
@@ -97,6 +97,7 @@
 // -- Private parts :  ---------------------------------------------------------
   
   protected String _subdName;
+  protected Subdetector _sd;
   protected List<IDetectorElement> _dElements;
   
   protected HashMap<IDetectorElement,AbstractSegmenter> _deToSegmenter;

lcsim/src/org/lcsim/contrib/onoprien/vsegment/geom/segmenter
DiskTrackerToRingsSegmenter.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- DiskTrackerToRingsSegmenter.java	5 Nov 2008 03:32:47 -0000	1.4
+++ DiskTrackerToRingsSegmenter.java	25 Nov 2008 21:03:05 -0000	1.5
@@ -37,7 +37,7 @@
  * {@link #setStereoAngle(double angle)}.
  * 
  * @author D.Onoprienko
- * @version $Id: DiskTrackerToRingsSegmenter.java,v 1.4 2008/11/05 03:32:47 onoprien Exp $
+ * @version $Id: DiskTrackerToRingsSegmenter.java,v 1.5 2008/11/25 21:03:05 onoprien Exp $
  */
 public class DiskTrackerToRingsSegmenter extends RegionSegmenter {
   
@@ -89,9 +89,9 @@
    */
   public void detectorChanged(Detector detector) {
     super.detectorChanged(detector);
-    Subdetector sub = detector.getSubdetector(_sdName);
-    if (sub == null) return;
-    _detElts = AbstractSegmenter.getLeaves(sub.getDetectorElement());
+    _sd = detector.getSubdetector(_sdName);
+    if (_sd == null) return;
+    _detElts = AbstractSegmenter.getLeaves(_sd.getDetectorElement());
     Collections.sort(_detElts, new Comparator<IDetectorElement>() {
       public int compare(IDetectorElement s1, IDetectorElement s2) {
         return (int)Math.signum(s1.getGeometry().getPosition().z()-s2.getGeometry().getPosition().z());
@@ -200,12 +200,13 @@
         rf = new RefFrameCartesian(new Transform3D(translation, _rot1), null, _u1, _v1, ConstHep3Vector.V001);
       }
     }
-    return new Sensor(_detElts.get(postfix), postfixToID(postfix), type, rf);
+    return new Sensor(_sd, _detElts.get(postfix), postfixToID(postfix), type, rf);
   }
   
 // -- Private parts :  ---------------------------------------------------------
   
   String _sdName;
+  private Subdetector _sd;
   private List<IDetectorElement> _detElts;
   
   private int _nDisks;

lcsim/src/org/lcsim/contrib/onoprien/vsegment/geom/segmenter
DiskTrackerToWedgesSegmenter.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- DiskTrackerToWedgesSegmenter.java	3 Sep 2008 16:02:51 -0000	1.1
+++ DiskTrackerToWedgesSegmenter.java	25 Nov 2008 21:03:05 -0000	1.2
@@ -13,7 +13,7 @@
  *
  *
  * @author D. Onoprienko
- * @version $Id: DiskTrackerToWedgesSegmenter.java,v 1.1 2008/09/03 16:02:51 onoprien Exp $
+ * @version $Id: DiskTrackerToWedgesSegmenter.java,v 1.2 2008/11/25 21:03:05 onoprien Exp $
  */
 public class DiskTrackerToWedgesSegmenter extends DiskTrackerSegmenter {
   
@@ -59,7 +59,7 @@
     
     boolean left = isInner(de);
     
-    return new DiskToWedgesSegmenter(de, nRadialSlices, nPhiSlices, pitch, left);
+    return new DiskToWedgesSegmenter(_sd, de, nRadialSlices, nPhiSlices, pitch, left);
   }
 
 // -- Stereo partners :  -------------------------------------------------------
CVSspam 0.2.8