Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN | |||
SVTDataToRawTrackerHitDriver.java | +84 | added 1.1 |
Driver to convert HPSSVTData collection to RawTrackerHits
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; + } + */ +}
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