1 /* 2 * ClusterFindCyl_Test.java 3 * 4 * Created on July 24, 2007, 8:58 PM 5 * 6 * $Id: ClusterFindCyl_Test.java,v 1.1.1.1 2010/04/08 20:38:00 jeremy Exp $ 7 */ 8 9 package org.lcsim.recon.tracking.trfcyl; 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.TrackError; 16 import org.lcsim.recon.tracking.trfbase.TrackVector; 17 import org.lcsim.recon.tracking.trfutil.Assert; 18 import org.lcsim.recon.tracking.trfutil.TRFMath; 19 20 /** 21 * 22 * @author Norman Graf 23 */ 24 public class ClusterFindCyl_Test extends TestCase 25 { 26 private boolean debug; 27 /** Creates a new instance of ClusterFindCyl_Test */ 28 public void testClusterFindCyl() 29 { 30 String component = "ClusterFindCyl"; 31 String ok_prefix = component + " (I): "; 32 String error_prefix = component + " test (E): "; 33 34 if(debug) System.out.println( ok_prefix 35 + "-------- Testing component " + component 36 + ". --------" ); 37 38 //******************************************************************** 39 40 if(debug) System.out.println( ok_prefix + "Test constructor." ); 41 double r1 = 10.0; 42 ClusterFindCyl find1 = new ClusterFindCyl(r1,0.0,10.0); 43 if(debug) System.out.println( find1 ); 44 45 //******************************************************************** 46 47 if(debug) System.out.println( ok_prefix + "Check the surface." ); 48 SurfCylinder srf1 = new SurfCylinder(r1); 49 Assert.assertTrue( srf1.equals(find1.surface()) ); 50 51 //******************************************************************** 52 53 if(debug) System.out.println( ok_prefix + "Add phi clusters to finder." ); 54 Cluster clu11 = new ClusCylPhi(r1,1.23,0.02); 55 Cluster clu12 = new ClusCylPhi(r1,5.29,0.02); 56 Cluster clu13 = new ClusCylPhi(r1,2.38+TRFMath.TWOPI,0.02); 57 Cluster clu14 = new ClusCylPhi(r1,4.17,0.02); 58 Cluster clu15 = new ClusCylPhi(r1,2.34,0.02); 59 find1.addCluster(clu11); 60 find1.addCluster(clu12); 61 find1.addCluster(clu13); 62 find1.addCluster(clu14); 63 int stat = find1.addCluster(clu15); 64 if(debug) System.out.println( find1 ); 65 Assert.assertTrue( stat == 0 ); 66 if(debug) System.out.println("size= "+find1.clusters().size()); 67 Assert.assertTrue( find1.clusters().size() == 5 ); 68 69 //******************************************************************** 70 71 if(debug) System.out.println( ok_prefix + "Find nearby clusters." ); 72 TrackVector vec = new TrackVector(); 73 vec.set(0, 2.36); 74 TrackError err = new TrackError(); 75 err.set(0,0 , 0.0001); 76 err.set(1,1 , 0.01); 77 err.set(2,2 , 0.01); 78 err.set(3,3 , 0.01); 79 err.set(4,4 , 0.01); 80 ETrack tre1 = new ETrack( srf1.newPureSurface(), vec, err ); 81 if(debug) System.out.println( tre1 ); 82 List nearby_clusters = find1.clusters(tre1); 83 Assert.assertTrue( nearby_clusters.size() == 2 ); 84 if(debug) System.out.println( nearby_clusters.get(0) ); 85 if(debug) System.out.println( nearby_clusters.get(nearby_clusters.size()-1) ); 86 Assert.assertTrue( nearby_clusters.get(0).equals(clu15) ); 87 Assert.assertTrue( nearby_clusters.get(nearby_clusters.size()-1).equals(clu13) ); 88 89 //******************************************************************** 90 91 if(debug) System.out.println( ok_prefix + "Drop clusters." ); 92 find1.dropClusters(); 93 Assert.assertTrue( find1.clusters().size() == 0 ); 94 Assert.assertTrue( find1.clusters(tre1).size() == 0 ); 95 96 //******************************************************************** 97 98 if(debug) System.out.println( ok_prefix + "Find a single cluster." ); 99 find1.addCluster(clu13); 100 Assert.assertTrue( find1.clusters().size() == 1 ); 101 Assert.assertTrue( find1.clusters(tre1).size() == 1 ); 102 103 //******************************************************************** 104 105 if(debug) System.out.println( ok_prefix + "Construct a phiz finder." ); 106 double r2 = 20.0; 107 double stereo2 = 0.01; 108 ClusterFindCyl find2 = new ClusterFindCyl(r2,stereo2,10.0); 109 if(debug) System.out.println( find2 ); 110 111 //******************************************************************** 112 113 if(debug) System.out.println( ok_prefix + "Add phiz clusters to finder." ); 114 Cluster clu21 = new ClusCylPhiZ(r2,1.23,0.02,stereo2); 115 Cluster clu22 = new ClusCylPhiZ(r2,5.29,0.02,stereo2); 116 Cluster clu23 = new ClusCylPhiZ(r2,2.38-TRFMath.TWOPI,0.02,stereo2); 117 Cluster clu24 = new ClusCylPhiZ(r2,4.17,0.02,stereo2); 118 Cluster clu25 = new ClusCylPhiZ(r2,2.34,0.02,stereo2); 119 find2.addCluster(clu21); 120 find2.addCluster(clu22); 121 find2.addCluster(clu23); 122 find2.addCluster(clu24); 123 stat = find2.addCluster(clu25); 124 Assert.assertTrue( stat == 0 ); 125 Assert.assertTrue( find2.clusters().size() == 5 ); 126 127 //******************************************************************** 128 129 if(debug) System.out.println( ok_prefix + "Find nearby phiz clusters." ); 130 SurfCylinder srf2 = new SurfCylinder(r2); 131 vec.set(1 , 35.0); 132 vec.set(0 , 2.36 - stereo2*vec.get(1)); 133 ETrack tre2 = new ETrack( srf2.newPureSurface(), vec, err ); 134 if(debug) System.out.println( tre2 ); 135 nearby_clusters = find2.clusters(tre2); 136 Assert.assertTrue( nearby_clusters.size() == 2 ); 137 if(debug) System.out.println( nearby_clusters.get(0) ); 138 if(debug) System.out.println( nearby_clusters.get(nearby_clusters.size()-1) ); 139 Assert.assertTrue( nearby_clusters.get(0).equals(clu25) ); 140 Assert.assertTrue( nearby_clusters.get(nearby_clusters.size()-1).equals(clu23) ); 141 142 if(debug) System.out.println( ok_prefix 143 + "------------- All tests passed. -------------" ); 144 145 //******************************************************************** 146 147 } 148 149 }