View Javadoc

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 }