Author: [log in to unmask]
Date: Wed Mar 23 00:22:26 2016
New Revision: 4325
Log:
Updated trigger module with a few additional methods. Also changed SSP trigger objects so that trigger number is referred to as trigger 0 and trigger 1, rather than first and second trigger, to better match the trigger name terminology. Old methods remain for the moment, but are considered deprecated.
Modified:
java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPNumberedTrigger.java
java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPPairTrigger.java
java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPSinglesTrigger.java
java/trunk/record-util/src/main/java/org/hps/record/triggerbank/TriggerModule.java
Modified: java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPNumberedTrigger.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPNumberedTrigger.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPNumberedTrigger.java Wed Mar 23 00:22:26 2016
@@ -21,12 +21,38 @@
}
/**
+ * Gets the number of the trigger which generated this object.
+ * @return Returns either <code>0</code> or </code>1</code>.
+ */
+ public abstract int getTriggerNumber();
+
+ /**
+ * Indicates whether the trigger was reported by the trigger number
+ * 0 trigger.
+ * @return <code>true</code> if the trigger was reported by the
+ * trigger number 0 trigger and <code>false</code> if by either
+ * the trigger number 1 or an unknown trigger.
+ */
+ public abstract boolean isTrigger0();
+
+ /**
+ * Indicates whether the trigger was reported by the trigger number
+ * 1 trigger.
+ * @return <code>true</code> if the trigger was reported by the
+ * trigger number 1 trigger and <code>false</code> if by either
+ * the trigger number 0 or an unknown trigger.
+ */
+ public abstract boolean isTrigger1();
+
+
+ /**
* Indicates whether the trigger was reported by the first of the
* singles triggers.
* @return <code>true</code> if the trigger was reported by the
* first trigger and <code>false</code> if it was reported by the
* second trigger.
*/
+ @Deprecated
public abstract boolean isFirstTrigger();
/**
@@ -36,5 +62,6 @@
* second trigger and <code>false</code> if it was reported by
* the first trigger.
*/
+ @Deprecated
public abstract boolean isSecondTrigger();
-}
+}
Modified: java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPPairTrigger.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPPairTrigger.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPPairTrigger.java Wed Mar 23 00:22:26 2016
@@ -20,13 +20,30 @@
}
@Override
- public boolean isFirstTrigger() {
+ public int getTriggerNumber() {
+ if(isFirstTrigger()) { return 0; }
+ else if(isSecondTrigger()) { return 1; }
+ else { return -1; }
+ }
+
+ @Override
+ public boolean isTrigger0() {
return (type == SSPData.TRIG_TYPE_PAIR0);
}
@Override
+ public boolean isTrigger1() {
+ return (type == SSPData.TRIG_TYPE_PAIR1);
+ }
+
+ @Override
+ public boolean isFirstTrigger() {
+ return isTrigger0();
+ }
+
+ @Override
public boolean isSecondTrigger() {
- return (type == SSPData.TRIG_TYPE_PAIR1);
+ return isTrigger1();
}
/**
Modified: java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPSinglesTrigger.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPSinglesTrigger.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/record/triggerbank/SSPSinglesTrigger.java Wed Mar 23 00:22:26 2016
@@ -26,13 +26,30 @@
}
@Override
- public boolean isFirstTrigger() {
+ public int getTriggerNumber() {
+ if(isFirstTrigger()) { return 0; }
+ else if(isSecondTrigger()) { return 1; }
+ else { return -1; }
+ }
+
+ @Override
+ public boolean isTrigger0() {
return (type == SSPData.TRIG_TYPE_SINGLES0_BOT) || (type == SSPData.TRIG_TYPE_SINGLES0_TOP);
}
@Override
+ public boolean isTrigger1() {
+ return (type == SSPData.TRIG_TYPE_SINGLES1_BOT) || (type == SSPData.TRIG_TYPE_SINGLES1_TOP);
+ }
+
+ @Override
+ public boolean isFirstTrigger() {
+ return isTrigger0();
+ }
+
+ @Override
public boolean isSecondTrigger() {
- return (type == SSPData.TRIG_TYPE_SINGLES1_BOT) || (type == SSPData.TRIG_TYPE_SINGLES1_TOP);
+ return isTrigger1();
}
/**
Modified: java/trunk/record-util/src/main/java/org/hps/record/triggerbank/TriggerModule.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/record/triggerbank/TriggerModule.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/record/triggerbank/TriggerModule.java Wed Mar 23 00:22:26 2016
@@ -444,6 +444,38 @@
}
/**
+ * Gets the angle between the cluster and the centerpoint of the
+ * calorimeter.
+ * @param cluster - The cluster for which to calculate the angle.
+ * @return Returns the cluster angle as an <code>int</code> in units
+ * of degrees.
+ */
+ public static int getClusterAngle(Cluster cluster) {
+ // Get the cluster position.
+ double x = getClusterX(cluster);
+ double y = getClusterY(cluster);
+
+ // Return the cluster angle.
+ return getClusterAngle(x, y);
+ }
+
+ /**
+ * Gets the angle between the cluster and the centerpoint of the
+ * calorimeter.
+ * @param cluster - The cluster for which to calculate the angle.
+ * @return Returns the cluster angle as an <code>int</code> in units
+ * of degrees.
+ */
+ public static int getClusterAngle(SSPCluster cluster) {
+ // Get the cluster position.
+ double x = getClusterX(cluster);
+ double y = getClusterY(cluster);
+
+ // Return the cluster angle.
+ return getClusterAngle(x, y);
+ }
+
+ /**
* Calculates the distance between the origin and a cluster.
* @param cluster - The cluster pair from which the value should
* be calculated.
@@ -1260,6 +1292,18 @@
}
/**
+ * Gets the angle between the cluster and the centerpoint of the
+ * calorimeter.
+ * @param x - The cluster seed x-position.
+ * @param y - The cluster seed y-position.
+ * @return Returns the cluster angle as an <code>int</code> in units
+ * of degrees.
+ */
+ private static int getClusterAngle(double x, double y) {
+ return (int) Math.round(Math.atan(x / y) * 180.0 / Math.PI);
+ }
+
+ /**
* Calculates the distance between the origin and a cluster.
* @param x - The cluster's x-position.
* @param z - The cluster's z-position.
@@ -1309,7 +1353,7 @@
// Get the cluster angles.
int[] clusterAngle = new int[2];
for(int i = 0; i < 2; i++) {
- clusterAngle[i] = (int) Math.round(Math.atan(x[i] / y[i]) * 180.0 / Math.PI);
+ clusterAngle[i] = getClusterAngle(x[i], y[i]); //(int) Math.round(Math.atan(x[i] / y[i]) * 180.0 / Math.PI);
}
// Calculate the coplanarity cut value.
@@ -1738,4 +1782,4 @@
{ 340.013, 97.070, -87.790 }
}
};
-}
+}
|