Author: [log in to unmask] Date: Mon Aug 24 18:39:29 2015 New Revision: 3398 Log: use livetime Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java Mon Aug 24 18:39:29 2015 @@ -437,18 +437,23 @@ BufferedReader br = new BufferedReader(new FileReader(file)); String line; System.out.println("myaData header: " + br.readLine()); //discard the first line + System.out.println("run\ttotalQ\ttotalQBias\tfracBias\ttotalQNom\tfracNom\ttotalQ1pt5\tfrac1pt5\ttotalGatedQ\ttotalGatedQBias\tfracGatedBias\ttotalGatedQNom\tfracGatedNom\ttotalGatedQ1pt5\tfracGated1pt5"); for (RunData run : runList) { double totalCharge = 0; double totalChargeWithBias = 0; double totalChargeWithBiasAtNominal = 0; double totalChargeWithBiasAt1pt5 = 0; + double totalGatedCharge = 0; + double totalGatedChargeWithBias = 0; + double totalGatedChargeWithBiasAtNominal = 0; + double totalGatedChargeWithBiasAt1pt5 = 0; Date lastDate = null; while ((line = br.readLine()) != null) { String arr[] = line.split(" +"); - if (arr.length != 3) { + if (arr.length != 4) { throw new java.text.ParseException("this line is not correct.", 0); } Date date = dateFormat.parse(arr[0] + " " + arr[1]); @@ -459,24 +464,32 @@ continue; } - double current; + double current, livetime; if (arr[2].equals("<undefined>")) { current = 0; } else { current = Double.parseDouble(arr[2]); } + if (arr[3].equals("<undefined>")) { + livetime = 0; + } else { + livetime = Math.min(100.0, Math.max(0.0, Double.parseDouble(arr[3]))) / 100.0; + } if (date.after(run.getStartDate())) { if (lastDate != null) { double dt = (date.getTime() - lastDate.getTime()) / 1000.0; double dq = dt * current; // nC + double dqGated = dt * current * livetime; // nC totalCharge += dq; + totalGatedCharge += dqGated; SvtBiasRunRange biasRunRange = biasRangeMap.get(run.getRun()); if (biasRunRange != null) { for (SvtBiasMyaRange biasRange : biasRunRange.getRanges()) { if (biasRange.includes(date)) { totalChargeWithBias += dq; + totalGatedChargeWithBias += dqGated; SvtPositionRunRange positionRunRange = positionRangeMap.get(run.getRun()); if (positionRunRange != null) { @@ -484,8 +497,10 @@ if (positionRange.includes(date)) { if (Math.abs(positionRange.getBottom()) < 0.0001 && Math.abs(positionRange.getTop()) < 0.0001) { totalChargeWithBiasAtNominal += dq; + totalGatedChargeWithBiasAtNominal += dqGated; } else if (Math.abs(positionRange.getBottom() - 0.0033) < 0.0001 && Math.abs(positionRange.getTop() - 0.0031) < 0.0001) { totalChargeWithBiasAt1pt5 += dq; + totalGatedChargeWithBiasAt1pt5 += dqGated; } break; } @@ -501,8 +516,8 @@ } lastDate = date; } - - System.out.format("run\t%d\ttotalQ\t%.0f\ttotalQBias\t%.0f\tfracBias\t%f\ttotalQNom\t%.0f\tfracNom\t%f\ttotalQ1pt5\t%.0f\tfrac1pt5\t%f\n", run.getRun(), totalCharge, totalChargeWithBias, totalChargeWithBias / totalCharge, totalChargeWithBiasAtNominal, totalChargeWithBiasAtNominal / totalCharge, totalChargeWithBiasAt1pt5, totalChargeWithBiasAt1pt5 / totalCharge); +// System.out.format("run\t%d\ttotalQ\t%.0f\ttotalQBias\t%.0f\tfracBias\t%f\ttotalQNom\t%.0f\tfracNom\t%f\ttotalQ1pt5\t%.0f\tfrac1pt5\t%f\ttotalGatedQ\t%.0f\ttotalGatedQBias\t%.0f\tfracGatedBias\t%f\ttotalGatedQNom\t%.0f\tfracGatedNom\t%f\ttotalGatedQ1pt5\t%.0f\tfracGated1pt5\t%f\n", run.getRun(), totalCharge, totalChargeWithBias, totalChargeWithBias / totalCharge, totalChargeWithBiasAtNominal, totalChargeWithBiasAtNominal / totalCharge, totalChargeWithBiasAt1pt5, totalChargeWithBiasAt1pt5 / totalCharge, totalGatedCharge, totalGatedChargeWithBias, totalGatedChargeWithBias / totalGatedCharge, totalGatedChargeWithBiasAtNominal, totalGatedChargeWithBiasAtNominal / totalGatedCharge, totalGatedChargeWithBiasAt1pt5, totalGatedChargeWithBiasAt1pt5 / totalGatedCharge); + System.out.format("%d\t%.0f\t%.0f\t%f\t%.0f\t%f\t%.0f\t%f\t%.0f\t%.0f\t%f\t%.0f\t%f\t%.0f\t%f\n", run.getRun(), totalCharge, totalChargeWithBias, totalChargeWithBias / totalCharge, totalChargeWithBiasAtNominal, totalChargeWithBiasAtNominal / totalCharge, totalChargeWithBiasAt1pt5, totalChargeWithBiasAt1pt5 / totalCharge, totalGatedCharge, totalGatedChargeWithBias, totalGatedChargeWithBias / totalGatedCharge, totalGatedChargeWithBiasAtNominal, totalGatedChargeWithBiasAtNominal / totalGatedCharge, totalGatedChargeWithBiasAt1pt5, totalGatedChargeWithBiasAt1pt5 / totalGatedCharge); } br.close();