View Javadoc

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 }