View Javadoc

1   package org.lcsim.plugin.browser;
2   
3   
4   
5   import org.lcsim.event.CalorimeterHit;
6   import org.lcsim.event.SimCalorimeterHit;
7   import org.lcsim.geometry.IDDecoder;
8   
9   /**
10   * @author tonyj
11   */
12  class CalorimeterHitTableModel extends CellIDTableModel
13  {
14      private static final String[] defaultColumns =
15      { "id", "type", "raw E (GeV)", "corr E (GeV)", "E error", "X (mm)", "Y (mm)", "Z (mm)", "time (ns)" };
16  
17      CalorimeterHitTableModel()
18      {
19         super(defaultColumns);
20      }
21      
22      public boolean canDisplay(Class c)
23      {
24          if(SimCalorimeterHit.class.isAssignableFrom(c)) return false;
25          return CalorimeterHit.class.isAssignableFrom(c);
26      }
27  
28      public Class getColumnClass(int row)
29      {
30          return row < getFieldCount() ? (getIDDecoder() == null) ? Long.class : Integer.class : Double.class;
31      }
32  
33      public Object getValueAt(int row, int column)
34      {
35          CalorimeterHit hit = (CalorimeterHit) getHit(row);
36          int fieldCount = getFieldCount();
37  
38          if (column < fieldCount)
39          {
40              IDDecoder decoder = getIDDecoder();
41              if (decoder != null) decoder.setID(hit.getCellID());
42              return decoder == null ? hit.getCellID() : decoder.getValue(column);
43          }
44          else
45          {
46              switch (column - fieldCount)
47              {
48                  case 0:
49                      return hit.getType();
50                  case 1:
51                      try {
52                          return hit.getRawEnergy();
53                      } catch (Exception e) {
54                          return 0.;
55                      }
56                  case 2:
57                      return hit.getCorrectedEnergy();
58                  case 3:
59                      return hit.getEnergyError();
60                  case 4:
61                      return hit.getPosition()[0];
62                  case 5:
63                      return hit.getPosition()[1];
64                  case 6:
65                      return hit.getPosition()[2];
66                  case 7:
67                      return hit.getTime();
68                  default:
69                      return " ";
70              }
71          }
72      }
73  }