Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN
SVTDataToRawTrackerHitDriver.java+84added 1.1
Driver to convert HPSSVTData collection to RawTrackerHits

hps-java/src/main/java/org/lcsim/hps/recon/tracking
SVTDataToRawTrackerHitDriver.java added at 1.1
diff -N SVTDataToRawTrackerHitDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SVTDataToRawTrackerHitDriver.java	5 Apr 2012 23:52:38 -0000	1.1
@@ -0,0 +1,84 @@
+package org.lcsim.hps.recon.tracking;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.base.BaseRawTrackerHit;
+import org.lcsim.hps.util.Pair;
+import org.lcsim.util.Driver;
+import org.lcsim.util.lcio.LCIOUtil;
+
+public class SVTDataToRawTrackerHitDriver extends Driver {
+	
+	String svtDataCollectionName = "SVTData";
+	String rawTrackerHitOutputCollectionName = "SVTRawTrackerHits";
+	
+	public SVTDataToRawTrackerHitDriver() {}
+	
+	public void setSvtDataCollectionName(String svtDataCollectionName) {
+		this.svtDataCollectionName = svtDataCollectionName;
+	}
+	
+	public void setRawTrackerHitOutputCollectionName(String rawTrackerHitOutputCollectionName) {
+		this.rawTrackerHitOutputCollectionName = rawTrackerHitOutputCollectionName;
+	}
+	
+	public void process(EventHeader event) {
+		if (!event.hasCollection(HPSSVTData.class, svtDataCollectionName)) {
+			System.out.println(svtDataCollectionName + " does not exist; skipping event");
+			return;
+		}
+		List<HPSSVTData> svtDataCollection = event.get(HPSSVTData.class, svtDataCollectionName);
+		if (svtDataCollection.size() == 0) {
+			System.out.println(svtDataCollectionName + " is empty; skipping event");
+			return;
+		}
+		
+		List<RawTrackerHit> hits = new ArrayList<RawTrackerHit>();
+		for (HPSSVTData svtData : svtDataCollection) {
+			Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(svtData.getHybridNumber(), svtData.getFPGAAddress());
+			SiSensor sensor = HPSSVTDAQMaps.daqPairToSensor.get(daqPair);
+			
+			// Get the channel 
+			int channelNumber = svtData.getChannelNumber()*svtData.getAPVNumber() + 127;
+			
+			short[] data = new short[6];
+			for(int index = 0; index < 6; index++){
+				data[index] = (short)svtData.getSample(index);
+			}
+			
+			// No time yet
+			int time = 0;
+			long cell_id = sensor.makeStripId(channelNumber, 1 ).getValue();
+			
+			RawTrackerHit rawHit = new BaseRawTrackerHit(time, cell_id, data, null, sensor);
+			
+			hits.add(rawHit);			
+		}
+		
+		System.out.println(this.getClass().getSimpleName() + " made " + hits.size() + " RawTrackerHits");
+		
+		int flag = LCIOUtil.bitSet(0, 31, true); // Turn on 64-bit cell ID.
+		event.put(rawTrackerHitOutputCollectionName, hits, RawTrackerHit.class, flag);
+	}	
+	
+	/*
+	 private RawTrackerHit makeRawTrackerHit( Integer channelNumber, SiSensor sensor, short[] adcValues)
+    {
+        IReadout ro = sensor.getReadout();
+        
+        // No time yet
+        int time = 0;
+        long cell_id = sensor.makeStripId(channelNumber, 1).getValue();
+        
+        RawTrackerHit rawHit = new BaseRawTrackerHit(time, cell_id, adcValues, new ArrayList<SimTrackerHit>(), sensor);
+
+        ro.addHit(rawHit);
+        
+        return rawHit;
+    }
+	 */
+}
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