View Javadoc

1   package org.lcsim.util.heprep;
2   
3   import hep.graphics.heprep.HepRepFactory;
4   import hep.graphics.heprep.HepRepInstance;
5   import hep.graphics.heprep.HepRepPoint;
6   import hep.graphics.heprep.HepRepType;
7   import hep.graphics.heprep.HepRepTypeTree;
8   import hep.graphics.heprep.HepRepInstanceTree;
9   import java.awt.Color;
10  import java.util.List;
11  import org.lcsim.event.EventHeader;
12  import org.lcsim.event.EventHeader.LCMetaData;
13  import org.lcsim.event.MCParticle;
14  import org.lcsim.event.SimTrackerHit;
15  
16  /**
17   *
18   * @author tonyj
19   * @version $Id: SimTrackerHitConverter.java,v 1.3 2006/04/05 11:54:14 tonyj Exp $
20   */
21  class SimTrackerHitConverter implements HepRepCollectionConverter
22  {
23     public boolean canHandle(Class k)
24     {
25        return SimTrackerHit.class.isAssignableFrom(k);
26     }
27     public void convert(EventHeader event, List collection, HepRepFactory factory, HepRepTypeTree typeTree, HepRepInstanceTree instanceTree)
28     {
29        LCMetaData meta = event.getMetaData(collection);
30        String name = meta.getName();
31        
32        HepRepType typeX = factory.createHepRepType(typeTree, name);
33        typeX.addAttValue("layer",LCSimHepRepConverter.HITS_LAYER);
34        typeX.addAttValue("drawAs","Point");
35        typeX.addAttValue("color",Color.GREEN);
36        typeX.addAttValue("fill",true);
37        typeX.addAttValue("fillColor",Color.GREEN);
38        typeX.addAttValue("MarkName","Box");
39        typeX.addAttDef("dEdx", "Hit dEdx", "physics", "");
40        typeX.addAttDef("time", "Hit time", "physics", "");
41        typeX.addAttDef("mcEnergy", "MC Particle Energy", "physics", "");
42        
43        for (SimTrackerHit hit : (List<SimTrackerHit>) collection)
44        {
45           double[] pos = hit.getPoint();
46           HepRepInstance instanceX = factory.createHepRepInstance(instanceTree, typeX);
47           instanceX.addAttValue("dEdx",hit.getdEdx());
48           instanceX.addAttValue("time",hit.getTime());
49           MCParticle particle = hit.getMCParticle();
50           if (particle != null) instanceX.addAttValue("mcEnergy",particle.getEnergy());
51           HepRepPoint pp = factory.createHepRepPoint(instanceX,pos[0],pos[1],pos[2]);
52        }
53     }
54  }