lcsim/sandbox/HansWenzel/Tracking
diff -u -r1.5 -r1.6
--- HitLoop.java 11 Oct 2007 22:08:15 -0000 1.5
+++ HitLoop.java 18 Oct 2007 16:37:35 -0000 1.6
@@ -5,121 +5,91 @@
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.HansWenzel.Tracking.TrackerHitCheaterDriver;
-import org.lcsim.contrib.HansWenzel.Tracking.TrackerHitCheaterAccessDriver;
+// Monte Carlo Truth:
+import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruthDriver;
+// Segmentation:
+import org.lcsim.contrib.onoprien.tracking.geom.SegmentationManager;
+import org.lcsim.contrib.onoprien.tracking.geom.Segmenter;
+import org.lcsim.contrib.onoprien.tracking.ExampleSegmenter1;
+// Digitization:
+import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiDriver;
+import org.lcsim.contrib.onoprien.tracking.digitization.SimToDigiConverter;
+import org.lcsim.contrib.onoprien.tracking.digitization.algorithms.ConverterSimple;
+// Clustering:
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.tests.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 org.lcsim.contrib.onoprien.tracking.hit.TrackerCluster;
-import org.lcsim.contrib.onoprien.tracking.hit.TrackerHit;
+// Hitmaking:
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.contrib.onoprien.tracking.mctruth.MCTruth;
-import org.lcsim.contrib.onoprien.tracking.mctruth.MCTruthDriver;
-import org.lcsim.contrib.onoprien.tracking.mctruth.SimGroup;
+import org.lcsim.contrib.onoprien.tracking.hitmaking.TrackerHitConverter;
+// Cheater:
+import org.lcsim.contrib.HansWenzel.Tracking.TrackerHitCheaterDriver;
+import org.lcsim.contrib.HansWenzel.Tracking.TrackerHitCheaterAccessDriver;
+//
+import org.lcsim.recon.cat.util.NoSuchParameterException;
public class HitLoop extends Driver {
+
+ protected static String _filename ="http://docdb.fnal.gov/ILC/detsim/datasets/geantinos/chargedgeantino_10Gev.slcio";
+ protected static boolean _Geantino = true;
+ protected static AIDA _aida;
+ protected static IHistogramFactory _hFactory;
+ protected static int _iGroup;
public HitLoop() {
}
+
+ public void setfilename(String filename) {
+ _filename = filename;
+ }
+ public void setGeantino(boolean geantino) {
+ _Geantino = geantino;
+ }
public static void main(String[] args) throws Exception {
+ if (args.length > 0)
+ {
+ _filename = args[0];
+ }
+ else if (args.length > 1)
+ {
+ _Geantino = Boolean.parseBoolean(args[1]);
+ }
+ LinkedList<IBaseHistogram> _eventHistList;
+ _aida = AIDA.defaultInstance();
+ _hFactory = _aida.histogramFactory();
+ _eventHistList = new LinkedList<IBaseHistogram>();
LCSimLoop loop = new LCSimLoop();
-
- //URL location = new URL("http://docdb.fnal.gov/ILC/detsim/datasets/planar/planar_mu_10GeV.slcio");
- URL location = new URL("ftp://ftp-lcd.slac.stanford.edu/lcd/ILC/singleParticle/sid01/slcio/slic/mu_100.0GeV_Theta90_SLIC_v2r0p12_sid01.slcio");
+ URL location = new URL(_filename);
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");
-// File input = new File("/home/wenzel/sid01/chargedgeantino_10Gev.slcio");
loop.setLCIORecordSource(input);
- /// _aida = AIDA.defaultInstance();
- ///_hFactory = _aida.histogramFactory();
- ///_eventHistList = new LinkedList<IBaseHistogram>();
+ loop.setLCIORecordSource(input);
+ loop.add(new MCTruthDriver());
- ///add(new MCTruthDriver());
-
// Segmentation description :
- 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);
+ Segmenter segmenter = new ExampleSegmenter1();
+ SegmentationManager segMan = new SegmentationManager(segmenter);
SegmentationManager.setDefaultInstance(segMan);
+ loop.add(segMan);
// Digitization :
-
- Digitizer digitizer = new DigitizerSmear();
-
- DigitizationDriver digitizationDriver = new DigitizationDriver(digitizer);
- digitizationDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
- //hjw 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);
+
+ ConverterSimple converter = new ConverterSimple();
+ if (_Geantino)
+ {
+ converter.set("SIGNAL", "UNIT");
+ }
+ SimToDigiDriver conversionDriver = new SimToDigiDriver(converter);
+ conversionDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
+ loop.add(conversionDriver);
// Clustering :
@@ -127,6 +97,8 @@
clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
loop.add(clusteringDriver);
+
+
// Hit making :
TrackerHitMaker hitMaker = new TrackerHitMakerBasic();
@@ -134,23 +106,26 @@
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());
+ // Conversion to "standard" org.lcsim.event.TrackerHit : ------------------
+
+ TrackerHitConverter hitConverter = new TrackerHitConverter();
+ hitConverter.set("INPUT_CLUSTER_MAP_NAME", "TrackerClusters");
+ hitConverter.set("INPUT_HIT_MAP_NAME", "TrackerHits");
+ hitConverter.set("OUTPUT_HIT_LIST_NAME", "StandardTrackerHits");
+ loop.add(hitConverter);
+
+ // Cheater:
+
TrackerHitCheaterDriver _TrackerHitCheaterDriver = new TrackerHitCheaterDriver();
loop.add(_TrackerHitCheaterDriver);
TrackerHitCheaterAccessDriver _TrackerHitCheaterAccessDriver = new TrackerHitCheaterAccessDriver();
loop.add(_TrackerHitCheaterAccessDriver);
- // File output = new File("exampleAnalysisJava.slcio");
- // loop.add(new LCIODriver(output));
+
long n = loop.loop(-1);
loop.dispose();
AIDA.defaultInstance().saveAs("exampleAnalysisJava.aida");
}
+
+
}