Print

Print


Commit in lcsim/sandbox on MAIN
FitterTest.java+82added 1.1
TrackerHitCheaterTest.java+103added 1.1
+185
2 added files
JM: removing contrib package tests (there were only 2)

lcsim/sandbox
FitterTest.java added at 1.1
diff -N FitterTest.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ FitterTest.java	10 Dec 2008 22:12:29 -0000	1.1
@@ -0,0 +1,82 @@
+package org.lcsim.contrib.JanStrube.vtxFitter;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import junit.framework.TestCase;
+
+import org.lcsim.mc.fast.tracking.fix.FastMCTrackFactory;
+import org.lcsim.spacegeom.CartesianPoint;
+import org.lcsim.spacegeom.CartesianVector;
+import org.lcsim.spacegeom.SpacePoint;
+import org.lcsim.spacegeom.SpaceVector;
+
+import Jama.Matrix;
+
+public class FitterTest extends TestCase {
+	Matrix A;
+	double[] x;
+	double[] y;
+    protected void setUp() throws Exception {
+		super.setUp();
+		A = new Matrix(2, 3, 2.5);
+		x = new double[] {1, 2, 3};
+		y = x.clone();
+	}
+
+	protected void tearDown() throws Exception {
+		super.tearDown();
+	}
+
+//	/*
+//	 * Test method for 'vtxFitter.Fitter.multiply(Matrix, double[])'
+//	 */
+//	public void testMultiply() {
+//		double[] r = multiply(A, x);
+//		assertEquals(r.length, A.getRowDimension());
+//		assertEquals(r[0], 15.);
+//		assertEquals(r[1], 15.);
+//	}
+
+    
+    public void testFit() {
+	List<VtxTrack> tracks = new ArrayList<VtxTrack>();
+        FastMCTrackFactory fac = new FastMCTrackFactory("sid01", 5., false);
+        SpacePoint pos = new CartesianPoint(1.2, 2.2, 3.2);
+        SpaceVector mom1 = new CartesianVector(1, 2, 3);
+        SpaceVector mom2 = new CartesianVector(2, -2, 1.5);
+        SpaceVector mom3 = new CartesianVector(-1, 2, 2);
+        SpacePoint ref = new CartesianPoint(3, 6, 9);
+        SpacePoint start = new CartesianPoint(1, 1.7, 3);
+        Random rand = new Random();
+        tracks.add(new VtxTrack(fac.getTrack(mom1, pos, ref, -1, rand, true)));
+        tracks.add(new VtxTrack(fac.getTrack(mom2, pos, ref, 1, rand, true)));
+        tracks.add(new VtxTrack(fac.getTrack(mom3, pos, ref, -1, rand, true)));
+        Fitter f = new Fitter(5.0);
+        f.chi2_prev = 1000;
+        //f.x_prev = new Matrix(start.getCartesianArray(), 3);
+        System.out.println(f.x_prev);
+//        Vertex particle = f.fit(tracks, new SpacePoint());
+        for (int i=0; i<10; i++) {
+            for (VtxTrack t: tracks) {
+                System.out.println(f.filter(t));
+                System.out.println(f.x_prev);
+            }
+            for (VtxTrack t: tracks) {
+                f.smoothe(t, false);
+            }
+        }
+//        System.out.println(particle);
+    }
+    
+//    public void testDerivativeMatrix() {
+//        SpacePoint x = new CartesianPoint(1, 0, 0);
+//        SpaceVector p = new CartesianVector(1, 0, 0);
+//        Matrix a = getSpatialDerivativeMatrix(x, p, new SpacePoint(), 1, 1);
+//        Matrix b = getMomentumDerivativeMatrix(x, p, new SpacePoint(), -1, 1);
+//        System.out.println(a);
+//        System.out.println(b);
+//    }
+}

