Commit in lcsim-contrib/src/main/java/org/lcsim/contrib/Partridge/Atlas on MAIN
AtlasU01HitMaker.java+85added 1.1
AtlasU01Segmenter.java+49added 1.1
AtlasU01TrackingDriver.java+75added 1.1
+209
3 added files
First pass at an Atlas tracking driver

lcsim-contrib/src/main/java/org/lcsim/contrib/Partridge/Atlas
AtlasU01HitMaker.java added at 1.1
diff -N AtlasU01HitMaker.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ AtlasU01HitMaker.java	7 Jan 2009 22:30:52 -0000	1.1
@@ -0,0 +1,85 @@
+/*
+ * SiD02ReconTrackingDriver.java
+ *
+ * Created on October 16, 2008, 12:58 PM
+ *
+ */
+package org.lcsim.contrib.Partridge.Atlas;
+
+import org.lcsim.recon.tracking.vsegment.clustering.ClusteringDriver;
+import org.lcsim.recon.tracking.vsegment.clustering.clusterers.NearestNeighborClusterer;
+import org.lcsim.recon.tracking.vsegment.digitization.SimToDigiConverter;
+import org.lcsim.recon.tracking.vsegment.digitization.SimToDigiDriver;
+import org.lcsim.recon.tracking.vsegment.digitization.algorithms.ConverterSimple;
+import org.lcsim.recon.tracking.vsegment.geom.SegmentationManager;
+import org.lcsim.recon.tracking.vsegment.geom.Segmenter;
+import org.lcsim.recon.tracking.vsegment.hitmaking.HitMakingDriver;
+import org.lcsim.recon.tracking.vsegment.hitmaking.TrackerHitMaker;
+import org.lcsim.recon.tracking.vsegment.hitmaking.hitmakers.TrackerHitMakerBasic;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver.HitType;
+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 AtlasU01HitMaker extends Driver {
+
+    private static final String[] STRIPHITS = {"TkrBarrHits", "SSBarrHits"};
+    private static final String[] PIXELHITS = {"VtxBarrHits"};
+
+    /**
+     * Create a new instance of SiD02ReconHybridHitMaker
+     * @param fullccd true if the FullCCDSimulation package is used for pixels
+     */
+    public AtlasU01HitMaker() {
+
+        //  Instantiate the driver that makes the HelicalTrackHits used by SeedTracker
+        HelicalTrackHitDriver hitdriver = new HelicalTrackHitDriver();
+
+        //  Instantiate the virtual segmentation Segmenter and pass it the
+        //  SiD02 LOI Segmenter
+        Segmenter segmenter = new AtlasU01Segmenter();
+        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);
+        }
+        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-contrib/src/main/java/org/lcsim/contrib/Partridge/Atlas
AtlasU01Segmenter.java added at 1.1
diff -N AtlasU01Segmenter.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ AtlasU01Segmenter.java	7 Jan 2009 22:30:52 -0000	1.1
@@ -0,0 +1,49 @@
+/*
+ * SiD02ReconSegmenter.java
+ *
+ * Created on October 16, 2008, 11:09 AM
+ *
+ */
+package org.lcsim.contrib.Partridge.Atlas;
+
+import org.lcsim.recon.tracking.vsegment.geom.segmenters.CylindricalBarrelSegmenter;
+import org.lcsim.recon.tracking.vsegment.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: AtlasU01Segmenter.java,v 1.1 2009/01/07 22:30:52 partridge Exp $
+ */
+public class AtlasU01Segmenter extends SubdetectorBasedSegmenter {
+
+// -- Constructors :  ----------------------------------------------------------
+    /**
+     * Create a new instance of SiD02ReconSegmenter
+     * @param fullccd True if the FullCCDSimulation package is used for pixel hits
+     */
+    public AtlasU01Segmenter() {
+
+        // 50um x 400um pixels in VTX Barrel
+
+        CylindricalBarrelSegmenter PixelBarrelSegmenter = new CylindricalBarrelSegmenter("PixelBarrel");
+        PixelBarrelSegmenter.setStripLength(400. * SystemOfUnits.micrometer);
+        PixelBarrelSegmenter.setStripWidth(50. * SystemOfUnits.micrometer);
+        setSegmenter("PixelBarrel", PixelBarrelSegmenter);
+
+        // 10 cm x 60 um long strips
+
+        CylindricalBarrelSegmenter LongStripBarrel = new CylindricalBarrelSegmenter("LongStripBarrel");
+        LongStripBarrel.setStripLength(10. * SystemOfUnits.cm);
+        LongStripBarrel.setStripWidth(60. * SystemOfUnits.micrometer);
+        setSegmenter("LongStripBarrel", LongStripBarrel);
+
+        // 1 cm x 60 um short strips
+
+        CylindricalBarrelSegmenter ShortStripBarrel = new CylindricalBarrelSegmenter("ShortStripBarrel");
+        ShortStripBarrel.setStripLength(1. * SystemOfUnits.cm);
+        ShortStripBarrel.setStripWidth(60. * SystemOfUnits.micrometer);
+        setSegmenter("ShortStripBarrel", ShortStripBarrel);
+    }
+}
\ No newline at end of file

