Print

Print


Commit in hps-java/src/main on MAIN
java/org/lcsim/hps/recon/ecal/HPSEcalFADCReadoutDriver.java+3-31.15 -> 1.16
                             /HPSTriggerDriver.java+154-1531.9 -> 1.10
java/org/lcsim/hps/recon/tracking/apv25/HPSAPV25.java+2-21.6 -> 1.7
java/org/lcsim/hps/users/meeg/FilterMCBunches.java+4-31.1 -> 1.2
resources/org/lcsim/hps/steering/HPSTestRunReconToEvio.lcsim+5-21.7 -> 1.8
+168-163
5 modified files
fix readout latency values

hps-java/src/main/java/org/lcsim/hps/recon/ecal
HPSEcalFADCReadoutDriver.java 1.15 -> 1.16
diff -u -r1.15 -r1.16
--- HPSEcalFADCReadoutDriver.java	22 Jun 2012 00:23:26 -0000	1.15
+++ HPSEcalFADCReadoutDriver.java	29 Jun 2012 23:00:48 -0000	1.16
@@ -26,7 +26,7 @@
  * Simulates time evolution of preamp output pulse.
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalFADCReadoutDriver.java,v 1.15 2012/06/22 00:23:26 meeg Exp $
+ * @version $Id: HPSEcalFADCReadoutDriver.java,v 1.16 2012/06/29 23:00:48 meeg Exp $
  */
 public class HPSEcalFADCReadoutDriver extends HPSEcalReadoutDriver<RawCalorimeterHit> {
 
@@ -56,10 +56,10 @@
     private int readoutWindow = 100;
     //number of ADC samples to read out before each rising threshold crossing
     //in FADC documentation, "number of samples before" or NSB
-    private int numSamplesBefore = 10;
+    private int numSamplesBefore = 5;
     //number of ADC samples to read out after each rising threshold crossing
     //in FADC documentation, "number of samples before" or NSA
-    private int numSamplesAfter = 50;
+    private int numSamplesAfter = 30;
 //    private HPSEcalConverter converter = null;
     //output buffer for hits
     private LinkedList<HPSFADCCalorimeterHit> buffer = new LinkedList<HPSFADCCalorimeterHit>();

hps-java/src/main/java/org/lcsim/hps/recon/ecal
HPSTriggerDriver.java 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- HPSTriggerDriver.java	11 Jun 2012 22:55:09 -0000	1.9
+++ HPSTriggerDriver.java	29 Jun 2012 23:00:48 -0000	1.10
@@ -22,160 +22,161 @@
  * Applies SVT trigger latency and sends trigger signal to SVT
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSTriggerDriver.java,v 1.9 2012/06/11 22:55:09 meeg Exp $
+ * @version $Id: HPSTriggerDriver.java,v 1.10 2012/06/29 23:00:48 meeg Exp $
  */
 public abstract class HPSTriggerDriver extends Driver {
 
-	protected Subdetector ecal;
-	private String ecalName;
-	private String clusterCollectionName;
-	protected IDDecoder dec = null;
-	private String outputFileName;
-	protected PrintWriter outputStream = null;
-	protected int numTriggers;
-	private int lastTrigger;
-	private int deadTime = 0;
-	// FIFO queue to store the svt trigger time stamp 
-	public Queue<Double> svtTriggerTimeStamp = new LinkedList<Double>();
-	// SVT trigger latency
-	public static final double svtTriggerLatency = 100.0; // [ns]
-	// FIFO queue to store the ECal trigger time stamp 
-	private Queue<Double> ecalTriggerTimestamps = null;
-	// ECal trigger latency
-	private static final double ecalTriggerLatency = 100.0; // [ns]
-
-	public HPSTriggerDriver() {
-	}
-
-	/**
-	 * Set dead time; 0 for no dead time
-	 * @param deadTime Minimum number of clock ticks between triggers
-	 */
-	public void setDeadTime(int deadTime) {
-		this.deadTime = deadTime;
-	}
-
-	public void setClusterCollectionName(String clusterCollectionName) {
-		this.clusterCollectionName = clusterCollectionName;
-	}
-
-	public void setEcalName(String ecalName) {
-		this.ecalName = ecalName;
-	}
-
-	public void setOutputFileName(String outputFileName) {
-		this.outputFileName = outputFileName;
-	}
-
-	@Override
-	public void startOfData() {
-		if (clusterCollectionName == null) {
-			throw new RuntimeException("The parameter ecalCollectionName was not set!");
-		}
-
-		if (ecalName == null) {
-			throw new RuntimeException("The parameter ecalName was not set!");
-		}
-
-		if (outputFileName != null) {
-			try {
-				outputStream = new PrintWriter(outputFileName);
-			} catch (IOException ex) {
-				throw new RuntimeException("Invalid outputFilePath!");
-			}
-		}
-
-		numTriggers = 0;
-
-		ecalTriggerTimestamps = new LinkedList<Double>();
-	}
-
-	@Override
-	public void detectorChanged(Detector detector) {
-		// Get the Subdetector.
-		ecal = detector.getSubdetector(ecalName);
-
-		// Cache ref to decoder.
-		dec = ecal.getIDDecoder();
-	}
-
-	@Override
-	public void process(EventHeader event) {
-		//System.out.println(this.getClass().getCanonicalName() + " - process");
-
-		// Get the list of raw ECal hits.
-		List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName);
-		if (clusters == null) {
-			throw new RuntimeException("Event is missing ECal clusters collection!");
-		}
-
-		if (testTrigger(clusters)) {
-			if (ClockSingleton.getClock() - lastTrigger > deadTime) {
-				ClockSingleton.setTrigger();
-				lastTrigger = ClockSingleton.getClock();
-				numTriggers++;
-				if (outputStream != null) {
-					outputStream.printf("Trigger on event %d\n", event.getEventNumber());
-				}
-			} else {
-				if (outputStream != null) {
-					outputStream.printf("Event %d rejected by dead time\n", event.getEventNumber());
-				}
-			}
-		}
-
-		// If an ECal trigger signal has been sent store the trigger
-		// time offset by the trigger latencies
-		if (ClockSingleton.triggered()) {
-			svtTriggerTimeStamp.offer(
-					ClockSingleton.getTime() + svtTriggerLatency);
-			ecalTriggerTimestamps.add(ClockSingleton.getTime() + ecalTriggerLatency);
-			System.out.println("Trigger added");
-
-			if (outputStream != null) {
-				outputStream.printf("trigger sent to ET event builder on event %d\n", event.getEventNumber());
-			}
-			TestRunTriggeredReconToEvio.triggerBit = true;
-
-		}
-
-		// Check if there are any pending SVT triggers to process
-		if (svtTriggerTimeStamp.peek() != null
-				&& ClockSingleton.getTime() == svtTriggerTimeStamp.peek()) {
-
-			if (outputStream != null) {
-				outputStream.printf("SVT trigger sent on event %d\n", event.getEventNumber());
-			}
-
-			// Send a trigger signal to the SVT
-			HPSAPV25.triggerBit = true;
-			svtTriggerTimeStamp.remove();
-		}
-
-		// Check if there are any pending ECal triggers to process
-		if (ecalTriggerTimestamps.peek() != null
-				&& ClockSingleton.getTime() >= ecalTriggerTimestamps.peek()) {
-
-			if (outputStream != null) {
-				outputStream.printf("ECal trigger sent on event %d\n", event.getEventNumber());
-			}
-
-			// Send a trigger signal to the ECal
-			HPSEcalReadoutDriver.triggerBit = true;
-			ecalTriggerTimestamps.remove();
-
-
-		}
-	}
-
-	public abstract boolean testTrigger(List<HPSEcalCluster> clusters);
-
-	@Override
-	public void endOfData() {
-		if (outputStream != null) {
-			outputStream.printf("Trigger count: %d\n", numTriggers);
-			outputStream.close();
-		}
-		System.out.printf("Trigger count: %d\n", numTriggers);
-	}
+    protected Subdetector ecal;
+    private String ecalName;
+    private String clusterCollectionName;
+    protected IDDecoder dec = null;
+    private String outputFileName;
+    protected PrintWriter outputStream = null;
+    protected int numTriggers;
+    private int lastTrigger;
+    private int deadTime = 0;
+    // FIFO queue to store the svt trigger time stamp 
+    public Queue<Double> svtTriggerTimeStamp = new LinkedList<Double>();
+    // SVT trigger latency
+    public static final double svtTriggerLatency = 100.0; // [ns]
+    // FIFO queue to store the ECal trigger time stamp 
+    private Queue<Double> ecalTriggerTimestamps = null;
+    // ECal trigger latency
+    private static final double ecalTriggerLatency = 100.0; // [ns]
+
+    public HPSTriggerDriver() {
+    }
+
+    /**
+     * Set dead time; 0 for no dead time
+     * @param deadTime Minimum number of clock ticks between triggers
+     */
+    public void setDeadTime(int deadTime) {
+        this.deadTime = deadTime;
+    }
+
+    public void setClusterCollectionName(String clusterCollectionName) {
+        this.clusterCollectionName = clusterCollectionName;
+    }
+
+    public void setEcalName(String ecalName) {
+        this.ecalName = ecalName;
+    }
+
+    public void setOutputFileName(String outputFileName) {
+        this.outputFileName = outputFileName;
+    }
+
+    @Override
+    public void startOfData() {
+        if (clusterCollectionName == null) {
+            throw new RuntimeException("The parameter ecalCollectionName was not set!");
+        }
+
+        if (ecalName == null) {
+            throw new RuntimeException("The parameter ecalName was not set!");
+        }
+
+        if (outputFileName != null) {
+            try {
+                outputStream = new PrintWriter(outputFileName);
+            } catch (IOException ex) {
+                throw new RuntimeException("Invalid outputFilePath!");
+            }
+        }
+
+        numTriggers = 0;
+
+        ecalTriggerTimestamps = new LinkedList<Double>();
+    }
+
+    @Override
+    public void detectorChanged(Detector detector) {
+        // Get the Subdetector.
+        ecal = detector.getSubdetector(ecalName);
+
+        // Cache ref to decoder.
+        dec = ecal.getIDDecoder();
+    }
+
+    @Override
+    public void process(EventHeader event) {
+        //System.out.println(this.getClass().getCanonicalName() + " - process");
+
+        // Get the list of raw ECal hits.
+        List<HPSEcalCluster> clusters = event.get(HPSEcalCluster.class, clusterCollectionName);
+        if (clusters == null) {
+            throw new RuntimeException("Event is missing ECal clusters collection!");
+        }
+
+        if (testTrigger(clusters)) {
+            if (ClockSingleton.getClock() - lastTrigger > deadTime) {
+                ClockSingleton.setTrigger();
+                lastTrigger = ClockSingleton.getClock();
+                numTriggers++;
+                System.out.printf("Trigger on event %d\n", event.getEventNumber());
+                if (outputStream != null) {
+                    outputStream.printf("Trigger on event %d\n", event.getEventNumber());
+                }
+            } else {
+                if (outputStream != null) {
+                    outputStream.printf("Event %d rejected by dead time\n", event.getEventNumber());
+                }
+            }
+        }
+
+        // If an ECal trigger signal has been sent store the trigger
+        // time offset by the trigger latencies
+        if (ClockSingleton.triggered()) {
+            svtTriggerTimeStamp.offer(
+                    ClockSingleton.getTime() + svtTriggerLatency);
+            ecalTriggerTimestamps.add(ClockSingleton.getTime() + ecalTriggerLatency);
+            System.out.println("Trigger added");
+
+            if (outputStream != null) {
+                outputStream.printf("trigger sent to ET event builder on event %d\n", event.getEventNumber());
+            }
+            TestRunTriggeredReconToEvio.triggerBit = true;
+
+        }
+
+        // Check if there are any pending SVT triggers to process
+        if (svtTriggerTimeStamp.peek() != null
+                && ClockSingleton.getTime() == svtTriggerTimeStamp.peek()) {
+
+            if (outputStream != null) {
+                outputStream.printf("SVT trigger sent on event %d\n", event.getEventNumber());
+            }
+
+            // Send a trigger signal to the SVT
+            HPSAPV25.triggerBit = true;
+            svtTriggerTimeStamp.remove();
+        }
+
+        // Check if there are any pending ECal triggers to process
+        if (ecalTriggerTimestamps.peek() != null
+                && ClockSingleton.getTime() >= ecalTriggerTimestamps.peek()) {
+
+            if (outputStream != null) {
+                outputStream.printf("ECal trigger sent on event %d\n", event.getEventNumber());
+            }
+
+            // Send a trigger signal to the ECal
+            HPSEcalReadoutDriver.triggerBit = true;
+            ecalTriggerTimestamps.remove();
+
+
+        }
+    }
+
+    public abstract boolean testTrigger(List<HPSEcalCluster> clusters);
+
+    @Override
+    public void endOfData() {
+        if (outputStream != null) {
+            outputStream.printf("Trigger count: %d\n", numTriggers);
+            outputStream.close();
+        }
+        System.out.printf("Trigger count: %d\n", numTriggers);
+    }
 }
