Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps/evio on MAIN
MCEventBuilder.java+279added 1.1
LCSimEventBuilder.java+5-2511.2 -> 1.3
LCSimTestRunEventBuilder.java+57-301.2 -> 1.3
TestRunReconToEvio.java+1-11.3 -> 1.4
+342-282
1 added + 3 modified, total 4 files
updates to evio conversion classes

hps-java/src/main/java/org/lcsim/hps/evio
MCEventBuilder.java added at 1.1
diff -N MCEventBuilder.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ MCEventBuilder.java	3 Apr 2012 18:36:48 -0000	1.1
@@ -0,0 +1,279 @@
+package org.lcsim.hps.evio;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jlab.coda.jevio.BaseStructure;
+import org.jlab.coda.jevio.BaseStructureHeader;
+import org.jlab.coda.jevio.CompositeData;
+import org.jlab.coda.jevio.EvioEvent;
+import org.jlab.coda.jevio.EvioException;
+import org.lcsim.detector.DetectorElementStore;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.identifier.IExpandedIdentifier;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierDictionary;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawCalorimeterHit;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.base.BaseLCSimEvent;
+import org.lcsim.event.base.BaseRawCalorimeterHit;
+import org.lcsim.event.base.BaseRawTrackerHit;
+import org.lcsim.geometry.Detector;
+import org.lcsim.geometry.Subdetector;
+import org.lcsim.geometry.subdetector.HPSEcal3;
+import org.lcsim.geometry.subdetector.HPSTracker;
+import org.lcsim.util.lcio.LCIOConstants;
+
+/**
+ * Build LCSim events from EVIO data.
+ * 
+ * @author Jeremy McCormick <[log in to unmask]>
+ *
+ */
+public final class MCEventBuilder implements LCSimEventBuilder {
+    
+    // Names of subdetectors.
+    private String trackerName;
+    private String calorimeterName;
+    
+    // Names of raw data collections with default settings.
+    private String rawTrackerHitCollectionName = "RawTrackerHitMaker_RawTrackerHits";
+    private String rawCalorimeterHitCollectionName = "EcalRawHits";
+        
+    // Detector conditions object.
+    private Detector detector;
+    
+    // Debug flag.
+    private boolean debug = false;
+       
+    /*
+    public LCSimEventBuilder(String detectorName) {
+        
+        // Make a dummy event to setup the conditions system.
+        EventHeader dummyEvent = new BaseLCSimEvent(0, 0, detectorName);
+        detector = dummyEvent.getDetector();
+        
+        // Set default detector names by looking for HPS detector types.
+        for (Subdetector subdet : detector.getSubdetectorList()) {
+            if (subdet instanceof HPSTracker) {
+                trackerName = subdet.getName();
+                System.out.println("trackerName = " + trackerName);
+            } else if (subdet instanceof HPSEcal3) {
+                calorimeterName = subdet.getName();
+                System.out.println("calorimeterName = " + calorimeterName);
+            }
+        }
+    }
+    */
+    
+    public MCEventBuilder() 
+    {}
+    
+    public void setDetectorName(String detectorName) {
+    
+    	// Make a dummy event to setup the conditions system.
+    	EventHeader dummyEvent = new BaseLCSimEvent(0, 0, detectorName);
+    	detector = dummyEvent.getDetector();
+
+    	// Set default detector names by looking for HPS detector types.
+    	for (Subdetector subdet : detector.getSubdetectorList()) {
+    		if (subdet instanceof HPSTracker) {
+    			trackerName = subdet.getName();
+    			System.out.println("trackerName = " + trackerName);
+    		} else if (subdet instanceof HPSEcal3) {
+    			calorimeterName = subdet.getName();
+    			System.out.println("calorimeterName = " + calorimeterName);
+    		}
+    	}
+    }
+    
+    public void setDebug(boolean debug) {
+        this.debug = debug;
+    }
+    
+    public String getRawTrackerHitCollectionName() {
+        return rawTrackerHitCollectionName;
+    }
+    
+    public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) {
+        this.rawTrackerHitCollectionName = rawTrackerHitCollectionName;
+    }
+        
+    public String getRawCalorimeterHitCollectionName() {
+        return rawCalorimeterHitCollectionName;
+    }    
+    
+    public void setRawCalorimeterHitCollectionName(String rawCalorimeterHitCollectionName) {
+        this.rawCalorimeterHitCollectionName = rawCalorimeterHitCollectionName;
+    }
+    
+    public String getTrackerName() {
+        return trackerName;
+    }
+    
+    public void setTrackerName(String trackerName) {
+        this.trackerName = trackerName;        
+    }
+    
+    public String getTrackerReadoutName() {
+        return detector.getSubdetector(trackerName).getReadout().getName();
+    }
+                          
+    public String getCalorimeterName() {
+        return calorimeterName;
+    }
+    
+    public void setCalorimeterName(String calorimeterName) {
+        this.calorimeterName = calorimeterName;
+    }
+    
+    public String getCalorimeterReadoutName() {
+        return detector.getSubdetector(calorimeterName).getReadout().getName();
+    }
+        
+    public Detector getDetector() {
+        return detector;
+    }
+            
+    public EventHeader makeLCSimEvent(EvioEvent evioEvent) {
+        
+        // Make RawTrackerHit collection.
+        List<RawTrackerHit> rawTrackerHits = makeRawTrackerHits(evioEvent);
+       
+        // Make RawCalorimeterHit collection, combining top and bottom section of ECal into one list.
+        List<RawCalorimeterHit> rawCalorimeterHits = makeRawCalorimeterHits(evioEvent);
+                                                              
+        // Create a new LCSimEvent.
+        //EventHeader lcsimEvent = new BaseLCSimEvent(0, evioEvent.getHeader().getNumber(), detectorName);
+        EventHeader lcsimEvent = new BaseLCSimEvent(0, evioEvent.getHeader().getNumber(), detector.getDetectorName());
+        
+        // Add the hit collections.
+        lcsimEvent.put(rawTrackerHitCollectionName, rawTrackerHits, RawTrackerHit.class, (1 << LCIOConstants.TRAWBIT_ID1), getTrackerReadoutName());
+        lcsimEvent.put(rawCalorimeterHitCollectionName, rawCalorimeterHits, RawCalorimeterHit.class, 0, getCalorimeterReadoutName());
+        
+        return lcsimEvent;
+    }
+  
+
+    private List<RawTrackerHit> makeRawTrackerHits(EvioEvent event) {
+        List<RawTrackerHit> rawTrackerHits = null;
+        for (BaseStructure bank : event.getChildren()) {
+            if (bank.getHeader().getTag() == MCRawDataToEvio4Converter.trackerBankTag) {
+                //System.out.println("found SVT bank; tag = " + MCRawDataToEvio4Converter.trackerBankTag);
+                CompositeData cdata = null;
+                try {
+                    cdata = bank.getCompositeData();
+                }
+                catch (EvioException e) {
+                    throw new RuntimeException(e);
+                }
+                rawTrackerHits = makeRawTrackerHits(cdata); 
+            }
+        }
+        return rawTrackerHits;
+    }
+    
+    private List<RawTrackerHit> makeRawTrackerHits(CompositeData cdata) {
+        
+        // Get some ID info before looping in order to strip out irrelevant fields.
+        // TODO Next three should be cached so as to avoid calling every event. 
+        IIdentifierDictionary dict = detector.getSubdetector(trackerName).getDetectorElement().getIdentifierHelper().getIdentifierDictionary();
+        int fieldIdx = dict.getFieldIndex("side");
+        int sideIdx = dict.getFieldIndex("strip");
+        
+        // List of hits to return.
+        List<RawTrackerHit> hits = new ArrayList<RawTrackerHit>();
+        
+        // Loop over the items in the CompositeData.
+        int n = cdata.getNValue();
+        if (debug)
+            System.out.println("RawTrackerHit.N = " + n);
+        for (int i=0; i<n; i++) {
+            
+            // Get values for hit from composite data.
+            Long id = cdata.getLong();
+            int time = cdata.getInt();
+            int adcValue = cdata.getInt();
+                      
+            // Make the new hit.
+            RawTrackerHit hit = new BaseRawTrackerHit(id, time, new short[] {(short)adcValue});
+                                                            
+            // The "side" and "strip" fields needs to be stripped from the ID for sensor lookup.
+            IExpandedIdentifier expId = dict.unpack(hit.getIdentifier());
+            expId.setValue(fieldIdx, 0);
+            expId.setValue(sideIdx, 0);
+            IIdentifier strippedId = dict.pack(expId);
+            
+            // Find the sensor for this hit using the stripped ID.
+            SiSensor sensor = findSensor(strippedId);
+            
+            // Assign sensor to hit.
+            hit.setDetectorElement(sensor);
+                 
+            // Add this hit to the list.
+            hits.add(hit);                            
+        }              
+        
+        if (debug)
+            System.out.println("makeRawTrackerHits created " + hits.size() + " hits");
+        
+        return hits;
+    }
+    
+    private SiSensor findSensor(IIdentifier id) {        
+        List<IDetectorElement> des = DetectorElementStore.getInstance().find(id);
+        SiSensor sensor = null;
+        if (des == null || des.size() == 0) {
+            throw new RuntimeException("Failed to find any DetectorElements with ID <0x" + Long.toHexString(id.getValue()) + ">.");
+        }
+        else if (des.size() == 1) {
+            sensor = (SiSensor)des.get(0);
+        }
+        else {
+            for (IDetectorElement de : des) {
+                if (de instanceof SiSensor) {
+                    sensor = (SiSensor)de;
+                    break;
+                }
+            }
+        }   
+        if (sensor == null) {
+            throw new RuntimeException("No sensor was found with ID <0x" + Long.toHexString(id.getValue()) + ">.");
+        }
+        return sensor;
+    }
+    
+    private List<RawCalorimeterHit> makeRawCalorimeterHits(EvioEvent event) {
+        List<RawCalorimeterHit> hits = new ArrayList<RawCalorimeterHit>();        
+        for (BaseStructure bank : event.getChildren()) {
+            BaseStructureHeader header = bank.getHeader();
+            if (header.getTag() == MCRawDataToEvio4Converter.ecalBottomBankTag || header.getTag() == MCRawDataToEvio4Converter.ecalTopBankTag) {
+                CompositeData cdata = null;
+                try {
+                     cdata = bank.getCompositeData();
+                }
+                catch (EvioException e) {
+                    throw new RuntimeException(e);
+                }
+                List<RawCalorimeterHit> bankHits = makeRawCalorimeterHits(cdata);
+                hits.addAll(bankHits);
+            }
+        }                       
+        return hits;        
+    }
+    
+    private List<RawCalorimeterHit> makeRawCalorimeterHits(CompositeData cdata) {        
+        List<RawCalorimeterHit> hits = new ArrayList<RawCalorimeterHit>();
+        List<Object> items = cdata.getItems();                        
+        int n = cdata.getNValue();
+        for (int i=0; i<n; i++) {
+            long id = cdata.getLong();
+            int amplitude = cdata.getInt();
+            int timestamp = cdata.getInt();
+            hits.add(new BaseRawCalorimeterHit(id, amplitude, timestamp));
+        }        
+        return hits;
+    }    
+}
\ No newline at end of file

