Print

Print


Commit in lcsim/src/org/lcsim/mc/fast/tracking on MAIN
LookupTable.java+26-51.1 -> 1.2
Handle conversion from cm in output from lcdtrk to mm in org.lcsim.

lcsim/src/org/lcsim/mc/fast/tracking
LookupTable.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- LookupTable.java	1 Feb 2005 19:42:47 -0000	1.1
+++ LookupTable.java	26 Aug 2005 05:26:19 -0000	1.2
@@ -9,28 +9,49 @@
 
 class LookupTable
 {
+    // cosine theta
    private double[] m_key1;
+    // momentum
    private double[] m_key2;
    private double[][] m_matrix;
    private int m_numBins1;
    private int m_numBins2;
 
-   LookupTable(BufferedReader in) throws IOException
+   // vector      units         
+   // 1 dr        [ cm ]         10.
+   // 2 dphi      [ ]             1.
+   // 3 domega    [ cm-1 ]         .1
+   // 4 dz        [ cm ]         10.
+   // 5 dlambda   [ ]             1.
+   //
+   double[] conversionFromCmToMm = {10.0, 1.0, 0.1, 10.0, 1.0};
+   
+   double[][] conversionFromCmToMmMatrix = { {100.00, 10.00,  1.00, 100.00,  10.00},
+                                             { 10.00,  1.00,  0.10,  10.00,   1.00},
+                                             {  1.00,  0.10,  0.01,   1.00,   0.10},
+                                             {100.00, 10.00,  1.00, 100.00,  10.00},
+                                             { 10.00,  1.00,  0.10,  10.00,   1.00} };
+   
+   LookupTable(BufferedReader in, int iTerm, int jTerm) throws IOException
    {
+       // read in the number of cosine theta points
       int m_numBins1 = Integer.parseInt(in.readLine());
+      
+      // read in the number of momentum points
       int m_numBins2 = Integer.parseInt(in.readLine());
+      
       m_matrix = new double[m_numBins1][m_numBins2];
       m_key1 = new double[m_numBins1];
       m_key2 = new double[m_numBins2];
 
-      for (int i = 0; i < m_numBins1; i++)
+      for (int i = 0; i < m_numBins1; i++) // i is # of cosine theta bin
       {
-         m_key1[i] = Double.valueOf(in.readLine()).doubleValue();
-         for (int j = 0; j < m_numBins2; j++)
+         m_key1[i] = Double.valueOf(in.readLine()).doubleValue();  // cosine theta
+         for (int j = 0; j < m_numBins2; j++) // j is # of momentum bin
          {
             StringTokenizer t = new StringTokenizer(in.readLine());
             m_key2[j] = Double.valueOf(t.nextToken()).doubleValue();
-            m_matrix[i][j] = Double.valueOf(t.nextToken()).doubleValue();
+            m_matrix[i][j] = Double.valueOf(t.nextToken()).doubleValue()*conversionFromCmToMmMatrix[iTerm][jTerm]; // momentum
          }
       }
       if (!in.readLine().equals("end"))
CVSspam 0.2.8