1 /* 2 * AddFitKalman_Test.java 3 * 4 * Created on July 24, 2007, 5:05 PM 5 * 6 * $Id: AddFitKalman_Test.java,v 1.1.1.1 2010/04/08 20:38:00 jeremy Exp $ 7 */ 8 9 package org.lcsim.recon.tracking.trffit; 10 11 import java.util.List; 12 import junit.framework.TestCase; 13 import org.lcsim.recon.tracking.trfbase.Cluster; 14 import org.lcsim.recon.tracking.trfbase.ETrack; 15 import org.lcsim.recon.tracking.trfbase.Hit; 16 import org.lcsim.recon.tracking.trfbase.SurfTest; 17 import org.lcsim.recon.tracking.trfbase.TrackError; 18 import org.lcsim.recon.tracking.trfbase.TrackVector; 19 import org.lcsim.recon.tracking.trfutil.Assert; 20 import org.lcsim.recon.tracking.trfutil.WAvg; 21 22 /** 23 * 24 * @author Norman Graf 25 */ 26 public class AddFitKalman_Test extends TestCase 27 { 28 private boolean debug; 29 /** Creates a new instance of AddFitKalman_Test */ 30 public void testAddFitKalman() 31 { 32 String component = "AddFitKalman"; 33 String ok_prefix = component + " (I): "; 34 String error_prefix = component + " test (E): "; 35 36 if(debug) System.out.println( ok_prefix 37 + "-------- Testing component " + component 38 + ". --------" + "\n"); 39 40 //******************************************************************** 41 if(debug) System.out.println( ok_prefix + "Test constructor." + "\n"); 42 AddFitKalman fitk = new AddFitKalman(); 43 if(debug) System.out.println( fitk + "\n"); 44 Assert.assertTrue( fitk.type() == AddFitKalman.staticType() ); 45 if(debug) System.out.println( fitk.typeName() + "\n"); 46 Assert.assertTrue( fitk.typeName() == "AddFitKalman" ); 47 48 //******************************************************************** 49 50 if(debug) System.out.println( ok_prefix + "Test fitting 1 hit." + "\n"); 51 double small = 1.e-12; 52 WAvg avg = new WAvg(); 53 SurfTest srf = new SurfTest(10); 54 TrackVector vec = new TrackVector(); 55 TrackError err = new TrackError(); 56 vec.set(0,2.9); 57 err.set(0,0,0.04); 58 err.set(1,1,0.0001); 59 err.set(2,2,0.0001); 60 err.set(3,3,0.0001); 61 err.set(4,4,0.0001); 62 avg.addPair(vec.get(0),err.get(0,0)); 63 64 ETrack tre = new ETrack( srf.newPureSurface(), vec, err ); 65 HTrack trh = new HTrack(tre); 66 Cluster clu1 = new ClusTestFit1(srf,3.0,0.01) ; 67 avg.addPair(3.0,0.01); 68 69 List hits = clu1.predict(tre,clu1); 70 if(debug) System.out.println( trh + "\n"); 71 if(debug) System.out.println( hits.get(0) + "\n"); 72 Assert.assertTrue( fitk.addHit(trh,(Hit)hits.get(0)) == 0 ); 73 if(debug) System.out.println( trh + "\n"); 74 if(debug) System.out.println( avg + "\n"); 75 if(debug) System.out.println("trk= "+trh.newTrack().vector().get(0)+" "+avg.average()); 76 Assert.assertTrue( Math.abs( trh.newTrack().vector().get(0) - avg.average() ) 77 < small ); 78 Assert.assertTrue( Math.abs( trh.newTrack().error().get(0,0) - avg.error() ) 79 < small ); 80 if(debug) System.out.println("trk chisq= "+trh.chisquared()+", avg chsq= "+ avg.chiSquared()); 81 Assert.assertTrue( Math.abs( trh.chisquared() - avg.chiSquared() ) 82 < small ); 83 Assert.assertTrue( trh.hits().size() == 1 ); 84 85 //******************************************************************** 86 87 if(debug) System.out.println( ok_prefix + "Test fitting 2 hits." + "\n"); 88 Cluster clu2 = new ClusTestFit1(srf,3.3,0.02); 89 avg.addPair(3.3,0.02); 90 hits = clu2.predict(trh.newTrack(),clu2); 91 Assert.assertTrue( fitk.addHit( trh, (Hit)hits.get(0) ) == 0 ); 92 if(debug) System.out.println( trh + "\n"); 93 if(debug) System.out.println( avg + "\n"); 94 Assert.assertTrue( Math.abs( trh.newTrack().vector().get(0) - avg.average() ) 95 < small ); 96 Assert.assertTrue( Math.abs( trh.newTrack().error().get(0,0) - avg.error() ) 97 < small ); 98 Assert.assertTrue( Math.abs( trh.chisquared() - avg.chiSquared() ) 99 < small ); 100 Assert.assertTrue( trh.hits().size() == 2 ); 101 102 103 //******************************************************************** 104 105 if(debug) System.out.println( ok_prefix 106 + "------------- All tests passed. -------------" + "\n"); 107 108 109 //******************************************************************** 110 } 111 112 }