Print

Print


Commit in hps-java on MAIN
src/main/java/org/lcsim/hps/evio/BasicEvioFileReader.java+13-171.5 -> 1.6
                                /ECalEvioReader.java+63-801.10 -> 1.11
scripts/make_monitoring_release_tarball.sh+1-11.1 -> 1.2
src/main/resources/org/lcsim/hps/steering/ECalMonitoring.lcsim+37added 1.1
src/main/java/org/lcsim/hps/recon/ecal/HPSEcalConditions.java+11-31.2 -> 1.3
src/main/java/org/lcsim/hps/monitoring/ecal/EcalEventMonitor.java+12-11.1 -> 1.2
+137-102
1 added + 5 modified, total 6 files
EcalEventMonitor can subtract pedestals from integral hits now

hps-java/src/main/java/org/lcsim/hps/evio
BasicEvioFileReader.java 1.5 -> 1.6
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;
             }
         }
     }

hps-java/src/main/java/org/lcsim/hps/evio
ECalEvioReader.java 1.10 -> 1.11
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;

hps-java/scripts
make_monitoring_release_tarball.sh 1.1 -> 1.2
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

hps-java/src/main/resources/org/lcsim/hps/steering
ECalMonitoring.lcsim added at 1.1
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>

hps-java/src/main/java/org/lcsim/hps/recon/ecal
HPSEcalConditions.java 1.2 -> 1.3
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));
+    }
 }

hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
EcalEventMonitor.java 1.1 -> 1.2
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)) {
CVSspam 0.2.12


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