Commit in lcsim/src/org/lcsim/recon/tracking/seedtracker/ReconTracking on MAIN
SiD02ReconHybridHitMaker.java+101added 1.1
SiD02ReconSegmenter.java+72added 1.1
SiD02ReconTrackingDriver.java+27-161.1 -> 1.2
+200-16
2 added + 1 modified, total 3 files
SiD02 reconstruction driver

lcsim/src/org/lcsim/recon/tracking/seedtracker/ReconTracking
SiD02ReconHybridHitMaker.java added at 1.1
diff -N SiD02ReconHybridHitMaker.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SiD02ReconHybridHitMaker.java	16 Oct 2008 21:41:18 -0000	1.1
@@ -0,0 +1,101 @@
+/*
+ * SiD02ReconTrackingDriver.java
+ *
+ * Created on October 16, 2008, 12:58 PM
+ *
+ */
+
+package org.lcsim.recon.tracking.seedtracker.ReconTracking;
+
+import org.lcsim.contrib.onoprien.tracking.clustering.ClusteringDriver;
+import org.lcsim.contrib.onoprien.tracking.clustering.clusterers.NearestNeighborClusterer;
+import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiConverter;
+import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiDriver;
+import org.lcsim.contrib.onoprien.tracking.digitization.algorithms.ConverterSimple;
+import org.lcsim.contrib.onoprien.tracking.geom.SegmentationManager;
+import org.lcsim.contrib.onoprien.tracking.geom.Segmenter;
+import org.lcsim.contrib.onoprien.tracking.hitmaking.HitMakingDriver;
+import org.lcsim.contrib.onoprien.tracking.hitmaking.TrackerHitMaker;
+import org.lcsim.contrib.onoprien.tracking.hitmaking.hitmakers.TrackerHitMakerBasic;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver.HitType;
+import org.lcsim.mc.CCDSim.FullCCDSimulation;
+import org.lcsim.util.Driver;
+
+/**
+ *  Driver to create TrackerHits for the SiD02 LOI tracking reconstruction.
+ *  This driver generates HelicalTrackHits using the virtual segmentation package
+ *  for strip detectors.  Pixel detector hits are generated using either the
+ *  FullCCDSimulation package or the virtual segmentation package.
+ * @author C. Deaconu and R. Partridge
+ * @version 1.0
+ */
+public class SiD02ReconHybridHitMaker extends Driver{
+    
+    private static final String[] CCDSIMOUT = {"RecVtxBarrHits", "RecVtxEndcapHits"};
+    private static final String[] STRIPHITS = {"TkrBarrHits", "TkrEndcapHits"};
+    private static final String[] PIXELHITS = {"VtxBarrHits", "VtxEndcapHits", "TkrForward"};
+    
+    /**
+     * Create a new instance of SiD02ReconHybridHitMaker
+     * @param fullccd true if the FullCCDSimulation package is used for pixels
+     */
+    public SiD02ReconHybridHitMaker(boolean fullccd) {
+        
+        //  Instantiate the driver that makes the HelicalTrackHits used by SeedTracker
+        HelicalTrackHitDriver hitdriver = new HelicalTrackHitDriver();
+        
+        //  Check if we are using FullCCDSimulation package for pixels
+        if (fullccd) {
+            
+            //  Instantiate the FullCCDSimulation driver
+            FullCCDSimulation ccdsim = new FullCCDSimulation();
+            
+            //  Set the parameters for the FullCCDSimulation package
+            ccdsim.setCCDPixelSizeX(20.);
+            ccdsim.setCCDPixelSizeY(20.);
+            
+            //  Tell the HelicalTrackHitDriver to use the FullCCDSimulation hits
+            for (String s : CCDSIMOUT) hitdriver.addCollection(s,HitType.Base);
+            
+            //  Add FullCCDSimulation to the list of drivers to be called
+            add(ccdsim);
+        }
+        
+        //  Instantiate the virtual segmentation Segmenter and pass it the
+        //  SiD02 LOI Segmenter
+        Segmenter segmenter = new SiD02ReconSegmenter(fullccd);
+        SegmentationManager segMan = new SegmentationManager(segmenter);
+        SegmentationManager.setDefaultInstance(segMan);
+        add(segMan);
+        
+        //  Instantiate the digitization for the virtual segmentation hits and
+        //  pass it the hit collections to process
+        SimToDigiConverter converter = new ConverterSimple();
+        SimToDigiDriver conversionDriver = new SimToDigiDriver(converter);
+        for (String s : STRIPHITS) conversionDriver.set("ADD_INPUT_LIST_NAME", s);
+        if (!fullccd) for (String s : PIXELHITS) conversionDriver.set("ADD_INPUT_LIST_NAME", s);
+        conversionDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
+        add(conversionDriver);
+        
+        //  Instantiate the clustering driver for the virtual segmentation package
+        ClusteringDriver clusteringDriver = new ClusteringDriver(new NearestNeighborClusterer());
+        clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
+        clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
+        add(clusteringDriver);
+
+        //  Instantiate the hit making driver for the virtual segmentation package
+        TrackerHitMaker hitMaker = new TrackerHitMakerBasic();
+        HitMakingDriver hitMakingDriver = new HitMakingDriver(hitMaker);
+        hitMakingDriver.set("INPUT_MAP_NAME","TrackerClusters");
+        hitMakingDriver.set("OUTPUT_MAP_NAME","NewTrackerHits");
+        add(hitMakingDriver);
+        
+        //  Tell the HelicalTrackHitDriver to use the virtual segmentation hits
+        hitdriver.addCollection("NewTrackerHits", HitType.VirtualSegmentation);
+        
+        //  Now run the HelicalTrackHitDriver after we have made the hits using
+        //  the FullCCDSimulation and virtual segmentation packages
+        add(hitdriver);
+    }
+}
\ No newline at end of file

