Commit in lcsim/src/org/lcsim/recon/vertexing/pixsim on MAIN
PixilatedSensorManager.java+35-11.7 -> 1.8
Implemented check of detector field correspondance to propagator table field

lcsim/src/org/lcsim/recon/vertexing/pixsim
PixilatedSensorManager.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- PixilatedSensorManager.java	10 Feb 2011 22:30:32 -0000	1.7
+++ PixilatedSensorManager.java	4 Mar 2011 02:30:10 -0000	1.8
@@ -13,6 +13,7 @@
 import org.lcsim.detector.solids.*;
 import java.text.*;
 import java.util.*;
+import java.lang.RuntimeException;
 import org.lcsim.util.lcio.LCIOConstants;
 import org.lcsim.util.aida.AIDA;
 
@@ -21,7 +22,7 @@
  * for each event (only sensors which have hits in them are created)
  *
  * @author Nick Sinev
- * @version $Id: PixilatedSensorManager.java,v 1.7 2011/02/10 22:30:32 sinev Exp $
+ * @version $Id: PixilatedSensorManager.java,v 1.8 2011/03/04 02:30:10 sinev Exp $
  */
 
 public class PixilatedSensorManager extends Driver
@@ -721,6 +722,7 @@
   
  public void process(EventHeader event)
  {
+  int tabfld=-1;
   Detector cdet=event.getDetector();
   if(cdet!=det)
   {
@@ -731,6 +733,7 @@
   {
    firstcall=false;
    setup();
+
    vxbrels.clear();
    vxecpels.clear();
    vxecmels.clear();
@@ -744,6 +747,16 @@
     {
      if(bcpr.useTable(bar_prop_tname,det)) System.out.println("Using table for barrel sensor carrier propagator");
     }
+    tabfld = extractFieldFromName(bar_prop_tname);
+    double[] pos = {0,0,0};
+    double[] field = det.getFieldMap().getField(pos);
+    if ((int) (field[2]) != tabfld)
+    {
+     System.out.println
+      ("Detector field "+field[2]+" does not correspond to propagators field: "+tabfld+" Tesla\n"); 
+     throw new RuntimeException("Detector and table fields mismatch");
+    }
+
    }    
    if(use_prop_tab_ec_pl)
    {
@@ -1166,4 +1179,25 @@
 
  } // end function process
 
+ private int extractFieldFromName(String name)
+ {
+  int val = -1;
+  int pst = -1;
+  String pstr;
+  String nmbs; 
+  pst=name.indexOf("_B");
+  if(pst != -1)
+  {
+   pst+=2;
+   pstr=name.substring(pst,name.length());
+   int pen = pstr.indexOf("_");
+   if(pen > 0)
+   {
+    nmbs=pstr.substring(0,pen);
+    val=Integer.parseInt(nmbs.trim());
+   }
+  }
+  return val; 
+ }
+
 }
CVSspam 0.2.8