\ No newline at end of file

hps-java/src/main/java/org/lcsim/hps/recon/tracking/apv25
HPSAPV25.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- HPSAPV25.java	21 Apr 2012 07:39:18 -0000	1.6
+++ HPSAPV25.java	29 Jun 2012 23:00:48 -0000	1.7
@@ -15,7 +15,7 @@
 /**
  *
  * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSAPV25.java,v 1.6 2012/04/21 07:39:18 omoreno Exp $
+ * @version $Id: HPSAPV25.java,v 1.7 2012/06/29 23:00:48 meeg Exp $
  */
 public class HPSAPV25 {
 
@@ -309,7 +309,7 @@
 		//-------------------------------------//
 		// Note that the buffer is modeled after a circular buffer
 		public class APV25AnalogPipeline extends RingBuffer {
-			private int _trigger_latency = (int) Math.floor(220 / apv25SamplingTime);
+			private int _trigger_latency = (int) Math.floor(270 / apv25SamplingTime);
 
 			public APV25AnalogPipeline() { super(ANALOG_PIPELINE_LENGTH); }
 

hps-java/src/main/java/org/lcsim/hps/users/meeg
FilterMCBunches.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- FilterMCBunches.java	21 Jun 2012 18:53:57 -0000	1.1
+++ FilterMCBunches.java	29 Jun 2012 23:00:48 -0000	1.2
@@ -22,7 +22,7 @@
  * Intended use is to clean up a photon-run MC file before running trigger and readout sim.
  *
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: FilterMCBunches.java,v 1.1 2012/06/21 18:53:57 meeg Exp $
+ * @version $Id: FilterMCBunches.java,v 1.2 2012/06/29 23:00:48 meeg Exp $
  */
 public class FilterMCBunches {
 
@@ -36,6 +36,7 @@
 
         options.addOption(new Option("e", true, "Interval between non-empty events"));
         options.addOption(new Option("n", true, "Number of events to read"));
+        options.addOption(new Option("a", true, "All events - no cuts"));
 
         return options;
     }
@@ -109,7 +110,7 @@
                 detectorName = event.getDetectorName();
             }
 
-            if (goodEvent(event)) {
+            if (cl.hasOption("a") || goodEvent(event)) {
                 writtenEvents++;
                 try {
                     writer.write(event);
@@ -154,6 +155,6 @@
 
 
 //        return (ecalHits.size() + trackerHits.size() != 0);
-        return (totalE>0.01);
+        return (totalE > 0.05 || !trackerHits.isEmpty());
     }
 }
\ No newline at end of file

hps-java/src/main/resources/org/lcsim/hps/steering
HPSTestRunReconToEvio.lcsim 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- HPSTestRunReconToEvio.lcsim	7 Jun 2012 00:47:31 -0000	1.7
+++ HPSTestRunReconToEvio.lcsim	29 Jun 2012 23:00:48 -0000	1.8
@@ -23,6 +23,7 @@
         <driver name="SVTReadout"/>
         <driver name="ClockDriver"/>
         <driver name="TestRunReconToEvio"/>
+        <driver name="CleanupDriver"/>    
     </execute> 
 
     <drivers>
@@ -41,7 +42,6 @@
             <ecalRawCollectionName>EcalRawHits</ecalRawCollectionName>
             <triggerThreshold>80</triggerThreshold>
             <readoutThreshold>50</readoutThreshold>
-<!--			<scale>0.08</scale>-->
         </driver>
 
         <driver name="EcalConverter"
@@ -71,12 +71,15 @@
 		
         <driver name="SVTReadout"
                         type="org.lcsim.hps.recon.tracking.apv25.HPSSiSensorReadout">
+                            <addNoise>true</addNoise>
         </driver>
 
         <driver name="ClockDriver"
                         type="org.lcsim.hps.util.ClockDriver">
         </driver>
-
+        <driver name="CleanupDriver" type="org.lcsim.recon.tracking.digitization.sisim.config.ReadoutCleanupDriver">
+            <collectionNames>TrackerHits</collectionNames>
+        </driver> 
     </drivers>
 </lcsim>
 	
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1