lcsim/sandbox/HansWenzel/Tracking
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");
+ }
+}
+