1 /* 2 * BSurfZPlane_Test.java 3 * 4 * Created on July 24, 2007, 11:10 PM 5 * 6 * $Id: BSurfZPlane_Test.java,v 1.1.1.1 2010/04/08 20:38:00 jeremy Exp $ 7 */ 8 9 package org.lcsim.recon.tracking.trfzp; 10 11 import junit.framework.TestCase; 12 import org.lcsim.recon.tracking.trfbase.CrossStat; 13 import org.lcsim.recon.tracking.trfbase.ETrack; 14 import org.lcsim.recon.tracking.trfbase.Surface; 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 19 /** 20 * 21 * @author Norman Graf 22 */ 23 public class BSurfZPlane_Test extends TestCase 24 { 25 private boolean debug; 26 /** Creates a new instance of BSurfZPlane_Test */ 27 public void testBSurfZPlane() 28 { 29 String ok_prefix = "BSurfZPlane test (I): "; 30 String error_prefix = "BSurfZPlane test (E): "; 31 32 if(debug) System.out.println( ok_prefix 33 + "------ Testing component BSurfZPlane. ------" ); 34 35 //******************************************************************** 36 37 if(debug) System.out.println( ok_prefix + "Test constructor and get routines." ); 38 BSurfZPlane bzp = new BSurfZPlane( 10.0, -20.0, 30.0, -120.0, 130.0 ); 39 if(debug) System.out.println( bzp ); 40 Assert.assertTrue( bzp.z() == 10.0 ); 41 Assert.assertTrue( bzp.xMin() == -20.0 ); 42 Assert.assertTrue( bzp.xMax() == 30.0 ); 43 Assert.assertTrue( bzp.yMin() == -120.0 ); 44 Assert.assertTrue( bzp.yMax() == 130.0 ); 45 46 //******************************************************************** 47 48 if(debug) System.out.println( ok_prefix + "Test type." ); 49 Assert.assertTrue( bzp.type() != null ); 50 Assert.assertTrue( bzp.type() == BSurfZPlane.staticType() ); 51 52 //******************************************************************** 53 54 if(debug) System.out.println( ok_prefix + "Check cloning." ); 55 Surface srf = ( bzp.newSurface()); 56 Surface srf_pure = (bzp.newPureSurface()); 57 Assert.assertTrue( srf.type().equals(BSurfZPlane.staticType()) ); 58 Assert.assertTrue( srf_pure.type().equals(SurfZPlane.staticType()) ); 59 60 //******************************************************************** 61 62 if(debug) System.out.println( ok_prefix + "Equality tests varying parameters." ); 63 Surface srf1 = new BSurfZPlane( 10.0, -20.0, 30.0, -120.0, 130.0 ); 64 Surface srf2 = new BSurfZPlane( 10.0, 20.0, 30.0, -120.0, 130.0 ); 65 Surface srf3 = new BSurfZPlane( 10.0, -20.0, 20.0, -120.0, 130.0 ); 66 Surface srf4 = new BSurfZPlane( 20.0, -20.0, 30.0, -120.0, 130.0 ); 67 Surface srf5 = new BSurfZPlane( 10.0, -20.0, 30.0, 121.0, 130.0 ); 68 Surface srf6 = new BSurfZPlane( 10.0, -20.0, 30.0, -120.0, 131.0 ); 69 Assert.assertTrue( srf.boundEqual(srf) ); 70 Assert.assertTrue( srf.boundEqual(srf1) ); 71 Assert.assertTrue( ! srf.boundEqual(srf2) ); 72 Assert.assertTrue( ! srf.boundEqual(srf3) ); 73 Assert.assertTrue( ! srf.boundEqual(srf4) ); 74 Assert.assertTrue( ! srf.boundEqual(srf5) ); 75 Assert.assertTrue( ! srf.boundEqual(srf6) ); 76 77 //******************************************************************** 78 79 if(debug) System.out.println( ok_prefix + "Test purity." ); 80 Assert.assertTrue( ! bzp.isPure() ); 81 Assert.assertTrue( srf_pure.isPure() ); 82 83 //******************************************************************** 84 85 if(debug) System.out.println( ok_prefix + "Test crossing status." ); 86 if(debug) System.out.println( bzp ); 87 TrackVector tvec = new TrackVector(); 88 TrackError terr = new TrackError(); 89 terr.set(SurfZPlane.IX,SurfZPlane.IX, 4.0); 90 terr.set(SurfZPlane.IY,SurfZPlane.IY, 4.0); 91 92 // Checking X component 93 94 tvec.set(SurfZPlane.IY, 0.0); 95 96 // completely inside 97 tvec.set(SurfZPlane.IX, 15.0); 98 ETrack trk1 = new ETrack(srf,tvec,terr); 99 if(debug) System.out.println( trk1 ); 100 CrossStat xs = srf.status(trk1); 101 if(debug) System.out.println( xs ); 102 Assert.assertTrue( xs.inBounds() ); 103 Assert.assertTrue( !xs.outOfBounds() ); 104 // inside overlapping out 105 tvec.set(SurfZPlane.IX, 25.0); 106 ETrack trk2 = new ETrack(srf,tvec,terr); 107 xs = srf.status(trk2); 108 if(debug) System.out.println( trk2 ); 109 if(debug) System.out.println( xs ); 110 Assert.assertTrue( xs.inBounds() ); 111 Assert.assertTrue( xs.outOfBounds() ); 112 // outside overlapping in 113 tvec.set(SurfZPlane.IX, 35.0); 114 ETrack trk3 = new ETrack(srf,tvec,terr); 115 if(debug) System.out.println( trk3 ); 116 xs = srf.status(trk3); 117 if(debug) System.out.println( xs ); 118 Assert.assertTrue( xs.inBounds() ); 119 Assert.assertTrue( xs.outOfBounds() ); 120 // way outside 121 tvec.set(SurfZPlane.IX, 45.0); 122 ETrack trk4 = new ETrack(srf,tvec,terr); 123 if(debug) System.out.println( trk4 ); 124 xs = srf.status(trk4); 125 if(debug) System.out.println( xs ); 126 Assert.assertTrue( !xs.inBounds() ); 127 Assert.assertTrue( xs.outOfBounds() ); 128 // inside overlapping out 129 tvec.set(SurfZPlane.IX, -15.0); 130 ETrack trk5 = new ETrack(srf,tvec,terr); 131 if(debug) System.out.println( trk5 ); 132 xs = srf.status(trk5); 133 if(debug) System.out.println( xs ); 134 Assert.assertTrue( xs.inBounds() ); 135 Assert.assertTrue( xs.outOfBounds() ); 136 // outside overlapping in 137 tvec.set(SurfZPlane.IX, -25.0); 138 ETrack trk6 = new ETrack(srf,tvec,terr); 139 if(debug) System.out.println( trk6 ); 140 xs = srf.status(trk6); 141 if(debug) System.out.println( xs ); 142 Assert.assertTrue( xs.inBounds() ); 143 Assert.assertTrue( xs.outOfBounds() ); 144 // way outside 145 tvec.set(SurfZPlane.IX, -35.0); 146 ETrack trk7 = new ETrack(srf,tvec,terr); 147 if(debug) System.out.println( trk7 ); 148 xs = srf.status(trk7); 149 if(debug) System.out.println( xs ); 150 Assert.assertTrue( !xs.inBounds() ); 151 Assert.assertTrue( xs.outOfBounds() ); 152 153 154 // Checking Y component 155 156 tvec.set(SurfZPlane.IX, 0.0); 157 158 // completely inside 159 tvec.set(SurfZPlane.IY, 115.0); 160 ETrack trk11 = new ETrack(srf,tvec,terr); 161 if(debug) System.out.println( trk11 ); 162 xs = srf.status(trk11); 163 if(debug) System.out.println( xs ); 164 Assert.assertTrue( xs.inBounds() ); 165 Assert.assertTrue( !xs.outOfBounds() ); 166 // inside overlapping out 167 tvec.set(SurfZPlane.IY, 125.0); 168 ETrack trk12 = new ETrack(srf,tvec,terr); 169 xs = srf.status(trk12); 170 if(debug) System.out.println( trk12 ); 171 if(debug) System.out.println( xs ); 172 Assert.assertTrue( xs.inBounds() ); 173 Assert.assertTrue( xs.outOfBounds() ); 174 // outside overlapping in 175 tvec.set(SurfZPlane.IY, 135.0); 176 ETrack trk13 = new ETrack(srf,tvec,terr); 177 if(debug) System.out.println( trk13 ); 178 xs = srf.status(trk13); 179 if(debug) System.out.println( xs ); 180 Assert.assertTrue( xs.inBounds() ); 181 Assert.assertTrue( xs.outOfBounds() ); 182 // way outside 183 tvec.set(SurfZPlane.IY, 145.0); 184 ETrack trk14 = new ETrack(srf,tvec,terr); 185 if(debug) System.out.println( trk14 ); 186 xs = srf.status(trk14); 187 if(debug) System.out.println( xs ); 188 Assert.assertTrue( !xs.inBounds() ); 189 Assert.assertTrue( xs.outOfBounds() ); 190 // inside overlapping out 191 tvec.set(SurfZPlane.IY, -115.0); 192 ETrack trk15 = new ETrack(srf,tvec,terr); 193 if(debug) System.out.println( trk15 ); 194 xs = srf.status(trk15); 195 if(debug) System.out.println( xs ); 196 Assert.assertTrue( xs.inBounds() ); 197 Assert.assertTrue( xs.outOfBounds() ); 198 // outside overlapping in 199 tvec.set(SurfZPlane.IY, -125.0); 200 ETrack trk16 = new ETrack(srf,tvec,terr); 201 if(debug) System.out.println( trk16 ); 202 xs = srf.status(trk16); 203 if(debug) System.out.println( xs ); 204 Assert.assertTrue( xs.inBounds() ); 205 Assert.assertTrue( xs.outOfBounds() ); 206 // way outside 207 tvec.set(SurfZPlane.IY, -135.0); 208 ETrack trk17 = new ETrack(srf,tvec,terr); 209 if(debug) System.out.println( trk17 ); 210 xs = srf.status(trk17); 211 if(debug) System.out.println( xs ); 212 Assert.assertTrue( !xs.inBounds() ); 213 Assert.assertTrue( xs.outOfBounds() ); 214 215 //******************************************************************** 216 217 if(debug) System.out.println( ok_prefix 218 + "------------- All tests passed. -------------" ); 219 220 //******************************************************************** 221 222 } 223 224 }