Author: [log in to unmask]
Date: Thu Jan 29 08:42:31 2015
New Revision: 2001
Log:
Corrected cluster X/Y conversion
Modified:
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java
Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java
=============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java (original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/triggerbank/SSPData.java Thu Jan 29 08:42:31 2015
@@ -96,14 +96,27 @@
clusterE.add(this_clusterE);
this_clusterY = (this_word >> 6) & 0xf;
+ /*Need to do hand-made 2 complement, since this is a 4-bit word (and not a 32-bit integer!)*/
+ if (((this_clusterY >> 3) & 0x1) == 0x1){ /*Negative number*/
+ this_clusterY = this_clusterY ^ (0xf); /*bit-wise inversion*/
+ this_clusterY += 1;
+ this_clusterY *=-1;
+ }
clusterY.add(this_clusterY);
+
if (this_clusterY > 0) {
nClusterTop++;
} else if (this_clusterY < 0) {
nClusterBottom++;
}
- this_clusterX = (this_word) & 0x3f;
+ this_clusterX = (this_word) & 0x3f;
+ /*Need to do hand-made 2 complement, since this is a 6-bit word (and not a 32-bit integer!)*/
+ if (((this_clusterX >> 5) & 0x1) == 0x1){ /*Negative number*/
+ this_clusterX = this_clusterX ^ (0x3f); /*bit-wise inversion*/
+ this_clusterX += 1;
+ this_clusterX *=-1;
+ }
clusterX.add(this_clusterX);
this_clusterT = (bank[ii + 1]) & 0x3ff;
|