lcsim/test/org/lcsim/detector/driver
diff -u -r1.1 -r1.2
--- SimTrackerHitIdentifierTest.java 6 May 2007 07:20:44 -0000 1.1
+++ SimTrackerHitIdentifierTest.java 8 May 2007 01:22:40 -0000 1.2
@@ -31,7 +31,7 @@
* @see org.lcsim.detector.IDetectorElement
* @see org.lcsim.geometry.Subdetector
*
- * @version $Id: SimTrackerHitIdentifierTest.java,v 1.1 2007/05/06 07:20:44 jeremy Exp $
+ * @version $Id: SimTrackerHitIdentifierTest.java,v 1.2 2007/05/08 01:22:40 jeremy Exp $
* @author jeremym
*/
public class SimTrackerHitIdentifierTest
@@ -92,7 +92,7 @@
for ( int i=0; i<decoder.getFieldCount(); i++ )
{
assertEquals( "Field value <" + i + "> is different." + decoder.getFieldName( i ), decoder.getValue( i ), exp.getValue( i ) );
- }
+ }
}
}
}
lcsim/test/org/lcsim/detector/driver
diff -u -r1.3 -r1.4
--- SimTrackerHitPositionalReadoutDriverTest.java 7 May 2007 23:42:59 -0000 1.3
+++ SimTrackerHitPositionalReadoutDriverTest.java 8 May 2007 01:22:40 -0000 1.4
@@ -13,6 +13,8 @@
import org.lcsim.detector.IDetectorElement;
import org.lcsim.detector.IReadout;
+import org.lcsim.detector.identifier.Identifier;
+import org.lcsim.detector.identifier.IIdentifierHelper;
import org.lcsim.event.EventHeader;
import org.lcsim.event.SimTrackerHit;
import org.lcsim.geometry.compact.Subdetector;
@@ -65,6 +67,7 @@
{
List<SimTrackerHit> hitsFromRO = new ArrayList<SimTrackerHit>();
Subdetector tkr = header.getDetector().getSubdetector("SiTrackerBarrel");
+ IIdentifierHelper helper = tkr.getDetectorElement().getIdentifierHelper();
for ( IDetectorElement layer : tkr.getDetectorElement().getChildren() )
{
for ( IDetectorElement module : layer.getChildren() )
@@ -80,15 +83,7 @@
}
}
}
-
- /*
- System.out.println("hitsFromRO.size = " + hitsFromRO.size() );
- for ( SimTrackerHit roHit : hitsFromRO )
- {
- System.out.println("got hit from RO - " + roHit.getCellID());
- }
- */
-
+
List<SimTrackerHit> eventHits = header.get(SimTrackerHit.class, "SiTrackerBarrel_RO");
assertEquals( "Collection and detector readout have different number of hits!", eventHits.size(), hitsFromRO.size() );
@@ -96,16 +91,36 @@
for ( SimTrackerHit hit : eventHits )
{
IDetectorElement de = hit.getDetectorElement();
- //System.out.println("detectorElement="+de.getName());
+
+ // Check that DetectorElement and hit have same id.
+
+ //System.out.println("deId = " + helper.unpack( de.getIdentifier() ).toString() );
+ //System.out.println("hitId = " + helper.unpack( new Identifier( hit.getCellID() ) ).toString() );
+ //System.out.println();
+
+ assertEquals(
+ "DetectorElement id and hit id are different!",
+ de.getIdentifier(),
+ new Identifier( hit.getCellID() ) );
+
+ // Get the Readoout.
IReadout ro = de.getReadout();
+
+ // Get the hits from the Readout.
List<SimTrackerHit> hits = ro.getHits( SimTrackerHit.class );
+
+ // Loop over the hits in the Readout.
for ( SimTrackerHit deHit : hits )
{
+ // Check that the cellIDs are the same for the event hit and the Readout hit.
assertEquals( "CellIDs do not match!", hit.getCellID(), deHit.getCellID() );
+
+ // Check that the SimTrackerHit is inside the DetectorElement it is assigned to.
assertTrue( "SimTrackerHit not inside its DetectorElement!", de.getGeometry().isInside( new BasicHep3Vector( hit.getPoint() ) ) );
+ // Check that the hit can be looked up by position in the Readout hits.
SimTrackerHit lkpHit = findHitByPosition( hit, hits );
- assertTrue( "Didn't find hit by position on the Readout!", lkpHit != null );
+ assertTrue( "Didn't find hit by position on the Readout!", lkpHit != null );
}
}
}