1 package org.lcsim.plugin.browser;
2
3 import org.lcsim.event.SimTrackerHit;
4 import org.lcsim.geometry.IDDecoder;
5
6
7
8
9 class SimTrackerHitTableModel extends CellIDTableModel
10 {
11 private static final String[] defaultColumns =
12 { "id", "x (mm)", "y (mm)", "z (mm)", "dEdx (GeV)", "time (ns)", "px (GeV)", "py (GeV)", "pz (GeV)", "pathLength (mm)" };
13
14 SimTrackerHitTableModel()
15 {
16 super(defaultColumns);
17 }
18
19 public boolean canDisplay(Class c)
20 {
21 return SimTrackerHit.class.isAssignableFrom(c);
22 }
23
24 public Class getColumnClass(int row)
25 {
26 return row < getFieldCount() ? Integer.class : Double.class;
27 }
28
29 public Object getValueAt(int row, int column)
30 {
31 SimTrackerHit hit = (SimTrackerHit) getHit(row);
32 int fieldCount = getFieldCount();
33
34 if (column < fieldCount)
35 {
36 IDDecoder decoder = getIDDecoder();
37 if (decoder != null) decoder.setID(hit.getCellID());
38 return decoder == null ? hit.getCellID() : decoder.getValue(column);
39 }
40 else
41 switch (column - fieldCount)
42 {
43 case 0:
44 return hit.getPoint()[0];
45 case 1:
46 return hit.getPoint()[1];
47 case 2:
48 return hit.getPoint()[2];
49 case 3:
50 return hit.getdEdx();
51 case 4:
52 return hit.getTime();
53 case 5:
54 return hit.getMomentum()[0];
55 case 6:
56 return hit.getMomentum()[1];
57 case 7:
58 return hit.getMomentum()[2];
59 case 8:
60 return hit.getPathLength();
61 default:
62 return " ";
63 }
64 }
65 }