lcsim/src/org/lcsim/plugin/browser
diff -u -r1.5 -r1.6
--- MCParticleTableModel.java 5 Apr 2006 18:42:18 -0000 1.5
+++ MCParticleTableModel.java 16 Aug 2007 21:09:24 -0000 1.6
@@ -1,10 +1,15 @@
package org.lcsim.plugin.browser;
import hep.physics.particle.properties.UnknownParticleIDException;
-import javax.swing.table.AbstractTableModel;
+
+import java.util.ArrayList;
import java.util.List;
-import org.lcsim.event.EventHeader.LCMetaData;
+
+import javax.swing.table.AbstractTableModel;
+
import org.lcsim.event.MCParticle;
+import org.lcsim.event.EventHeader.LCMetaData;
+import org.lcsim.event.MCParticle.SimulatorStatus;
/**
*
@@ -15,8 +20,8 @@
private List particles;
private static Class floatArrayClass = new float[0].getClass();
private static Class doubleArrayClass = new double[0].getClass();
- private static final String[] columns = {"N","Type","Status","Parent","Energy","Momentum","Start","End","Mass","Charge","Time"};
- private static final Class[] classes = {Integer.class, Integer.class, String.class, String.class, Double.class, floatArrayClass, doubleArrayClass, doubleArrayClass, Float.class, Float.class, Float.class};
+ private static final String[] columns = {"N","Type","Generator Status","Simulator Status","Parent","Energy","Momentum","Start","End","Mass","Charge","Time"};
+ private static final Class[] classes = {Integer.class, Integer.class, String.class, String.class, String.class, Double.class, floatArrayClass, doubleArrayClass, doubleArrayClass, Float.class, Float.class, Float.class};
public boolean canDisplay(Class c)
{
@@ -53,19 +58,20 @@
case 0: return row;
case 1: return p.getType().getName();
case 2: return convert(p.getGeneratorStatus());
- case 3: return parents(p);
- case 4: return p.getEnergy();
- case 5: return p.getMomentum().v();
- case 6: return p.getOrigin().v();
- case 7:
+ case 3: return convert(p.getSimulatorStatus());
+ case 4: return parents(p);
+ case 5: return p.getEnergy();
+ case 6: return p.getMomentum().v();
+ case 7: return p.getOrigin().v();
+ case 8:
try
{
return p.getEndPoint().v();
}
catch (Exception x) { return null; }
- case 8: return p.getMass();
- case 9: return p.getCharge();
- case 10: return p.getProductionTime();
+ case 9: return p.getMass();
+ case 10: return p.getCharge();
+ case 11: return p.getProductionTime();
default: return " ";
}
}
@@ -74,6 +80,41 @@
return "id="+x.getPDGID()+"?";
}
}
+ static String convert(SimulatorStatus status)
+ {
+ List<String> s = new ArrayList<String>();
+ if (status.hasLeftDetector())
+ {
+ s.add("Left");
+ }
+ if (status.isBackscatter())
+ {
+ s.add("Backscatter");
+ }
+ if (status.isCreatedInSimulation())
+ {
+ s.add("Created In Simulation");
+ }
+ if (status.isDecayedInCalorimeter())
+ {
+ s.add("Decayed In Calorimeter");
+ }
+ if (status.isDecayedInTracker())
+ {
+ s.add("Decayed In Tracker");
+ }
+ if (status.isStopped())
+ {
+ s.add("Stopped");
+ }
+ StringBuffer buff = new StringBuffer();
+ for (int i=0; i<s.size(); i++)
+ {
+ buff.append(s.get(i)+",");
+ }
+ buff.setLength(Math.max(0,buff.length()-1));
+ return buff.toString();
+ }
static String convert(int status)
{
switch (status)