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);
+ }
}
}
|