Commit in hps-java on MAIN | |||
src/main/java/org/lcsim/hps/monitoring/svt/TrackingReconstructionPlots.java | -11 | 1.11 -> 1.12 | |
/SVTEventInfo.java | -8 | 1.7 -> 1.8 | |
src/main/resources/org/lcsim/hps/steering/MultScatAna.lcsim | -1 | 1.4 -> 1.5 | |
/HPSTestRunReconToEvio.lcsim | +11 | -5 | 1.11 -> 1.12 |
src/main/java/org/lcsim/hps/recon/tracking/HPSSVTDAQMaps.java | -209 | 1.10 removed | |
sandbox/HPSSVTDAQMaps.java | +209 | added 1.1 | |
+220 | -234 |
sandbox HPSSVTDAQMaps, finally
diff -u -r1.11 -r1.12 --- TrackingReconstructionPlots.java 29 Jun 2012 18:58:02 -0000 1.11 +++ TrackingReconstructionPlots.java 14 Aug 2012 01:02:07 -0000 1.12 @@ -4,27 +4,16 @@
import hep.physics.matrix.SymmetricMatrix; import hep.physics.vec.Hep3Vector; import java.io.IOException;
-import java.util.ArrayList; -import java.util.HashSet;
import java.util.List;
-import java.util.Set;
import java.util.logging.Level; import java.util.logging.Logger;
-import org.lcsim.detector.tracker.silicon.DopedSilicon;
import org.lcsim.detector.tracker.silicon.SiSensor; import org.lcsim.event.*;
-import org.lcsim.fit.helicaltrack.HelicalTrackCross; -import org.lcsim.fit.helicaltrack.HelicalTrackFit; -import org.lcsim.fit.helicaltrack.HelicalTrackHit; -import org.lcsim.fit.helicaltrack.HelixUtils;
import org.lcsim.geometry.Detector; import org.lcsim.geometry.IDDecoder; import org.lcsim.hps.monitoring.AIDAFrame; import org.lcsim.hps.monitoring.Resettable; import org.lcsim.hps.recon.ecal.HPSEcalCluster;
-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.vertexing.HelixConverter; import org.lcsim.hps.recon.vertexing.StraightLineTrack; import org.lcsim.recon.tracking.digitization.sisim.SiTrackerHitStrip1D;
diff -u -r1.7 -r1.8 --- SVTEventInfo.java 24 May 2012 17:08:18 -0000 1.7 +++ SVTEventInfo.java 14 Aug 2012 01:02:07 -0000 1.8 @@ -3,9 +3,7 @@
import hep.aida.*; import java.io.IOException; import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.logging.Level; import java.util.logging.Logger; import org.lcsim.detector.identifier.IIdentifier;
@@ -14,7 +12,6 @@
import org.lcsim.event.RawTrackerHit; 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;
@@ -28,9 +25,6 @@
private List<IPlotter> plotters = new ArrayList<IPlotter>(); private AIDA aida = AIDA.defaultInstance(); private String rawTrackerHitCollectionName = "SVTRawTrackerHits";
- private String trackerName = "Tracker"; - private Detector detector = null; - private List<SiSensor> sensors;
IPlotter plotter; IPlotter plotter2; private String outputPlots = null;
@@ -45,10 +39,8 @@
} protected void detectorChanged(Detector detector) {
- this.detector = detector;
aida.tree().cd("/");
- sensors = detector.getSubdetector(trackerName).getDetectorElement().findDescendants(SiSensor.class);
IAnalysisFactory fac = aida.analysisFactory();
diff -u -r1.4 -r1.5 --- MultScatAna.lcsim 14 Aug 2012 00:58:03 -0000 1.4 +++ MultScatAna.lcsim 14 Aug 2012 01:02:07 -0000 1.5 @@ -28,7 +28,6 @@
<driver name="GainCalibrationDriver"/> <!--
- <driver name="HPSSVTDAQMaps"/>
<driver name="EcalMonitoringPlots"/> <driver name="FastTrackResidualDriver"/> -->
diff -u -r1.11 -r1.12 --- HPSTestRunReconToEvio.lcsim 9 Aug 2012 22:27:10 -0000 1.11 +++ HPSTestRunReconToEvio.lcsim 14 Aug 2012 01:02:07 -0000 1.12 @@ -17,8 +17,9 @@
<driver name="EcalClusterer"/> <driver name="EcalTrigger"/> <!-- <driver name="Timer2"/>-->
- <driver name="SVTSensorSetup"/>
<driver name="SVTReadout"/>
+<!-- <driver name="SVT_RTM"/> + <driver name="SVT_DPM"/>-->
<!-- <driver name="Timer3"/>--> <driver name="TestRunReconToEvio"/> <driver name="ClockDriver"/>
@@ -73,14 +74,19 @@
<deadTime>10</deadTime> </driver>
- <driver name="SVTSensorSetup" - type="org.lcsim.hps.recon.tracking.HPSSVTSensorSetup"> - </driver> -
<driver name="SVTReadout" type="org.lcsim.hps.recon.tracking.apv25.HPSSiSensorReadout"> <addNoise>true</addNoise> </driver>
+<!-- <driver name="SVTReadout" + type="org.lcsim.hps.recon.tracking.apv25.SvtReadout"> + </driver> + <driver name="SVT_RTM" + type="org.lcsim.hps.recon.tracking.RearTransitionModule"> + </driver> + <driver name="SVT_DPM" + type="org.lcsim.hps.recon.tracking.DataProcessingModule"> + </driver>-->
<driver name="ClockDriver" type="org.lcsim.hps.util.ClockDriver">
diff -N HPSSVTDAQMaps.java --- HPSSVTDAQMaps.java 18 May 2012 03:48:45 -0000 1.10 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,209 +0,0 @@
-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.ConditionsManager.ConditionsNotFoundException; -import org.lcsim.conditions.ConditionsSet; -import org.lcsim.detector.IDetectorElement; -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.geometry.Detector; -import org.lcsim.util.Driver; - -//--- hps-java ---// -import org.lcsim.hps.util.Pair; - -/** - * Creates maps between SVT sensors to FPGA and Hybrid pairs and vice versa - * - * @author Omar Moreno - * @version $Id: HPSSVTDAQMaps.java,v 1.10 2012/05/18 03:48:45 meeg Exp $ - */ -public class HPSSVTDAQMaps extends Driver { - - String subdetectorName = "Tracker"; - boolean debug = false; - ConditionsManager mgr = ConditionsManager.defaultInstance(); - // Set of sensors - public static Set<SiSensor> sensors = new HashSet<SiSensor>(); - // Map from Sensor to Hybrid/FPGA pair - public static Map<SiSensor /* - * Sensor - */, Pair<Integer /* - * Hybrid - */, Integer /* - * FPGA - */>> sensorToDAQPair; - // Map from Hybrid/FPGA pair - public static Map<Pair<Integer /* - * Hybrid - */, Integer /* - * FPGA - */>, SiSensor /* - * Sensor - */> daqPairToSensor; - // Map from SVT top layer to Hybrid/FPGA pair - private Map<Integer /* - * Layer # - */, Pair<Integer /* - * Hybrid - */, Integer /* - * FPGA - */>> topLayerToDAQ; - // Map from SVT bottom layer to Hybrid/FPGA pair - private Map<Integer /* - * Layer # - */, Pair<Integer /* - * Hybrid - */, Integer /* - * FPGA - */>> bottomLayerToDAQ; - // Map sensor to an SVT top layer - public static Map<SiSensor /* - * Sensor - */, Integer /* - * Layer - */> sensorToTopLayer; - // Map sensor to an SVT bottom layer - public static Map<SiSensor /* - * Sensor - */, Integer /* - * Layer - */> sensorToBottomLayer; - public static final SiSensor[][] sensorArray = new SiSensor[2][10]; - - /** - * Default Constructor. - */ - public HPSSVTDAQMaps() { - sensorToDAQPair = new HashMap<SiSensor, Pair<Integer, Integer>>(); - daqPairToSensor = new HashMap<Pair<Integer, Integer>, SiSensor>(); - topLayerToDAQ = new HashMap<Integer, Pair<Integer, Integer>>(); - bottomLayerToDAQ = new HashMap<Integer, Pair<Integer, Integer>>(); - sensorToTopLayer = new HashMap<SiSensor, Integer>(); - sensorToBottomLayer = new HashMap<SiSensor, Integer>(); - - } - - /** - * - * @param detector - */ - @Override - public void detectorChanged(Detector detector) { - // Call the sub-Driver's detectorChanged methods. -// super.detectorChanged(detector); - - if (subdetectorName == null) { - throw new RuntimeException("The subdetector name was not set!"); - } - - // Get the HPS detector conditions - // Removed this because it causes detector to be set twice when running jobs. --JM - try { - mgr.setDetector(detector.getDetectorName(), 0); - } catch (ConditionsNotFoundException e) { - System.out.println("The conditions for " + detector.getDetectorName() + " were not found!"); - } - - // Get the top SVT DAQ Map - ConditionsSet svtDAQMap = mgr.getConditions("daqmap/SVTDAQMapTop"); - - String[] daqPair; - - // Loop over the top layers and fill the DAQ map - for (Object topLayer : svtDAQMap.keySet()) { - daqPair = svtDAQMap.getString(topLayer.toString()).split(" "); - if (debug) { - System.out.println("Layer: " + topLayer.toString() + " Hybrid: " + daqPair[0] + " FPGA: " + daqPair[1]); - } - topLayerToDAQ.put(Integer.parseInt(topLayer.toString()), new Pair<Integer, Integer>(Integer.parseInt(daqPair[0]), Integer.parseInt(daqPair[1]))); - - } - - // Get the bottom SVT DAQ Map - svtDAQMap = mgr.getConditions("daqmap/SVTDAQMapBottom"); - - // Loop over the bottom layers and fill the DAQ map - for (Object bottomLayer : svtDAQMap.keySet()) { - daqPair = svtDAQMap.getString(bottomLayer.toString()).split(" "); - if (debug) { - System.out.println("Layer: " + bottomLayer.toString() + " Hybrid: " + daqPair[0] + " FPGA: " + daqPair[1]); - } - 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)); - - for (SiSensor sensor : sensors) { - 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 - - sensorArray[module][layer - 1] = sensor; - } - - 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); - } - } - } - - - // Map sensors to hybrid and FPGA - createDAQMaps(sensors); - - } - - /** - * Create maps which relate a DAQ pair (hybrid, FPGA) to a sensor and vice - * versa - * - * @param sensors A set of all sensors in the detector - */ - private void createDAQMaps(Set<SiSensor> sensors) { - - IIdentifier sensorIdent; - SiTrackerIdentifierHelper sensorHelper; - Pair<Integer, Integer> daqPair; - - for (SiSensor sensor : sensors) { - - // Get the sensor identifier - sensorIdent = sensor.getIdentifier(); - - // Get the sensor identifier helper - sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper(); - - // Get the DAQ pair - int layerNumber = sensorHelper.getLayerValue(sensorIdent); - if (sensorHelper.getModuleValue(sensorIdent) == 0) { - daqPair = topLayerToDAQ.get(layerNumber); - sensorToTopLayer.put(sensor, layerNumber); - } else { - daqPair = bottomLayerToDAQ.get(layerNumber); - sensorToBottomLayer.put(sensor, layerNumber); - } - - sensorToDAQPair.put(sensor, daqPair); - daqPairToSensor.put(daqPair, sensor); - } - } -}
\ No newline at end of file
diff -N HPSSVTDAQMaps.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ HPSSVTDAQMaps.java 14 Aug 2012 01:02:07 -0000 1.1 @@ -0,0 +1,209 @@
+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.ConditionsManager.ConditionsNotFoundException; +import org.lcsim.conditions.ConditionsSet; +import org.lcsim.detector.IDetectorElement; +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.geometry.Detector; +import org.lcsim.util.Driver; + +//--- hps-java ---// +import org.lcsim.hps.util.Pair; + +/** + * Creates maps between SVT sensors to FPGA and Hybrid pairs and vice versa + * + * @author Omar Moreno + * @version $Id: HPSSVTDAQMaps.java,v 1.1 2012/08/14 01:02:07 meeg Exp $ + */ +public class HPSSVTDAQMaps extends Driver { + + String subdetectorName = "Tracker"; + boolean debug = false; + ConditionsManager mgr = ConditionsManager.defaultInstance(); + // Set of sensors + public static Set<SiSensor> sensors = new HashSet<SiSensor>(); + // Map from Sensor to Hybrid/FPGA pair + public static Map<SiSensor /* + * Sensor + */, Pair<Integer /* + * Hybrid + */, Integer /* + * FPGA + */>> sensorToDAQPair; + // Map from Hybrid/FPGA pair + public static Map<Pair<Integer /* + * Hybrid + */, Integer /* + * FPGA + */>, SiSensor /* + * Sensor + */> daqPairToSensor; + // Map from SVT top layer to Hybrid/FPGA pair + private Map<Integer /* + * Layer # + */, Pair<Integer /* + * Hybrid + */, Integer /* + * FPGA + */>> topLayerToDAQ; + // Map from SVT bottom layer to Hybrid/FPGA pair + private Map<Integer /* + * Layer # + */, Pair<Integer /* + * Hybrid + */, Integer /* + * FPGA + */>> bottomLayerToDAQ; + // Map sensor to an SVT top layer + public static Map<SiSensor /* + * Sensor + */, Integer /* + * Layer + */> sensorToTopLayer; + // Map sensor to an SVT bottom layer + public static Map<SiSensor /* + * Sensor + */, Integer /* + * Layer + */> sensorToBottomLayer; + public static final SiSensor[][] sensorArray = new SiSensor[2][10]; + + /** + * Default Constructor. + */ + public HPSSVTDAQMaps() { + sensorToDAQPair = new HashMap<SiSensor, Pair<Integer, Integer>>(); + daqPairToSensor = new HashMap<Pair<Integer, Integer>, SiSensor>(); + topLayerToDAQ = new HashMap<Integer, Pair<Integer, Integer>>(); + bottomLayerToDAQ = new HashMap<Integer, Pair<Integer, Integer>>(); + sensorToTopLayer = new HashMap<SiSensor, Integer>(); + sensorToBottomLayer = new HashMap<SiSensor, Integer>(); + + } + + /** + * + * @param detector + */ + @Override + public void detectorChanged(Detector detector) { + // Call the sub-Driver's detectorChanged methods. +// super.detectorChanged(detector); + + if (subdetectorName == null) { + throw new RuntimeException("The subdetector name was not set!"); + } + + // Get the HPS detector conditions + // Removed this because it causes detector to be set twice when running jobs. --JM + try { + mgr.setDetector(detector.getDetectorName(), 0); + } catch (ConditionsNotFoundException e) { + System.out.println("The conditions for " + detector.getDetectorName() + " were not found!"); + } + + // Get the top SVT DAQ Map + ConditionsSet svtDAQMap = mgr.getConditions("daqmap/SVTDAQMapTop"); + + String[] daqPair; + + // Loop over the top layers and fill the DAQ map + for (Object topLayer : svtDAQMap.keySet()) { + daqPair = svtDAQMap.getString(topLayer.toString()).split(" "); + if (debug) { + System.out.println("Layer: " + topLayer.toString() + " Hybrid: " + daqPair[0] + " FPGA: " + daqPair[1]); + } + topLayerToDAQ.put(Integer.parseInt(topLayer.toString()), new Pair<Integer, Integer>(Integer.parseInt(daqPair[0]), Integer.parseInt(daqPair[1]))); + + } + + // Get the bottom SVT DAQ Map + svtDAQMap = mgr.getConditions("daqmap/SVTDAQMapBottom"); + + // Loop over the bottom layers and fill the DAQ map + for (Object bottomLayer : svtDAQMap.keySet()) { + daqPair = svtDAQMap.getString(bottomLayer.toString()).split(" "); + if (debug) { + System.out.println("Layer: " + bottomLayer.toString() + " Hybrid: " + daqPair[0] + " FPGA: " + daqPair[1]); + } + 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)); + + for (SiSensor sensor : sensors) { + 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 + + sensorArray[module][layer - 1] = sensor; + } + + 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); + } + } + } + + + // Map sensors to hybrid and FPGA + createDAQMaps(sensors); + + } + + /** + * Create maps which relate a DAQ pair (hybrid, FPGA) to a sensor and vice + * versa + * + * @param sensors A set of all sensors in the detector + */ + private void createDAQMaps(Set<SiSensor> sensors) { + + IIdentifier sensorIdent; + SiTrackerIdentifierHelper sensorHelper; + Pair<Integer, Integer> daqPair; + + for (SiSensor sensor : sensors) { + + // Get the sensor identifier + sensorIdent = sensor.getIdentifier(); + + // Get the sensor identifier helper + sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper(); + + // Get the DAQ pair + int layerNumber = sensorHelper.getLayerValue(sensorIdent); + if (sensorHelper.getModuleValue(sensorIdent) == 0) { + daqPair = topLayerToDAQ.get(layerNumber); + sensorToTopLayer.put(sensor, layerNumber); + } else { + daqPair = bottomLayerToDAQ.get(layerNumber); + sensorToBottomLayer.put(sensor, layerNumber); + } + + sensorToDAQPair.put(sensor, daqPair); + daqPairToSensor.put(daqPair, sensor); + } + } +}
\ No newline at end of file
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1