Author: [log in to unmask]
Date: Sun Feb 8 18:44:51 2015
New Revision: 2077
Log:
another step on 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 18:44:51 2015
@@ -8,24 +8,83 @@
public class TriggerConfig {
- public Map<String,List<String>> configMap=new HashMap<String,List<String>>();
+ private boolean debug=true;
+
+ // These are the configs we need to know for trigger studies:
+
+ // General Clustering Cut Values:
+ private int clusterMinSeedEnergy=0;
+ private int clusterMinHitTimeDiff=0;
+ private int clusterMaxHitTimeDiff=0;
+
+ // Triggers Enabled:
+ private boolean[] singlesEn={false,false};
+ private boolean[] pairsEn={false,false};
+
+ // Singles Cuts Enabled:
+ private boolean[] singlesNHitsEn={false,false};
+ private boolean[] singlesEnergyEn={false,false};
+
+ // Pairs Cuts Enabled:
+ private boolean[] pairsEnergySumMinEn={false,false};
+ private boolean[] pairsEnergySumMaxEn={false,false};
+ private boolean[] pairsEnergyDiffEn={false,false};
+ private boolean[] pairsCoplanarityEn={false,false};
+ private boolean[] pairsEnergyDistEn={false,false};
+ private boolean[] pairsTimeDiffEn={false,false};
+
+ // Singles Cut Values:
+ private int[] singlesNhits={0,0};
+ private int[] singlesEnergyMin={0,0};
+ private int[] singlesEnergyMax={0,0};
+
+ // Pairs Cut Values:
+ private int[] pairsEnergySumMin={0,0};
+ private int[] pairsEnergySumMax={0,0};
+ private int[] pairsEnergyDiffMax={0,0};
+ private int[] pairsCoplanarityMax={0,0};
+ private int[] pairsTimeDiffMax={0,0};
+ private int[] pairsEnergyDistMin={0,0};
+
+ // Pairs Cut Parameters:
+ private float[] pairsEnergyDistSlope={0,0};
+
+
+
+ // Dump everything read from the DAQ Configuration Bank, minimal interpretation:
+ public Map<String,List<String>> configMap=new HashMap<String,List<String>>();
+
public TriggerConfig(int runNumber,String[] dump) {
- loadConfigMap(runNumber,dump);
- print();
+
+ loadConfigMap(dump);
+
+ if (runNumber < 3200) {
+ // dne
+ } else if (runNumber < 3470 ) {
+ parseConfigMap2014Run(runNumber);
+ } else {
+ parseConfigMap();
+ }
+ if (debug) print();
+ }
+
+ public void parseConfigMap2014Run(int runNumber) {
+ // TODO: port datacat/python/engrun/engrun_metadata.py
+ for (String key : configMap.keySet()) {
+ }
}
- private void loadConfigMap(int runNumber,String[] dump) {
+ public void parseConfigMap()
+ {
+
+ }
+
+ private void loadConfigMap(String[] dump) {
+
+ for (String dump1 : dump) {
+ for (String line : dump1.trim().split("\n")) {
- // 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;
@@ -33,30 +92,25 @@
List<String> vals=new ArrayList<String>
(Arrays.asList(cols[1].trim().split(" +")));
- if (vals.size() < 1) continue;
-
+ // This should never happen:
+ if (vals.size() < 1) {
+ continue;
+ }
+
+ // This should happen, but is only useful for FADC thresholds/pedestals:
if (vals.size() > 4) {
- // put threshold trick here
+ // TODO: put global threshold trick here
continue;
}
-
- // deal with error on SSP_HPS_SINGLES_NMIN
+ // Append trigger# onto key:
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);
+
+ // dump it into the map:
+ configMap.put(key,vals);
}
}
}
@@ -72,7 +126,46 @@
}
}
- public Double getEnergySlope(int itrig) {
+
+/*
+ // Should parse the map first to check for errors.
+
+ public boolean getPairsEnergyDistEn(int itrig) {
+ return Boolean.valueOf(configMap.get("SSP_HPS_ENERGYDIST_"+itrig).get(0));
+ }
+ public double getPairsEnergyDistSlope(int itrig) {
return Double.valueOf(configMap.get("SSP_HPS_ENERGYDIST_"+itrig).get(1));
}
+ public int getPairsEnergyDistCut(int itrig) {
+ return Integer.valueOf(configMap.get("SSP_HPS_ENERGYDIST_"+itrig).get(2));
+ }
+
+ public boolean getPairsEnergySumMinEn(int itrig) {
+ return Boolean.valueOf(configMap.get("SSP_HPS_EMIN_"+itrig).get(0));
+ }
+ public int getPairsEnergySumMin(int itrig) {
+ return Integer.valueOf(configMap.get("SSP_HPS_EMIN_"+itrig).get(1));
+ }
+
+ public boolean getPairsEnergySumMaxEn(int itrig) {
+ return Boolean.valueOf(configMap.get("SSP_HPS_EMAX_"+itrig).get(0));
+ }
+ public int getPairsEnergySumMax(int itrig) {
+ return Integer.valueOf(configMap.get("SSP_HPS_EMAX_"+itrig).get(1));
+ }
+
+ public boolean getPairsEnergyDiffEn(int itrig) {
+ return Boolean.valueOf(configMap.get("SSP_HPS_DIFFMAX_"+itrig).get(0));
+ }
+ public int getPairsEnergyDiffMax(int itrig) {
+ return Integer.valueOf(configMap.get("SSP_HPS_DIFFMAX_"+itrig).get(1));
+ }
+
+ public boolean getPairsCoplanarityEn(int itrig) {
+ return Boolean.valueOf(configMap.get("SSP_HPS_COPLANARITY_"+itrig).get(0));
+ }
+ public int getPairsCoplanarity(int itrig) {
+ return Integer.valueOf(configMap.get("SSP_HPS_COPLANARITY_"+itrig).get(1));
+ }
+*/
}
|