Print

Print


Commit in lcsim/src/org/lcsim on MAIN
contrib/SiStripSim/BaseTrackerHit.java+1-11.2 -> 1.3
                  /StripClusterMaker.java+1-11.9 -> 1.10
                  /StripHit2DMaker.java+9-61.1 -> 1.2
                  /StripHitMaker.java+12-61.1 -> 1.2
                  /TrackerHitDriver_User.java+41.3 -> 1.4
contrib/seedtracker/analysis/AnalysisUtils.java+2-21.2 -> 1.3
event/RawTrackerHit.java+4-71.9 -> 1.10
event/base/BaseHit.java+3-21.4 -> 1.5
          /BaseRawTrackerHit.java+9-471.8 -> 1.9
fit/helicaltrack/HelicalTrackHitDriver.java+1-11.20 -> 1.21
util/lcio/LCIOConstants.java+41.10 -> 1.11
         /SIORawTrackerHit.java+73-311.5 -> 1.6
+123-104
12 modified files
JM: add implementation of RawTrackerHit.getSimTrackerHits and change getSimTrackerHit to getSimTrackerHits

lcsim/src/org/lcsim/contrib/SiStripSim
BaseTrackerHit.java 1.2 -> 1.3
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
StripClusterMaker.java 1.9 -> 1.10
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
StripHit2DMaker.java 1.1 -> 1.2
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
StripHitMaker.java 1.1 -> 1.2
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
TrackerHitDriver_User.java 1.3 -> 1.4
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
AnalysisUtils.java 1.2 -> 1.3
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
RawTrackerHit.java 1.9 -> 1.10
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
BaseHit.java 1.4 -> 1.5
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
BaseRawTrackerHit.java 1.8 -> 1.9
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
HelicalTrackHitDriver.java 1.20 -> 1.21
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
LCIOConstants.java 1.10 -> 1.11
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
SIORawTrackerHit.java 1.5 -> 1.6
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