hps-java/src/main/java/org/lcsim/hps/evio
LCSimEventBuilder.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- LCSimEventBuilder.java	22 Mar 2012 03:54:53 -0000	1.2
+++ LCSimEventBuilder.java	3 Apr 2012 18:36:48 -0000	1.3
@@ -1,256 +1,10 @@
 package org.lcsim.hps.evio;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jlab.coda.jevio.BaseStructure;
-import org.jlab.coda.jevio.BaseStructureHeader;
-import org.jlab.coda.jevio.CompositeData;
 import org.jlab.coda.jevio.EvioEvent;
-import org.jlab.coda.jevio.EvioException;
-import org.lcsim.detector.DetectorElementStore;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.identifier.IExpandedIdentifier;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.identifier.IIdentifierDictionary;
-import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
-import org.lcsim.event.RawCalorimeterHit;
-import org.lcsim.event.RawTrackerHit;
-import org.lcsim.event.base.BaseLCSimEvent;
-import org.lcsim.event.base.BaseRawCalorimeterHit;
-import org.lcsim.event.base.BaseRawTrackerHit;
-import org.lcsim.geometry.Detector;
-import org.lcsim.geometry.Subdetector;
-import org.lcsim.geometry.subdetector.HPSEcal3;
-import org.lcsim.geometry.subdetector.HPSTracker;
-import org.lcsim.util.lcio.LCIOConstants;
-
-/**
- * Build LCSim events from EVIO data.
- * 
- * @author Jeremy McCormick <[log in to unmask]>
- *
- */
-public class LCSimEventBuilder {
-    
-    // Names of subdetectors.
-    private String trackerName;
-    private String calorimeterName;
-    
-    // Names of raw data collections with default settings.
-    private String rawTrackerHitCollectionName = "RawTrackerHitMaker_RawTrackerHits";
-    private String rawCalorimeterHitCollectionName = "EcalRawHits";
-        
-    // Detector conditions object.
-    private Detector detector;
-    
-    // Debug flag.
-    private boolean debug = false;
-       
-    public LCSimEventBuilder(String detectorName) {
-        
-        // Make a dummy event to setup the conditions system.
-        EventHeader dummyEvent = new BaseLCSimEvent(0, 0, detectorName);
-        detector = dummyEvent.getDetector();
-        
-        // Set default detector names by looking for HPS detector types.
-        for (Subdetector subdet : detector.getSubdetectorList()) {
-            if (subdet instanceof HPSTracker) {
-                trackerName = subdet.getName();
-                System.out.println("trackerName = " + trackerName);
-            } else if (subdet instanceof HPSEcal3) {
-                calorimeterName = subdet.getName();
-                System.out.println("calorimeterName = " + calorimeterName);
-            }
-        }
-    }
-    
-    public void setDebug(boolean debug) {
-        this.debug = debug;
-    }
-    
-    public String getRawTrackerHitCollectionName() {
-        return rawTrackerHitCollectionName;
-    }
-    
-    public void setRawTrackerHitCollectionName(String rawTrackerHitCollectionName) {
-        this.rawTrackerHitCollectionName = rawTrackerHitCollectionName;
-    }
-        
-    public String getRawCalorimeterHitCollectionName() {
-        return rawCalorimeterHitCollectionName;
-    }    
-    
-    public void setRawCalorimeterHitCollectionName(String rawCalorimeterHitCollectionName) {
-        this.rawCalorimeterHitCollectionName = rawCalorimeterHitCollectionName;
-    }
-    
-    public String getTrackerName() {
-        return trackerName;
-    }
-    
-    public void setTrackerName(String trackerName) {
-        this.trackerName = trackerName;        
-    }
-    
-    public String getTrackerReadoutName() {
-        return detector.getSubdetector(trackerName).getReadout().getName();
-    }
-                          
-    public String getCalorimeterName() {
-        return calorimeterName;
-    }
-    
-    public void setCalorimeterName(String calorimeterName) {
-        this.calorimeterName = calorimeterName;
-    }
-    
-    public String getCalorimeterReadoutName() {
-        return detector.getSubdetector(calorimeterName).getReadout().getName();
-    }
-        
-    public Detector getDetector() {
-        return detector;
-    }
-            
-    public EventHeader makeLCSimEvent(EvioEvent evioEvent) {
-        
-        // Make RawTrackerHit collection.
-        List<RawTrackerHit> rawTrackerHits = makeRawTrackerHits(evioEvent);
-       
-        // Make RawCalorimeterHit collection, combining top and bottom section of ECal into one list.
-        List<RawCalorimeterHit> rawCalorimeterHits = makeRawCalorimeterHits(evioEvent);
-                                                              
-        // Create a new LCSimEvent.
-        //EventHeader lcsimEvent = new BaseLCSimEvent(0, evioEvent.getHeader().getNumber(), detectorName);
-        EventHeader lcsimEvent = new BaseLCSimEvent(0, evioEvent.getHeader().getNumber(), detector.getDetectorName());
-        
-        // Add the hit collections.
-        lcsimEvent.put(rawTrackerHitCollectionName, rawTrackerHits, RawTrackerHit.class, (1 << LCIOConstants.TRAWBIT_ID1), getTrackerReadoutName());
-        lcsimEvent.put(rawCalorimeterHitCollectionName, rawCalorimeterHits, RawCalorimeterHit.class, 0, getCalorimeterReadoutName());
-        
-        return lcsimEvent;
-    }
-  
 
-    private List<RawTrackerHit> makeRawTrackerHits(EvioEvent event) {
-        List<RawTrackerHit> rawTrackerHits = null;
-        for (BaseStructure bank : event.getChildren()) {
-            if (bank.getHeader().getTag() == MCRawDataToEvio4Converter.trackerBankTag) {
-                //System.out.println("found SVT bank; tag = " + MCRawDataToEvio4Converter.trackerBankTag);
-                CompositeData cdata = null;
-                try {
-                    cdata = bank.getCompositeData();
-                }
-                catch (EvioException e) {
-                    throw new RuntimeException(e);
-                }
-                rawTrackerHits = makeRawTrackerHits(cdata); 
-            }
-        }
-        return rawTrackerHits;
-    }
-    
-    private List<RawTrackerHit> makeRawTrackerHits(CompositeData cdata) {
-        
-        // Get some ID info before looping in order to strip out irrelevant fields.
-        // TODO Next three should be cached so as to avoid calling every event. 
-        IIdentifierDictionary dict = detector.getSubdetector(trackerName).getDetectorElement().getIdentifierHelper().getIdentifierDictionary();
-        int fieldIdx = dict.getFieldIndex("side");
-        int sideIdx = dict.getFieldIndex("strip");
-        
-        // List of hits to return.
-        List<RawTrackerHit> hits = new ArrayList<RawTrackerHit>();
-        
-        // Loop over the items in the CompositeData.
-        int n = cdata.getNValue();
-        if (debug)
-            System.out.println("RawTrackerHit.N = " + n);
-        for (int i=0; i<n; i++) {
-            
-            // Get values for hit from composite data.
-            Long id = cdata.getLong();
-            int time = cdata.getInt();
-            int adcValue = cdata.getInt();
-                      
-            // Make the new hit.
-            RawTrackerHit hit = new BaseRawTrackerHit(id, time, new short[] {(short)adcValue});
-                                                            
-            // The "side" and "strip" fields needs to be stripped from the ID for sensor lookup.
-            IExpandedIdentifier expId = dict.unpack(hit.getIdentifier());
-            expId.setValue(fieldIdx, 0);
-            expId.setValue(sideIdx, 0);
-            IIdentifier strippedId = dict.pack(expId);
-            
-            // Find the sensor for this hit using the stripped ID.
-            SiSensor sensor = findSensor(strippedId);
-            
-            // Assign sensor to hit.
-            hit.setDetectorElement(sensor);
-                 
-            // Add this hit to the list.
-            hits.add(hit);                            
-        }              
-        
-        if (debug)
-            System.out.println("makeRawTrackerHits created " + hits.size() + " hits");
-        
-        return hits;
-    }
-    
-    private SiSensor findSensor(IIdentifier id) {        
-        List<IDetectorElement> des = DetectorElementStore.getInstance().find(id);
-        SiSensor sensor = null;
-        if (des == null || des.size() == 0) {
-            throw new RuntimeException("Failed to find any DetectorElements with ID <0x" + Long.toHexString(id.getValue()) + ">.");
-        }
-        else if (des.size() == 1) {
-            sensor = (SiSensor)des.get(0);
-        }
-        else {
-            for (IDetectorElement de : des) {
-                if (de instanceof SiSensor) {
-                    sensor = (SiSensor)de;
-                    break;
-                }
-            }
-        }   
-        if (sensor == null) {
-            throw new RuntimeException("No sensor was found with ID <0x" + Long.toHexString(id.getValue()) + ">.");
-        }
-        return sensor;
-    }
-    
-    private List<RawCalorimeterHit> makeRawCalorimeterHits(EvioEvent event) {
-        List<RawCalorimeterHit> hits = new ArrayList<RawCalorimeterHit>();        
-        for (BaseStructure bank : event.getChildren()) {
-            BaseStructureHeader header = bank.getHeader();
-            if (header.getTag() == MCRawDataToEvio4Converter.ecalBottomBankTag || header.getTag() == MCRawDataToEvio4Converter.ecalTopBankTag) {
-                CompositeData cdata = null;
-                try {
-                     cdata = bank.getCompositeData();
-                }
-                catch (EvioException e) {
-                    throw new RuntimeException(e);
-                }
-                List<RawCalorimeterHit> bankHits = makeRawCalorimeterHits(cdata);
-                hits.addAll(bankHits);
-            }
-        }                       
-        return hits;        
-    }
-    
-    private List<RawCalorimeterHit> makeRawCalorimeterHits(CompositeData cdata) {        
-        List<RawCalorimeterHit> hits = new ArrayList<RawCalorimeterHit>();
-        List<Object> items = cdata.getItems();                        
-        int n = cdata.getNValue();
-        for (int i=0; i<n; i++) {
-            long id = cdata.getLong();
-            int amplitude = cdata.getInt();
-            int timestamp = cdata.getInt();
-            hits.add(new BaseRawCalorimeterHit(id, amplitude, timestamp));
-        }        
-        return hits;
-    }    
-}
\ No newline at end of file
+public interface LCSimEventBuilder {
+	EventHeader makeLCSimEvent(EvioEvent evioEvent);
+	void setDetectorName(String detectorName);
+	void setDebug(boolean debug);
+}

