3 added + 3 modified, total 6 files
lcsim/src/org/lcsim/contrib/seedtracker
diff -N AnalysisDriver.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ AnalysisDriver.java 11 Feb 2008 21:04:10 -0000 1.1
@@ -0,0 +1,54 @@
+/*
+ * AnalysisDriver.java
+ *
+ * Created on February 11, 2008, 11:47 AM
+ *
+ */
+
+package org.lcsim.contrib.seedtracker;
+
+import hep.aida.ICloud1D;
+
+import java.util.List;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.Track;
+import org.lcsim.util.aida.AIDA;
+import org.lcsim.util.Driver;
+
+
+/**
+ *
+ * @author Richard Partridge
+ * @version 1.0
+ */
+public class AnalysisDriver extends Driver {
+ private AIDA aida = AIDA.defaultInstance();
+
+ /** Creates a new instance of AnalysisDriver */
+ public AnalysisDriver() {
+ }
+
+ /**
+ * Process the current event
+ * @param event EventHeader for this event
+ */
+ public void process(EventHeader event) {
+ List<Track> tracklist = event.getTracks();
+ for (Track track : tracklist) {
+ aida.cloud1D("Chi squared").fill(track.getChi2());
+ double px = track.getPX();
+ double py = track.getPY();
+ double pz = track.getPZ();
+ double pt = Math.sqrt(Math.pow(px,2)+Math.pow(py,2));
+ double p = Math.sqrt(Math.pow(pt,2)+Math.pow(pz,2));
+ double cth = pz / p;
+ aida.cloud1D("Pt").fill(pt);
+ aida.cloud1D("Cos(Theta)").fill(cth);
+
+ }
+// super.process(event);
+ return;
+ }
+
+}
lcsim/src/org/lcsim/contrib/seedtracker
diff -N VSExampleDriver.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ VSExampleDriver.java 11 Feb 2008 21:04:10 -0000 1.1
@@ -0,0 +1,115 @@
+package org.lcsim.contrib.seedtracker;
+
+import java.util.*;
+
+import hep.aida.*;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.SimTrackerHit;
+import org.lcsim.recon.cat.util.NoSuchParameterException;
+import org.lcsim.units.clhep.SystemOfUnits;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+import hep.physics.vec.VecOp;
+
+import org.lcsim.contrib.onoprien.tracking.clustering.ClusteringDriver;
+import org.lcsim.contrib.onoprien.tracking.clustering.clusterers.NearestNeighborClusterer;
+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;
+import org.lcsim.contrib.onoprien.tracking.geom.SegmentationManager;
+import org.lcsim.contrib.onoprien.tracking.geom.Segmenter;
+import org.lcsim.contrib.onoprien.tracking.geom.Sensor;
+import org.lcsim.contrib.onoprien.tracking.geom.SensorType;
+import org.lcsim.contrib.onoprien.tracking.hit.DigiTrackerHit;
+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.TrackerHitConverter;
+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;
+
+/**
+ * An Example of how to define virtual segmentation of the tracker,
+ * and use {@link TrackerHitConverter} to create
+ * "standard" <tt>org.lcsim.event.TrackerHits</tt>.
+ * Parameters are chosen to define reasonable segmentation for SiD01.
+ *
+ *
+ *
+ * @author D. Onoprienko
+ * @version $Id: VSExampleDriver.java,v 1.1 2008/02/11 21:04:10 partridge Exp $
+ */
+public class VSExampleDriver extends Driver {
+
+// -- Constructors : ----------------------------------------------------------
+
+ public VSExampleDriver() {
+
+ add(new MCTruthDriver());
+
+ // Segmentation description :
+
+ Segmenter segmenter = new VSExampleSegmenter();
+ SegmentationManager segMan = new SegmentationManager(segmenter);
+ SegmentationManager.setDefaultInstance(segMan);
+ add(segMan);
+
+ // Digitization :
+
+ SimToDigiConverter converter = new ConverterSimple();
+ SimToDigiDriver conversionDriver = new SimToDigiDriver(converter);
+ conversionDriver.set("OUTPUT_MAP_NAME", "DigiTrackerHits");
+ add(conversionDriver);
+
+ // Clustering :
+
+ ClusteringDriver clusteringDriver = new ClusteringDriver(new NearestNeighborClusterer());
+ clusteringDriver.set("INPUT_MAP_NAME","DigiTrackerHits");
+ clusteringDriver.set("OUTPUT_MAP_NAME","TrackerClusters");
+ add(clusteringDriver);
+
+ // Conversion to "standard" org.lcsim.event.TrackerHit : ------------------
+
+ TrackerHitConverter hitConverter = new TrackerHitConverter();
+ hitConverter.set("INPUT_CLUSTER_MAP_NAME", "TrackerClusters");
+ hitConverter.set("OUTPUT_HIT_LIST_NAME", "StandardTrackerHits");
+ add(hitConverter);
+ }
+
+
+// -- Event processing : ------------------------------------------------------
+
+ public void process(EventHeader event) {
+
+ System.out.println(" ");
+ System.out.println("Event "+event.getEventNumber());
+
+ super.process(event);
+
+ MCTruth mcTruth = (MCTruth) event.get("MCTruth");
+
+ System.out.println(" ");
+
+ int n = 0;
+ HashMap<Sensor, List<DigiTrackerHit>> digiMap =
+ (HashMap<Sensor, List<DigiTrackerHit>>) event.get("DigiTrackerHits");
+ for (List<DigiTrackerHit> digiList : digiMap.values()) n += digiList.size();
+ System.out.println("Created " + n + " DigiTrackerHits on " + digiMap.keySet().size() + " sensors");
+
+ n = 0;
+ HashMap<Sensor, List<TrackerCluster>> clusterMap =
+ (HashMap<Sensor, List<TrackerCluster>>) event.get("TrackerClusters");
+ for (List<TrackerCluster> clusterList : clusterMap.values()) n += clusterList.size();
+ System.out.println("Created " + n + " TrackerClusters on " + clusterMap.keySet().size() + " sensors");
+
+ n = 0;
+ List<org.lcsim.event.TrackerHit> oldHitList = (List<org.lcsim.event.TrackerHit>) event.get("StandardTrackerHits");
+ System.out.println("Created " + oldHitList.size() + " org.lcsim.event.TrackerHits");
+ }
+
+}
lcsim/src/org/lcsim/contrib/seedtracker
diff -N VSExampleSegmenter.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ VSExampleSegmenter.java 11 Feb 2008 21:04:10 -0000 1.1
@@ -0,0 +1,64 @@
+package org.lcsim.contrib.seedtracker;
+
+import org.lcsim.units.clhep.SystemOfUnits;
+
+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;
+
+/**
+ *
+ *
+ *
+ *
+ * @author D. Onoprienko
+ * @version $Id: VSExampleSegmenter.java,v 1.1 2008/02/11 21:04:10 partridge Exp $
+ */
+public class VSExampleSegmenter extends SubdetectorBasedSegmenter {
+
+// -- Constructors : ----------------------------------------------------------
+
+ public VSExampleSegmenter() {
+
+ // 25 um pixels in VTX Barrel
+
+ CylindricalBarrelSegmenter vtxBarrelSegmenter = new CylindricalBarrelSegmenter("VertexBarrel");
+ vtxBarrelSegmenter.setStripLength(25.*SystemOfUnits.micrometer);
+ vtxBarrelSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+ 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);
+ setSegmenter("TrackerBarrel", trackerBarrelSegmenter);
+
+ // 25 um pixels in VTX Endcap
+
+// DiskTrackerToRingsSegmenter vtxEndcapSegmenter = new DiskTrackerToRingsSegmenter("VertexEndcap");
+// vtxEndcapSegmenter.setStripLength(25.*SystemOfUnits.micrometer);
+// vtxEndcapSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+// 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);
+// setSegmenter("TrackerForward", trackerForwardSegmenter);
+
+ // 15 degrees stereo wedges in outer Tracker Endcap
+
+// DiskTrackerToWedgesSegmenter trackerEndcapSegmenter = new DiskTrackerToWedgesSegmenter("TrackerEndcap");
+// trackerEndcapSegmenter.setNumberOfRadialSlices(new int[]{3,5,8,10, 10});
+// trackerEndcapSegmenter.setStripWidth(25.*SystemOfUnits.micrometer);
+// trackerEndcapSegmenter.setNumberOfPhiSlices(24);
+// setSegmenter("TrackerEndcap", trackerEndcapSegmenter);
+ }
+
+// -- Private parts : ---------------------------------------------------------
+
+}
lcsim/src/org/lcsim/contrib/seedtracker
diff -u -r1.4 -r1.5
--- SeedTrackerDriver.java 11 Dec 2007 20:58:28 -0000 1.4
+++ SeedTrackerDriver.java 11 Feb 2008 21:04:10 -0000 1.5
@@ -7,16 +7,9 @@
package org.lcsim.contrib.seedtracker;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.lcsim.contrib.onoprien.tracking.ExampleDriver2;
-import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver.HitType;
-//import org.lcsim.contrib.seedtracker.SeedTracker;
-//import org.lcsim.contrib.seedtracker.HelicalTrackHitDriver;
-//import org.lcsim.contrib.seedtracker.SmearMCHits;
import org.lcsim.event.EventHeader;
import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver.HitType;
import org.lcsim.util.Driver;
/**
@@ -30,12 +23,12 @@
/** Creates a new instance of SeedTrackerDriver */
public SeedTrackerDriver()
{
-// add(new SmearMCHits());
- add(new ExampleDriver2());
+ add(new VSExampleDriver());
HelicalTrackHitDriver hitdriver = new HelicalTrackHitDriver();
hitdriver.addCollection("StandardTrackerHits",HitType.VirtualSegmentation);
add(hitdriver);
add(new SeedTracker());
+ add(new AnalysisDriver());
}
/**
lcsim/src/org/lcsim/contrib/seedtracker
diff -u -r1.4 -r1.5
--- SmearMCHits.java 4 Feb 2008 22:00:41 -0000 1.4
+++ SmearMCHits.java 11 Feb 2008 21:04:10 -0000 1.5
@@ -46,6 +46,6 @@
allhits.addAll(hits);
}
// Put the list of TrackerHits into the event
- event.put("TrackerHit",allhits,TrackerHit.class,0);
+ event.put("SmearedHits",allhits,TrackerHit.class,0);
}
}
lcsim/src/org/lcsim/fit/helicaltrack
diff -u -r1.4 -r1.5
--- HelicalTrackHitDriver.java 7 Feb 2008 18:20:51 -0000 1.4
+++ HelicalTrackHitDriver.java 11 Feb 2008 21:04:11 -0000 1.5
@@ -45,11 +45,13 @@
* Type of hits to be converted/
*/
public enum HitType {
+ Smeared,
/**
* Virtual segmentation (OldTrackerHit) hits.
*/
VirtualSegmentation}
private List<String> _vscol = new ArrayList<String>();
+ private List<String> _smcol = new ArrayList<String>();
private String _outname = "HelicalTrackHits";
/** Creates a new instance of HelicalTrackHitDriver */
@@ -67,6 +69,13 @@
List<HelicalTrackHit> helhits = new ArrayList<HelicalTrackHit>();
Hep3Vector lz = new BasicHep3Vector(0., 0., 1.);
+ for (String colname : _smcol) {
+ List<TrackerHit> hitlist = (List<TrackerHit>) event.get(colname);
+ for (TrackerHit hit : hitlist) {
+ helhits.add(new HelicalTrack3DHit(hit, BarrelEndcapFlag.BARREL));
+ }
+ }
+
// Loop over the collections of hits with virtual segmentation
for (String colname : _vscol) {
@@ -138,6 +147,8 @@
public void addCollection(String name, HitType type) {
if (type == HitType.VirtualSegmentation) {
_vscol.add(name);
+ } else if (type == HitType.Smeared) {
+ _smcol.add(name);
}
return;
}
CVSspam 0.2.8