Print

Print


Commit in lcsim/src/org/lcsim on MAIN
contrib/seedtracker/MaterialManager.java+1-11.4 -> 1.5
                   /HitIdentifier.java+6-31.2 -> 1.3
util/heprep/HelicalTrackHitConverter.java+97added 1.1
           /LCSimHepRepConverter.java+11.17 -> 1.18
fit/helicaltrack/HelicalTrackHit.java+68-21.4 -> 1.5
                /HelicalTrackHitDriver.java+2-11.6 -> 1.7
                /HelicalTrack3DHit.java+7-11.2 -> 1.3
+182-8
1 added + 6 modified, total 7 files
CD - Lots of new stuff for HelicalTrackHits... including event display and implementing TrackerHit...

lcsim/src/org/lcsim/contrib/seedtracker
MaterialManager.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- MaterialManager.java	18 Feb 2008 23:26:24 -0000	1.4
+++ MaterialManager.java	14 Mar 2008 17:49:09 -0000	1.5
@@ -271,7 +271,7 @@
             double X0 = 10. * mat.getRadiationLength() / mat.getDensity();
             double wgt = vol / X0;
             zwgt += z0 * wgt;
-            totwgt += wgt;
+            totwgt += wgt;  
             
         }
         if (totwgt > 0.) zwgt /= totwgt;

lcsim/src/org/lcsim/contrib/seedtracker
HitIdentifier.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- HitIdentifier.java	4 Feb 2008 20:51:32 -0000	1.2
+++ HitIdentifier.java	14 Mar 2008 17:49:09 -0000	1.3
@@ -10,13 +10,11 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.lcsim.contrib.SiStripSim.SiTrackerHit;
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.DetectorIdentifierHelper;
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.identifier.IIdentifierHelper;
-import org.lcsim.detector.identifier.IExpandedIdentifier;
-import org.lcsim.detector.identifier.IIdentifierDictionary;
-import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
 import org.lcsim.event.TrackerHit;
 import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
 import org.lcsim.contrib.onoprien.tracking.hitmaking.OldTrackerHit;
@@ -60,6 +58,11 @@
                 delist.add(cluster.getSensor().getDetectorElement());
             }
         }
+        
+        if (thit instanceof SiTrackerHit){
+            SiTrackerHit sihit =(SiTrackerHit) thit; 
+            delist.add(sihit.getSensor());  
+        }
         return delist;
     }
     

