1 added + 14 modified, total 15 files
hps-java/src/main/java/org/lcsim/hps/monitoring
diff -u -r1.1 -r1.2
--- HPSCalibrationDriver.java 12 May 2012 23:09:05 -0000 1.1
+++ HPSCalibrationDriver.java 24 May 2012 17:08:18 -0000 1.2
@@ -12,12 +12,12 @@
/**
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSCalibrationDriver.java,v 1.1 2012/05/12 23:09:05 meeg Exp $
+ * @version $Id: HPSCalibrationDriver.java,v 1.2 2012/05/24 17:08:18 omoreno Exp $
*/
public class HPSCalibrationDriver extends Driver {
public HPSCalibrationDriver() {
add(new HPSEcalConditions());
- add(new HPSSVTDAQMaps());
+ // add(new HPSSVTDAQMaps());
add(new HPSSVTSensorSetup());
}
}
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.6 -r1.7
--- SVTSimpleEventDisplay.java 18 May 2012 08:26:35 -0000 1.6
+++ SVTSimpleEventDisplay.java 24 May 2012 17:08:18 -0000 1.7
@@ -13,6 +13,7 @@
import org.lcsim.hps.monitoring.AIDAFrame;
import org.lcsim.hps.monitoring.Resettable;
import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHit;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
@@ -116,11 +117,11 @@
for (int module = 0; module < 2; module++) {
for (int layer = 0; layer < 10; layer++) {
int region = computePlotterRegion(layer + 1, module);
- rth[module][layer] = aida.histogram1D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " RawTrackerHits", 640, -0.5, 639.5);
+ rth[module][layer] = aida.histogram1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " RawTrackerHits", 640, -0.5, 639.5);
plotter.region(region).plot(rth[module][layer]);
- th[module][layer] = aida.histogram1D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " TrackerHits", 640, -0.5, 639.5);
+ th[module][layer] = aida.histogram1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " TrackerHits", 640, -0.5, 639.5);
plotter2.region(region).plot(th[module][layer]);
- hth[module][layer] = aida.histogram1D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " HelicalTrackHits", 640, -0.5, 639.5);
+ hth[module][layer] = aida.histogram1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " HelicalTrackHits", 640, -0.5, 639.5);
plotter3.region(region).plot(hth[module][layer]);
}
}
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.15 -r1.16
--- SVTHitReconstructionPlots.java 24 May 2012 14:33:59 -0000 1.15
+++ SVTHitReconstructionPlots.java 24 May 2012 17:08:18 -0000 1.16
@@ -20,6 +20,7 @@
import org.lcsim.hps.monitoring.Resettable;
import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
@@ -226,7 +227,7 @@
for (HPSFittedRawTrackerHit hrth : fittedrawHits) {
SiSensor sensor = (SiSensor) hrth.getRawTrackerHit().getDetectorElement();
int layer = hrth.getRawTrackerHit().getLayerNumber();
- if (!HPSSVTDAQMaps.sensorToTopLayer.containsKey(sensor))
+ if (!SvtUtils.getInstance().isTopLayer(sensor))
layersBot[layer - 1]++;
else
layersTop[layer - 1]++;
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.4 -r1.5
--- SVTMonitoringPlots.java 22 May 2012 22:11:01 -0000 1.4
+++ SVTMonitoringPlots.java 24 May 2012 17:08:18 -0000 1.5
@@ -12,6 +12,7 @@
import org.lcsim.hps.recon.tracking.HPSFittedRawTrackerHit;
import org.lcsim.hps.recon.tracking.HPSSVTCalibrationConstants;
import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
@@ -124,14 +125,14 @@
for (int module = 0; module < 2; module++) {
for (int layer = 0; layer < 10; layer++) {
int region = computePlotterRegion(layer + 1, module);
- pedestalShifts[module][layer] = aida.profile1D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Pedestal Shifts", 640, -0.5, 639.5);
+ pedestalShifts[module][layer] = aida.profile1D(SvtUtils.getInstance().getSensor(module, layer).getName() + " Pedestal Shifts", 640, -0.5, 639.5);
// pedestalShifts[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Pedestal Shifts", 640, -0.5, 639.5, 100, -500, 500);
plotter.region(region).plot(pedestalShifts[module][layer]);
- t0s[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Fitted T0", 640, -0.5, 639.5, 100, -24, 72);
+ t0s[module][layer] = aida.histogram2D(SvtUtils.getInstance().getSensor(module, layer).getName() + " Fitted T0", 640, -0.5, 639.5, 100, -24, 72);
plotter2.region(region).plot(t0s[module][layer]);
- amps[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " Fitted Amplitude", 640, -0.5, 639.5, 100, 0, 2000);
+ amps[module][layer] = aida.histogram2D(SvtUtils.getInstance().getSensor(module, layer).getName() + " Fitted Amplitude", 640, -0.5, 639.5, 100, 0, 2000);
plotter3.region(region).plot(amps[module][layer]);
- t0a[module][layer] = aida.histogram2D(HPSSVTDAQMaps.sensorArray[module][layer].getName() + " A vs. T0", 100, -100, 100, 100, 0, 2000);
+ t0a[module][layer] = aida.histogram2D(SvtUtils.getInstance().getSensor(module, layer).getName() + " A vs. T0", 100, -100, 100, 100, 0, 2000);
plotter4.region(region).plot(t0a[module][layer]);
// plotter3.region(region).style().zAxisStyle().setParameter("labelVertical", "false");
// for (String str : plotter3.region(region).style().zAxisStyle().availableParameterOptions("labelVertical"))
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.8 -r1.9
--- TrackingReconstructionPlots.java 24 May 2012 14:33:59 -0000 1.8
+++ TrackingReconstructionPlots.java 24 May 2012 17:08:18 -0000 1.9
@@ -460,7 +460,7 @@
double x = htc.getPosition()[0];
double y = htc.getPosition()[1];
SiSensor sensor = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement());
- if (HPSSVTDAQMaps.sensorToTopLayer.containsKey(sensor)) {
+ if (SvtUtils.getInstance().isTopLayer(sensor)) {
layersTop[htc.Layer() - 1]++;
Hep3Vector sensorPos = ((SiSensor) ((RawTrackerHit) htc.getRawHits().get(0)).getDetectorElement()).getGeometry().getPosition();
if (htc.Layer() == 1) {
hps-java/src/main/java/org/lcsim/hps/monitoring/svt
diff -u -r1.6 -r1.7
--- SVTEventInfo.java 24 May 2012 14:33:59 -0000 1.6
+++ SVTEventInfo.java 24 May 2012 17:08:18 -0000 1.7
@@ -15,6 +15,7 @@
import org.lcsim.geometry.Detector;
import org.lcsim.hps.monitoring.Resettable;
import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
import org.lcsim.util.Driver;
import org.lcsim.util.aida.AIDA;
@@ -169,7 +170,7 @@
ChargeCarrier carrier = ChargeCarrier.getCarrier(_sid_helper.getSideValue(id));
SiSensorElectrodes electrodes = ((SiSensor) hit.getDetectorElement()).getReadoutElectrodes(carrier);
- if(!HPSSVTDAQMaps.sensorToTopLayer.containsKey(sensor))
+ if(!SvtUtils.getInstance().isTopLayer(sensor))
return false;
return true;
}
hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -N SvtUtils.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ SvtUtils.java 24 May 2012 17:08:18 -0000 1.1
@@ -0,0 +1,220 @@
+package org.lcsim.hps.recon.tracking;
+
+//--- java ---//
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+//--- org.lcsim ---//
+import org.lcsim.conditions.ConditionsManager;
+import org.lcsim.conditions.ConditionsSet;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
+import org.lcsim.geometry.Detector;
+
+//--- hps-java ---//
+import org.lcsim.hps.util.Pair;
+
+/**
+ *
+ * @author Omar Moreno
+ * @version $Id: SvtUtils.java,v 1.1 2012/05/24 17:08:18 omoreno Exp $
+ */
+public class SvtUtils {
+
+ // Use eager Singleton initialization since an instance will always be needed
+ private static final SvtUtils INSTANCE = new SvtUtils();
+
+ // Set of sensors
+ private Set<SiSensor> sensors = new HashSet<SiSensor>();
+
+ // Map from Sensor to Hybrid/FPGA pair
+ private Map<SiSensor /* Sensor */, Pair<Integer /* Hybrid */, Integer /* FPGA */>> sensorToDAQPair
+ = new HashMap<SiSensor, Pair<Integer, Integer>>();
+
+ // Map from Hybrid/FPGA pair
+ private Map<Pair<Integer /* Hybrid */, Integer /* FPGA */>, SiSensor /* Sensor*/> daqPairToSensor
+ = new HashMap<Pair<Integer, Integer>, SiSensor>();
+
+ // Map from SVT top layer to Hybrid/FPGA pair
+ private Map<Integer /* Layer # */, Pair<Integer /* Hybrid */, Integer /* FPGA */>> topLayerToDAQ
+ = new HashMap<Integer, Pair<Integer, Integer>>();
+
+ // Map from SVT bottom layer to Hybrid/FPGA pair
+ private Map<Integer /* Layer # */, Pair<Integer /* Hybrid */, Integer /* FPGA */>> bottomLayerToDAQ
+ = new HashMap<Integer, Pair<Integer, Integer>>();
+
+ // Map sensor to an SVT top layer
+ private Map<SiSensor /* Sensor */, Integer /* Layer */> sensorToTopLayer
+ = new HashMap<SiSensor, Integer>();
+
+ // Map sensor to an SVT bottom layer
+ private Map<SiSensor /* Sensor */, Integer /* Layer */> sensorToBottomLayer
+ = new HashMap<SiSensor, Integer>();
+
+ private SiSensor[][] sensorArray = new SiSensor[2][10];
+
+ boolean debug = true;
+ String subdetectorName = "Tracker";
+ ConditionsManager mgr = ConditionsManager.defaultInstance();
+
+ private SvtUtils(){}
+
+ /**
+ *
+ */
+ public static SvtUtils getInstance(){
+ return INSTANCE;
+ }
+
+ /**
+ *
+ * @param sensor
+ * @return
+ */
+ public int getLayerNumber(SiSensor sensor){
+ if(sensorToTopLayer.containsKey(sensor)) return sensorToTopLayer.get(sensor);
+ else if(sensorToBottomLayer.containsKey(sensor)) return sensorToBottomLayer.get(sensor);
+ else throw new RuntimeException("There is no layer associated with sensor " + sensor.getName());
+ }
+
+ /**
+ *
+ */
+ public boolean isTopLayer(SiSensor sensor){
+ if(sensorToTopLayer.containsKey(sensor)) return true;
+ else if(sensorToBottomLayer.containsKey(sensor)) return false;
+ else throw new RuntimeException("There is no layer associated with sensor " + sensor.getName());
+ }
+
+ /**
+ *
+ */
+ public boolean isAxial(SiSensor sensor){
+ if(this.isTopLayer(sensor) && this.getLayerNumber(sensor)%2 == 1) return true;
+ else if(!this.isTopLayer(sensor) && this.getLayerNumber(sensor)%2 == 0) return true;
+ return false;
+ }
+
+ /**
+ *
+ */
+ public SiSensor getSensor(int module, int layer){
+ if(module < 0 || module > 1)
+ throw new RuntimeException("Module number " + module + " is out of range!");
+ else if(layer < 0 || layer > 10)
+ throw new RuntimeException("Layer number " + layer + " is out of range!");
+ return sensorArray[module][layer];
+ }
+
+ /**
+ *
+ */
+ public SiSensor getSensor(Pair<Integer, Integer> daqPair){
+ return this.daqPairToSensor.get(daqPair);
+ }
+
+ /**
+ *
+ * @return
+ */
+ public Set<SiSensor> getSensors(){
+ return sensors;
+ }
+
+ /**
+ *
+ */
+ public int getFPGA(SiSensor sensor){
+ return this.sensorToDAQPair.get(sensor).getSecondElement();
+ }
+
+ /**
+ *
+ */
+ public int getHybrid(SiSensor sensor){
+ return this.sensorToDAQPair.get(sensor).getFirstElement();
+ }
+
+ /**
+ *
+ */
+ public Pair<Integer, Integer> getDaqPair(SiSensor sensor){
+ return this.sensorToDAQPair.get(sensor);
+ }
+
+ /**
+ *
+ */
+ protected void setupDaqMaps(Detector detector){
+
+ if (subdetectorName == null)
+ throw new RuntimeException("The subdetector name was not set!");
+
+ // Get the SVT DAQ Maps
+ ConditionsSet topSvtDaqMap = mgr.getConditions("daqmap/SVTDAQMapTop");
+ ConditionsSet bottomSvtDaqMap = mgr.getConditions("daqmap/SVTDAQMapBottom");
+ String[] daqPair;
+
+ // Loop over the top layers and fill the DAQ map
+ for (Object topLayer : topSvtDaqMap.keySet()) {
+ daqPair = topSvtDaqMap.getString(topLayer.toString()).split(" ");
+ if (debug)
+ System.out.println("Layer: " + topLayer.toString() + " FPGA: " + daqPair[1] + " Hybrid: " + daqPair[0] );
+ topLayerToDAQ.put(Integer.parseInt(topLayer.toString()), new Pair<Integer, Integer>(Integer.parseInt(daqPair[0]), Integer.parseInt(daqPair[1])));
+ }
+
+ // Loop over the bottom layers and fill the DAQ Map
+ for (Object bottomLayer : bottomSvtDaqMap.keySet()) {
+ daqPair = bottomSvtDaqMap.getString(bottomLayer.toString()).split(" ");
+ if (debug)
+ System.out.println("Layer: " + bottomLayer.toString() + " FPGA: " + daqPair[1] + " Hybrid: " + daqPair[0]);
+ bottomLayerToDAQ.put(Integer.parseInt(bottomLayer.toString()), new Pair<Integer, Integer>(Integer.parseInt(daqPair[0]), Integer.parseInt(daqPair[1])));
+ }
+
+ // Get the SVT
+ IDetectorElement detectorElement = detector.getDetectorElement().findDetectorElement(subdetectorName);
+
+ // Get all SVT sensors
+ sensors.addAll(detectorElement.findDescendants(SiSensor.class));
+
+ IIdentifier sensorIdent;
+ SiTrackerIdentifierHelper sensorHelper;
+
+ // Create the maps
+ for(SiSensor sensor : sensors){
+
+ // Get the sensor identifier
+ sensorIdent = sensor.getIdentifier();
+
+ // Get the sensor identifier helper
+ sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
+
+ int layerNumber = sensorHelper.getLayerValue(sensorIdent);
+ int moduleNumber = sensorHelper.getModuleValue(sensorIdent);
+ sensorArray[moduleNumber][layerNumber - 1] = sensor;
+
+ if (moduleNumber == 0) {
+ sensorToTopLayer.put(sensor, layerNumber);
+ sensorToDAQPair.put(sensor, this.topLayerToDAQ.get(layerNumber));
+ daqPairToSensor.put(topLayerToDAQ.get(layerNumber), sensor);
+ } else if(moduleNumber == 1){
+ sensorToBottomLayer.put(sensor, layerNumber);
+ sensorToDAQPair.put(sensor, this.bottomLayerToDAQ.get(layerNumber));
+ daqPairToSensor.put(bottomLayerToDAQ.get(layerNumber), sensor);
+ } else throw new RuntimeException("Invalid Module Number: " + sensorHelper.getModuleValue(sensorIdent));
+ }
+
+ for (int module = 0; module < 2; module++) {
+ for (int layer = 0; layer < 10; layer++) {
+ if (sensorArray[module][layer] == null) {
+ throw new RuntimeException("Couldn't find sensor with module " + module + ", layer " + layer + 1);
+ }
+ }
+ }
+ }
+
+}
hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -u -r1.4 -r1.5
--- HPSMakeSVTCellID.java 10 Apr 2012 01:00:13 -0000 1.4
+++ HPSMakeSVTCellID.java 24 May 2012 17:08:18 -0000 1.5
@@ -27,8 +27,8 @@
// Detector detector;
// IDetectorElement detectorElement = detector.getDetectorElement().findDetectorElement("Tracker");
- Pair daqPair = new Pair(hybrid, fpgaAddress);
- SiSensor sensor = HPSSVTDAQMaps.daqPairToSensor.get(daqPair);
+ Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(hybrid, fpgaAddress);
+ SiSensor sensor = SvtUtils.getInstance().getSensor(daqPair);
IIdentifier sensorIdent = sensor.getIdentifier();
SiTrackerIdentifierHelper sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -u -r1.13 -r1.14
--- HPSDataProcessingModule.java 25 Apr 2012 05:08:00 -0000 1.13
+++ HPSDataProcessingModule.java 24 May 2012 17:08:18 -0000 1.14
@@ -28,7 +28,7 @@
/**
*
* @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSDataProcessingModule.java,v 1.13 2012/04/25 05:08:00 omoreno Exp $
+ * @version $Id: HPSDataProcessingModule.java,v 1.14 2012/05/24 17:08:18 omoreno Exp $
*/
public class HPSDataProcessingModule extends Driver {
@@ -90,7 +90,7 @@
@Override
public void detectorChanged(Detector detector) {
- for (SiSensor sensor : HPSSVTDAQMaps.sensors) {
+ for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
// Map a sensor to its corresponding samples
sensorToSamplesMap.put(sensor, new HashMap<Integer, List<Double>>());
}
@@ -217,7 +217,7 @@
for (Map.Entry<SiSensor, Map<Integer, List<Double>>> sensor : sensorToSamplesMap.entrySet()) {
// Get the FPGA number
- fpgaNumber = HPSSVTDAQMaps.sensorToDAQPair.get(sensor.getKey()).getSecondElement();
+ fpgaNumber = SvtUtils.getInstance().getFPGA(sensor.getKey());
if(fpgaNumber > SVT_TOTAL_FPGAS || fpgaNumber < 0)
throw new RuntimeException("FPGA Number out of range!");
if(debug) System.out.println(this.getClass().getSimpleName() + ": FPGA Number: " + fpgaNumber);
@@ -263,7 +263,7 @@
rawHits.add(rawHit);
// Get the hybrid number
- hybridNumber = HPSSVTDAQMaps.sensorToDAQPair.get(sensor.getKey()).getFirstElement();
+ hybridNumber = SvtUtils.getInstance().getHybrid(sensor.getKey());
if(hybridNumber > TOTAL_HYBRIDS_PER_FPGA || hybridNumber < 0)
throw new RuntimeException("Hybrid number is out of range!");
//if(debug) System.out.println(this.getClass().getSimpleName() + ": Hybrid Number: " + hybridNumber);
hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -u -r1.6 -r1.7
--- HPSHelicalTrackHitDriver.java 13 May 2012 21:38:20 -0000 1.6
+++ HPSHelicalTrackHitDriver.java 24 May 2012 17:08:18 -0000 1.7
@@ -61,7 +61,7 @@
public class HPSHelicalTrackHitDriver extends Driver {
// private StereoHitMaker _crosser = new StereoHitMaker(2., 10.);
- private boolean _debug = false;
+ private boolean _debug = true;
private StereoHitMaker _crosser = new StereoHitMaker(0.0, 10.);
private HitIdentifier _ID = new HitIdentifier();
private String _outname = "HelicalTrackHits";
@@ -155,6 +155,7 @@
String id = makeID(_ID.getName(de), _ID.getLayer(de));
// Check if hit is on a stereo pair layer
+ // Why wouldn't it be on a pair?
if (_stereomap.containsKey(id) || _stereomap.containsValue(id)) {
// Create a HelicalTrackStrip for this hit
@@ -189,6 +190,14 @@
hitrelations.add(new MyLCRelation(hit3d, hit));
}
}
+
+ for(Map.Entry<String, List<HelicalTrackStrip>> entry : striplistmap.entrySet()){
+ String ident = entry.getKey();
+ List<HelicalTrackStrip> hts = entry.getValue();
+ for(HelicalTrackStrip hstrip : hts ){
+ }
+ System.out.println(this.getClass().getSimpleName() + ": Total number of HelicalTrackStrips: " + ident + ": " + hts.size());
+ }
// Now create the stereo hits
// Create a list of stereo hits
hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -u -r1.7 -r1.8
--- HPSSVTSensorSetup.java 16 Mar 2012 19:12:09 -0000 1.7
+++ HPSSVTSensorSetup.java 24 May 2012 17:08:18 -0000 1.8
@@ -21,13 +21,15 @@
import org.lcsim.geometry.Detector;
import org.lcsim.util.Driver;
+import org.lcsim.hps.recon.tracking.SvtUtils;
+
/**
* Setup driver for the HPSTracker subdetector.
*
* @author Mathew Graham <[log in to unmask]>
* @author Omar Moreno <[log in to unmask]>
* @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: HPSSVTSensorSetup.java,v 1.7 2012/03/16 19:12:09 jeremy Exp $
+ * @version $Id: HPSSVTSensorSetup.java,v 1.8 2012/05/24 17:08:18 omoreno Exp $
*/
public class HPSSVTSensorSetup extends Driver {
@@ -75,6 +77,9 @@
// Configure the sensors
configureSensors(sensors);
+
+ // Create DAQ Maps
+ SvtUtils.getInstance().setupDaqMaps(detector);
}
/**
hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -u -r1.11 -r1.12
--- HPSSVTCalibrationConstants.java 18 May 2012 03:48:45 -0000 1.11
+++ HPSSVTCalibrationConstants.java 24 May 2012 17:08:18 -0000 1.12
@@ -199,7 +199,7 @@
}
public static Double getNoise(SiSensor sensor, int channel) {
- Pair<Integer, Integer> daqPair = HPSSVTDAQMaps.sensorToDAQPair.get(sensor);
+ Pair<Integer, Integer> daqPair = SvtUtils.getInstance().getDaqPair(sensor);
double[] noises = noiseMap.get(daqPair);
if (noises == null) {
return null;
@@ -209,7 +209,7 @@
}
public static Double getPedestal(SiSensor sensor, int channel) {
- Pair<Integer, Integer> daqPair = HPSSVTDAQMaps.sensorToDAQPair.get(sensor);
+ Pair<Integer, Integer> daqPair = SvtUtils.getInstance().getDaqPair(sensor);
double[] pedestals = pedestalMap.get(daqPair);
if (pedestals == null) {
return null;
@@ -219,7 +219,7 @@
}
public static Double getTShaping(SiSensor sensor, int channel) {
- Pair<Integer, Integer> daqPair = HPSSVTDAQMaps.sensorToDAQPair.get(sensor);
+ Pair<Integer, Integer> daqPair = SvtUtils.getInstance().getDaqPair(sensor);
double[] tps = tpMap.get(daqPair);
if (tps == null) {
return null;
hps-java/src/main/java/org/lcsim/hps/recon/tracking
diff -u -r1.9 -r1.10
--- SVTDataToRawTrackerHitDriver.java 8 May 2012 15:52:52 -0000 1.9
+++ SVTDataToRawTrackerHitDriver.java 24 May 2012 17:08:18 -0000 1.10
@@ -17,7 +17,7 @@
String svtDataCollectionName = "SVTData";
String rawTrackerHitOutputCollectionName = "SVTRawTrackerHits";
String readoutName = "TrackerHits";
- boolean debug = false;
+ boolean debug = true;
public SVTDataToRawTrackerHitDriver() {
}
@@ -53,12 +53,24 @@
List<RawTrackerHit> hits = new ArrayList<RawTrackerHit>();
for (HPSSVTData svtData : svtDataCollection) {
- Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(svtData.getHybridNumber(), svtData.getFPGAAddress());
- SiSensor sensor = HPSSVTDAQMaps.daqPairToSensor.get(daqPair);
- if (sensor == null) {
+ if(debug)
+ System.out.println(this.getClass().getSimpleName() + ": FPGA: " + svtData.getFPGAAddress() + " Hybrid: " + svtData.getHybridNumber());
+
+ Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(svtData.getHybridNumber(), svtData.getFPGAAddress());
+ SiSensor sensor = SvtUtils.getInstance().getSensor(daqPair);
+
+ if (sensor == null) {
throw new RuntimeException("Unexpected DAQ address: FPGA " + svtData.getFPGAAddress() + ", hybrid " + svtData.getHybridNumber());
}
+ if(debug){
+ if(SvtUtils.getInstance().isTopLayer(sensor)){
+ System.out.println(this.getClass().getSimpleName() + ": Top Layer Number: " + SvtUtils.getInstance().getLayerNumber(sensor));
+ } else {
+ System.out.println(this.getClass().getSimpleName() + ": Bottom Layer Number: " + SvtUtils.getInstance().getLayerNumber(sensor));
+ }
+ }
+
int sensorChannel = svtData.getSensorChannel();
if (sensorChannel >= HPSSVTConstants.TOTAL_STRIPS_PER_SENSOR) {
continue; //strip 639 exists as an APV channel but not as a sensor strip; drop it
@@ -80,6 +92,9 @@
long cell_id = sensor.makeStripId(sensorChannel, sideNumber).getValue();
RawTrackerHit myHit = new BaseRawTrackerHit(hitTime, cell_id, data, null, sensor);
+
+ if(debug)
+ System.out.println(this.getClass().getSimpleName() + "Cell ID Module " + myHit.getIdentifierFieldValue("module") + "Cell ID Layer: " + myHit.getIdentifierFieldValue("layer") + "Strip Number: " + myHit.getIdentifierFieldValue("strip"));
myHit.getDetectorElement().getReadout().addHit((myHit));
hits.add(new BaseRawTrackerHit(hitTime, cell_id, data, null, sensor));
}
hps-java/src/main/java/org/lcsim/hps/users/omoreno
diff -u -r1.2 -r1.3
--- SvtTrackAnalysis.java 16 May 2012 04:40:17 -0000 1.2
+++ SvtTrackAnalysis.java 24 May 2012 17:08:18 -0000 1.3
@@ -31,7 +31,7 @@
/**
*
* @author Omar Moreno
- * @version $Id: SvtTrackAnalysis.java,v 1.2 2012/05/16 04:40:17 omoreno Exp $
+ * @version $Id: SvtTrackAnalysis.java,v 1.3 2012/05/24 17:08:18 omoreno Exp $
*
*/
@@ -47,7 +47,11 @@
int npositive = 0;
int nnegative = 0;
-
+ double ntracks = 0;
+ double ntracksTop = 0;
+ double ntracksBottom = 0;
+ double nTwoTracks = 0;
+ double nevents = 0;
SvtTrackExtrapolator extrapolator;
@@ -286,7 +290,7 @@
}
public void process(EventHeader event){
-
+ nevents++;
if(event.hasCollection(SiTrackerHitStrip1D.class, stripHitCollectionName)){
@@ -311,6 +315,7 @@
List<Hep3Vector> ecalPos = new ArrayList<Hep3Vector>();
for(SeedTrack track : tracks){
+ ntracks++;
extrapolator.setTrack(track);
trackUtil.setTrack(track);
Hep3Vector positionEcal = extrapolator.getTrackPositionAtEcal();
@@ -320,6 +325,10 @@
aida.histogram2D("Track Position at Ecal").fill(positionEcal.y(), positionEcal.z());
aida.histogram2D("Track Position at Harp").fill(positionConverter.y(), positionConverter.z());
+ if(positionEcal.z() > 0 ) ntracksTop++;
+ else if(positionEcal.z() < 0) ntracksBottom++;
+
+
aida.histogram1D("DOCA").fill(trackUtil.getDoca());
aida.histogram1D("Z0").fill(trackUtil.getZ0());
aida.histogram1D("phi0").fill(trackUtil.getPhi0());
@@ -351,6 +360,7 @@
aida.histogram2D("Track Position at Ecal: Two Tracks").fill(positionEcal.y(), positionEcal.z());
aida.histogram2D("Track Position at Harp: Two Tracks").fill(positionConverter.y(), positionConverter.z());
aida.histogram1D("Px: Two Tracks").fill(track.getPX());
+ if(tracks.size() == 2) nTwoTracks++;
}
trackToEcalPosition.put(positionEcal, track);
@@ -398,6 +408,15 @@
double ratio = nnegative/npositive;
System.out.println("Ratio of Negative to Position Tracks: " + ratio);
+
+ double tracksRatio = ntracks/nevents;
+ double tracksTopRatio = ntracksTop/nevents;
+ double tracksBottomRatio = ntracksBottom/nevents;
+ double twoTrackRatio = nTwoTracks/nevents;
+ System.out.println("Number of tracks per event: " + tracksRatio);
+ System.out.println("Number of top tracks per event: " + tracksTopRatio);
+ System.out.println("Number of bottom tracks per event: " + tracksBottomRatio);
+ System.out.println("Number of two track events: " + twoTrackRatio);
}
@Override
hps-java/src/main/java/org/lcsim/hps/recon/tracking/apv25
diff -u -r1.8 -r1.9
--- HPSSiSensorReadout.java 21 Apr 2012 07:41:59 -0000 1.8
+++ HPSSiSensorReadout.java 24 May 2012 17:08:18 -0000 1.9
@@ -42,13 +42,14 @@
import org.lcsim.hps.recon.tracking.HPSDataProcessingModule;
import org.lcsim.hps.recon.tracking.HPSRTM;
import org.lcsim.hps.recon.tracking.HPSSVTDAQMaps;
+import org.lcsim.hps.recon.tracking.SvtUtils;
import org.lcsim.hps.util.ClockSingleton;
/**
* Class used to Readout HPS APV25's
*
* @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSSiSensorReadout.java,v 1.8 2012/04/21 07:41:59 omoreno Exp $
+ * @version $Id: HPSSiSensorReadout.java,v 1.9 2012/05/24 17:08:18 omoreno Exp $
*/
public class HPSSiSensorReadout extends Driver {
@@ -153,7 +154,7 @@
super.detectorChanged(detector);
// Instantiate all maps
- for(SiSensor sensor : HPSSVTDAQMaps.sensors){
+ for(SiSensor sensor : SvtUtils.getInstance().getSensors()){
sensorToPipelineMap.put(sensor, new HashMap<Integer, APV25AnalogPipeline>());
@@ -201,7 +202,7 @@
}
// Loop over all sensors
- for (SiSensor sensor : HPSSVTDAQMaps.sensors) {
+ for (SiSensor sensor : SvtUtils.getInstance().getSensors()) {
// Readout the sensors
readoutSensor(sensor);
}
CVSspam 0.2.12