3 added files
lcsim-contrib/src/main/java/org/lcsim/contrib/Partridge/Atlas
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
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
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