lcsim/src/org/lcsim/util/heprep
HelicalTrackHitConverter.java added at 1.1
diff -N HelicalTrackHitConverter.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ HelicalTrackHitConverter.java	14 Mar 2008 17:49:10 -0000	1.1
@@ -0,0 +1,97 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.lcsim.util.heprep;
+
+import hep.graphics.heprep.HepRepFactory;
+import hep.graphics.heprep.HepRepInstance;
+import hep.graphics.heprep.HepRepInstanceTree;
+import hep.graphics.heprep.HepRepType;
+import hep.graphics.heprep.HepRepTypeTree;
+import java.awt.Color;
+import java.util.List;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.EventHeader.LCMetaData;
+import org.lcsim.fit.helicaltrack.HelicalTrack2DHit;
+import org.lcsim.fit.helicaltrack.HelicalTrack3DHit;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
+
+/**
+ * HepRepConverter for display of the hits of Richard Partridge's framework. 
+ * @author cozzy
+ */
+public class HelicalTrackHitConverter implements HepRepCollectionConverter{
+    
+    public boolean canHandle(Class k){
+        return HelicalTrackHit.class.isAssignableFrom(k);
+    }
+    
+    public void convert (EventHeader event, List collection, HepRepFactory factory, HepRepTypeTree typeTree, HepRepInstanceTree instanceTree){
+        
+        LCMetaData meta = event.getMetaData(collection);
+        String name = meta.getName();
+        
+        HepRepType type3d = factory.createHepRepType(typeTree,name+"3d");
+        type3d.addAttValue("layer",LCSimHepRepConverter.HITS_LAYER);
+        type3d.addAttValue("drawAs","Point");
+        type3d.addAttValue("color",Color.ORANGE);
+        type3d.addAttValue("fill",true);
+        type3d.addAttValue("fillColor",Color.ORANGE);
+        type3d.addAttValue("MarkName","Box");
+        type3d.addAttDef("dEdx", "Hit dEdx", "physics", "");
+        type3d.addAttDef("time", "Hit time", "physics", "");
+        type3d.addAttDef("flagValue", "BarrelEndcapFlag value","physics","");
+        
+        HepRepType type2d = factory.createHepRepType(typeTree,name+"2d");
+        type2d.addAttValue("layer",LCSimHepRepConverter.HITS_LAYER);
+        type2d.addAttValue("drawAs","Line");
+        type2d.addAttValue("color",Color.ORANGE);
+        type2d.addAttDef("dEdx", "Hit dEdx", "physics", "");
+        type2d.addAttDef("time", "Hit time", "physics", "");
+        
+        HepRepType typeCenter = factory.createHepRepType(typeTree,name+"2dSegmentCenters");
+        typeCenter.addAttValue("layer",LCSimHepRepConverter.HITS_LAYER);
+        typeCenter.addAttValue("drawAs","Point");
+        typeCenter.addAttValue("color",Color.ORANGE);
+        typeCenter.addAttValue("fill",true);
+        typeCenter.addAttValue("fillColor",Color.ORANGE);
+        typeCenter.addAttValue("MarkName","Box");
+        typeCenter.addAttDef("dEdx", "Hit dEdx", "physics", "");
+        typeCenter.addAttDef("time", "Hit time", "physics", "");
+        
+        for (HelicalTrackHit hit : (List<HelicalTrackHit>)collection){
+            
+            double[] pos = hit.getPosition();
+            
+            if (hit instanceof HelicalTrack3DHit) {
+                HepRepInstance instance = factory.createHepRepInstance(instanceTree,type3d);
+                instance.addAttValue("dEdx",hit.getdEdx());
+                instance.addAttValue("time",hit.getTime());
+                String flagValue=((HelicalTrack3DHit)hit).getBarrelEndcapFlag().toString();
+                instance.addAttValue("flagValue",flagValue);
+                factory.createHepRepPoint(instance, pos[0], pos[1], pos[2]);        
+            }
+            
+            else if (hit instanceof HelicalTrack2DHit){
+                
+                HepRepInstance instance2d = factory.createHepRepInstance(instanceTree,type2d);
+                instance2d.addAttValue("dEdx",hit.getTrackerHit().getdEdx());
+                instance2d.addAttValue("time",hit.getTrackerHit().getTime());
+                HelicalTrack2DHit h = (HelicalTrack2DHit) hit;
+                factory.createHepRepPoint(instance2d, pos[0], pos[1], h.zmin());
+                factory.createHepRepPoint(instance2d, pos[0], pos[1], h.zmax());
+                
+                HepRepInstance instanceCenter = factory.createHepRepInstance(instanceTree,typeCenter); 
+                instanceCenter.addAttValue("dEdx",hit.getTrackerHit().getdEdx()); 
+                instanceCenter.addAttValue("time",hit.getTrackerHit().getTime());
+                factory.createHepRepPoint(instanceCenter,pos[0],pos[1],pos[2]);
+            }
+
+            
+        }
+        
+    }
+
+}

lcsim/src/org/lcsim/util/heprep
LCSimHepRepConverter.java 1.17 -> 1.18
diff -u -r1.17 -r1.18
--- LCSimHepRepConverter.java	10 Jan 2008 00:57:58 -0000	1.17
+++ LCSimHepRepConverter.java	14 Mar 2008 17:49:10 -0000	1.18
@@ -49,6 +49,7 @@
             register(new Hep3VectorConverter());
             register(new DisplayHitModules());
             register(new SiTrackerHitStrip1DConverter()); 
