Author: [log in to unmask]
Date: Thu Dec 18 20:06:07 2014
New Revision: 1790
Log:
new constructor for SSPData that reads from a GenericObject
Modified:
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/TriggerData.java
Modified: 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/SSPData.java Thu Dec 18 20:06:07 2014
@@ -34,46 +34,33 @@
public static final int TRIG_TYPE_SINGLES1_BOT = 0x5;
public static final int TRIG_TYPE_PAIR0 = 0x6;
public static final int TRIG_TYPE_PAIR1 = 0x7;
-
-
-
-
- public static final String TRIG_COLLECTION = "TriggerBank";
-
-
- private long trigTime;
+
+// public static final String TRIG_COLLECTION = "TriggerBank";
+
+ private long trigTime = 0;
private int eventNum;
-
-
- private int nCluster, nClusterTop, nClusterBottom;
-
- private List<Integer> clusterX, clusterY, clusterE, clusterT, clusterNhits;
- private List<Integer> trigType,trigTypeData,trigTypeTime; //SSP can report more than 1 trigger type (if the event satisfies more than 1 trigger equation)
-
+ private int nCluster, nClusterTop, nClusterBottom = 0;
+
+ private final List<Integer> clusterX = new ArrayList<Integer>();
+ private final List<Integer> clusterY = new ArrayList<Integer>();
+ private final List<Integer> clusterE = new ArrayList<Integer>();
+ private final List<Integer> clusterT = new ArrayList<Integer>();
+ private final List<Integer> clusterNhits = new ArrayList<Integer>();
+ private final List<Integer> trigType = new ArrayList<Integer>();
+ private final List<Integer> trigTypeData = new ArrayList<Integer>();
+ 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) {
- super(bank);
-
- clusterX = new ArrayList<Integer>();
- clusterY = new ArrayList<Integer>();
- clusterE = new ArrayList<Integer>();
- clusterT = new ArrayList<Integer>();
- clusterNhits = new ArrayList<Integer>();
-
- trigType = new ArrayList<Integer>();
- trigTypeData = new ArrayList<Integer>();
- trigTypeTime = new ArrayList<Integer>();
-
- trigTime = 0;
-
-
-
- nCluster = nClusterTop = nClusterBottom = 0;
-
this.bank = Arrays.copyOf(bank, bank.length);
this.decodeTriggerBank();
-
- }
+ }
+
+ public SSPData(GenericObject sspData) {
+ this.bank = getBank(sspData);
+ this.decodeTriggerBank();
+ }
+
private void decodeTriggerBank() {
/*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*/
@@ -90,7 +77,7 @@
else if (((this_word >> 27) & (0x1f)) == TRIG_TIME) {
trigTime = (bank[ii + 1] << 24) | (this_word & 0xffffff);
} //trigger type
- else if (((this_word >> 27) & (0x1f)) == TRIG_TYPE) {
+ else if (((this_word >> 27) & (0x1f)) == TRIG_TYPE) {
trigType.add((this_word >> 23) & 0xf); //this is the trigbit, from 0 to 7
trigTypeData.add((this_word >> 16) & 0x7f);
trigTypeTime.add((this_word) & 0x3ff);
@@ -114,13 +101,11 @@
clusterX.add(this_clusterX);
this_clusterT = (bank[ii + 1]) & 0x3ff;
- clusterT.add(this_clusterT*4); //*4 since the time is reported in 4 ns ticks
+ clusterT.add(this_clusterT * 4); //*4 since the time is reported in 4 ns ticks
nCluster++;
}
}
-
-
}
@Override
@@ -132,45 +117,48 @@
/*
* Returns the trigger time, relative to the SSP window, of the FIRST Cluster singles trigger (0/1) (any crate)
* Returns in ns.
- */
+ */
public int getOrTrig() {
int TopTime = this.getTopTrig();
int BotTime = this.getBotTrig();
-
- if (TopTime<=BotTime) return TopTime;
- else return BotTime;
+
+ if (TopTime <= BotTime) {
+ return TopTime;
+ } else {
+ return BotTime;
+ }
}
/*
* 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++){
- if (((trigType.get(ii)==TRIG_TYPE_SINGLES0_TOP)||(trigType.get(ii)==TRIG_TYPE_SINGLES1_TOP))&&(trigTypeTime.get(ii)<TopTime)){
- TopTime=trigTypeTime.get(ii);
- }
- }
- return TopTime*4;
+ int TopTime = 1025; //time is 10 bits, so is always smaller than 1024.
+ for (int ii = 0; ii < trigType.size(); ii++) {
+ if (((trigType.get(ii) == TRIG_TYPE_SINGLES0_TOP) || (trigType.get(ii) == TRIG_TYPE_SINGLES1_TOP)) && (trigTypeTime.get(ii) < TopTime)) {
+ TopTime = trigTypeTime.get(ii);
+ }
+ }
+ return TopTime * 4;
}
/*
* 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++){
- if (((trigType.get(ii)==TRIG_TYPE_SINGLES0_BOT)||(trigType.get(ii)==TRIG_TYPE_SINGLES1_BOT))&&(trigTypeTime.get(ii)<BotTime)){
- BotTime=trigTypeTime.get(ii);
- }
- }
- return BotTime*4;
+ */
+ @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++) {
+ if (((trigType.get(ii) == TRIG_TYPE_SINGLES0_BOT) || (trigType.get(ii) == TRIG_TYPE_SINGLES1_BOT)) && (trigTypeTime.get(ii) < BotTime)) {
+ BotTime = trigTypeTime.get(ii);
+ }
+ }
+ return BotTime * 4;
}
@Override
Modified: 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/TriggerData.java Thu Dec 18 20:06:07 2014
@@ -17,6 +17,10 @@
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;
|