lcsim/src/org/lcsim/recon/tracking/seedtracker/trackingdrivers/clic_sid
diff -N ClicSidCdrTrackingDriver.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ClicSidCdrTrackingDriver.java 4 May 2011 08:50:57 -0000 1.1
@@ -0,0 +1,139 @@
+package org.lcsim.recon.tracking.seedtracker.trackingdrivers.clic_sid;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.fit.helicaltrack.HelicalTrackHitDriver;
+import org.lcsim.recon.cheater.RemoveMultipleTrackHitsCheater;
+import org.lcsim.recon.tracking.digitization.sisim.config.PixelDigiSetupDriver;
+import org.lcsim.recon.tracking.digitization.sisim.config.SiTrackerBarrelSensorSetup;
+import org.lcsim.recon.tracking.digitization.sisim.config.SiTrackerEndcap2SensorSetup;
+import org.lcsim.recon.tracking.digitization.sisim.config.SiVertexBarrelSensorSetup;
+import org.lcsim.recon.tracking.digitization.sisim.config.SiVertexEndcapSensorSetup;
+import org.lcsim.recon.tracking.digitization.sisim.config.SimTrackerHitReadoutDriver;
+import org.lcsim.recon.tracking.digitization.sisim.config.StripDigiSetupDriver;
+import org.lcsim.recon.tracking.seedtracker.steeringwrappers.SeedTrackerWrapper;
+import org.lcsim.util.Driver;
+
+public class ClicSidCdrTrackingDriver extends Driver {
+
+ protected SeedTrackerWrapper seedTracker;
+ protected String trackingStrategy = "defaultStrategies.xml";
+
+ /**
+ * Convenience Driver that wraps all of the tracker hit digitization and track reconstruction.
+ * Default settings for the CLIC CDR production.
+ *
+ * @author <a href="mailto:[log in to unmask]">Christian Grefe</a>
+ */
+ public ClicSidCdrTrackingDriver() {
+
+ RemoveMultipleTrackHitsCheater trackHitRemover = new RemoveMultipleTrackHitsCheater();
+ add(trackHitRemover);
+
+ SimTrackerHitReadoutDriver readoutDriver = new SimTrackerHitReadoutDriver();
+ readoutDriver.setReadoutCollections(new String[] {"SiVertexBarrelHits", "SiVertexEndcapHits", "SiTrackerBarrelHits", "SiTrackerEndcapHits", "SiTrackerForwardHits"});
+ add(readoutDriver);
+
+ SiTrackerBarrelSensorSetup trackerBarrelSetup = new SiTrackerBarrelSensorSetup();
+ trackerBarrelSetup.setSubdetectorName("SiTrackerBarrel");
+ trackerBarrelSetup.setReadoutElectrodesPitch(0.050);
+ trackerBarrelSetup.setSenseElectrodesPitch(0.025);
+ trackerBarrelSetup.setTransferEfficiencies(new double[] {0.986, 0.419});
+ add(trackerBarrelSetup);
+
+ SiTrackerEndcap2SensorSetup trackerEndcapSetup = new SiTrackerEndcap2SensorSetup();
+ trackerEndcapSetup.setSubdetectorName("SiTrackerEndcap");
+ trackerEndcapSetup.setReadoutPitch(0.050);
+ trackerEndcapSetup.setSensePitch(0.025);
+ trackerEndcapSetup.setTransferEfficiencies(new double[] {0.986, 0.419});
+ add(trackerEndcapSetup);
+
+ SiVertexBarrelSensorSetup vertexBarrelSetup = new SiVertexBarrelSensorSetup();
+ vertexBarrelSetup.setSubdetectorName("SiVertexBarrel");
+ vertexBarrelSetup.setReadoutPitchX(0.02);
+ vertexBarrelSetup.setReadoutPitchY(0.02);
+ vertexBarrelSetup.setSensePitchX(0.02);
+ vertexBarrelSetup.setSensePitchY(0.02);
+ vertexBarrelSetup.setTransferEfficiency(1.0);
+ add(vertexBarrelSetup);
+
+ SiVertexEndcapSensorSetup vertexEndcapSetup = new SiVertexEndcapSensorSetup();
+ vertexEndcapSetup.setSubdetectorName("SiVertexEndcap");
+ vertexEndcapSetup.setReadoutPitchX(0.02);
+ vertexEndcapSetup.setReadoutPitchY(0.02);
+ vertexEndcapSetup.setSensePitchX(0.02);
+ vertexEndcapSetup.setSensePitchY(0.02);
+ vertexEndcapSetup.setTransferEfficiency(1.0);
+ add(vertexEndcapSetup);
+
+ SiVertexEndcapSensorSetup trackerForwardSetup = new SiVertexEndcapSensorSetup();
+ trackerForwardSetup.setSubdetectorName("SiTrackerForward");
+ trackerForwardSetup.setReadoutPitchX(0.02);
+ trackerForwardSetup.setReadoutPitchY(0.02);
+ trackerForwardSetup.setSensePitchX(0.02);
+ trackerForwardSetup.setSensePitchY(0.02);
+ trackerForwardSetup.setTransferEfficiency(1.0);
+ add(trackerForwardSetup);
+
+ StripDigiSetupDriver trackerDigi = new StripDigiSetupDriver();
+ trackerDigi.setSubdetectorNames(new String[] {"SiTrackerBarrel", "SiTrackerEndcap"});
+ trackerDigi.setRawHitsCollectionName("TKR_RawTrackerHits");
+ trackerDigi.setTrackerHitsCollectionName("TKR_TrackerHits");
+ trackerDigi.setMaxClusterSize(10);
+ trackerDigi.setNoiseIntercept(0.);
+ trackerDigi.setNoiseSlope(0.);
+ trackerDigi.setNoiseThreshold(6000.);
+ trackerDigi.setReadoutNeighborThreshold(6000.);
+ trackerDigi.setSeedThreshold(6000.);
+ trackerDigi.setNeighborThreshold(6000.);
+ trackerDigi.setCentralStripAveragingThreshold(4);
+ trackerDigi.setOneClusterErr(0.288675135);
+ trackerDigi.setTwoClusterErr(0.2);
+ trackerDigi.setThreeClusterErr(0.333333333);
+ trackerDigi.setFourClusterErr(0.5);
+ trackerDigi.setFiveClusterErr(1.0);
+ add(trackerDigi);
+
+ PixelDigiSetupDriver vertexDigi = new PixelDigiSetupDriver();
+ vertexDigi.setSubdetectorNames(new String[] {"SiVertexBarrel", "SiVertexEndcap", "SiTrackerForward"});
+ vertexDigi.setRawHitsCollectionName("VXD_RawTrackerHits");
+ vertexDigi.setTrackerHitsCollectionName("VXD_TrackerHits");
+ vertexDigi.setMaxClusterSize(10);
+ vertexDigi.setNoiseIntercept(0.);
+ vertexDigi.setNoiseSlope(0.);
+ vertexDigi.setNoiseThreshold(100.);
+ vertexDigi.setReadoutNeighborThreshold(100.);
+ vertexDigi.setSeedThreshold(100.);
+ vertexDigi.setNeighborThreshold(100.);
+ vertexDigi.setOneClusterErr(0.288675135);
+ vertexDigi.setTwoClusterErr(0.2);
+ vertexDigi.setThreeClusterErr(0.333333333);
+ vertexDigi.setFourClusterErr(0.5);
+ vertexDigi.setFiveClusterErr(1.0);
+ add(vertexDigi);
+
+ HelicalTrackHitDriver helicalTrackHitDriver = new HelicalTrackHitDriver();
+ helicalTrackHitDriver.setDigiCollectionNames(new String[] {"VXD_TrackerHits", "TKR_TrackerHits"});
+ helicalTrackHitDriver.setOutputCollectionName("HelicalTrackHits");
+ add(helicalTrackHitDriver);
+
+ seedTracker = new SeedTrackerWrapper();
+ add(seedTracker);
+
+ }
+
+ public void setTrackingStrategy(String trackingStrategy) {
+ this.trackingStrategy = trackingStrategy;
+ }
+
+ @Override
+ protected void startOfData() {
+ seedTracker.setStrategyFile(trackingStrategy);
+ super.startOfData();
+ }
+
+ @Override
+ protected void process(EventHeader event) {
+ super.process(event);
+ }
+
+}