Commit in lcsim/sandbox/HansWenzel/Tracking on MAIN
HitLoop.java+142added 1.1
driver for dima's chain

lcsim/sandbox/HansWenzel/Tracking
HitLoop.java added at 1.1
diff -N HitLoop.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ HitLoop.java	3 Oct 2007 23:04:15 -0000	1.1
@@ -0,0 +1,142 @@
+import java.io.File;
+import java.util.*;
+import java.net.URL;
+import org.lcsim.util.cache.FileCache;
+import org.lcsim.event.*;
+import org.lcsim.util.loop.*;
+import org.lcsim.detector.driver.*;
+//import org.lcsim.contrib.onoprien.tracking.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import hep.aida.*;
+import org.lcsim.event.EventHeader;
+import org.lcsim.units.clhep.SystemOfUnits;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+
+import org.lcsim.contrib.onoprien.tracking.clustering.ClusteringDriver;
+import org.lcsim.contrib.onoprien.tracking.clustering.clusterers.NearestNeighborClusterer;
+import org.lcsim.contrib.onoprien.tracking.digitization.DigitizationDriver;
+import org.lcsim.contrib.onoprien.tracking.digitization.Digitizer;
+import org.lcsim.contrib.onoprien.tracking.digitization.diagnostics.DigitizerTest;
+import org.lcsim.contrib.onoprien.tracking.digitization.digitizers.DigitizerSmear;
+import org.lcsim.contrib.onoprien.tracking.geom.SegmentationManager;
+import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
+import org.lcsim.contrib.onoprien.tracking.geom.segmenters.CylindricalBarrelSegmenter;
+import org.lcsim.contrib.onoprien.tracking.geom.segmenters.DiskTrackerToWedgesSegmenter;
+import org.lcsim.contrib.onoprien.tracking.geom.segmenters.DiskTrackerToRingsSegmenter;
+import org.lcsim.contrib.onoprien.tracking.geom.segmenters.SubdetectorBasedSegmenter;
+import org.lcsim.contrib.onoprien.tracking.hit.DigiTrackerHit;
+//import home.wenzel.lcsimcvs.lcsim.sandbox.HansWenzel.Tracking.VSAccessDriver;
+
+import org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
+import org.lcsim.contrib.onoprien.tracking.hit.TrackerHit;
+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;
+
+public class HitLoop extends Driver {
+    public HitLoop() {
+    }
+    public static void main(String[] args) throws Exception {
+        LCSimLoop loop = new LCSimLoop();
+        
+	//        URL location = new URL("http://docdb.fnal.gov/ILC/detsim/datasets/planar/planar_mu_10GeV.slcio");
+	//        FileCache cache = new FileCache();
+	//        File input = cache.getCachedFile(location);       
+        File input = new File("/home/wenzel/sid01/planar_mu.slcio");
+//        File input = new File("/home/wenzel/TrackerHitAccessDriver/planar_mu_1gev.slcio");
+        loop.setLCIORecordSource(input);
+
+   SubdetectorBasedSegmenter mainSegmenter = new SubdetectorBasedSegmenter();
+    
+    // 25 um pixels in VTX Barrel
+    
+    CylindricalBarrelSegmenter vtxBarrelSegmenter = new CylindricalBarrelSegmenter("VertexBarrel");
+    vtxBarrelSegmenter.setStripLength(25.*SystemOfUnits.micrometer);
+    vtxBarrelSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+    mainSegmenter.setSegmenter("VertexBarrel", vtxBarrelSegmenter);
+    
+    // 10 cm x 25 um strips in outer Tracker Barrel
+    
+    CylindricalBarrelSegmenter trackerBarrelSegmenter = new CylindricalBarrelSegmenter("TrackerBarrel");
+    trackerBarrelSegmenter.setStripLength(10.*SystemOfUnits.cm);
+    trackerBarrelSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+    mainSegmenter.setSegmenter("TrackerBarrel", trackerBarrelSegmenter);
+    
+    // 25 um pixels in VTX Endcap
+    
+    DiskTrackerToRingsSegmenter vtxEndcapSegmenter = new DiskTrackerToRingsSegmenter("VertexEndcap");
+    vtxEndcapSegmenter.setStripLength(25.*SystemOfUnits.micrometer);
+    vtxEndcapSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+    mainSegmenter.setSegmenter("VertexEndcap", vtxEndcapSegmenter);
+    
+    // 15 degrees stereo wedges in Forward Tracker
+    
+    DiskTrackerToWedgesSegmenter trackerForwardSegmenter = new DiskTrackerToWedgesSegmenter("TrackerForward");
+    trackerForwardSegmenter.setStripLength(10.*SystemOfUnits.cm);
+    trackerForwardSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+    trackerForwardSegmenter.setNumberOfPhiSlices(24);
+    mainSegmenter.setSegmenter("TrackerForward", trackerForwardSegmenter);
+    
+    // 15 degrees stereo wedges in outer Tracker Endcap
+    
+    DiskTrackerToWedgesSegmenter trackerEndcapSegmenter = new DiskTrackerToWedgesSegmenter("TrackerEndcap");
+    trackerEndcapSegmenter.setNumberOfRadialSlices(new int[]{3,5,8,10});
+    trackerEndcapSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+    trackerEndcapSegmenter.setNumberOfPhiSlices(24);
+    mainSegmenter.setSegmenter("TrackerEndcap", trackerEndcapSegmenter);
+    
+    SegmentationManager segMan = new SegmentationManager(mainSegmenter);
+    SegmentationManager.setDefaultInstance(segMan);
+    
+    // Digitization :
+
+    Digitizer digitizer = new DigitizerSmear();
+
+    DigitizationDriver digitizationDriver = new DigitizationDriver(digitizer);
+    digitizationDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
+    digitizationDriver.set("DIAGNOSTIC_LIST_NAME", "SimToDigiGroups");
+    loop.add(digitizationDriver);
+    
+    // Digitizer diagnostics :
+    
+    //    digitizationDriver.set("DIAGNOSTIC_LIST_NAME", "SimToDigiGroups");
+    //DigitizerTest digitizerTest = new DigitizerTest();
+    //digitizerTest.set("DIAGNOSTIC_LIST_NAME", "SimToDigiGroups");
+    //loop.add(digitizerTest);
+
+    // Clustering :
+    
+    ClusteringDriver clusteringDriver = new ClusteringDriver(new NearestNeighborClusterer());
+    clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
+    clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
+    loop.add(clusteringDriver);
+    // Hit making :
+    
+    TrackerHitMaker hitMaker = new TrackerHitMakerBasic();
+    HitMakingDriver hitMakingDriver = new HitMakingDriver(hitMaker);
+    hitMakingDriver.set("INPUT_MAP_NAME","TrackerClusters");
+    hitMakingDriver.set("OUTPUT_MAP_NAME","NewTrackerHits");
+    loop.add(hitMakingDriver);
+    //
+    // Analyze the result:
+    //
+    //VSAccessDriver vsaccessDriver = new VSAccessDriver();
+    //vsaccessDriver.set("DIGIS_MAP_NAME","DigiTrackerHits");
+    //vsaccessDriver.set("CLUSTERS_MAP_NAME","TrackerClusters");
+    //loop.add(vsaccessDriver);
+
+    //    add(new VSHitsAccessDriver());
+    TrackerHitCheaterDriver _TrackerHitCheaterDriver = new TrackerHitCheaterDriver();
+    loop.add(_TrackerHitCheaterDriver);
+    //      File output = new File("exampleAnalysisJava.slcio");
+    //      loop.add(new LCIODriver(output));
+    long n = loop.loop(5);
+    loop.dispose();
+    AIDA.defaultInstance().saveAs("exampleAnalysisJava.aida");
+    }
+}
+
CVSspam 0.2.8