hps-java/src/main/java/org/lcsim/hps/evio
LCSimTestRunEventBuilder.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- LCSimTestRunEventBuilder.java	2 Apr 2012 18:59:12 -0000	1.2
+++ LCSimTestRunEventBuilder.java	3 Apr 2012 18:36:48 -0000	1.3
@@ -1,5 +1,7 @@
 package org.lcsim.hps.evio;
 
+import static org.lcsim.hps.evio.EventConstants.SVT_BANK_TAG;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -8,46 +10,44 @@
 import org.jlab.coda.jevio.CompositeData;
 import org.jlab.coda.jevio.EvioEvent;
 import org.jlab.coda.jevio.EvioException;
-import org.lcsim.detector.DetectorElementStore;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.detector.identifier.IExpandedIdentifier;
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.identifier.IIdentifierDictionary;
-import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawCalorimeterHit;
-import org.lcsim.event.RawTrackerHit;
 import org.lcsim.event.base.BaseLCSimEvent;
 import org.lcsim.event.base.BaseRawCalorimeterHit;
-import org.lcsim.event.base.BaseRawTrackerHit;
 import org.lcsim.geometry.Detector;
 import org.lcsim.geometry.Subdetector;
 import org.lcsim.geometry.subdetector.HPSEcal3;
 import org.lcsim.geometry.subdetector.HPSTracker;
 import org.lcsim.geometry.util.IDEncoder;
