View Javadoc

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 }