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;