Commit in lcsim/src/org/lcsim/fit/helicaltrack on MAIN
HelicalTrackHitDriver.java+31-311.32 -> 1.33
HitIdentifier.java+24-41.4 -> 1.5
+55-35
2 modified files
Add methods to get identifier info from the SimTrackerHit

lcsim/src/org/lcsim/fit/helicaltrack
HelicalTrackHitDriver.java 1.32 -> 1.33
diff -u -r1.32 -r1.33
--- HelicalTrackHitDriver.java	24 Feb 2009 21:24:53 -0000	1.32
+++ HelicalTrackHitDriver.java	21 Apr 2009 23:11:29 -0000	1.33
@@ -82,7 +82,7 @@
         Digitized
     }
     private StereoHitMaker _crosser = new StereoHitMaker(2., 10.);
-    private HitIdentifier ID = new HitIdentifier();
+    private HitIdentifier _ID = new HitIdentifier();
     private SegmentationManager _segman;
     private List<String> _vscol = new ArrayList<String>();
     private List<String> _bscol = new ArrayList<String>();
@@ -122,7 +122,7 @@
                 SymmetricMatrix cov = new SymmetricMatrix(3, hit.getCovMatrix(), true);
                 TrackerHit ohit = hit;
                 
-                try {
+//                try {
                     //create a BaseTrackerHitMC from a BaseTrackerHit if necessary
                     if (!(hit instanceof BaseTrackerHitMC)){
                         List<SimTrackerHit> thesehits = new ArrayList<SimTrackerHit>();
@@ -137,26 +137,26 @@
                     }
                     
                     SimTrackerHit simhit = ((BaseTrackerHitMC)hit).getSimHits().get(0);
-                    IDetectorElementContainer cont = DetectorElementStore.getInstance().find(simhit.getIdentifier());
-                    if (cont.isEmpty()) {
-                        throw new RuntimeException("Detector Container is empty!");
-                    } else {
-                        IDetectorElement de = cont.get(0);
-                        HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(), hit.getRawHits(),
-                                ID.getName(de), ID.getLayer(de), ID.getBarrelEndcapFlag(de));
+                    HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(), hit.getRawHits(),
+                                _ID.getName(simhit), _ID.getLayer(simhit), _ID.getBarrelEndcapFlag(simhit));
+//                    IDetectorElementContainer cont = DetectorElementStore.getInstance().find(simhit.getIdentifier());
+//                    if (cont.isEmpty()) {
+//                        throw new RuntimeException("Detector Container is empty!");
+//                    } else {
+//                        IDetectorElement de = cont.get(0);
                         
-                        for (MCParticle p : ((BaseTrackerHitMC)hit).mcParticles()) hthit.addMCParticle(p);
-                        hitrelations.add(new MyLCRelation(hthit, ohit));
-                        helhits.add(hthit);
-                    }
-                    
-                } catch(Exception e) {
-                    System.out.println("Warning, could not complete Identification for smeared hits. Reason: "+e.getMessage());
-                    HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(),
-                            hit.getRawHits(), "Unknown", 0, BarrelEndcapFlag.BARREL);
+                    for (MCParticle p : ((BaseTrackerHitMC)hit).mcParticles()) hthit.addMCParticle(p);
                     hitrelations.add(new MyLCRelation(hthit, ohit));
                     helhits.add(hthit);
-                }
+//                  }
+//
+//                } catch(Exception e) {
+//                    System.out.println("Warning, could not complete Identification for smeared hits. Reason: "+e.getMessage());
+//                    HelicalTrackHit hthit = new HelicalTrack3DHit(pos, cov, hit.getdEdx(), hit.getTime(),
+//                            hit.getRawHits(), "Unknown", 0, BarrelEndcapFlag.BARREL);
+//                    hitrelations.add(new MyLCRelation(hthit, ohit));
+//                    helhits.add(hthit);
+//                }
             }
         }
         
@@ -361,10 +361,10 @@
         double dEdx = hit.getSignal();
         double time = hit.getTime();
         IDetectorElement de = s.getDetectorElement();
-        String det = ID.getName(de);
-        int lyr = ID.getLayer(de);
+        String det = _ID.getName(de);
+        int lyr = _ID.getLayer(de);
         if (_segman.getStereoPartners(s) != null) lyr = lyr / 2;
-        BarrelEndcapFlag beflag = ID.getBarrelEndcapFlag(de);
+        BarrelEndcapFlag beflag = _ID.getBarrelEndcapFlag(de);
         
         HelicalTrackStrip strip = new HelicalTrackStrip(org, u, v, umeas, du, vmin, vmax, dEdx, time, null,
                 det, lyr, beflag);
