LISTSERV mailing list manager LISTSERV 16.5

Help for HPS-SVN Archives


HPS-SVN Archives

HPS-SVN Archives


HPS-SVN@LISTSERV.SLAC.STANFORD.EDU


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

HPS-SVN Home

HPS-SVN Home

HPS-SVN  January 2015

HPS-SVN January 2015

Subject:

r1967 - in /java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank: AbstractIntData.java SSPData.java TIData.java TestRunTriggerData.java

From:

[log in to unmask]

Reply-To:

Notification of commits to the hps svn repository <[log in to unmask]>

Date:

Thu, 22 Jan 2015 21:03:09 -0000

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (606 lines)

Author: [log in to unmask]
Date: Thu Jan 22 13:03:02 2015
New Revision: 1967

Log:
port existing int data objects

Added:
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java
      - copied, changed from r1960, java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SSPData.java
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TIData.java
      - copied, changed from r1966, java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TIData.java
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TestRunTriggerData.java
      - copied, changed from r1960, java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerData.java
Modified:
    java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/AbstractIntData.java

Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/AbstractIntData.java
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/AbstractIntData.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/AbstractIntData.java	Thu Jan 22 13:03:02 2015
@@ -4,8 +4,8 @@
 import org.lcsim.event.GenericObject;
 
 /**
- * GenericObject representation of a UINT32 bank read from EVIO. The bank header
- * tag identifies the type of data, and is stored as the first int in the
+ * GenericObject representation of an INT32/UINT32 bank read from EVIO. The bank
+ * header tag identifies the type of data, and is stored as the first int in the
  * GenericObject. The contents of the bank are the remaining N-1 ints.
  * Constructors are provided from int[] (for reading from EVIO) and from
  * GenericObject (for reading from LCIO).
@@ -27,12 +27,16 @@
      * @param bank
      */
     protected AbstractIntData(int[] bank) {
-        this.bank = Arrays.copyOf(bank, bank.length);
+        if (bank == null) {
+            this.bank = new int[0];
+        } else {
+            this.bank = Arrays.copyOf(bank, bank.length);
+        }
     }
 
     /**
-     * Constructor from LCIO GenericObject. Checks the bank tag; subclass must
-     * set the expected value of the tag.
+     * Constructor from LCIO GenericObject. Checks the bank tag; subclass
+     * constructor must set the expected value of the tag.
      *
      * @param data
      * @param expectedTag
@@ -48,6 +52,12 @@
         return bank;
     }
 
+    /**
+     * Return the int bank of an AbstractIntData read from LCIO.
+     *
+     * @param object
+     * @return
+     */
     public static int[] getBank(GenericObject object) {
         int N = object.getNInt() - 1;
         int[] bank = new int[N];
@@ -58,16 +68,22 @@
     }
 
     /**
+     * Return a single value from the int bank of an AbstractIntData.
+     *
+     * @param object
+     * @param index
+     * @return
+     */
+    public static int getBankInt(GenericObject object, int index) {
+        return object.getIntVal(index + 1);
+    }
+
+    /**
      * Returns the EVIO bank header tag expected for this data.
      *
      * @return
      */
     public abstract int getTag();
