12 modified files
lcsim/src/org/lcsim/contrib/SiStripSim
diff -u -r1.2 -r1.3
--- BaseTrackerHit.java 18 Jan 2008 23:09:34 -0000 1.2
+++ BaseTrackerHit.java 20 Aug 2008 01:34:21 -0000 1.3
@@ -125,7 +125,7 @@
_simulated_hits = new HashSet<SimTrackerHit>();
for (RawTrackerHit raw_hit : _raw_hits)
{
- _simulated_hits.addAll(raw_hit.getSimTrackerHit());
+ _simulated_hits.addAll(raw_hit.getSimTrackerHits());
}
}
return _simulated_hits;
lcsim/src/org/lcsim/contrib/SiStripSim
diff -u -r1.9 -r1.10
--- StripClusterMaker.java 24 Dec 2007 14:38:11 -0000 1.9
+++ StripClusterMaker.java 20 Aug 2008 01:34:21 -0000 1.10
@@ -208,7 +208,7 @@
Set<SimTrackerHit> simulated_hits = new HashSet<SimTrackerHit>();
for (RawTrackerHit hit : cluster)
{
- simulated_hits.addAll(hit.getSimTrackerHit());
+ simulated_hits.addAll(hit.getSimTrackerHits());
}
return new ArrayList<SimTrackerHit>(simulated_hits);
}
lcsim/src/org/lcsim/contrib/SiStripSim
diff -u -r1.1 -r1.2
--- StripHit2DMaker.java 9 Apr 2008 14:04:06 -0000 1.1
+++ StripHit2DMaker.java 20 Aug 2008 01:34:21 -0000 1.2
@@ -9,15 +9,13 @@
package org.lcsim.contrib.SiStripSim;
-import hep.physics.matrix.Matrix;
-import hep.physics.matrix.MatrixOp.IndeterminateMatrixException;
-import hep.physics.matrix.MatrixOp.InvalidMatrixException;
-import hep.physics.matrix.MutableMatrix;
import hep.physics.matrix.SymmetricMatrix;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
import org.lcsim.detector.IDetectorElement;
import org.lcsim.detector.IReadout;
import org.lcsim.detector.solids.GeomOp3D;
@@ -25,6 +23,7 @@
import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
import org.lcsim.detector.tracker.silicon.SiTrackerModule;
import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.SimTrackerHit;
/**
*
@@ -222,6 +221,8 @@
for (SiTrackerHitStrip1D hit_1D : hits_1D)
{
+
+ //System.out.println("proc hit: " + ((SimTrackerHit)hit_1D.getSimHits().toArray()[0]).getDetectorElement().getName());
// SymmetricMatrix covariance = hit_1D.getTransformedHit(TrackerHitType.CoordinateSystem.GLOBAL).getCovarianceAsMatrix();
// SymmetricMatrix covariance_inverted = new SymmetricMatrix(3);
@@ -259,7 +260,7 @@
}
}
-// System.out.println("Covariance matrix: "+covariance_inverted);
+ //System.out.println("Covariance matrix: "+covariance_inverted);
covariance_inverted.invert();
@@ -279,6 +280,8 @@
SymmetricMatrix covariance = new SymmetricMatrix(3,covariance_inverted_sum,true);
covariance.invert();
+ System.out.println("Covariance matrix after: "+covariance);
+
return covariance;
}
@@ -509,4 +512,4 @@
// hits_2D.add(makeTrackerHit2D(hitpair));
// }
// }
-// }
\ No newline at end of file
+// }
lcsim/src/org/lcsim/contrib/SiStripSim
diff -u -r1.1 -r1.2
--- StripHitMaker.java 9 Apr 2008 14:04:06 -0000 1.1
+++ StripHitMaker.java 20 Aug 2008 01:34:21 -0000 1.2
@@ -13,15 +13,16 @@
import hep.physics.vec.BasicHep3Vector;
import hep.physics.vec.Hep3Vector;
import hep.physics.vec.VecOp;
-import org.lcsim.event.RawTrackerHit;
-import java.util.List;
import java.util.ArrayList;
-import java.util.Map;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Map.Entry;
+import java.util.List;
+import java.util.Map;
import java.util.Set;
+import java.util.Map.Entry;
+
+import org.lcsim.detector.DetectorElementStore;
import org.lcsim.detector.IDetectorElement;
import org.lcsim.detector.IReadout;
import org.lcsim.detector.identifier.IIdentifier;
@@ -31,6 +32,7 @@
import org.lcsim.detector.tracker.silicon.SiSensorElectrodes;
import org.lcsim.detector.tracker.silicon.SiStrips;
import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
+import org.lcsim.event.RawTrackerHit;
import org.lcsim.event.SimTrackerHit;
/**
@@ -123,6 +125,7 @@
// Make hits for all sensors within a DetectorElement
public List<SiTrackerHitStrip1D> makeHits(IDetectorElement detector)
{
+ System.out.println("makeHits(IDetectorElement): " + detector.getName());
List<SiTrackerHitStrip1D> hits = new ArrayList<SiTrackerHitStrip1D>();
List<SiSensor> sensors = detector.findDescendants(SiSensor.class);
@@ -143,7 +146,9 @@
// Make hits for a sensor
public List<SiTrackerHitStrip1D> makeHits(SiSensor sensor)
{
-
+
+ //System.out.println("makeHits: " + sensor.getName());
+
List<SiTrackerHitStrip1D> hits = new ArrayList<SiTrackerHitStrip1D>();
// Get SiTrackerIdentifierHelper for this sensor and refresh the strip map used to increase speed
@@ -164,6 +169,7 @@
_strip_map.put(raw_hit,_sid_helper.getStripValue(id));
// Get electrodes and check that they are strips
+ //System.out.println("proc raw hit from: " + DetectorElementStore.getInstance().find(raw_hit.getIdentifier()).get(0).getName());
ChargeCarrier carrier = ChargeCarrier.getCarrier(_sid_helper.getSideValue(id));
SiSensorElectrodes electrodes = ((SiSensor)raw_hit.getDetectorElement()).getReadoutElectrodes(carrier);
if ( !(electrodes instanceof SiStrips) ) continue;
@@ -293,7 +299,7 @@
Set<SimTrackerHit> simulated_hits = new HashSet<SimTrackerHit>();
for (RawTrackerHit hit : cluster)
{
- simulated_hits.addAll(hit.getSimTrackerHit());
+ simulated_hits.addAll(hit.getSimTrackerHits());
}
return new ArrayList<SimTrackerHit>(simulated_hits);
}
lcsim/src/org/lcsim/contrib/SiStripSim
diff -u -r1.3 -r1.4
--- TrackerHitDriver_User.java 23 Jul 2008 22:08:23 -0000 1.3
+++ TrackerHitDriver_User.java 20 Aug 2008 01:34:21 -0000 1.4
@@ -28,9 +28,13 @@
_trackerhit_driver.addReadout("SiTrackerBarrel_RO");
_trackerhit_driver.addReadout("SiTrackerEndcap_RO");
_trackerhit_driver.addReadout("SiTrackerForward_RO");
+ //_trackerhit_driver.addReadout("SiVertexBarrel_RO");
+ //_trackerhit_driver.addReadout("SiVertexEndcap_RO");
_trackerhit_driver.addElementToProcess("SiTrackerBarrel");
_trackerhit_driver.addElementToProcess("SiTrackerForward");
_trackerhit_driver.addElementToProcess("SiTrackerEndcap");
+ //_trackerhit_driver.addElementToProcess("SiVertexBarrel");
+ //_trackerhit_driver.addElementToProcess("SiVertexEndcap");
super.add( _trackerhit_driver );
}
lcsim/src/org/lcsim/contrib/seedtracker/analysis
diff -u -r1.2 -r1.3
--- AnalysisUtils.java 12 Aug 2008 23:41:59 -0000 1.2
+++ AnalysisUtils.java 20 Aug 2008 01:34:21 -0000 1.3
@@ -198,8 +198,8 @@
double t1, t2;
try{
- t1 = ((RawTrackerHit)h1.getRawHits().get(0)).getSimTrackerHit().get(0).getTime();
- t2 = ((RawTrackerHit)h2.getRawHits().get(0)).getSimTrackerHit().get(0).getTime();
+ t1 = ((RawTrackerHit)h1.getRawHits().get(0)).getSimTrackerHits().get(0).getTime();
+ t2 = ((RawTrackerHit)h2.getRawHits().get(0)).getSimTrackerHits().get(0).getTime();
} catch(NullPointerException npe) {
t1 = h1.getTime();
t2 = h2.getTime();
lcsim/src/org/lcsim/event
diff -u -r1.9 -r1.10
--- RawTrackerHit.java 23 May 2008 06:53:35 -0000 1.9
+++ RawTrackerHit.java 20 Aug 2008 01:34:21 -0000 1.10
@@ -2,17 +2,14 @@
import java.util.List;
-import org.lcsim.detector.HasDetectorElement;
-import org.lcsim.detector.identifier.Identifiable;
-
/**
* A raw tracker hit, as expected in raw data from a real detector.
*
* @author tonyj
- * @version $Id: RawTrackerHit.java,v 1.9 2008/05/23 06:53:35 jeremy Exp $
+ * @version $Id: RawTrackerHit.java,v 1.10 2008/08/20 01:34:21 jeremy Exp $
*/
public interface RawTrackerHit
-extends Identifiable, HasDetectorElement
+extends Hit
{
/**
* Returns a time measurement associated with the adc values.
@@ -36,7 +33,7 @@
/**
* Returns the associated SimTrackerHit. Note this may be <code>null</code>
* if there is no associated SimTrackerHit (for example because this is a noise
- * hit, or because there is no MC information.
+ * hit, or because there is no MC information.)
*/
- List<SimTrackerHit> getSimTrackerHit();
+ List<SimTrackerHit> getSimTrackerHits();
}
lcsim/src/org/lcsim/event/base
diff -u -r1.4 -r1.5
--- BaseHit.java 2 Jul 2008 21:06:03 -0000 1.4
+++ BaseHit.java 20 Aug 2008 01:34:21 -0000 1.5
@@ -25,7 +25,8 @@
public void setMetaData(LCMetaData meta)
{
- // Don't allow meta reset! Override in subclass if you want.
+ // Don't allow meta to be reset!
+ // Override in subclass if you want to enable this.
if (this.meta == null) this.meta = meta;
}
@@ -60,7 +61,7 @@
public IIdentifierHelper getIdentifierHelper()
{
- return getSubdetector().getDetectorElement().getIdentifierHelper();
+ return getDetectorElement().getIdentifierHelper();
}
public DetectorIdentifierHelper getDetectorIdentifierHelper()
lcsim/src/org/lcsim/event/base
diff -u -r1.8 -r1.9
--- BaseRawTrackerHit.java 23 May 2008 03:12:09 -0000 1.8
+++ BaseRawTrackerHit.java 20 Aug 2008 01:34:21 -0000 1.9
@@ -3,31 +3,26 @@
import java.util.List;
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.detector.identifier.Identifier;
-import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.event.util.SubdetectorLocator;
import org.lcsim.event.RawTrackerHit;
import org.lcsim.event.SimTrackerHit;
-import org.lcsim.geometry.IDDecoder;
-import org.lcsim.geometry.Subdetector;
+import org.lcsim.event.EventHeader.LCMetaData;
/**
* A basic implementation of RawTrackerHit.
* @author Tony Johnson
- * @version $Id: BaseRawTrackerHit.java,v 1.8 2008/05/23 03:12:09 jeremy Exp $
+ * @version $Id: BaseRawTrackerHit.java,v 1.9 2008/08/20 01:34:21 jeremy Exp $
*/
-public class BaseRawTrackerHit implements RawTrackerHit
+public class BaseRawTrackerHit
+extends BaseHit
+implements RawTrackerHit
{
protected int time;
protected long cellId;
protected short[] adcValues;
protected LCMetaData data;
protected List<SimTrackerHit> simTrackerHits;
- protected IIdentifier identifier;
- protected IDetectorElement detectorElement;
public BaseRawTrackerHit(int time, long cellId, short[] adcValues, List<SimTrackerHit> simTrackerHits, IDetectorElement detectorElement)
{
@@ -35,17 +30,15 @@
this.cellId = cellId;
this.adcValues = adcValues;
this.simTrackerHits = simTrackerHits;
- this.identifier = new Identifier(cellId);
- this.detectorElement = detectorElement;
+ this.compactId = new Identifier(cellId);
+ this.de = detectorElement;
}
/**
* Constructor for use by subclasses
*/
protected BaseRawTrackerHit()
- {
-
- }
+ {}
public int getTime()
{
@@ -62,39 +55,8 @@
return adcValues;
}
- public List<SimTrackerHit> getSimTrackerHit()
+ public List<SimTrackerHit> getSimTrackerHits()
{
return simTrackerHits;
- }
-
- public IIdentifier getIdentifier()
- {
- return identifier;
- }
-
- public IDetectorElement getDetectorElement()
- {
- return detectorElement;
- }
-
- public void setDetectorElement(IDetectorElement detectorElement)
- {
- this.detectorElement = detectorElement;
- }
-
- public IExpandedIdentifier getExpandedIdentifier()
- {
- try {
- return getIdentifierHelper().unpack(identifier);
- }
- catch (Exception x)
- {
- throw new RuntimeException(x);
- }
- }
-
- public IIdentifierHelper getIdentifierHelper()
- {
- return detectorElement.getIdentifierHelper();
}
}
\ No newline at end of file
lcsim/src/org/lcsim/fit/helicaltrack
diff -u -r1.20 -r1.21
--- HelicalTrackHitDriver.java 13 Aug 2008 22:07:50 -0000 1.20
+++ HelicalTrackHitDriver.java 20 Aug 2008 01:34:21 -0000 1.21
@@ -123,7 +123,7 @@
List<SimTrackerHit> thesehits = new ArrayList<SimTrackerHit>();
List<RawTrackerHit> rawhits = (List<RawTrackerHit>)hit.getRawHits();
for (RawTrackerHit raw : rawhits) {
- thesehits.addAll(raw.getSimTrackerHit());
+ thesehits.addAll(raw.getSimTrackerHits());
}
hit = new BaseTrackerHitMC(hit.getPosition(), hit.getCovMatrix(),
hit.getTime(), hit.getdEdx(), hit.getType(), thesehits);
lcsim/src/org/lcsim/util/lcio
diff -u -r1.10 -r1.11
--- LCIOConstants.java 9 Oct 2007 22:56:22 -0000 1.10
+++ LCIOConstants.java 20 Aug 2008 01:34:21 -0000 1.11
@@ -62,6 +62,10 @@
// cellid1 stored
int TRAWBIT_ID1 = 31;
+ // SimTrackerHit references stored (1) - not stored (0).
+ // FIXME: Non-standard LCIO constant. Needs to be propagated to lcio standalone project.
+ int RTHBIT_HITS = 27;
+
// 1: pointer tag not added (needed for TrackerHit)
// LCRelation
// public const int LCREL_ONE2MANY = 31 ; // relation is one to many
lcsim/src/org/lcsim/util/lcio
diff -u -r1.5 -r1.6
--- SIORawTrackerHit.java 17 Oct 2007 02:06:23 -0000 1.5
+++ SIORawTrackerHit.java 20 Aug 2008 01:34:21 -0000 1.6
@@ -2,49 +2,91 @@
import hep.io.sio.SIOInputStream;
import hep.io.sio.SIOOutputStream;
+import hep.io.sio.SIORef;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import org.lcsim.detector.identifier.Identifier;
import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.SimTrackerHit;
import org.lcsim.event.EventHeader.LCMetaData;
import org.lcsim.event.base.BaseRawTrackerHit;
/**
*
+ * -Added support for reading/writing list of SimTrackerHits. FIXME: Non-standard LCIO.
+ *
* @author Tony Johnson
- * @version $Id: SIORawTrackerHit.java,v 1.5 2007/10/17 02:06:23 tonyj Exp $
+ * @version $Id: SIORawTrackerHit.java,v 1.6 2008/08/20 01:34:21 jeremy Exp $
*/
class SIORawTrackerHit extends BaseRawTrackerHit
{
- SIORawTrackerHit(SIOInputStream in, int flags, int version, LCMetaData meta) throws IOException
- {
- data = meta;
- int cellid0 = in.readInt();
- int cellid1 = LCIOUtil.bitTest(flags,31) ? in.readInt() : 0;
- cellId = ((long) cellid1)<<32 | cellid0;
- identifier = new Identifier(cellId);
- time = in.readInt();
- int nAdc = in.readInt();
- adcValues = new short[nAdc];
- for (int i=0; i<nAdc; i++)
- {
- adcValues[i] = in.readShort();
- }
- in.pad();
- in.readPTag(this);
- }
-
- static void write(RawTrackerHit hit, SIOOutputStream out, int flags) throws IOException
- {
- long cellID = hit.getCellID();
- out.writeInt((int) cellID);
- if (LCIOUtil.bitTest(flags,31)) out.writeInt((int) (cellID>>32));
- out.writeInt(hit.getTime());
- short[] adcValues = hit.getADCValues();
- out.writeInt(adcValues.length);
- for (short s : adcValues) out.writeShort(s);
- out.pad();
- out.writePTag(hit);
- }
+ private List<SIORef> tempHits;
+
+ SIORawTrackerHit(SIOInputStream in, int flags, int version, LCMetaData meta) throws IOException
+ {
+ data = meta;
+ int cellid0 = in.readInt();
+ int cellid1 = LCIOUtil.bitTest(flags,31) ? in.readInt() : 0;
+ cellId = ((long) cellid1)<<32 | cellid0;
+ compactId = new Identifier(cellId);
+ time = in.readInt();
+ int nAdc = in.readInt();
+ adcValues = new short[nAdc];
+ for (int i=0; i<nAdc; i++)
+ {
+ adcValues[i] = in.readShort();
+ }
+ in.pad();
+ // Add support for reading in a list of SimTrackerHits. --JM
+ // FIXME: Not supported by standard LCIO.
+ if ((flags & 1<<LCIOConstants.RTHBIT_HITS) != 0) {
+ int nhits = in.readInt();
+ tempHits = new ArrayList<SIORef>(nhits);
+ for (int i=0; i<nhits; i++) {
+ tempHits.add(in.readPntr());
+ }
+ }
+ in.readPTag(this);
+ }
+
+ static void write(RawTrackerHit hit, SIOOutputStream out, int flags) throws IOException
+ {
+ long cellID = hit.getCellID();
+ out.writeInt((int) cellID);
+ if (LCIOUtil.bitTest(flags,31)) out.writeInt((int) (cellID>>32));
+ out.writeInt(hit.getTime());
+ short[] adcValues = hit.getADCValues();
+ out.writeInt(adcValues.length);
+ for (short s : adcValues) out.writeShort(s);
+ out.pad();
+ // Add support for writing out a list of SimTrackerHits. --JM
+ // FIXME: Not supported by standard LCIO.
+ if ((flags & 1<<LCIOConstants.RTHBIT_HITS) != 0) {
+ out.writeInt(hit.getSimTrackerHits().size());
+ for (SimTrackerHit simhit : hit.getSimTrackerHits())
+ {
+ out.writePntr(simhit);
+ }
+ }
+
+ out.writePTag(hit);
+ }
+
+ public List<SimTrackerHit> getSimTrackerHits()
+ {
+ if (simTrackerHits == null && tempHits != null)
+ {
+ simTrackerHits = new ArrayList<SimTrackerHit>(tempHits.size());
+ for (SIORef ref : tempHits)
+ {
+ simTrackerHits.add((SimTrackerHit) ref.getObject());
+ }
+ tempHits.clear();
+ tempHits = null;
+ }
+ return simTrackerHits;
+ }
}
\ No newline at end of file
CVSspam 0.2.8