lcsim-contrib/src/main/java/org/lcsim/contrib/Partridge/Atlas
AtlasU01TrackingDriver.java added at 1.1
diff -N AtlasU01TrackingDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ AtlasU01TrackingDriver.java	7 Jan 2009 22:30:52 -0000	1.1
@@ -0,0 +1,75 @@
+/*
+ * SiD02ReconTrackingDriver.java
+ *
+ * Created on October 13, 2008, 12:58 PM
+ *
+ */
+
+package org.lcsim.contrib.Partridge.Atlas;
+
+import java.util.List;
+
+import org.lcsim.recon.tracking.seedtracker.SeedStrategy;
+import org.lcsim.recon.tracking.seedtracker.SeedTracker;
+import org.lcsim.recon.tracking.seedtracker.StrategyXMLUtils;
+import org.lcsim.util.Driver;
+
+/**
+ * Official driver for SiD02 tracking reconstruction.
+ * 
+ * Either the FullCCDSimulation package or the virtual segmentation
+ * package can be used to digitize pixel hits in the vertex barrel
+ * and endcap layers as well as the forward tracker layers.  The default
+ * constructor will use the virtual segmentation package for pixel
+ * digitization, but a fully qualified constructor is available to
+ * explicitly set which package is used.
+ * 
+ * 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 is at:
+ *      ./resources/org/lcsim/recon/tracking/seedtracker/steeringdrivers/SiD02ReconTrackingDriverSteering.xml
+ * @author Cosmin Deaconu and Richard Partridge
+ * @version 1.0
+ */
+public class AtlasU01TrackingDriver extends Driver {
+    private String _sfile = "AtlasU01.xml";
+    private List<SeedStrategy> _stratlist;
+       
+    /**
+     * Fully qualified constructor that provides control over pixel digitization
+     * (FullCCDSimulation vs virtual segmentation).
+     * @param fullccd set true to use the FullCCDSimulation package for pixel digitization
+     */
+    public AtlasU01TrackingDriver() {
+        
+        //  Hit digitization driver
+        AtlasU01HitMaker hhm = new AtlasU01HitMaker();
+        add(hhm);
+        
+        //  Retrieve the track finder's strategy list
+        String sfile = _sfile;
+        _stratlist = StrategyXMLUtils.getStrategyListFromResource(
+                StrategyXMLUtils.getDefaultStrategiesPrefix() + sfile);
+       
+        //  Main tracking driver
+        SeedTracker st = new SeedTracker(_stratlist);
+        add(st);
+    }    
+    
+    /**
+     * Return the list of strategies being used for track finding.
+     * @return List of strategies
+     */
+    public List<SeedStrategy> getStrategies() {
+        return _stratlist;
+    }
+}
\ No newline at end of file
CVSspam 0.2.8