lcsim/sandbox
TrackerHitCheaterTest.java added at 1.1
diff -N TrackerHitCheaterTest.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ TrackerHitCheaterTest.java	10 Dec 2008 22:12:29 -0000	1.1
@@ -0,0 +1,103 @@
+package org.lcsim.contrib.tracking;
+
+import java.io.File;
+import java.net.URL;
+import java.util.List;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.SimTrackerHit;
+import org.lcsim.event.TrackerHit;
+import org.lcsim.event.base.BaseTrackerHitMC;
+import org.lcsim.util.Driver;
+import org.lcsim.util.cache.FileCache;
+import org.lcsim.util.loop.LCSimLoop;
+
+/**
+ * Reads 2 muon event generated in sid01_polyhedra, which uses
+ * SiTrackerBarrel.  For DetectorElements where there is a
+ * Readout containing one hit, check that the hit from the event
+ * and the DE's have matching cell id.
+ */
+public class TrackerHitCheaterTest extends TestCase
+{
+    
+    private TrackerHitCheater _hit_cheater = new TrackerHitCheater();
+    
+    public TrackerHitCheaterTest(String testName)
+    {
+        super(testName);
+    }
+    
+    public static Test suite()
+    {
+        return new TestSuite(TrackerHitCheaterTest.class);
+    }
+    
+    public void setUp()
+    {
+        java.lang.Runtime.getRuntime().gc();
+    }
+    
+    public void testReadout() throws Exception
+    {
+        URL url =
+                new URL("http://www.lcsim.org/test/lcio/mu_10.0GeV_Theta90_SLIC-v2r3p7_geant4-v9r0p1_LCPhys_SiTrackerBarrelTest00.slcio");
+        FileCache cache = new FileCache();
+        File file = cache.getCachedFile(url);
+        
+        LCSimLoop loop = new LCSimLoop();
+        loop.setLCIORecordSource(file);
+        loop.add( new TestDriver() );
+        loop.loop(1, null);
+        loop.dispose();
+    }
+    
+    class TestDriver extends Driver
+    {    	
+    	private int nevents=0;
+        protected void process(EventHeader event)
+        {        	
+//        	int nhits=0;
+        	        	        	
+            // Get the SimTrackerHits
+            List<SimTrackerHit> simulated_hits = event.get(SimTrackerHit.class, "SiTrackerBarrel_RO");            
+//            System.out.println("Number of input SimTrackerHits: "+simulated_hits.size());
+                    
+            List<TrackerHit> tracker_hits = _hit_cheater.makeTrackerHits(simulated_hits);
+//            System.out.println("Number of output TrackerHits: "+tracker_hits.size());
+            
+            if (nevents == 0)
+            {
+            	//assertEquals("Incorrect number of TrackerHits.",tracker_hits.size(),8);
+            	assertEquals("Incorrect number of TrackerHits.",tracker_hits.size(),6);
+            }
+            
+            for (TrackerHit hit : tracker_hits)
+            {
+            	assertTrue("Missing MCParticles.",((BaseTrackerHitMC)hit).mcParticles().size() > 0);
+            	assertTrue("Missing SimTrackerHits.",((BaseTrackerHitMC)hit).getSimHits().size() > 0);
+            	
+//            	if (nhits<2)
+//            	{
+//            		System.out.println("Location of output TrackerHit: ["+hit.getPosition()[0]+
+//                                                                   ","+hit.getPosition()[1]+
+//                                                                   ","+hit.getPosition()[2]+"]");
+//                	System.out.println("Number of MCParticles contributing: "+((BaseTrackerHitMC)hit).mcParticles().size());
+//                	System.out.println("Number of SimTrackerHits contributing: "+((BaseTrackerHitMC)hit).getSimHits().size());                	
+//            	}
+//            	else if (nhits == 2) {
+//            		System.out.println("[SNIP]");
+//            	}
+//                ++nhits;
+            }        
+//            event.put("CheatedTrackerHits",trackerhits,BaseTrackerHitMC.class,0);        
+            
+            ++nevents;            
+        }
+    }
+}
+
CVSspam 0.2.8