Commit in hps-java on MAIN | |||
src/main/java/org/lcsim/hps/evio/BasicEvioFileReader.java | +13 | -17 | 1.5 -> 1.6 |
/ECalEvioReader.java | +63 | -80 | 1.10 -> 1.11 |
scripts/make_monitoring_release_tarball.sh | +1 | -1 | 1.1 -> 1.2 |
src/main/resources/org/lcsim/hps/steering/ECalMonitoring.lcsim | +37 | added 1.1 | |
src/main/java/org/lcsim/hps/recon/ecal/HPSEcalConditions.java | +11 | -3 | 1.2 -> 1.3 |
src/main/java/org/lcsim/hps/monitoring/ecal/EcalEventMonitor.java | +12 | -1 | 1.1 -> 1.2 |
+137 | -102 |
EcalEventMonitor can subtract pedestals from integral hits now
diff -u -r1.5 -r1.6 --- BasicEvioFileReader.java 2 May 2012 14:55:52 -0000 1.5 +++ BasicEvioFileReader.java 2 May 2012 16:53:28 -0000 1.6 @@ -76,24 +76,20 @@
} private static void printWindow(CompositeData cdata, String indent) {
- while (true) { - try { - System.out.println(indent + "Byte count: " + cdata.getRawBytes().length); - System.out.println(indent + "Slot: " + cdata.getByte()); - System.out.println(indent + "Trigger: " + cdata.getInt()); - System.out.println(indent + "Timestamp: " + cdata.getLong()); - int nchannels = cdata.getNValue(); - System.out.println(indent + "NChannels: " + nchannels); - for (int j = 0; j < nchannels; j++) { - System.out.println(indent + "Channel: " + cdata.getByte()); - int nSamples = cdata.getNValue(); - System.out.println(indent + "NSamples: " + nSamples); - for (int i = 0; i < nSamples; i++) { - cdata.getShort(); - }
+ while (cdata.index() < cdata.getItems().size()) { + System.out.println(indent + "Byte count: " + cdata.getRawBytes().length); + System.out.println(indent + "Slot: " + cdata.getByte()); + System.out.println(indent + "Trigger: " + cdata.getInt()); + System.out.println(indent + "Timestamp: " + cdata.getLong()); + int nchannels = cdata.getNValue(); + System.out.println(indent + "NChannels: " + nchannels); + for (int j = 0; j < nchannels; j++) { + System.out.println(indent + "Channel: " + cdata.getByte()); + int nSamples = cdata.getNValue(); + System.out.println(indent + "NSamples: " + nSamples); + for (int i = 0; i < nSamples; i++) { + cdata.getShort();
}
- } catch (IndexOutOfBoundsException e) { - break;
} } }
diff -u -r1.10 -r1.11 --- ECalEvioReader.java 2 May 2012 14:55:52 -0000 1.10 +++ ECalEvioReader.java 2 May 2012 16:53:28 -0000 1.11 @@ -17,7 +17,7 @@
/** * * @author Sho Uemura <[log in to unmask]>
- * @version $Id: ECalEvioReader.java,v 1.10 2012/05/02 14:55:52 meeg Exp $
+ * @version $Id: ECalEvioReader.java,v 1.11 2012/05/02 16:53:28 meeg Exp $
*/ public class ECalEvioReader extends EvioReader { // Names of subdetectors.
@@ -88,7 +88,7 @@
return foundHits; }
- private List<BaseRawTrackerHit> makeWindowHits(CompositeData cdata, int bankTag) {
+ private List<BaseRawTrackerHit> makeWindowHits(CompositeData cdata, int crate) {
List<BaseRawTrackerHit> hits = new ArrayList<BaseRawTrackerHit>(); if (debug) { int n = cdata.getNValues().size();
@@ -100,39 +100,34 @@
System.out.println("cdata.type[" + i + "]=" + cdata.getTypes().get(i)); } }
- while (true) { - try { - int crate = bankTag; - short slot = cdata.getByte(); - int trigger = cdata.getInt(); - long timestamp = cdata.getLong(); - int nchannels = cdata.getNValue();
+ while (cdata.index() < cdata.getItems().size()) { + short slot = cdata.getByte(); + int trigger = cdata.getInt(); + long timestamp = cdata.getLong(); + int nchannels = cdata.getNValue(); + if (debug) { + System.out.println("slot#=" + slot + "; trigger=" + trigger + "; timestamp=" + timestamp + "; nchannels=" + nchannels); + } + for (int j = 0; j < nchannels; j++) { + short channel = cdata.getByte(); + int nSamples = cdata.getNValue();
if (debug) {
- System.out.println("slot#=" + slot + "; trigger=" + trigger + "; timestamp=" + timestamp + "; nchannels=" + nchannels);
+ System.out.println(" channel=" + channel + "; nSamples=" + nSamples);
}
- for (int j = 0; j < nchannels; j++) { - short channel = cdata.getByte(); - int nSamples = cdata.getNValue(); - if (debug) { - System.out.println(" channel=" + channel + "; nSamples=" + nSamples); - } - long daqID = HPSEcalConditions.getDaqID(crate, slot, channel); - Long id = HPSEcalConditions.daqToPhysicalID(daqID);
+ long daqID = HPSEcalConditions.getDaqID(crate, slot, channel); + Long id = HPSEcalConditions.daqToPhysicalID(daqID);
- short[] adcValues = new short[nSamples]; - for (int i = 0; i < nSamples; i++) { - adcValues[i] = cdata.getShort(); - } - hits.add(new BaseRawTrackerHit(id, 0, adcValues));
+ short[] adcValues = new short[nSamples]; + for (int i = 0; i < nSamples; i++) { + adcValues[i] = cdata.getShort();
}
- } catch (IndexOutOfBoundsException e) { - break;
+ hits.add(new BaseRawTrackerHit(id, 0, adcValues));
} } return hits; }
- private List<BaseRawTrackerHit> makePulseHits(CompositeData cdata, int bankTag) {
+ private List<BaseRawTrackerHit> makePulseHits(CompositeData cdata, int crate) {
List<BaseRawTrackerHit> hits = new ArrayList<BaseRawTrackerHit>(); if (debug) { int n = cdata.getNValues().size();
@@ -144,44 +139,38 @@
System.out.println("cdata.type[" + i + "]=" + cdata.getTypes().get(i)); } }
- - while (true) { - try { - int crate = bankTag; - short slot = cdata.getByte(); - int trigger = cdata.getInt(); - long timestamp = cdata.getLong(); - int nchannels = cdata.getNValue();
+ while (cdata.index() < cdata.getItems().size()) { + short slot = cdata.getByte(); + int trigger = cdata.getInt(); + long timestamp = cdata.getLong(); + int nchannels = cdata.getNValue(); + if (debug) { + System.out.println("slot#=" + slot + "; trigger=" + trigger + "; timestamp=" + timestamp + "; nchannels=" + nchannels); + } + for (int j = 0; j < nchannels; j++) { + short channel = cdata.getByte(); + int npulses = cdata.getNValue();
if (debug) {
- System.out.println("slot#=" + slot + "; trigger=" + trigger + "; timestamp=" + timestamp + "; nchannels=" + nchannels);
+ System.out.println(" channel=" + channel + "; npulses=" + npulses);
}
- for (int j = 0; j < nchannels; j++) { - short channel = cdata.getByte(); - int npulses = cdata.getNValue(); - if (debug) { - System.out.println(" channel=" + channel + "; npulses=" + npulses); - } - long daqID = HPSEcalConditions.getDaqID(crate, slot, channel); - Long id = HPSEcalConditions.daqToPhysicalID(daqID);
+ long daqID = HPSEcalConditions.getDaqID(crate, slot, channel); + Long id = HPSEcalConditions.daqToPhysicalID(daqID);
- for (int k = 0; k < npulses; k++) { - short pulseNum = cdata.getByte(); - int sampleCount = cdata.getNValue(); - short[] adcValues = new short[sampleCount]; - for (int i = 0; i < sampleCount; i++) { - adcValues[i] = cdata.getShort(); - } - hits.add(new BaseRawTrackerHit(id, pulseNum, adcValues));
+ for (int k = 0; k < npulses; k++) { + short pulseNum = cdata.getByte(); + int sampleCount = cdata.getNValue(); + short[] adcValues = new short[sampleCount]; + for (int i = 0; i < sampleCount; i++) { + adcValues[i] = cdata.getShort();
}
+ hits.add(new BaseRawTrackerHit(id, pulseNum, adcValues));
}
- } catch (IndexOutOfBoundsException e) { - break;
} } return hits; }
- private List<RawCalorimeterHit> makeIntegralHits(CompositeData cdata, int bankTag) {
+ private List<RawCalorimeterHit> makeIntegralHits(CompositeData cdata, int crate) {
List<RawCalorimeterHit> hits = new ArrayList<RawCalorimeterHit>(); if (debug) { int n = cdata.getNValues().size();
@@ -193,37 +182,31 @@
System.out.println("cdata.type[" + i + "]=" + cdata.getTypes().get(i)); } }
- - while (true) { - try { - int crate = bankTag; - short slot = cdata.getByte(); - int trigger = cdata.getInt(); - long timestamp = cdata.getLong(); - int nchannels = cdata.getNValue();
+ while (cdata.index()+1 < cdata.getItems().size()) { //the +1 is a hack because sometimes an extra byte gets read (padding) + short slot = cdata.getByte(); + int trigger = cdata.getInt(); + long timestamp = cdata.getLong(); + int nchannels = cdata.getNValue(); + if (debug) { + System.out.println("slot#=" + slot + "; trigger=" + trigger + "; timestamp=" + timestamp + "; nchannels=" + nchannels); + } + for (int j = 0; j < nchannels; j++) { + short channel = cdata.getByte(); + int npulses = cdata.getNValue();
if (debug) {
- System.out.println("slot#=" + slot + "; trigger=" + trigger + "; timestamp=" + timestamp + "; nchannels=" + nchannels);
+ System.out.println(" channel=" + channel + "; npulses=" + npulses);
}
- for (int j = 0; j < nchannels; j++) { - short channel = cdata.getByte(); - int npulses = cdata.getNValue(); - if (debug) { - System.out.println(" channel=" + channel + "; npulses=" + npulses); - } - long daqID = HPSEcalConditions.getDaqID(crate, slot, channel); - Long id = HPSEcalConditions.daqToPhysicalID(daqID);
+ long daqID = HPSEcalConditions.getDaqID(crate, slot, channel); + Long id = HPSEcalConditions.daqToPhysicalID(daqID);
- for (int k = 0; k < npulses; k++) { - short pulseTime = cdata.getShort(); - int pulseIntegral = cdata.getInt(); - if (debug) { - System.out.println(" pulseTime=" + pulseTime + "; pulseIntegral=" + pulseIntegral); - } - hits.add(new BaseRawCalorimeterHit(id, pulseIntegral, pulseTime));
+ for (int k = 0; k < npulses; k++) { + short pulseTime = cdata.getShort(); + int pulseIntegral = cdata.getInt(); + if (debug) { + System.out.println(" pulseTime=" + pulseTime + "; pulseIntegral=" + pulseIntegral);
}
+ hits.add(new BaseRawCalorimeterHit(id, pulseIntegral, pulseTime));
}
- } catch (IndexOutOfBoundsException e) { - break;
} } return hits;
diff -u -r1.1 -r1.2 --- make_monitoring_release_tarball.sh 1 May 2012 21:13:39 -0000 1.1 +++ make_monitoring_release_tarball.sh 2 May 2012 16:53:29 -0000 1.2 @@ -1 +1 @@
-tar -zcvf hps_monitoring_release.tar.gz ./hps-et-java/lib/*/*.so ./hps-et-java/lib/*/*.dylib ./hps-et-java/target/*.jar ./hps-java/target/*bin.jar ./hps-et-java/scripts/*.sh ./hps-java/scripts/*.sh
+tar -zcvf hps_monitoring_release.tar.gz ./hps-et-java/lib/*/*.so ./hps-et-java/lib/*/*.dylib ./hps-et-java/target/*.jar ./hps-java/target/*bin.jar ./hps-et-java/scripts/*.sh ./hps-java/scripts/*.sh ./hps-java/src/main/resources/org/lcsim/hps/steering/*.lcsim
diff -N ECalMonitoring.lcsim --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ ECalMonitoring.lcsim 2 May 2012 16:53:29 -0000 1.1 @@ -0,0 +1,37 @@
+<lcsim xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" + xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/lcsim/1.0/lcsim.xsd"> + <control> + <numberOfEvents>-1</numberOfEvents> + <printInputFiles>true</printInputFiles> + <printDriversDetailed>true</printDriversDetailed> + </control> + <execute> + <driver name="EventMarkerDriver"/> + <driver name="EcalPedestalPlots"/> + <driver name="EcalDaqPlots"/> + <driver name="EcalMonitoringPlots"/> + <driver name="EcalEventMonitor"/> + </execute> + <drivers> + <driver name="EcalDaqPlots" type="org.lcsim.hps.monitoring.ecal.EcalDaqPlots"> + </driver> + <driver name="EcalMonitoringPlots" type="org.lcsim.hps.monitoring.ecal.EcalMonitoringPlots"/> + <driver name="EcalEventMonitor" type="org.lcsim.hps.monitoring.ecal.EcalEventMonitor"> + <integralWindow>30</integralWindow> + <eventRefreshRate>1</eventRefreshRate> + </driver> + <driver name="EcalWindowPlots" type="org.lcsim.hps.monitoring.ecal.EcalWindowPlotsXY"> + <subdetectorName>Ecal</subdetectorName> + <inputCollection>EcalReadoutHits</inputCollection> + <window>100</window> + </driver> + <driver name="EcalPedestalPlots" type="org.lcsim.hps.monitoring.ecal.EcalPedestalPlots"> + <subdetectorName>Ecal</subdetectorName> + <inputCollection>EcalReadoutHits</inputCollection> + </driver> + <driver name="EventMarkerDriver" + type="org.lcsim.job.EventMarkerDriver"> + <eventInterval>1</eventInterval> + </driver> + </drivers> +</lcsim>
diff -u -r1.2 -r1.3 --- HPSEcalConditions.java 2 May 2012 14:55:52 -0000 1.2 +++ HPSEcalConditions.java 2 May 2012 16:53:29 -0000 1.3 @@ -14,7 +14,7 @@
/** * * @author meeg
- * @version $Id: HPSEcalConditions.java,v 1.2 2012/05/02 14:55:52 meeg Exp $
+ * @version $Id: HPSEcalConditions.java,v 1.3 2012/05/02 16:53:29 meeg Exp $
*/ public class HPSEcalConditions {
@@ -26,7 +26,7 @@
private static HashMap<Long, Integer> daqToPedestalMap = new HashMap<Long, Integer>(); private static HashMap<Long, Double> daqToNoiseMap = new HashMap<Long, Double>(); private static boolean pedestalsLoaded = false;
-
+
private HPSEcalConditions() { }
@@ -88,7 +88,7 @@
public static void fillDaqCellMap(Subdetector ecal) { System.out.println("reading DAQ map");
-
+
IIdentifierHelper helper = ecal.getDetectorElement().getIdentifierHelper(); IExpandedIdentifier expId = new ExpandedIdentifier(helper.getIdentifierDictionary().getNumberOfFields()); expId.setValue(helper.getFieldIndex("system"), ecal.getSystemID());
@@ -163,4 +163,12 @@
public static Long daqToPhysicalID(long daqID) { return daqToPhysicalMap.get(daqID); }
+ + public static Integer daqToPedestal(long daqID) { + return daqToPedestalMap.get(daqID); + } + + public static Integer physicalToPedestal(long physicalID) { + return daqToPedestalMap.get(physicalToDaqMap.get(physicalID)); + }
}
diff -u -r1.1 -r1.2 --- EcalEventMonitor.java 30 Apr 2012 18:46:59 -0000 1.1 +++ EcalEventMonitor.java 2 May 2012 16:53:29 -0000 1.2 @@ -12,6 +12,7 @@
import org.lcsim.event.RawTrackerHit; import org.lcsim.geometry.Detector; import org.lcsim.geometry.IDDecoder;
+import org.lcsim.hps.recon.ecal.HPSEcalConditions;
import org.lcsim.util.Driver; import org.lcsim.util.aida.AIDA;
@@ -26,10 +27,15 @@
Detector detector; int eventRefreshRate = 1; int eventn = 0;
+ int integralWindow = 0;
public EcalEventMonitor() { }
+ public void setIntegralWindow(int integralWindow) { + this.integralWindow = integralWindow; + } +
public void setEventRefreshRate(int eventRefreshRate) { this.eventRefreshRate = eventRefreshRate; }
@@ -72,6 +78,10 @@
} public void process(EventHeader event) {
+ if (!HPSEcalConditions.pedestalsLoaded()) + { + HPSEcalConditions.loadPedestals(); + }
if (event.hasCollection(RawCalorimeterHit.class, inputCollectionName)) { if (++eventn % eventRefreshRate != 0) { return;
@@ -80,7 +90,8 @@
List<RawCalorimeterHit> hits = event.get(RawCalorimeterHit.class, inputCollectionName); for (RawCalorimeterHit hit : hits) { dec.setID(hit.getCellID());
- hitPlot.fill(dec.getValue("ix"), dec.getValue("iy"), hit.getAmplitude());
+ int pedestal = integralWindow * HPSEcalConditions.physicalToPedestal(hit.getCellID()); + hitPlot.fill(dec.getValue("ix"), dec.getValue("iy"), hit.getAmplitude() - pedestal);
} } if (event.hasCollection(RawTrackerHit.class, inputCollectionName)) {
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