Print

Print


Author: [log in to unmask]
Date: Sun Feb  8 14:44:11 2015
New Revision: 2075

Log:
starting to parse daq config bank

Modified:
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TriggerConfig.java

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TriggerConfig.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TriggerConfig.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TriggerConfig.java	Sun Feb  8 14:44:11 2015
@@ -1,24 +1,78 @@
 package org.hps.readout.ecal.triggerbank;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class TriggerConfig {
 
-    private String[] dump;
+    public Map<String,List<String>> configMap=new HashMap<String,List<String>>();
     
-    public TriggerConfig(String[] dump) {
-        this.dump=dump;
-        /*
-        System.err.println("CAT");
-        for (String xx : this.dump) {
-            System.err.println(xx);
+    public TriggerConfig(int runNumber,String[] dump) {
+        loadConfigMap(runNumber,dump);
+        print();
+    }
+    
+    private void loadConfigMap(int runNumber,String[] dump) {
+
+        // have to do some corrections for certain run number ranges
+       
+        System.err.println("loadConfigMap:  "+dump.length);
+        
+        for (String dump1 : dump) {
+            for (String line : dump1.split("\n")) {
+
+                System.err.println("LLAMAS:  "+line);
+                
+                String[] cols=line.trim().split(" +",2);
+                if (cols.length < 2) continue;
+
+                String key=cols[0];
+                List<String> vals=new ArrayList<String>
+                    (Arrays.asList(cols[1].trim().split(" +")));
+
+                if (vals.size() < 1) continue;
+               
+                if (vals.size() > 4) {
+                    // put threshold trick here
+                    continue;
+                }
+               
+                // deal with error on SSP_HPS_SINGLES_NMIN
+                
+                if (vals.size() > 1)
+                {
+                    System.err.println("A PROPOISE:  "+key+"-"+vals);
+                    key += "_"+vals.remove(0);
+                    System.err.println("B PORPOISE:  "+key+"-"+vals);
+                }
+
+                List<String> svals=new ArrayList<String>();
+                for (String val : vals) {
+                    System.err.println("DOGGEIES:  "+key+" "+val.length()+"  **"+val+"**");
+                    svals.add(val);
+                    System.err.println("KITTIES");
+                }
+
+                configMap.put(key,svals);
+            }
         }
-        System.err.println("DOG");
-        for (int ii=0; ii<this.dump.length; ii++) {
-            System.err.println(ii);
-            System.err.println(this.dump[ii]);
+    }
+    
+    public void print() {
+        System.out.print("TriggerConfig:  ");
+        for (String key : configMap.keySet()) {
+            System.out.printf("%s ",key);
+            for (String val : configMap.get(key)) {
+                System.out.printf("%s ",val);
+            }
+            System.out.printf("\n");
         }
-        // LOOKS GOOD
-        */
-        
-        // NOW PARSE:
     }
-}
+    
+    public Double getEnergySlope(int itrig) {
+        return Double.valueOf(configMap.get("SSP_HPS_ENERGYDIST_"+itrig).get(1));
+    }
+}