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)); + } +}