2 removed + 6 modified, total 8 files
GeomConverter/src/org/lcsim/detector/converter/compact
diff -u -r1.10 -r1.11
--- CylindricalBarrelCalorimeterConverter.java 6 Dec 2007 23:25:19 -0000 1.10
+++ CylindricalBarrelCalorimeterConverter.java 8 Dec 2007 02:01:46 -0000 1.11
@@ -63,7 +63,6 @@
IPhysicalVolumePath path = nav.getPath( cal.getName() );
// Create the Subdetector's DetectorElement.
- //cal.setDetectorElement( new DeSubdetector(detector, cal, path) );
((DetectorElement)cal.getDetectorElement()).setSupport(path);
// Build the layers.
GeomConverter/src/org/lcsim/detector/converter/compact
diff -u -r1.12 -r1.13
--- CylindricalEndcapCalorimeterConverter.java 6 Dec 2007 23:25:19 -0000 1.12
+++ CylindricalEndcapCalorimeterConverter.java 8 Dec 2007 02:01:46 -0000 1.13
@@ -27,9 +27,7 @@
public void convert( Subdetector subdet, Detector detector)
{
CylindricalEndcapCalorimeter cal = (CylindricalEndcapCalorimeter)subdet;
-
- //subdet.setDetectorElement( new DeSubdetector( detector, subdet ) );
-
+
IPhysicalVolume world = detector.getWorldVolume();
ILogicalVolume envelope = buildEnvelope( cal, world.getLogicalVolume().getMaterial() );
@@ -101,14 +99,14 @@
LayerSlice slice = layer.getSlice(j);
if ( slice.isSensitive() )
{
- // Create the DE for an endcap sensor.
+ // Create an endcap layer.
String pathName = "/" + cal.getName() + "_positive" + "/" + layerName + "/" + sliceName;
new DetectorElement(
cal.getName() + "_positive_layer" + layerNumber,
endcap,
pathName);
- // Create the DE for a reflected endcap sensor.
+ // Create the reflected endcap layer.
if ( reflectedEndcap != null )
{
pathName = "/" + cal.getName() + "_negative" + "/" + layerName + "/" + sliceName;
@@ -118,7 +116,7 @@
pathName);
}
- // Increment the sensor number.
+ // Increment the layer number.
++layerNumber;
}
}
GeomConverter/src/org/lcsim/detector/converter/compact
diff -u -r1.18 -r1.19
--- DiskTrackerConverter.java 6 Dec 2007 23:25:19 -0000 1.18
+++ DiskTrackerConverter.java 8 Dec 2007 02:01:46 -0000 1.19
@@ -1,7 +1,7 @@
package org.lcsim.detector.converter.compact;
import org.lcsim.detector.DetectorElement;
-import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.DetectorIdentifierHelper;
import org.lcsim.detector.ILogicalVolume;
import org.lcsim.detector.IRotation3D;
import org.lcsim.detector.LogicalVolume;
@@ -12,6 +12,7 @@
import org.lcsim.detector.identifier.ExpandedIdentifier;
import org.lcsim.detector.identifier.IIdentifier;
import org.lcsim.detector.identifier.IIdentifierDictionary;
+import org.lcsim.detector.identifier.IIdentifierHelper;
import org.lcsim.detector.identifier.IdentifierContext;
import org.lcsim.detector.identifier.IdentifierDictionaryManager;
import org.lcsim.detector.identifier.IdentifierUtil;
@@ -54,15 +55,19 @@
// Some DiskTracker subdetectors are used for support material
// so need to make sure IDDecoder is not null before using it.
- int systemNumber = -1;
- IDDecoder decoder = null;
- try {
- decoder = tracker.getIDDecoder();
- if (decoder != null)
- systemNumber = tracker.getIDDecoder().getSystemNumber();
- }
- catch (NullPointerException x)
- {}
+ int systemNumber = tracker.getSystemID();
+ /*
+ = -1;
+ */
+
+ IDDecoder decoder = null;
+ try {
+ decoder = tracker.getIDDecoder();
+ }
+ catch (NullPointerException x)
+ {}
+
+ DetectorIdentifierHelper helper = (DetectorIdentifierHelper)tracker.getDetectorElement().getIdentifierHelper();
Layering layering = tracker.getLayering();
String name = tracker.getName();
@@ -177,43 +182,26 @@
slicePV.setSensitive(true);
String path = "/tracking_region/" + name + "_positive_layer" +i + "/slice" + j;
-
- ExpandedIdentifier expid = makeExpandedIdentifier(decoder, systemNumber, 1, i);
-
- IIdentifierDictionary iddict = IdentifierDictionaryManager.getInstance().getIdentifierDictionary( subdet.getReadout().getName() );
- IIdentifier id = null;
- try {
- id = IdentifierUtil.pack(iddict, expid);
- }
- catch (InvalidIndexException x)
- {
- throw new RuntimeException(x);
- }
-
+
+ IIdentifier posId = makeIdentifier(helper, systemNumber, helper.getEndcapNegativeValue(), i);
+
new DetectorElement(
- name + "_positive_sensor" + sensorNum,
+ name + "_positive_layer" + sensorNum,
endcapPos,
path,
- id);
+ posId);
if ( tracker.getReflect() )
{
path = "/tracking_region/" + name + "_negative_layer" +i + "/slice" + j;
- expid = makeExpandedIdentifier(decoder, systemNumber, 2, i);
- try {
- id = IdentifierUtil.pack(iddict, expid);
- }
- catch (InvalidIndexException x)
- {
- throw new RuntimeException(x);
- }
+ IIdentifier negId = makeIdentifier(helper, systemNumber, helper.getEndcapNegativeValue(), i);
new DetectorElement(
- name + "_negative_sensor" + sensorNum,
+ name + "_negative_layer" + sensorNum,
endcapNeg,
path,
- id);
+ negId);
}
++sensorNum;
@@ -222,30 +210,19 @@
}
}
- static ExpandedIdentifier makeExpandedIdentifier(IDDecoder decoder, int systemNumber, int barrel, int layer)
+ static IIdentifier makeIdentifier(IIdentifierHelper helper, int systemNumber, int barrel, int layer)
{
- ExpandedIdentifier id = new ExpandedIdentifier();
- for (int i=0; i<decoder.getFieldCount(); i++)
- {
- String fieldName = decoder.getFieldName(i);
- if (fieldName.equals("system"))
- {
- id.addValue(systemNumber);
- }
- else if (fieldName.equals("layer"))
- {
- id.addValue(layer);
- }
- else if (fieldName.equals("barrel"))
- {
- id.addValue(barrel);
- }
- else
- {
- id.addValue(0);
- }
- }
- return id;
+ ExpandedIdentifier id = new ExpandedIdentifier(helper.getIdentifierDictionary().getNumberOfFields());
+ try {
+ id.setValue(helper.getFieldIndex("system"), systemNumber);
+ id.setValue(helper.getFieldIndex("barrel"), barrel);
+ id.setValue(helper.getFieldIndex("layer"), layer);
+ return helper.pack(id);
+ }
+ catch (Exception x)
+ {
+ throw new RuntimeException(x);
+ }
}
public void makeIdentifierContext(Subdetector subdet)
GeomConverter/src/org/lcsim/detector/converter/compact
diff -u -r1.14 -r1.15
--- MultiLayerTrackerConverter.java 6 Dec 2007 23:25:19 -0000 1.14
+++ MultiLayerTrackerConverter.java 8 Dec 2007 02:01:46 -0000 1.15
@@ -45,8 +45,6 @@
}
MultiLayerTracker tracker = (MultiLayerTracker)subdet;
-
- //tracker.setDetectorElement( new DeSubdetector( detector, subdet ) );
Layering layering = tracker.getLayering();
GeomConverter/src/org/lcsim/detector/converter/compact
diff -u -r1.28 -r1.29
--- SiTrackerBarrelConverter.java 6 Dec 2007 23:25:19 -0000 1.28
+++ SiTrackerBarrelConverter.java 8 Dec 2007 02:01:46 -0000 1.29
@@ -41,7 +41,6 @@
import org.lcsim.detector.solids.Polygon3D;
import org.lcsim.detector.solids.Tube;
import org.lcsim.detector.tracker.silicon.ChargeCarrier;
-import org.lcsim.detector.tracker.silicon.DeSiTrackerBarrel;
import org.lcsim.detector.tracker.silicon.SiSensor;
import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
import org.lcsim.detector.tracker.silicon.SiStrips;
GeomConverter/src/org/lcsim/detector/converter/compact
diff -N DeSubdetector.java
--- DeSubdetector.java 6 Nov 2007 21:03:29 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,61 +0,0 @@
-package org.lcsim.detector.converter.compact;
-
-import org.lcsim.detector.DetectorElement;
-import org.lcsim.detector.DetectorIdentifierHelper;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.IPhysicalVolumePath;
-import org.lcsim.geometry.compact.Detector;
-import org.lcsim.geometry.compact.Subdetector;
-
-/**
- * Wraps an {@link org.lcsim.geometry.compact.Subdetector}
- * in a {@link org.lcsim.detector.DetectorElement}.
- *
- * @author Jeremy McCormick
- * @version $Id: DeSubdetector.java,v 1.3 2007/11/06 21:03:29 jeremy Exp $
- */
-public class DeSubdetector
-extends DetectorElement
-{
- private Subdetector subdetector;
-
- public DeSubdetector(String name, IDetectorElement parent)
- {
- super(name,parent);
- }
-
- public DeSubdetector(Detector detector, Subdetector subdetector, String path)
- {
- super( subdetector.getName(), detector.getDetectorElement(), path);
- this.subdetector = subdetector;
- }
-
- public DeSubdetector(Detector detector, Subdetector subdetector, IPhysicalVolumePath path)
- {
- super( subdetector.getName(), detector.getDetectorElement(), path);
- this.subdetector = subdetector;
- }
-
- public DeSubdetector(Detector detector, Subdetector subdetector)
- {
- super( subdetector.getName(), detector.getDetectorElement() );
- this.subdetector = subdetector;
- }
-
- public Subdetector getSubdetector()
- {
- return subdetector;
- }
-
- public DetectorIdentifierHelper getDetectorIdentifierHelper()
- {
- if (getIdentifierHelper() instanceof DetectorIdentifierHelper)
- {
- return (DetectorIdentifierHelper)getIdentifierHelper();
- }
- else
- {
- throw new RuntimeException("The IdentifierHelper for " + getName() + " is not a DetectorIdentifierHelper!");
- }
- }
-}
\ No newline at end of file
GeomConverter/src/org/lcsim/detector/tracker/silicon
diff -u -r1.19 -r1.20
--- SiSensor.java 6 Dec 2007 22:27:49 -0000 1.19
+++ SiSensor.java 8 Dec 2007 02:01:47 -0000 1.20
@@ -21,7 +21,6 @@
import org.lcsim.detector.DetectorElement;
import org.lcsim.detector.IDetectorElement;
import org.lcsim.detector.converter.compact.DeDetector;
-import org.lcsim.detector.converter.compact.DeSubdetector;
import org.lcsim.detector.identifier.ExpandedIdentifier;
import org.lcsim.detector.identifier.IExpandedIdentifier;
import org.lcsim.detector.identifier.IIdentifier;
@@ -304,25 +303,7 @@
" Property 1";
return output;
}
-
- public IIdentifierHelper getIdentifierHelper()
- {
- IDetectorElement search = getParent();
- while (search != null)
- {
- if (search.getIdentifierHelper() != null)
- return search.getIdentifierHelper();
- search = search.getParent();
- }
- //List<DeSubdetector> subdet = findAncestors(DeSubdetector.class);
- //if ( subdet.size() == 0 )
- //{
- // throw new RuntimeException("Can't find DeSubdetector for SiSensor!");
- //}
- //return subdet.get(0).getIdentifierHelper();
- return null;
- }
-
+
/**
* Make an {@link IIdentifier} for a given strip number and side number.
*
GeomConverter/src/org/lcsim/detector/tracker/silicon
diff -N DeSiTrackerBarrel.java
--- DeSiTrackerBarrel.java 28 Aug 2007 22:26:35 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,53 +0,0 @@
-package org.lcsim.detector.tracker.silicon;
-
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.IDetectorElementContainer;
-import org.lcsim.detector.converter.compact.DeSubdetector;
-import org.lcsim.detector.identifier.IExpandedIdentifier;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.identifier.IIdentifierHelper;
-import org.lcsim.detector.identifier.IIdentifierDictionary.FieldNotFoundException;
-import org.lcsim.detector.identifier.IIdentifierDictionary.InvalidIndexException;
-
-/**
- * A {@link IDetectorElement} for SiTrackerBarrel.
- *
- * @author Jeremy McCormick
- * @version $Id: DeSiTrackerBarrel.java,v 1.3 2007/08/28 22:26:35 jeremy Exp $
- */
-
-public class DeSiTrackerBarrel
-extends DeSubdetector
-{
- public DeSiTrackerBarrel(String name, IDetectorElement parent)
- {
- super(name, parent);
- }
-
- public IDetectorElementContainer findDetectorElement(IIdentifier id)
- {
- // Get the IdentifierHelper.
- IIdentifierHelper helper = getIdentifierHelper();
-
- IIdentifier geomId = null;
- try {
- // Make an expanded identifier containing only geometric fields.
- IExpandedIdentifier expId =
- helper.unpack(id, 0, helper.getIdentifierDictionary().getFieldIndex("side") - 1);
-
- // Repack the Identifier.
- geomId = helper.pack(expId);
- }
- catch (InvalidIndexException x)
- {
- throw new RuntimeException(x);
- }
- catch (FieldNotFoundException x)
- {
- throw new RuntimeException(x);
- }
-
- // Use super method once non-geometric fields have been stripped out.
- return super.findDetectorElement(geomId);
- }
-}
CVSspam 0.2.8