lcsim/src/org/lcsim/recon/tracking/seedtracker/ReconTracking
SiD02ReconSegmenter.java added at 1.1
diff -N SiD02ReconSegmenter.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SiD02ReconSegmenter.java	16 Oct 2008 21:41:18 -0000	1.1
@@ -0,0 +1,72 @@
+/*
+ * SiD02ReconSegmenter.java
+ *
+ * Created on October 16, 2008, 11:09 AM
+ *
+ */
+
+package org.lcsim.recon.tracking.seedtracker.ReconTracking;
+
+import org.lcsim.contrib.onoprien.tracking.geom.segmenters.CylindricalBarrelSegmenter;
+import org.lcsim.contrib.onoprien.tracking.geom.segmenters.DiskTrackerToRingsSegmenter;
+import org.lcsim.contrib.onoprien.tracking.geom.segmenters.DiskTrackerToWedgesSegmenter;
+import org.lcsim.contrib.onoprien.tracking.geom.segmenters.SubdetectorBasedSegmenter;
+import org.lcsim.units.clhep.SystemOfUnits;
+
+/**
+ *  Segmenter for SiD02 LOI tracking reconstruction.
+ * 
+ * @author C. Deaconu and R. Partridge (based on example from D. Onoprienko)
+ * @version $Id: SiD02ReconSegmenter.java,v 1.1 2008/10/16 21:41:18 partridge Exp $
+ */
+public class SiD02ReconSegmenter extends SubdetectorBasedSegmenter {
+    
+// -- Constructors :  ----------------------------------------------------------
+    
+    /**
+     * Create a new instance of SiD02ReconSegmenter
+     * @param fullccd True if the FullCCDSimulation package is used for pixel hits
+     */
+    public SiD02ReconSegmenter(boolean fullccd) {
+        
+        //  Don't segment the pixel layers if we are using the FullCCDSim package
+        if (!fullccd) {
+            
+            // 20 um pixels in VTX Barrel
+            
+            CylindricalBarrelSegmenter vtxBarrelSegmenter = new CylindricalBarrelSegmenter("VertexBarrel");
+            vtxBarrelSegmenter.setStripLength(20.*SystemOfUnits.micrometer);
+            vtxBarrelSegmenter.setStripWidth(20.*SystemOfUnits.micrometer);
+            setSegmenter("VertexBarrel", vtxBarrelSegmenter);
+            
+            // 20 um pixels in VTX Endcap
+            
+            DiskTrackerToRingsSegmenter vtxEndcapSegmenter = new DiskTrackerToRingsSegmenter("VertexEndcap");
+            vtxEndcapSegmenter.setStripLength(20.*SystemOfUnits.micrometer);
+            vtxEndcapSegmenter.setStripWidth(20.*SystemOfUnits.micrometer);
+            setSegmenter("VertexEndcap", vtxEndcapSegmenter);
+            
+            // 20 um pixels in Forward Tracker
+            
+            DiskTrackerToRingsSegmenter trackerForwardSegmenter = new DiskTrackerToRingsSegmenter("TrackerForward");
+            trackerForwardSegmenter.setStripLength(20.*SystemOfUnits.micrometer);
+            trackerForwardSegmenter.setStripWidth(20.*SystemOfUnits.micrometer);
+            setSegmenter("TrackerForward", trackerForwardSegmenter);
+        }
+        
+        // 9.15 cm x 25 um strips in outer Tracker Barrel
+        
+        CylindricalBarrelSegmenter trackerBarrelSegmenter = new CylindricalBarrelSegmenter("TrackerBarrel");
+        trackerBarrelSegmenter.setStripLength(9.15*SystemOfUnits.cm);
+        trackerBarrelSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+        setSegmenter("TrackerBarrel", trackerBarrelSegmenter);
+        
+        // 12 degrees stereo wedges in outer Tracker Endcap
+        
+        DiskTrackerToWedgesSegmenter trackerEndcapSegmenter = new DiskTrackerToWedgesSegmenter("TrackerEndcap");
+        trackerEndcapSegmenter.setNumberOfRadialSlices(new int[]{3,6,9,12});
+        trackerEndcapSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+        trackerEndcapSegmenter.setNumberOfPhiSlices(30);
+        setSegmenter("TrackerEndcap", trackerEndcapSegmenter);
+    }
+}
\ No newline at end of file

