lcsim/src/org/lcsim/event
diff -u -r1.2 -r1.3
--- Hit.java 2 Jul 2008 21:06:03 -0000 1.2
+++ Hit.java 18 Mar 2009 03:52:06 -0000 1.3
@@ -3,9 +3,18 @@
import org.lcsim.detector.DetectorIdentifierHelper;
import org.lcsim.detector.HasDetectorElement;
import org.lcsim.detector.identifier.Identifiable;
+import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
public interface Hit
extends HasMetaData, HasDetectorElement, Identifiable
{
- public DetectorIdentifierHelper getDetectorIdentifierHelper();
+ DetectorIdentifierHelper getDetectorIdentifierHelper();
+
+ // FIXME: Should these methods using identifier go here?
+ // All our hits have these fields but not necessarily
+ // those produced from an external framework like Mokka.
+ int getSystemId();
+ BarrelEndcapFlag getBarrelEndcapFlag();
+ int getLayerNumber();
+ int getIdentifierFieldValue(String field);
}
lcsim/src/org/lcsim/event/base
diff -u -r1.6 -r1.7
--- BaseHit.java 17 Mar 2009 22:45:44 -0000 1.6
+++ BaseHit.java 18 Mar 2009 03:52:06 -0000 1.7
@@ -11,6 +11,7 @@
import org.lcsim.event.EventHeader.LCMetaData;
import org.lcsim.geometry.IDDecoder;
import org.lcsim.geometry.Subdetector;
+import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
/**
* A base class for hit-like objects.
@@ -129,4 +130,42 @@
{
return meta.getIDDecoder();
}
-}
\ No newline at end of file
+
+ /**
+ * Get the layer number of this hit.
+ * @return The layer number of this hit.
+ */
+ public int getLayerNumber()
+ {
+ return getIdentifierHelper().getValue(getIdentifier(), "layer");
+ }
+
+ /**
+ * Get the barrel flag of this hit.
+ * @return The barrel flag of this hit.
+ */
+ public BarrelEndcapFlag getBarrelEndcapFlag()
+ {
+ return BarrelEndcapFlag
+ .createBarrelEndcapFlag(
+ getIdentifierHelper().getValue(getIdentifier(), "barrel"));
+ }
+
+ /**
+ * Get the system id of this hit.
+ * @return The system id of this hit.
+ */
+ public int getSystemId()
+ {
+ return getIdentifierHelper().getValue(getIdentifier(), "system");
+ }
+
+ /**
+ * Get a field value from the hit's identifier.
+ * @return The field value from the hit's identifier.
+ */
+ public int getIdentifierFieldValue(String field)
+ {
+ return getIdentifierHelper().getValue(getIdentifier(), field);
+ }
+}
\ No newline at end of file