GeomConverter/src/org/lcsim/detector
diff -u -r1.1 -r1.2
--- IPhysicalVolumeVisitor.java 7 Mar 2007 00:43:32 -0000 1.1
+++ IPhysicalVolumeVisitor.java 2 May 2007 23:46:10 -0000 1.2
@@ -5,6 +5,4 @@
public interface IPhysicalVolumeVisitor
extends IVisitor<IPhysicalVolume>
-{
- public void visit(IPhysicalVolume volume);
-}
+{}
GeomConverter/src/org/lcsim/detector/converter/compact
diff -u -r1.13 -r1.14
--- DetectorConverter.java 2 May 2007 01:58:19 -0000 1.13
+++ DetectorConverter.java 2 May 2007 23:46:10 -0000 1.14
@@ -7,6 +7,7 @@
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
+import org.lcsim.detector.DetectorElement;
import org.lcsim.detector.IDetectorElement;
import org.lcsim.detector.ILogicalVolume;
import org.lcsim.detector.IPhysicalVolume;
@@ -147,7 +148,7 @@
// Now assign the IdentifierHelper to the DetectorElement after it has been built.
if ( subdet.getDetectorElement() != null )
{
- subdet.getDetectorElement().setIdentifierHelper( new IdentifierHelper( iddict ) );
+ ((DetectorElement)subdet.getDetectorElement()).setIdentifierHelper( new IdentifierHelper( iddict ) );
}
}
}
GeomConverter/src/org/lcsim/detector/identifier
diff -u -r1.1 -r1.2
--- IdentifierHelper.java 2 May 2007 01:58:19 -0000 1.1
+++ IdentifierHelper.java 2 May 2007 23:46:10 -0000 1.2
@@ -1,15 +1,17 @@
package org.lcsim.detector.identifier;
/**
- * A helper class for encoding and decoding identifiers
- * using information from an identifier dictionary.
+ * A helper class for packing {@see IExpandedIdentifier} objects
+ * and unpacking {@see IIdentifier} objects using information in
+ * a {@see IIdentifierDictionary}.
*
* @see IIdentifierDictionary
* @see IIdentifier
* @see IExpandedIdentifier
+ * @see IdentifierUtil
*
* @author Jeremy McCormick
- * @version $Id: IdentifierHelper.java,v 1.1 2007/05/02 01:58:19 jeremy Exp $
+ * @version $Id: IdentifierHelper.java,v 1.2 2007/05/02 23:46:10 jeremy Exp $
*/
public class IdentifierHelper
@@ -28,49 +30,12 @@
}
public IIdentifier pack( IExpandedIdentifier id )
- {
- long result = 0;
- int idx = 0;
- for ( int value : id.getValues() )
- {
- IIdentifierField field = iddict.getField(idx);
- int start = field.getOffset();
- long mask = field.getMaskOn();
- result |= (mask & value) << start;
- ++idx;
- }
- return new Identifier( result );
+ {
+ return IdentifierUtil.pack(id, getIdentifierDictionary() );
}
- public IExpandedIdentifier unpack( IIdentifier compact )
+ public IExpandedIdentifier unpack( IIdentifier id )
{
- ExpandedIdentifier buffer = new ExpandedIdentifier();
-
- long id = compact.getValue();
-
- for ( IIdentifierField field : iddict.getFields().values() )
- {
- int start = field.getOffset();
- int length = field.getNumberOfBits();
- long mask = field.getMaskOn();
-
- int result = (int) ((id >> start) & mask);
- if ( field.isSigned() )
- {
- int signBit = 1 << (length-1);
- if ((result & signBit) != 0)
- {
- result -= (1 << length);
-
- // FIXME: Negatives have an unknown off-by-one error
- // which is corrected for here! (Why????)
- result += 1;
- }
- }
-
- buffer.addValue(result);
- }
-
- return buffer;
+ return IdentifierUtil.unpack( id, iddict );
}
-}
+}
\ No newline at end of file
GeomConverter/test/org/lcsim/detector
diff -u -r1.10 -r1.11
--- SimpleDetectorTest.java 20 Mar 2007 21:20:00 -0000 1.10
+++ SimpleDetectorTest.java 2 May 2007 23:46:10 -0000 1.11
@@ -181,6 +181,11 @@
{
System.out.println("visiting node " + volume.getName());
}
+
+ public boolean isDone()
+ {
+ return false;
+ }
}
/*
GeomConverter/test/org/lcsim/detector/converter/compact
diff -u -r1.8 -r1.9
--- DetectorConverterTest.java 20 Apr 2007 00:16:54 -0000 1.8
+++ DetectorConverterTest.java 2 May 2007 23:46:10 -0000 1.9
@@ -72,8 +72,14 @@
// Check for top-level DEs that should have been built.
for ( String de : des )
- {
+ {
+ // Check that the DE was created.
assertTrue("The expected DetectorElement <" + de + "> is missing!", deDetector.getChildren().get(de) != null);
+
+ // Check that the DeDetector is findable from this DE.
+ List<DeDetector> detectorSearch = deDetector.getChildren().get(de).getAncestors(DeDetector.class);
+ assertTrue( detectorSearch.size() == 1);
+ assertTrue( detectorSearch.get(0).getName().equals("test_detector"));
}
}