2 added + 5 removed + 14 modified, total 21 files
lcsim/src/org/lcsim/event
diff -N HasMetaData.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ HasMetaData.java 23 May 2008 06:53:35 -0000 1.3
@@ -0,0 +1,20 @@
+package org.lcsim.event;
+
+import org.lcsim.event.EventHeader.LCMetaData;
+import org.lcsim.geometry.IDDecoder;
+import org.lcsim.geometry.Subdetector;
+
+/**
+ * A simple mixin interface for objects that have associated <code>LCMetaData</code>.
+ * @author jeremym
+ *
+ */
+public interface HasMetaData
+{
+ public LCMetaData getMetaData();
+ public void setMetaData(LCMetaData meta);
+
+ // from LCMetaData
+ public Subdetector getSubdetector();
+ public IDDecoder getIDDecoder();
+}
lcsim/src/org/lcsim/event
diff -N Hit.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ Hit.java 23 May 2008 06:53:35 -0000 1.1
@@ -0,0 +1,8 @@
+package org.lcsim.event;
+
+import org.lcsim.detector.HasDetectorElement;
+import org.lcsim.detector.identifier.Identifiable;
+
+public interface Hit
+extends HasMetaData, HasDetectorElement, Identifiable
+{}
lcsim/src/org/lcsim/event
diff -u -r1.9 -r1.10
--- CalorimeterHit.java 23 May 2008 03:39:51 -0000 1.9
+++ CalorimeterHit.java 23 May 2008 06:53:35 -0000 1.10
@@ -1,16 +1,17 @@
package org.lcsim.event;
-import org.lcsim.event.base.HasMetaData;
import org.lcsim.geometry.IDDecoder;
import org.lcsim.geometry.Subdetector;
/**
- * A hit in a calorimeter.
+ * A hit in a calorimeter.
+ * The super-interface gives access to subdetector, identifiers, iddecoder, etc.
+ * @see org.lcsim.event.Hit
* @author tonyj
- * @version $Id: CalorimeterHit.java,v 1.9 2008/05/23 03:39:51 jeremy Exp $
+ * @version $Id: CalorimeterHit.java,v 1.10 2008/05/23 06:53:35 jeremy Exp $
*/
public interface CalorimeterHit
-extends HasMetaData
+extends Hit
{
/**
* Raw energy deposited in calorimeter cell.
@@ -29,18 +30,6 @@
*/
public long getCellID();
- /**
- * Get the ID decoder for this hit. All hits in a collection originally
- * share the same <code>IDDecoder</code>, but once hits have been combined
- * into clusters, each hit may have its own <code>IDDecoder</code>.
- */
- public IDDecoder getIDDecoder();
-
- /**
- * The subdetector corresponding to this hit.
- */
- public Subdetector getSubdetector();
-
/**
* Returns time of the earliest energy contrib time in ns.
* @return Hit time in ns.
@@ -53,4 +42,4 @@
* the hit position from the hit ID.
*/
public double[] getPosition();
-}
\ No newline at end of file
+}
lcsim/src/org/lcsim/event
diff -u -r1.8 -r1.9
--- RawTrackerHit.java 15 May 2008 22:07:10 -0000 1.8
+++ RawTrackerHit.java 23 May 2008 06:53:35 -0000 1.9
@@ -9,7 +9,7 @@
* A raw tracker hit, as expected in raw data from a real detector.
*
* @author tonyj
- * @version $Id: RawTrackerHit.java,v 1.8 2008/05/15 22:07:10 jeremy Exp $
+ * @version $Id: RawTrackerHit.java,v 1.9 2008/05/23 06:53:35 jeremy Exp $
*/
public interface RawTrackerHit
extends Identifiable, HasDetectorElement
@@ -39,4 +39,4 @@
* hit, or because there is no MC information.
*/
List<SimTrackerHit> getSimTrackerHit();
-}
\ No newline at end of file
+}
lcsim/src/org/lcsim/event
diff -u -r1.5 -r1.6
--- SimCalorimeterHit.java 6 Aug 2007 23:26:12 -0000 1.5
+++ SimCalorimeterHit.java 23 May 2008 06:53:35 -0000 1.6
@@ -2,27 +2,32 @@
/**
* Represents one simulated "hit" in a calorimeter
- * @version $Id: SimCalorimeterHit.java,v 1.5 2007/08/06 23:26:12 tonyj Exp $
+ * @version $Id: SimCalorimeterHit.java,v 1.6 2008/05/23 06:53:35 jeremy Exp $
*/
-public interface SimCalorimeterHit extends CalorimeterHit
+public interface SimCalorimeterHit
+extends CalorimeterHit
{
/**
* Returns the number of MC contributions to the hit.
*/
int getMCParticleCount();
+
/**
* Returns the MCParticle that caused the shower responsible for this contribution to the hit.
*/
MCParticle getMCParticle(int index);
+
/**
* Returns the energy in [GeV] of the i-th contribution to the hit.
*/
double getContributedEnergy(int index);
+
/**
* Returns the time of the i-th in [ns] contribution to the hit.
*/
public double getContributedTime(int index);
+
/**
* Returns the PDG code of the shower particle that caused this contribution.
*/
lcsim/src/org/lcsim/event
diff -u -r1.18 -r1.19
--- SimTrackerHit.java 23 May 2008 03:39:52 -0000 1.18
+++ SimTrackerHit.java 23 May 2008 06:53:35 -0000 1.19
@@ -1,18 +1,10 @@
package org.lcsim.event;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.geometry.IDDecoder;
-import org.lcsim.geometry.Subdetector;
-
-import org.lcsim.detector.HasDetectorElement;
-import org.lcsim.detector.identifier.Identifiable;
-import org.lcsim.event.base.HasMetaData;
-
/**
- * @version $Id: SimTrackerHit.java,v 1.18 2008/05/23 03:39:52 jeremy Exp $
+ * @version $Id: SimTrackerHit.java,v 1.19 2008/05/23 06:53:35 jeremy Exp $
*/
public interface SimTrackerHit
-extends HasDetectorElement, HasMetaData, Identifiable
+extends Hit
{
/** Layer containing hit */
public int getLayer();
@@ -39,12 +31,6 @@
*/
double getPathLength();
- /** Returns the IDDecoder associated with this hit */
- IDDecoder getIDDecoder();
-
- /** Using the IDDecoder, returns the Subdetector associated with this hit */
- Subdetector getSubdetector();
-
/**
* Get the start point.
* @return The start point.
@@ -56,11 +42,4 @@
* @return The end point.
*/
double[] getEndPoint();
-
- /**
- * Assign an {@link IDetectorElement} to the hit.
- * @param detectorElement The <code>DetectorElement</code> of this hit.
- */
- // FIXME: This should be setup during construction time via lookup into the detector store.
- public void setDetectorElement(IDetectorElement detectorElement);
-}
\ No newline at end of file
+}
lcsim/src/org/lcsim/event
diff -u -r1.2 -r1.3
--- TPCHit.java 28 Jun 2006 04:48:31 -0000 1.2
+++ TPCHit.java 23 May 2008 06:53:35 -0000 1.3
@@ -9,11 +9,11 @@
* with flag( bit LCIO::TPCBIT_PTR)==1.
*
* @author gaede
- * @version $Id: TPCHit.java,v 1.2 2006/06/28 04:48:31 jstrube Exp $
+ * @version $Id: TPCHit.java,v 1.3 2008/05/23 06:53:35 jeremy Exp $
*/
-public interface TPCHit {
-
+public interface TPCHit
+{
/** Returns the detector specific cell id.
*/
public int getCellID();
lcsim/src/org/lcsim/event
diff -u -r1.10 -r1.11
--- Track.java 29 Nov 2007 02:25:55 -0000 1.10
+++ Track.java 23 May 2008 06:53:35 -0000 1.11
@@ -9,10 +9,11 @@
* Represents a found (reconstructed) track
*
* @author tonyj
- * @version $Id: Track.java,v 1.10 2007/11/29 02:25:55 jstrube Exp $
+ * @version $Id: Track.java,v 1.11 2008/05/23 06:53:35 jeremy Exp $
*/
-public interface Track {
+public interface Track
+{
int getCharge();
double[] getReferencePoint();
lcsim/src/org/lcsim/event
diff -u -r1.1 -r1.2
--- TrackerData.java 4 Jun 2007 06:50:40 -0000 1.1
+++ TrackerData.java 23 May 2008 06:53:35 -0000 1.2
@@ -5,11 +5,11 @@
* @see TrackerPulse
*
* @author gaede
- * @version $Id: TrackerData.java,v 1.1 2007/06/04 06:50:40 tonyj Exp $
+ * @version $Id: TrackerData.java,v 1.2 2008/05/23 06:53:35 jeremy Exp $
*/
-public interface TrackerData {
-
+public interface TrackerData
+{
/** Returns the first detector specific (geometrical) cell id.
*/
long getCellID();
lcsim/src/org/lcsim/event
diff -u -r1.5 -r1.6
--- TrackerHit.java 13 Feb 2007 22:59:27 -0000 1.5
+++ TrackerHit.java 23 May 2008 06:53:35 -0000 1.6
@@ -5,7 +5,7 @@
/** A generic tracker hit to be used by pattern recognition.
*
* @author gaede
- * @version $Id: TrackerHit.java,v 1.5 2007/02/13 22:59:27 tonyj Exp $
+ * @version $Id: TrackerHit.java,v 1.6 2008/05/23 06:53:35 jeremy Exp $
*/
public interface TrackerHit
@@ -41,4 +41,3 @@
// FixMe: See Dima's comments from 2/13/2007 LCD meeting
} // class or interface
-
lcsim/src/org/lcsim/event
diff -u -r1.1 -r1.2
--- TrackerPulse.java 4 Jun 2007 06:50:40 -0000 1.1
+++ TrackerPulse.java 23 May 2008 06:53:35 -0000 1.2
@@ -6,11 +6,11 @@
* @see TrackerData
*
* @author gaede
- * @version $Id: TrackerPulse.java,v 1.1 2007/06/04 06:50:40 tonyj Exp $
+ * @version $Id: TrackerPulse.java,v 1.2 2008/05/23 06:53:35 jeremy Exp $
*/
-public interface TrackerPulse {
-
+public interface TrackerPulse
+{
/** Returns the first detector specific (geometrical) cell id.
*/
long getCellID();
lcsim/src/org/lcsim/event/base
diff -N BaseHit.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ BaseHit.java 23 May 2008 06:53:35 -0000 1.1
@@ -0,0 +1,70 @@
+package org.lcsim.event.base;
+
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.identifier.IExpandedIdentifier;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.EventHeader.LCMetaData;
+import org.lcsim.geometry.IDDecoder;
+import org.lcsim.geometry.Subdetector;
+import org.lcsim.event.Hit;
+
+public class BaseHit
+implements Hit
+{
+ protected LCMetaData meta;
+ protected IExpandedIdentifier expId;
+ protected IIdentifier compactId;
+ protected IDetectorElement de;
+
+ public LCMetaData getMetaData()
+ {
+ return meta;
+ }
+
+ public void setMetaData(LCMetaData meta)
+ {
+ // Don't allow meta reset! Override in subclass if you want.
+ if (this.meta == null) this.meta = meta;
+ }
+
+ public Subdetector getSubdetector()
+ {
+ return getIDDecoder().getSubdetector();
+ }
+
+ public IDetectorElement getDetectorElement()
+ {
+ return de;
+ }
+
+ public void setDetectorElement(IDetectorElement de)
+ {
+ this.de = de;
+ }
+
+ public IExpandedIdentifier getExpandedIdentifier()
+ {
+ if (expId == null)
+ {
+ expId = getIdentifierHelper().unpack(getIdentifier());
+ }
+ return expId;
+ }
+
+ public IIdentifier getIdentifier()
+ {
+ return compactId;
+ }
+
+ public IIdentifierHelper getIdentifierHelper()
+ {
+ return getSubdetector().getDetectorElement().getIdentifierHelper();
+ }
+
+ public IDDecoder getIDDecoder()
+ {
+ return meta.getIDDecoder();
+ }
+}
lcsim/src/org/lcsim/event/base
diff -u -r1.3 -r1.4
--- BaseCalorimeterHit.java 23 May 2008 03:39:52 -0000 1.3
+++ BaseCalorimeterHit.java 23 May 2008 06:53:35 -0000 1.4
@@ -5,11 +5,10 @@
import org.lcsim.geometry.IDDecoder;
/**
- *
* @author tonyj
*/
public abstract class BaseCalorimeterHit
-extends AbstractSimHit
+extends BaseHit
implements CalorimeterHit
{
protected double rawEnergy;
@@ -54,25 +53,24 @@
public int getLayerNumber()
{
return getIDDecoder().getLayer();
- }
-
+ }
+
private void calculateCorrectedEnergy()
{
getIDDecoder().setID(id);
corrEnergy = SamplingFractionManager.defaultInstance().getCorrectedEnergy(rawEnergy, getIDDecoder().getLayer(), getSubdetector());
}
-
+
private void calculatePosition()
{
- position = new double[3];
-
if (getMetaData() != null)
{
- IDDecoder decoder = getIDDecoder();
+ position = new double[3];
+ IDDecoder decoder = getIDDecoder();
decoder.setID(id);
position[0] = decoder.getX();
position[1] = decoder.getY();
position[2] = decoder.getZ();
}
- }
-}
\ No newline at end of file
+ }
+}
lcsim/src/org/lcsim/event/base
diff -u -r1.2 -r1.3
--- BaseLCSimEvent.java 23 May 2008 03:39:52 -0000 1.2
+++ BaseLCSimEvent.java 23 May 2008 06:53:35 -0000 1.3
@@ -13,6 +13,7 @@
import org.lcsim.conditions.ConditionsManager.ConditionsNotFoundException;
import org.lcsim.event.Cluster;
import org.lcsim.event.EventHeader;
+import org.lcsim.event.HasMetaData;
import org.lcsim.event.MCParticle;
import org.lcsim.event.SimCalorimeterHit;
import org.lcsim.event.SimTrackerHit;
@@ -170,18 +171,25 @@
LCMetaData meta = new MetaData(name, type, flags, readoutName);
metaDataMap.put(collection,meta);
- // Only replace the existing readouts if a valid readout was given.
- // Otherwise, preserve the original MetaData, e.g. for mixing hits
- // from different collections.
if (HasMetaData.class.isAssignableFrom(type))
{
- if (readoutName != null)
+ HasMetaData hmd;
+ for (Object o : collection)
{
- for (Object o : collection)
- {
+ if (o instanceof HasMetaData) {
+ // some types of objects may ignore this if meta is already set
((HasMetaData)o).setMetaData(meta);
}
+ // FIXME: What happens if a hit belongs to 2 or more collections? We wipe out the old collection's meta!
+ // if (o instanceof HasIDDecoder) {
+ // IDDecoder hitdec = ((HasIDDecoder)o).getIDDecoder();
+ // if (hitdec.getIDDescription().toString().compareTo(descr) != 0)
+ // throw new RuntimeException(name + " - " + " - " + readoutName + " - " + hitdec.getIDDescription() + " is not equal to " + descr);
+ // }
+ // ((HasMetaData)o).setMetaData(meta);
+ // }
}
+ //}
}
}
@@ -240,6 +248,7 @@
private Map<String, int[]> intMap;
private Map<String, float[]> floatMap;
private Map<String, String[]> stringMap;
+ private transient IDDecoder dec;
MetaData(String name, Class type, int flags, String readoutName)
{
@@ -273,7 +282,13 @@
return type;
}
- public org.lcsim.geometry.IDDecoder getIDDecoder()
+ public org.lcsim.geometry.IDDecoder getIDDecoder()
+ {
+ if (dec == null) dec = findIDDecoder();
+ return dec;
+ }
+
+ public org.lcsim.geometry.IDDecoder findIDDecoder()
{
// If the IDDecoder name is explicitly set then use it, otherwise
// use the name of the collection itself.
lcsim/src/org/lcsim/event/base
diff -u -r1.2 -r1.3
--- BaseSimCalorimeterHit.java 23 May 2008 03:36:09 -0000 1.2
+++ BaseSimCalorimeterHit.java 23 May 2008 06:53:35 -0000 1.3
@@ -84,4 +84,4 @@
{
return particle.length;
}
-}
\ No newline at end of file
+}
lcsim/src/org/lcsim/event/base
diff -u -r1.5 -r1.6
--- BaseSimTrackerHit.java 23 May 2008 03:39:52 -0000 1.5
+++ BaseSimTrackerHit.java 23 May 2008 06:53:35 -0000 1.6
@@ -13,9 +13,7 @@
* An concrete implementation of SimTrackerHit.
* @author jeremym
*/
-public abstract class BaseSimTrackerHit
-extends AbstractSimHit
-implements SimTrackerHit
+public abstract class BaseSimTrackerHit extends BaseHit implements SimTrackerHit
{
protected double[] position = new double[3];
protected double[] momentum = new double[3];
@@ -85,7 +83,7 @@
public int getLayer()
{
getIDDecoder().setID(getCellID());
- return getIDDecoder().getValue("layer");
+ return getIDDecoder().getLayer();
}
public double[] getPoint()
@@ -146,4 +144,4 @@
startPoint = VecOp.add(midpoint,VecOp.mult(-1.0,half_length));
endPoint = VecOp.add(midpoint,half_length);
}
-}
\ No newline at end of file
+}
lcsim/src/org/lcsim/event/base
diff -N AbstractSimHit.java
--- AbstractSimHit.java 23 May 2008 04:17:13 -0000 1.2
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,70 +0,0 @@
-package org.lcsim.event.base;
-
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.identifier.IExpandedIdentifier;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.identifier.IIdentifierHelper;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.geometry.IDDecoder;
-import org.lcsim.geometry.Subdetector;
-
-public class AbstractSimHit
-implements SimHit
-{
- protected LCMetaData meta;
- protected IExpandedIdentifier expId;
- protected IIdentifier compactId;
- protected IDetectorElement de;
-
- public LCMetaData getMetaData()
- {
- return meta;
- }
-
- public void setMetaData(LCMetaData meta)
- {
- this.meta = meta;
- }
-
- public Subdetector getSubdetector()
- {
- return getIDDecoder().getSubdetector();
- }
-
- public IDetectorElement getDetectorElement()
- {
- return de;
- }
-
- // FIXME: Ideally, this should be protected or package level, but we
- // need to call it from SimTrackerHitIdentifierReadoutDriver.
- public void setDetectorElement(IDetectorElement de)
- {
- this.de = de;
- }
-
- public IExpandedIdentifier getExpandedIdentifier()
- {
- if (expId == null)
- {
- expId = getIdentifierHelper().unpack(getIdentifier());
- }
- return expId;
- }
-
- public IIdentifier getIdentifier()
- {
- return compactId;
- }
-
- public IIdentifierHelper getIdentifierHelper()
- {
- return getSubdetector().getDetectorElement().getIdentifierHelper();
- }
-
- public IDDecoder getIDDecoder()
- {
- return meta.getIDDecoder();
- }
-}
lcsim/src/org/lcsim/event/base
diff -N HasIDDecoder.java
--- HasIDDecoder.java 23 May 2008 03:39:52 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,8 +0,0 @@
-package org.lcsim.event.base;
-
-import org.lcsim.geometry.IDDecoder;
-
-public interface HasIDDecoder
-{
- public IDDecoder getIDDecoder();
-}
lcsim/src/org/lcsim/event/base
diff -N HasMetaData.java
--- HasMetaData.java 23 May 2008 04:25:52 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
-package org.lcsim.event.base;
-
-import org.lcsim.event.EventHeader.LCMetaData;
-
-/**
- * A simple mixin interface for objects that have associated <code>LCMetaData</code>.
- * @author jeremym
- *
- */
-public interface HasMetaData
-{
- public LCMetaData getMetaData();
- public void setMetaData(LCMetaData meta);
-}
\ No newline at end of file
lcsim/src/org/lcsim/event/base
diff -N HasSubdetector.java
--- HasSubdetector.java 23 May 2008 03:39:52 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,8 +0,0 @@
-package org.lcsim.event.base;
-
-import org.lcsim.geometry.Subdetector;
-
-public interface HasSubdetector
-{
- public Subdetector getSubdetector();
-}
lcsim/src/org/lcsim/event/base
diff -N SimHit.java
--- SimHit.java 23 May 2008 03:39:52 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,9 +0,0 @@
-package org.lcsim.event.base;
-
-import org.lcsim.detector.HasDetectorElement;
-import org.lcsim.detector.identifier.Identifiable;
-
-public interface SimHit
-extends HasSubdetector, HasIDDecoder, HasDetectorElement,
- Identifiable, HasMetaData
-{}
\ No newline at end of file
CVSspam 0.2.8