+            register(new HelicalTrackHitConverter());
         }
         catch (Exception x)
         {

lcsim/src/org/lcsim/fit/helicaltrack
HelicalTrackHit.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- HelicalTrackHit.java	7 Feb 2008 18:20:51 -0000	1.4
+++ HelicalTrackHit.java	14 Mar 2008 17:49:10 -0000	1.5
@@ -7,18 +7,24 @@
 
 package org.lcsim.fit.helicaltrack;
 
-import hep.physics.vec.BasicHep3Vector;
 
 import java.lang.Comparable;
 
+import java.util.ArrayList;
+import java.util.List;
+import org.lcsim.contrib.onoprien.tracking.hit.DigiTrackerHit;
+import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
+import org.lcsim.contrib.onoprien.tracking.hitmaking.OldTrackerHit;
+import org.lcsim.event.MCParticle;
 import org.lcsim.event.TrackerHit;
+import org.lcsim.event.base.BaseTrackerHitMC;
 
 /**
  * Encapsulate the hit information needed by HelicalTrackFitter
  * @author Richard Partridge
  * @version 1.0
  */
-public class HelicalTrackHit implements Comparable {
+public class HelicalTrackHit implements Comparable, TrackerHit {
     
     private TrackerHit _trackerhit;
     private double _x;
@@ -159,4 +165,64 @@
         if (_phi < 0.) _phi += 2. * Math.PI;
         return;
     }
+
+    /**
+     * Returns a list of MCParticles belonging to this hit. 
+     * null is returned if no list can be found. 
+     * 
+     * @return A list of MCParticles, or null if none can be retrieved. 
+     */
+    public List<MCParticle> getMCParticles(){
+        
+        //BaseTrackerHitMC has this method
+        if (_trackerhit instanceof BaseTrackerHitMC)
+            return ((BaseTrackerHitMC)_trackerhit).mcParticles();
+        
+        //Any of the SiStripSip BaseTrackerHits return a set of MCParticles, which must be converted to a list 
+        else if (_trackerhit instanceof org.lcsim.contrib.SiStripSim.BaseTrackerHit) {
+            List<MCParticle> out = new ArrayList<MCParticle>(); 
+            out.addAll(((org.lcsim.contrib.SiStripSim.BaseTrackerHit)_trackerhit).getMCParticles()); 
+            return out; 
+        }
+        
+        //Getting this out of OldTrackerHit is slightly more convoluted... 
+        else if (_trackerhit instanceof OldTrackerHit){
+            OldTrackerHit h = (OldTrackerHit) _trackerhit;           
+            List<MCParticle> out = new ArrayList<MCParticle>();
+            for (TrackerCluster cluster : h.getClusters()) {
+                for (DigiTrackerHit dhit : cluster.getDigiHits()){
+                    for (DigiTrackerHit dhit2 : dhit.getElementalHits()){
+                        MCParticle p = dhit2.getMCParticle(); 
+                        if(!out.contains(p)) out.add(p); 
+                    }
+                }
+            }
+            return out; 
+        }
+        return null; 
+    }
+    
+    public double[] getPosition() {
+        return _trackerhit.getPosition();
+    }
+
+    public double[] getCovMatrix() {
+        return _trackerhit.getCovMatrix();
+    }
+
+    public double getdEdx() {
+        return _trackerhit.getdEdx();
+    }
+
+    public double getTime() {
+        return _trackerhit.getTime();
+    }
+
+    public int getType() {
+        return _trackerhit.getType();
+    }
+
+    public List getRawHits() {
+        return _trackerhit.getRawHits();
+    }
 }
\ No newline at end of file

lcsim/src/org/lcsim/fit/helicaltrack
HelicalTrackHitDriver.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- HelicalTrackHitDriver.java	29 Feb 2008 18:40:39 -0000	1.6
+++ HelicalTrackHitDriver.java	14 Mar 2008 17:49:10 -0000	1.7
@@ -25,6 +25,7 @@
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.TrackerHit;
+import org.lcsim.fit.helicaltrack.HelicalTrackHit;
 import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
 import org.lcsim.util.Driver;
 
@@ -203,7 +204,7 @@
         }
         
         //  Put the HelicalTrackHits back into the event
-        event.put(_outname, helhits);
+        event.put(_outname, helhits,HelicalTrackHit.class,0);
     }
     
     /**

lcsim/src/org/lcsim/fit/helicaltrack
HelicalTrack3DHit.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- HelicalTrack3DHit.java	6 Feb 2008 02:33:50 -0000	1.2
+++ HelicalTrack3DHit.java	14 Mar 2008 17:49:10 -0000	1.3
@@ -61,4 +61,10 @@
     public boolean isBarrel() {
         return _beflag == BarrelEndcapFlag.BARREL;
     }
-}
\ No newline at end of file
+    
+    public BarrelEndcapFlag getBarrelEndcapFlag(){
+        return _beflag; 
+    }
+    
+}
+    
\ No newline at end of file
CVSspam 0.2.8