@@ -378,7 +378,7 @@
     private HelicalTrackHit MakePixelHit(org.lcsim.recon.tracking.vsegment.hit.TrackerHit hit) {
         IDetectorElement de = hit.getSensor().getDetectorElement();
         HelicalTrackHit pixel = new HelicalTrack3DHit(hit.getPosition(), hit.getCovMatrix(), hit.getSignal(),
-                hit.getTime(), null, ID.getName(de), ID.getLayer(de), ID.getBarrelEndcapFlag(de));
+                hit.getTime(), null, _ID.getName(de), _ID.getLayer(de), _ID.getBarrelEndcapFlag(de));
         List<MCParticle> mcplist = getMCParticles(hit.getCluster());
         for (MCParticle mcp : mcplist) {
             pixel.addMCParticle(mcp);
@@ -403,12 +403,12 @@
     private HelicalTrackHit makeDigi3DHit(SiTrackerHit h) {
         
         IDetectorElement de = h.getSensor();
-        int lyr = ID.getLayer(de);
-        BarrelEndcapFlag be = ID.getBarrelEndcapFlag(de);
+        int lyr = _ID.getLayer(de);
+        BarrelEndcapFlag be = _ID.getBarrelEndcapFlag(de);
         
         HelicalTrackHit hit = new HelicalTrack3DHit(h.getPositionAsVector(),
                 h.getCovarianceAsMatrix(), h.getdEdx(), h.getTime(),
-                h.getRawHits(), ID.getName(de), lyr, be);
+                h.getRawHits(), _ID.getName(de), lyr, be);
         
         for (MCParticle p : h.getMCParticles()) hit.addMCParticle(p);
         
@@ -426,8 +426,8 @@
         
         HelicalTrackHit hit = new HelicalTrack2DHit(h.getPositionAsVector(),
                 h.getCovarianceAsMatrix(), h.getdEdx(), h.getTime(),
-                h.getRawHits(), ID.getName(de), ID.getLayer(de),
-                ID.getBarrelEndcapFlag(de), zmin, zmax);
+                h.getRawHits(), _ID.getName(de), _ID.getLayer(de),
+                _ID.getBarrelEndcapFlag(de), zmin, zmax);
         
         for (MCParticle p : h.getMCParticles()) hit.addMCParticle(p);
         return hit;
@@ -454,9 +454,9 @@
 //        System.out.println("umeas: "+umeas+" vmin: "+vmin+" vmax: "+vmax+" du: "+du);
 
         IDetectorElement de = h.getSensor();
-        String det = ID.getName(de);
-        int lyr = ID.getLayer(de);
-        BarrelEndcapFlag be = ID.getBarrelEndcapFlag(de);
+        String det = _ID.getName(de);
+        int lyr = _ID.getLayer(de);
+        BarrelEndcapFlag be = _ID.getBarrelEndcapFlag(de);
 //        System.out.println("Identifier: "+det+lyr+be);
 
         double dEdx = h.getdEdx();

lcsim/src/org/lcsim/fit/helicaltrack
HitIdentifier.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- HitIdentifier.java	20 Jan 2009 19:18:26 -0000	1.4
+++ HitIdentifier.java	21 Apr 2009 23:11:29 -0000	1.5
@@ -14,6 +14,7 @@
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.identifier.IIdentifier;
 import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.event.SimTrackerHit;
 import org.lcsim.geometry.subdetector.BarrelEndcapFlag;
 
 /**
@@ -40,7 +41,14 @@
         int layer = getLayer(de);
         return Identifier(detname, layer, beflag);
     }
-    
+
+    public String Identifier(SimTrackerHit hit) {
+        String detname = getName(hit);
+        BarrelEndcapFlag beflag = getBarrelEndcapFlag(hit);
+        int layer = getLayer(hit);
+        return Identifier(detname, layer, beflag);
+    }
+
     public static String Identifier(String detname, int layer, BarrelEndcapFlag beflag) {
         String identifier = detname + layer + beflag;
         return identifier;
@@ -53,7 +61,11 @@
         String detname = de.getName();
         return detname;
     }
-    
+
+    public String getName(SimTrackerHit hit) {
+        return hit.getSubdetector().getName();
+    }
+
     public int getLayer(IDetectorElement de) {
         int layer = -1;
         IIdentifierHelper hlp = de.getIdentifierHelper();
@@ -76,7 +88,11 @@
         }
         return layer;
     }
-    
+
+    public int getLayer(SimTrackerHit hit) {
+        return hit.getLayer();
+    }
+
     public BarrelEndcapFlag getBarrelEndcapFlag(IDetectorElement de) {
         BarrelEndcapFlag beflag = BarrelEndcapFlag.UNKNOWN;
         //  Find the second level down from the top of the de tree
@@ -94,7 +110,11 @@
         }
         return beflag;
     }
-    
+
+    public BarrelEndcapFlag getBarrelEndcapFlag(SimTrackerHit hit) {
+        return hit.getBarrelEndcapFlag();
+    }
+
     public void setNonStandardLayering(String name) {
         _special.add(name);
         return;
CVSspam 0.2.8