-
-    /**
-     * Parses the bank so the object can be used in analysis.
-     */
-    protected abstract void decodeData();
 
     /**
      * Returns the EVIO bank tag for a data object.
@@ -78,6 +94,11 @@
     public static int getTag(GenericObject data) {
         return data.getIntVal(0);
     }
+
+    /**
+     * Parses the bank so the object can be used in analysis.
+     */
+    protected abstract void decodeData();
 
     @Override
     public int getNInt() {

Copied: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java (from r1960, java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SSPData.java)
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/SSPData.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java	Thu Jan 22 13:03:02 2015
@@ -1,9 +1,8 @@
-package org.hps.readout.ecal;
+package org.hps.readout.ecal.triggerbank;
 
 import org.lcsim.event.GenericObject;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -12,7 +11,9 @@
  * @author Andrea Celentano <[log in to unmask]>
  * @version $Id: TriggerData.java,v 1.3 2012/08/03 23:14:39 meeg Exp $
  */
-public class SSPData extends TriggerData {
+public class SSPData extends AbstractIntData {
+
+    public static final int BANK_TAG = 0xe10c;
 
 //    public static final int OR_TRIG = 3;
 //    public static final int TOP_TRIG = 4;
@@ -36,7 +37,6 @@
     public static final int TRIG_TYPE_PAIR1 = 0x7;
 
 //    public static final String TRIG_COLLECTION = "TriggerBank";
-
     private long trigTime = 0;
     private int eventNum;
 
@@ -52,16 +52,22 @@
     private final List<Integer> trigTypeTime = new ArrayList<Integer>(); //SSP can report more than 1 trigger type (if the event satisfies more than 1 trigger equation)
 
     public SSPData(int[] bank) {
-        this.bank = Arrays.copyOf(bank, bank.length);
-        this.decodeTriggerBank();
+        super(bank);
+        decodeData();
     }
 
     public SSPData(GenericObject sspData) {
-        this.bank = getBank(sspData);
-        this.decodeTriggerBank();
+        super(sspData, BANK_TAG);
+        decodeData();
     }
 
-    private void decodeTriggerBank() {
+    @Override
+    public int getTag() {
+        return BANK_TAG;
+    }
+
+    @Override
+    protected final void decodeData() {
         /*A. C.: decode here the trigger bank*/
         /*We do not need to handle block header, block trailer since these are disentagled in the secondary CODA readout list*/
         int this_word;
@@ -108,12 +114,10 @@
         }
     }
 
-    @Override
     public long getTime() {
         return trigTime;
     }
 
-    @Override
     /*
      * Returns the trigger time, relative to the SSP window, of the FIRST Cluster singles trigger (0/1) (any crate)
      * Returns in ns.
@@ -134,7 +138,6 @@
      * Returns the trigger time, relative to the SSP window, of the FIRST Cluster singles trigger (0/1) from TOP crate 
      * Returns in ns.
      */
-    @Override
     public int getTopTrig() {
         int TopTime = 1025; //time is 10 bits, so is always smaller than 1024.
         for (int ii = 0; ii < trigType.size(); ii++) {
@@ -150,7 +153,6 @@
      * Returns the trigger time, relative to the SSP window, of the FIRST Cluster singles trigger (0/1) from BOT crate 
      * Returns in ns.
      */
-    @Override
     public int getBotTrig() {
         int BotTime = 1025; //time is 10 bits, so is always smaller than 1024.
         for (int ii = 0; ii < trigType.size(); ii++) {
@@ -161,77 +163,7 @@
         return BotTime * 4;
     }
 
-    @Override
     public int getAndTrig() {
         return 0;
     }
-
-    @Override
-    public int[] getBank() {
-        return bank;
-    }
-
-//    public static long getTime(GenericObject object) {
-//        return TriggerData.getTime(object);
-//    }
-//
-//    public static int getOrTrig(GenericObject object) {
-//        return TriggerData.getOrTrig(object);
-//    }
-//
-//    public static int getTopTrig(GenericObject object) {
-//        return TriggerData.getTopTrig(object);
-//    }
-//
-//    public static int getBotTrig(GenericObject object) {
-//        return TriggerData.getBotTrig(object);
-//    }
-//
-//    public static int getAndTrig(GenericObject object) {
-//        return TriggerData.getAndTrig(object);
-//    }
-//
-    public static int[] getBank(GenericObject object) {
-        int N = object.getNInt();
-        int[] bank = new int[N];
-        for (int i = 0; i < N; i++) {
-            bank[i] = object.getIntVal(i);
-        }
-        return bank;
-    }
-
-    @Override
-    public int getNInt() {
-        return bank.length;
-    }
-
-    @Override
-    public int getNFloat() {
-        return 0;
-    }
-
-    @Override
-    public int getNDouble() {
-        return 0;
-    }
-
-    @Override
-    public int getIntVal(int index) {
-        return bank[index];
-    }
-
-    @Override
-    public float getFloatVal(int index) {
-        throw new UnsupportedOperationException("No float values in " + this.getClass().getSimpleName());
-    }
-
-    @Override
-    public double getDoubleVal(int index) {
-        throw new UnsupportedOperationException("No double values in " + this.getClass().getSimpleName());
-    }
-
-    @Override
-    public boolean isFixedSize() {
-        return false;
-    }
 }

Copied: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TIData.java (from r1966, java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TIData.java)
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TIData.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TIData.java	Thu Jan 22 13:03:02 2015
@@ -1,123 +1,94 @@
-package org.hps.readout.ecal;
+package org.hps.readout.ecal.triggerbank;
 
 import org.lcsim.event.GenericObject;
-import java.util.Arrays;
 
 //import org.hps.record.evio.EvioEventConstants; // doesn't work
-
 /**
- * TI Trigger Data 
+ * TI Trigger Data
+ *
  * @author Nathan Baltzell <[log in to unmask]>
  */
-public class TIData extends TriggerData {
-                       
-   
-    private int tag=0;
-    private long time=0;
-    private boolean singles0=false;
-    private boolean singles1=false;
-    private boolean pairs0=false;
-    private boolean pairs1=false;
-    private boolean calib=false;
-    private boolean pulser=false;
+public class TIData extends AbstractIntData {
+
+    public static final int BANK_TAG = 0xe10a; // EvioEventConstants.TI_TRIGGER_BANK_TAG;
+    public static final int BANK_SIZE = 4;
+
+    private long time = 0;
+    private boolean singles0 = false;
+    private boolean singles1 = false;
+    private boolean pairs0 = false;
+    private boolean pairs1 = false;
+    private boolean calib = false;
+    private boolean pulser = false;
 
     public TIData(int[] bank) {
-        this.bank = Arrays.copyOf(bank, bank.length);
-        this.decodeTriggerBank();
+        super(bank);
+        decodeData();
     }
 
     public TIData(GenericObject tiData) {
-        this.bank = getBank(tiData);
-        this.decodeTriggerBank();
+        super(tiData, BANK_TAG);
+        decodeData();
     }
 
-    private void decodeTriggerBank() {
-        
-        if (bank.length != 4)
-        {
-            System.err.println("TIData:: Invalid Data Length:  "+bank.length);
-            return;
+    @Override
+    protected final void decodeData() {
+        if (this.bank.length != BANK_SIZE) {
+            throw new RuntimeException("Invalid Data Length:  " + bank.length);
         }
 
-        tag = 0xe10a; // EvioEventConstants.TI_TRIGGER_BANK_TAG;
-
-        singles0 = ((bank[0]>>24)&1)==1;
-        singles1 = ((bank[0]>>25)&1)==1;
-        pairs0   = ((bank[0]>>26)&1)==1;
-        pairs1   = ((bank[0]>>27)&1)==1;
-        calib    = ((bank[0]>>28)&1)==1;
-        pulser   = ((bank[0]>>29)&1)==1;
+        singles0 = ((bank[0] >> 24) & 1) == 1;
+        singles1 = ((bank[0] >> 25) & 1) == 1;
+        pairs0 = ((bank[0] >> 26) & 1) == 1;
+        pairs1 = ((bank[0] >> 27) & 1) == 1;
+        calib = ((bank[0] >> 28) & 1) == 1;
+        pulser = ((bank[0] >> 29) & 1) == 1;
 
         long w1 = bank[2];
         long w2 = bank[3];
-        if (w1<0) w1 += 2*(long)Integer.MAX_VALUE+2;
-        if (w2<0) w2 += 2*(long)Integer.MAX_VALUE+2;
+        if (w1 < 0) {
+            w1 += 2 * (long) Integer.MAX_VALUE + 2;
+        }
+        if (w2 < 0) {
+            w2 += 2 * (long) Integer.MAX_VALUE + 2;
+        }
 
         final long timelo = w1;
         final long timehi = (w2 & 0xffff) << 32;
 
-        time = 4*(timelo+timehi); // units ns
+        time = 4 * (timelo + timehi); // units ns
     }
 
+    @Override
     public int getTag() {
-        return tag;
+        return BANK_TAG;
     }
-    @Override
+
     public long getTime() {
         return time;
     }
-    public boolean isSingle0Trigger() { 
-        return singles0; 
+
+    public boolean isSingle0Trigger() {
+        return singles0;
     }
+
     public boolean isSingle1Trigger() {
-        return singles1; 
+        return singles1;
     }
+
     public boolean isPair0Trigger() {
-        return pairs0; 
+        return pairs0;
     }
+
     public boolean isPair1Trigger() {
         return pairs1;
     }
+
     public boolean isCalibTrigger() {
-        return calib; 
-    }
-    public boolean isPulserTrigger() {
-        return pulser; 
-    }
-    public int[] getBank() {
-        return bank;
-    }
-    public static int[] getBank(GenericObject object) {
-        int N = object.getNInt();
-        int[] bank = new int[N];
-        for (int i = 0; i < N; i++) {
-            bank[i] = object.getIntVal(i);
-        }
-        return bank;
-    }
-    @Override
-    public int getNInt() {
-        return bank.length;
+        return calib;
     }
 
-    @Override 
-    public int getAndTrig() {
-        throw new UnsupportedOperationException("No getAndTrig in " + this.getClass().getSimpleName());
-    }
-    @Override 
-    public int getOrTrig() {
-        throw new UnsupportedOperationException("No getOrTrig in " + this.getClass().getSimpleName());
-    }
-    @Override 
-    public int getTopTrig() {
-        throw new UnsupportedOperationException("No getTopTrig in " + this.getClass().getSimpleName());
-    }
-    @Override 
-    public int getBotTrig() {
-        throw new UnsupportedOperationException("No getBotTrig in " + this.getClass().getSimpleName());
-    }
-    @Override
-    public boolean isFixedSize() {
-        return true;
+    public boolean isPulserTrigger() {
+        return pulser;
     }
 }

Copied: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TestRunTriggerData.java (from r1960, java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerData.java)
 =============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/TriggerData.java	(original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/TestRunTriggerData.java	Thu Jan 22 13:03:02 2015
@@ -1,4 +1,4 @@
-package org.hps.readout.ecal;
+package org.hps.readout.ecal.triggerbank;
 
 import org.lcsim.event.GenericObject;
 
@@ -7,109 +7,78 @@
  * @author Sho Uemura <[log in to unmask]>
  * @version $Id: TriggerData.java,v 1.3 2012/08/03 23:14:39 meeg Exp $
  */
-public class TriggerData implements GenericObject {
+public class TestRunTriggerData extends AbstractIntData {
+
+    public static final int BANK_TAG = 0xe106;
+    public static final int BANK_SIZE = 8;
 
     public static final int OR_TRIG = 3;
     public static final int TOP_TRIG = 4;
     public static final int BOT_TRIG = 5;
     public static final int AND_TRIG = 6;
     public static final int TIME = 7;
-    public static final int TRIG_BANK_SIZE = 8;
     public static final String TRIG_COLLECTION = "TriggerBank";
-    protected int[] bank;
 
-    protected TriggerData() {
-        this.bank = null;
-    }
-
-    public TriggerData(int[] bank) {
-        this.bank = bank;
+//    protected TestRunTriggerData() {
+//        super(null);
+//    }
+    public TestRunTriggerData(int[] bank) {
+        super(bank);
+        if (this.bank.length != BANK_SIZE) {
+            throw new RuntimeException();
+        }
+        decodeData();
     }
 
     public long getTime() {
-        return getIntVal(TIME);
+        return bank[TIME] & 0xffffffffL;
     }
 
     public int getOrTrig() {
-        return getIntVal(OR_TRIG);
+        return bank[OR_TRIG];
     }
 
     public int getTopTrig() {
-        return getIntVal(TOP_TRIG);
+        return bank[TOP_TRIG];
     }
 
     public int getBotTrig() {
-        return getIntVal(BOT_TRIG);
+        return bank[BOT_TRIG];
     }
 
     public int getAndTrig() {
-        return getIntVal(AND_TRIG);
-    }
-
-    public int[] getBank() {
-        return bank;
+        return bank[AND_TRIG];
     }
 
     public static long getTime(GenericObject object) {
-        return object.getIntVal(TIME);
+        return AbstractIntData.getBankInt(object, TIME) & 0xffffffffL;
     }
 
     public static int getOrTrig(GenericObject object) {
-        return object.getIntVal(OR_TRIG);
+        return AbstractIntData.getBankInt(object, OR_TRIG);
     }
 
     public static int getTopTrig(GenericObject object) {
-        return object.getIntVal(TOP_TRIG);
+        return AbstractIntData.getBankInt(object, TOP_TRIG);
     }
 
     public static int getBotTrig(GenericObject object) {
-        return object.getIntVal(BOT_TRIG);
+        return AbstractIntData.getBankInt(object, BOT_TRIG);
     }
 
     public static int getAndTrig(GenericObject object) {
-        return object.getIntVal(AND_TRIG);
-    }
-
-    public static int[] getBank(GenericObject object) {
-        int[] bank = new int[8];
-        for (int i = 0; i < 8; i++) {
-            bank[i] = object.getIntVal(i);
-        }
-        return bank;
+        return AbstractIntData.getBankInt(object, AND_TRIG);
     }
 
     @Override
-    public int getNInt() {
-        return TRIG_BANK_SIZE;
+    public int getTag() {
+        return BANK_TAG;
     }
 
     @Override
-    public int getNFloat() {
-        return 0;
-    }
-
-    @Override
-    public int getNDouble() {
-        return 0;
-    }
-
-    @Override
-    public int getIntVal(int index) {
-        return bank[index];
-    }
-
-    @Override
-    public float getFloatVal(int index) {
-        throw new UnsupportedOperationException("No float values in " + this.getClass().getSimpleName());
-    }
-
-    @Override
-    public double getDoubleVal(int index) {
-        throw new UnsupportedOperationException("No double values in " + this.getClass().getSimpleName());
-    }
-
-    @Override
-    public boolean isFixedSize() {
-        return true;
+    protected final void decodeData() { //doesn't actually do anything since there is no decoding done on the ints
+        if (this.bank.length != BANK_SIZE) {
+            throw new RuntimeException("Invalid Data Length:  " + bank.length);
+        }
     }
 }

Top of Message | Previous Page | Permalink

Advanced Options


Options

Log In

Log In

Get Password

Get Password


Search Archives

Search Archives


Subscribe or Unsubscribe

Subscribe or Unsubscribe


Archives

November 2017
August 2017
July 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013

ATOM RSS1 RSS2



LISTSERV.SLAC.STANFORD.EDU

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager

Privacy Notice, Security Notice and Terms of Use