-import org.lcsim.util.lcio.LCIOConstants;
+import org.lcsim.hps.recon.tracking.HPSSVTData;
 
 /**
  * Build LCSim events from EVIO data.
- * 
  * @author Sho Uemura <[log in to unmask]>
- * @version $Id: LCSimTestRunEventBuilder.java,v 1.2 2012/04/02 18:59:12 meeg Exp $
- *
+ * @author Jeremy McCormick <[log in to unmask]>
+ * @version $Id: LCSimTestRunEventBuilder.java,v 1.3 2012/04/03 18:36:48 jeremy Exp $
  */
-public class LCSimTestRunEventBuilder {
+public class LCSimTestRunEventBuilder implements LCSimEventBuilder {
 
 	// Names of subdetectors.
 	private String trackerName;
 	private String calorimeterName;
+	
 	// Names of raw data collections with default settings.
 	private String rawTrackerHitCollectionName = "RawTrackerHitMaker_RawTrackerHits";
 	private String rawCalorimeterHitCollectionName = "EcalRawHits";
+	
+	//private String svtDataCollectionName;
+	
 	// Detector conditions object.
 	private Detector detector;
+	
 	// Debug flag.
 	private boolean debug = false;
 
-	public LCSimTestRunEventBuilder(String detectorName) {
+	public LCSimTestRunEventBuilder() {}
+	
+	public void setDetectorName(String detectorName) {
 
 		// Make a dummy event to setup the conditions system.
 		EventHeader dummyEvent = new BaseLCSimEvent(0, 0, detectorName);
@@ -116,22 +116,60 @@
 	public EventHeader makeLCSimEvent(EvioEvent evioEvent) {
 
 		// Make RawTrackerHit collection.
-		List<RawTrackerHit> rawTrackerHits = makeRawTrackerHits(evioEvent);
+		//List<RawTrackerHit> rawTrackerHits = makeRawTrackerHits(evioEvent);
 
 		// Make RawCalorimeterHit collection, combining top and bottom section of ECal into one list.
 		List<RawCalorimeterHit> rawCalorimeterHits = makeRawCalorimeterHits(evioEvent);
 
 		// Create a new LCSimEvent.
-		//EventHeader lcsimEvent = new BaseLCSimEvent(0, evioEvent.getHeader().getNumber(), detectorName);
 		EventHeader lcsimEvent = new BaseLCSimEvent(0, evioEvent.getHeader().getNumber(), detector.getDetectorName());
 
 		// Add the hit collections.
-		lcsimEvent.put(rawTrackerHitCollectionName, rawTrackerHits, RawTrackerHit.class, (1 << LCIOConstants.TRAWBIT_ID1), getTrackerReadoutName());
+		//lcsimEvent.put(rawTrackerHitCollectionName, rawTrackerHits, RawTrackerHit.class, (1 << LCIOConstants.TRAWBIT_ID1), getTrackerReadoutName());
 		lcsimEvent.put(rawCalorimeterHitCollectionName, rawCalorimeterHits, RawCalorimeterHit.class, 0, getCalorimeterReadoutName());
 
 		return lcsimEvent;
 	}
+	
+	private List<HPSSVTData> makeSVTData(EvioEvent event) {
+		List<HPSSVTData> data = new ArrayList<HPSSVTData>();
+		for (BaseStructure crateBank : event.getChildren()) {
+			int crateTag = crateBank.getHeader().getTag(); 
+			if (crateTag == SVT_BANK_TAG) {		
+				int[] intData = crateBank.getIntData();
+		
+				int n = intData.length;
+				for (int i=0; i<n; i+=4) {
+
+					int[] sampleData = new int[4];
+					sampleData[0] = intData[i];
+					sampleData[1] = intData[i+1];
+					sampleData[2] = intData[i+2];
+					sampleData[3] = intData[i+3];
+
+					HPSSVTData svtData = new HPSSVTData(sampleData);
+					
+					data.add(svtData);
+
+					/*
+					int fpga = svtData.getFPGAAddress();
+					int hybrid = svtData.getHybridNumber();
+					int channel = svtData.getChannelNumber();
+					int apv = svtData.getAPVNumber();
+
+					System.out.println("fpga=" + fpga + "; hybrid=" + hybrid + "; channel=" + channel + "; apv=" + apv);
+					for (int j=0; j<6; j++) {
+						int val = svtData.getSample(j);
+						System.out.println("  sample[" + j + "]="+val);
+					}										
+					*/
+				}
+			} 
+		}
+		return data;
+	}
 
+	/*
 	private List<RawTrackerHit> makeRawTrackerHits(EvioEvent event) {
 		List<RawTrackerHit> rawTrackerHits = new ArrayList<RawTrackerHit>();
 		for (BaseStructure bank : event.getChildren()) {
@@ -149,6 +187,7 @@
 		return rawTrackerHits;
 	}
 
+
 	private List<RawTrackerHit> makeRawTrackerHits(CompositeData cdata) {
 
 		// Get some ID info before looping in order to strip out irrelevant fields.
@@ -218,6 +257,7 @@
 		}
 		return sensor;
 	}
+		*/
 
 	private List<RawCalorimeterHit> makeRawCalorimeterHits(EvioEvent event) {
 		List<RawCalorimeterHit> hits = new ArrayList<RawCalorimeterHit>();
@@ -293,17 +333,4 @@
 		}
 		return hits;
 	}
-
-	private List<RawCalorimeterHit> makeRawCalorimeterHits_old(CompositeData cdata) {
-		List<RawCalorimeterHit> hits = new ArrayList<RawCalorimeterHit>();
-		List<Object> items = cdata.getItems();
-		int n = cdata.getNValue();
-		for (int i = 0; i < n; i++) {
-			long id = cdata.getLong();
-			int amplitude = cdata.getInt();
-			int timestamp = cdata.getInt();
-			hits.add(new BaseRawCalorimeterHit(id, amplitude, timestamp));
-		}
-		return hits;
-	}
 }
\ No newline at end of file

hps-java/src/main/java/org/lcsim/hps/evio
TestRunReconToEvio.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- TestRunReconToEvio.java	1 Apr 2012 21:20:56 -0000	1.3
+++ TestRunReconToEvio.java	3 Apr 2012 18:36:48 -0000	1.4
@@ -41,7 +41,7 @@
 	EventWriter writer;
 	String rawCalorimeterHitCollectionName = "EcalDigitizedHits";
 	String svtCollectionName = "SVTData";
-	String evioOutputFile = "MCRawData.evio";
+	String evioOutputFile = "TestRunData.evio";
 	EventBuilder builder = null;
 	private int eventsWritten = 0;
 
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