lcsim/src/org/lcsim/recon/tracking/seedtracker/ReconTracking
SiD02ReconTrackingDriver.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- SiD02ReconTrackingDriver.java	15 Oct 2008 18:12:14 -0000	1.1
+++ SiD02ReconTrackingDriver.java	16 Oct 2008 21:41:18 -0000	1.2
@@ -17,19 +17,32 @@
 
 /**
  * Official driver for SiD02 tracking reconstruction.
- *
- * This driver uses the FullCCDSimulation package to digitize pixel hits and
- * the virtual segmentation package to digitize strip hits.  Track finding is
- * performed by SeedTracker.  Currently, the Helix fitting is performed
- * by the fast helix fitter HelicalTrackFitter, which contains a number
- * of simplifications that would not be present in a full helix fitter.
- *
+ * 
+ * If _fullccd is set true, then the FullCCDSimulation package is used
+ * to digitize pixel hits in the vertex barrel and endcap layers as well
+ * as the forward tracker layers.  Otherwise, the virtual segmentation
+ * package is used for these layers.
+ * 
+ * The virtual segmentation package is used to digitize all barrel and endcap
+ * strip hits.
+ * 
+ * Track finding is performed by SeedTracker.
+ * 
+ * Currently, the Helix fitting is performed by the fast helix fitter
+ * HelicalTrackFitter, which contains a number of simplifications that
+ * would not be present in a full helix fitter.
+ * 
+ * The strategy file is located in the resource area.
+ * 
  * An equivalent XML steering file will maintained at:
  *      ./resources/org/lcsim/recon/tracking/seedtracker/steeringdrivers/SiD02ReconTrackingDriverSteering.xml
- *
  * @author Cosmin Deaconu and Richard Partridge
+ * @version 1.0
  */
-public class SiD02ReconTrackingDriver extends Driver {
+public class SiD02ReconTrackingDriver extends Driver {  
+    private boolean _fullccd = false;
+    private String _sfile_ccd = "autogen_ttbar_sid02_ccd.xml";
+    private String _sfile_vs = "autogen_ttbar_sid02_vs.xml";
     
     /**
      * Creates a new instance of SiD02ReconTrackingDriver
@@ -37,20 +50,18 @@
     public SiD02ReconTrackingDriver() {
         
         //  Hit digitization driver
-        HybridHitMaker hhm = new HybridHitMaker();
+        SiD02ReconHybridHitMaker hhm = new SiD02ReconHybridHitMaker(_fullccd);
         add(hhm);
         
         //  Retrieve the track finder's strategy list
+        String sfile = _sfile_vs;
+        if (_fullccd) sfile = _sfile_ccd;
         List<SeedStrategy> stratlist =
                 StrategyXMLUtils.getStrategyListFromResource(
-                StrategyXMLUtils.getDefaultStrategiesPrefix() +
-                "autogen_qqbar500_sid02.xml"               );
+                StrategyXMLUtils.getDefaultStrategiesPrefix() + sfile);
         
         //  Main tracking driver
         SeedTracker st = new SeedTracker(stratlist);
         add(st);
-        
-        add(new AnalysisDriver());
-    }
-    
+    }    
 }
\ No newline at end of file
CVSspam 0.2.8