Print

Print


Author: [log in to unmask]
Date: Wed Apr 29 14:25:13 2015
New Revision: 2859

Log:
If an SVT ROC bank contains a config bank, extract it and parse it.  This code is commented out for now until more testing can be done.

Modified:
    java/trunk/evio/src/main/java/org/hps/evio/SvtEvioReader.java

Modified: java/trunk/evio/src/main/java/org/hps/evio/SvtEvioReader.java
 =============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/SvtEvioReader.java	(original)
+++ java/trunk/evio/src/main/java/org/hps/evio/SvtEvioReader.java	Wed Apr 29 14:25:13 2015
@@ -3,10 +3,13 @@
 import java.util.List;
 
 import org.jlab.coda.jevio.BaseStructure;
+import org.jlab.coda.jevio.EvioEvent;
 
 import org.lcsim.detector.tracker.silicon.HpsSiSensor;
+import org.lcsim.event.EventHeader;
 import org.lcsim.event.RawTrackerHit;
 import org.lcsim.geometry.Subdetector;
+
 import org.hps.util.Pair;
 
 /**
@@ -111,8 +114,8 @@
     @Override
     protected HpsSiSensor getSensor(int[] data) {
         
-        logger.fine("FEB ID: " + SvtEvioUtils.getFebID(data) 
-                  + " Hybrid ID: " + SvtEvioUtils.getFebHybridID(data));
+        //logger.fine("FEB ID: " + SvtEvioUtils.getFebID(data) 
+        //          + " Hybrid ID: " + SvtEvioUtils.getFebHybridID(data));
         
         Pair<Integer, Integer> daqPair 
             = new Pair<Integer, Integer>(SvtEvioUtils.getFebID(data), 
@@ -155,6 +158,41 @@
     protected boolean isValidSampleSet(int[] data) {
         return !(SvtEvioUtils.isApvHeader(data) || SvtEvioUtils.isApvTail(data));        
     }
+   
+    /**
+     *  Process an EVIO event and extract all information relevant to the SVT.
+     *  
+     *  @param event - EVIO event to process
+     *  @param lcsimEvent - LCSim event to put collections into 
+     *  @return true if the EVIO was processed successfully, false otherwise 
+     */
+    @Override
+    public boolean processEvent(EvioEvent event, EventHeader lcsimEvent) {
+        
+        // Make RawTrackerHits.  This will also search for and store banks containing
+        // the configuration of the SVT.
+        boolean success = super.processEvent(event, lcsimEvent);
+        
+        /*logger.fine("Event contains " + eventBanks.size() + " event banks");
+        // Loop through all of the event banks and process them
+        for (BaseStructure eventBank : eventBanks) { 
+           logger.fine(eventBank.toString());
+           if (eventBank.getHeader().getTag() == 57614) { 
+               logger.fine("Configuration bank found");
+               String[] stringData = eventBank.getStringData();
+               logger.fine("String data size: " + stringData.length);
+               System.out.println("Configuration: ");
+               for (String stringDatum : stringData) {
+                  System.out.println("Data: " + stringDatum); 
+               }
+           }
+        }*/
+        
+        // Clear out the event banks after they have been processed
+        eventBanks.clear();
+        
+        return success;
+    }
     
     /**
      *  Make a {@linkplain RawTrackerHit} from a set of samples.
@@ -165,7 +203,7 @@
     @Override
     protected RawTrackerHit makeHit(int[] data) {
          
-        logger.fine("Channel: " + SvtEvioUtils.getPhysicalChannelNumber(data));
+        //logger.fine("Channel: " + SvtEvioUtils.getPhysicalChannelNumber(data));
         return makeHit(data, SvtEvioUtils.getPhysicalChannelNumber(data));
     }
 }