lcsim/src/org/lcsim/recon/vertexing/pixsim
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;
+ }
+
}