hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -u -r1.24 -r1.25
--- HPSSVTCalibrationConstants.java 11 Apr 2013 19:16:05 -0000 1.24
+++ HPSSVTCalibrationConstants.java 18 Apr 2013 18:01:55 -0000 1.25
@@ -8,6 +8,7 @@
import org.lcsim.detector.identifier.IIdentifier;
import org.lcsim.detector.identifier.IIdentifierHelper;
import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
import org.lcsim.hps.monitoring.CalibrationDriver;
import org.lcsim.hps.util.Pair;
@@ -62,6 +63,7 @@
*/>, List<Double> /*
* channels
*/> offsetMap = new HashMap<Pair<Integer, Integer>, List<Double>>();
+ private static Map<Pair<Integer, Integer>, Double> t0ShiftMap = new HashMap<>();
private static boolean pedestalLoaded = false;
private static boolean tpLoaded = false;
private static int totalBadChannels = 0;
@@ -76,6 +78,7 @@
loadCalibrationConstants(runNumber);
loadBadChannels(runNumber);
loadGain();
+ loadT0Shifts();
}
public static void loadCalibrationConstants(int run) {
@@ -332,6 +335,39 @@
}
}
+ private static void loadT0Shifts() {
+ System.out.println("Loading SVT t0 shifts ...");
+
+ ConditionsManager conditions = ConditionsManager.defaultInstance();
+ BufferedReader reader;
+
+ String filePath = "calibSVT/default.t0shift";
+ String line;
+ try {
+ reader = new BufferedReader(conditions.getRawConditions(filePath).getReader());
+ while ((line = reader.readLine()) != null) {
+ // If the line is a comment, skip it
+ if (line.indexOf("#") != -1) {
+ line = line.substring(0, line.indexOf("#"));
+ }
+ StringTokenizer lineTok = new StringTokenizer(line);
+ if (lineTok.countTokens() == 0) {
+ continue;
+ }
+ if (lineTok.countTokens() != 3) {
+ throw new RuntimeException("Invalid line in t0shift file: " + line);
+ }
+ int layer = Integer.valueOf(lineTok.nextToken());
+ int module = Integer.valueOf(lineTok.nextToken());
+ double t0shift = Double.valueOf(lineTok.nextToken());
+
+ t0ShiftMap.put(new Pair(layer, module), t0shift);
+ }
+ } catch (IOException exception) {
+ throw new RuntimeException("Unable to load t0 shifts!", exception);
+ }
+ }
+
public static Double getNoise(SiSensor sensor, int channel) {
Pair<Integer, Integer> daqPair = SvtUtils.getInstance().getDaqPair(sensor);
double[] noises = noiseMap.get(daqPair);
@@ -408,11 +444,7 @@
constants.setTp(53.0);
}
- IIdentifierHelper helper = sensor.getIdentifierHelper();
- IIdentifier id = sensor.getIdentifier();
- int layer = helper.getValue(id, "layer"); // 1-10; axial layers are odd layers; stereo layers are even
- int module = helper.getValue(id, "module"); // 0-1; module number is top or bottom
- value = lookupT0Shift(layer, module);
+ value = lookupT0Shift(sensor);
constants.setT0Shift(value);
return constants;
@@ -489,204 +521,11 @@
}
}
- static private double lookupT0Shift(int layer, int module) {
- double value = -999;
-// switch (module) {
-// case 0:
-// switch (layer) {
-// case 1:
-// value = 1.5;
-// break;
-// case 2:
-// value = 1.6;
-// break;
-// case 3:
-// value = -2.8;
-// break;
-// case 4:
-// value = 2.0;
-// break;
-// case 5:
-// value = -1.9;
-// break;
-// case 6:
-// value = -2.2;
-// break;
-// case 7:
-// value = 1.8;
-// break;
-// case 8:
-// value = 1.2;
-// break;
-// case 9:
-// value = 2.5;
-// break;
-// case 10:
-// value = 0.0;
-// break;
-// }
-// break;
-// case 1:
-// switch (layer) {
-// case 1:
-// value = 1.0;
-// break;
-// case 2:
-// value = 1.3;
-// break;
-// case 3:
-// value = -3.0;
-// break;
-// case 4:
-// value = 3.5;
-// break;
-// case 5:
-// value = 0.0;
-// break;
-// case 6:
-// value = -0.5;
-// break;
-// case 7:
-// value = -0.8;
-// break;
-// case 8:
-// value = -1.1;
-// break;
-// case 9:
-// value = 3.5;
-// break;
-// case 10:
-// value = -2.7;
-// break;
-// }
-// break;
-// }
- switch (module) {
- case 0:
- switch (layer) {
- case 1:
- value = -186.1;
- break;
- case 2:
- value = -186.1;
- break;
- case 3:
- value = -185.8;
- break;
- case 4:
- value = -185.9;
- break;
- case 5:
- value = -185.8;
- break;
- case 6:
- value = -185.8;
- break;
- case 7:
- value = -185.8;
- break;
- case 8:
- value = -185.9;
- break;
- case 9:
- value = -185.8;
- break;
- case 10:
- value = -185.8;
- break;
- case 11:
- value = -185.6;
- break;
- case 12:
- value = -186.0;
- break;
- }
- break;
- case 1:
- switch (layer) {
- case 1:
- value = -185.6;
- break;
- case 2:
- value = -185.3;
- break;
- case 3:
- value = -185.9;
- break;
- case 4:
- value = -185.7;
- break;
- case 5:
- value = -185.6;
- break;
- case 6:
- value = -185.9;
- break;
- case 7:
- value = -185.8;
- break;
- case 8:
- value = -186.1;
- break;
- case 9:
- value = -186.0;
- break;
- case 10:
- value = -185.9;
- break;
- case 11:
- value = -185.9;
- break;
- case 12:
- value = -186.1;
- break;
- }
- break;
- case 2:
- switch (layer) {
- case 7:
- value = -185.7;
- break;
- case 8:
- value = -185.7;
- break;
- case 9:
- value = -185.9;
- break;
- case 10:
- value = -186.0;
- break;
- case 11:
- value = -185.8;
- break;
- case 12:
- value = -185.9;
- break;
- }
- break;
- case 3:
- switch (layer) {
- case 7:
- value = -185.5;
- break;
- case 8:
- value = -185.6;
- break;
- case 9:
- value = -185.5;
- break;
- case 10:
- value = -185.5;
- break;
- case 11:
- value = -186.6;
- break;
- case 12:
- value = -186.7;
- break;
- }
- break;
- }
- return value;
+ static private double lookupT0Shift(SiSensor sensor) {
+ SiTrackerIdentifierHelper helper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
+ IIdentifier id = sensor.getIdentifier();
+ int layer = helper.getLayerValue(id);
+ int module = helper.getModuleValue(id);
+ return t0ShiftMap.get(new Pair(layer, module));
}
}
hps-java/src/main/resources/org/lcsim/hps/steering/recon
diff -u -r1.8 -r1.9
--- TestRunOfflineRecon.lcsim 18 Apr 2013 17:53:49 -0000 1.8
+++ TestRunOfflineRecon.lcsim 18 Apr 2013 18:01:55 -0000 1.9
@@ -1,7 +1,7 @@
<!--
Offline reconstruction for test run (photon) data.
@author Sho Uemura <[log in to unmask]>
- @version $Id: TestRunOfflineRecon.lcsim,v 1.8 2013/04/18 17:53:49 mgraham Exp $
+ @version $Id: TestRunOfflineRecon.lcsim,v 1.9 2013/04/18 18:01:55 meeg Exp $
-->
<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd">
@@ -28,7 +28,7 @@
<driver name="RawTrackerHitSensorSetup" type="org.lcsim.recon.tracking.digitization.sisim.config.RawTrackerHitSensorSetup"/>
<driver name="RawTrackerHitFitterDriver" type="org.lcsim.hps.recon.tracking.HPSRawTrackerHitFitterDriver">
<fitAlgorithm>Analytic</fitAlgorithm>
- <correctT0Shift>false</correctT0Shift>
+ <correctT0Shift>true</correctT0Shift>
</driver>
<driver name="TrackerHitDriver" type="org.lcsim.hps.users.mgraham.DataTrackerHitDriver" />
<driver name="HelicalTrackHitDriver" type="org.lcsim.hps.recon.tracking.HelicalTrackHitDriver">