Print

Print


Author: [log in to unmask]
Date: Wed Apr 29 10:41:32 2015
New Revision: 2855

Log:
Add hooks to check if an event contains the configuration of the SVT. Work in progress

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

Modified: java/trunk/evio/src/main/java/org/hps/evio/AbstractSvtEvioReader.java
 =============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/AbstractSvtEvioReader.java	(original)
+++ java/trunk/evio/src/main/java/org/hps/evio/AbstractSvtEvioReader.java	Wed Apr 29 10:41:32 2015
@@ -46,6 +46,9 @@
     protected Map<Pair<Integer /* FPGA */, Integer /* Hybrid */>,
                   HpsSiSensor /* Sensor */> daqPairToSensor 
                       = new HashMap<Pair<Integer, Integer>, HpsSiSensor>();
+    
+    // A collection of banks that should be processed after all hits have been made
+    protected List<BassStructure> eventBanks = new ArrayList<BassStructure>();
 
     // Flag indicating whether the DAQ map has been setup
     protected boolean isDaqMapSetup = false;
@@ -112,15 +115,14 @@
      */
     abstract protected HpsSiSensor getSensor(int[] data);
 
-
     /**
      *  Check whether a data bank is valid i.e. contains SVT samples only.
      * 
      *  @param dataBank - An EVIO bank containing integer data
      *  @return true if the bank is valid, false otherwise
      */
-    abstract protected boolean isValidDataBank(BaseStructure dataBank); 
-
+    abstract protected boolean isValidDataBank(BaseStructure dataBank);
+    
     /**
      * Check whether the samples are valid
      * 

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 10:41:32 2015
@@ -123,7 +123,7 @@
     
     /**
      *  Check whether a data bank is valid i.e. contains SVT samples only.  For
-     *  the engineering run, a valid data bank has a tag of 1.
+     *  the engineering run, a valid data bank has a tag of 3.
      * 
      *  @param dataBank - An EVIO bank containing integer data
      *  @return true if the bank is valid, false otherwise
@@ -131,7 +131,17 @@
      */
     @Override
     protected boolean isValidDataBank(BaseStructure dataBank) { 
-        if (dataBank.getHeader().getTag() != 3) return false; 
+        
+        // The SVT configuration is stored in a bank with tag equal to 57614.
+        // All other event banks are invalid
+        if (dataBank.getHeader().getTag() == 57614) { 
+            
+            // Store the event bank for processing later.
+            eventBanks.add(dataBank);
+            
+            return false;
+        } else if (dataBank.getHeader().getTag() != 3) return false; 
+        
         return true; 
     }