Author: [log in to unmask]
Date: Wed Sep 9 07:26:49 2015
New Revision: 3560
Log:
cluster x position corrections
Modified:
java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterPositionCorrection.java
Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterPositionCorrection.java
=============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterPositionCorrection.java (original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/cluster/ClusterPositionCorrection.java Wed Sep 9 07:26:49 2015
@@ -14,25 +14,28 @@
public final class ClusterPositionCorrection {
// Variables for electron position corrections.
- static final double ELECTRON_POS_A1 = 0.0066;
- static final double ELECTRON_POS_A2 = -0.03;
- static final double ELECTRON_POS_B1 = 0.028;
- static final double ELECTRON_POS_B2 = -0.451;
- static final double ELECTRON_POS_B3 = 0.465;
+ static final double ELECTRON_POS_A1 = -0.0005813;//0.0066;
+ static final double ELECTRON_POS_A2 = 0.005738;//-0.03;
+ static final double ELECTRON_POS_A3 = -0.0309;
+ static final double ELECTRON_POS_B1 = 0.02963;//0.028;
+ static final double ELECTRON_POS_B2 = -4.289;//-0.451;
+ static final double ELECTRON_POS_B3 = 4.596;//0.465;
// Variables for positron position corrections.
- static final double POSITRON_POS_A1 = 0.0072;
- static final double POSITRON_POS_A2 = -0.031;
- static final double POSITRON_POS_B1 = 0.007;
- static final double POSITRON_POS_B2 = 0.342;
- static final double POSITRON_POS_B3 = 0.108;
+ static final double POSITRON_POS_A1 = -0.0006243;//0.0072;
+ static final double POSITRON_POS_A2 = 0.006799;//-0.031;
+ static final double POSITRON_POS_A3 = -0.03141;
+ static final double POSITRON_POS_B1 = 0.0869;//0.007;
+ static final double POSITRON_POS_B2 = 2.965;//0.342;
+ static final double POSITRON_POS_B3 = 1.653;//0.108;
// Variables for photon position corrections.
- static final double PHOTON_POS_A1 = 0.005;
- static final double PHOTON_POS_A2 = -0.032;
- static final double PHOTON_POS_B1 = 0.011;
- static final double PHOTON_POS_B2 = -0.037;
- static final double PHOTON_POS_B3 = 0.294;
+ static final double PHOTON_POS_A1 = -0.0006329;//0.005;
+ static final double PHOTON_POS_A2 = 0.00595;//-0.032;
+ static final double PHOTON_POS_A3 = -0.03563;
+ static final double PHOTON_POS_B1 = 0.06444;//0.011;
+ static final double PHOTON_POS_B2 = -0.5836;//-0.037;
+ static final double PHOTON_POS_B3 = 3.508;//0.294;
public static double[] calculateCorrectedPosition(Cluster cluster) {
@@ -59,38 +62,40 @@
* @return Corrected x position
*/
private static double computeCorrectedPosition(int pdg, double xPos, double rawEnergy) {
- double xCl = xPos / 10.0;//convert to cm
+ //double xCl = xPos / 10.0;//convert to cm
double xCorr;
switch(pdg) {
case 11: //Particle is electron
- xCorr = positionCorrection(xCl, rawEnergy, ELECTRON_POS_A1, ELECTRON_POS_A2, ELECTRON_POS_B1, ELECTRON_POS_B2, ELECTRON_POS_B3);
- return xCorr * 10.0;
+ xCorr = positionCorrection(xPos, rawEnergy, ELECTRON_POS_A1, ELECTRON_POS_A2, ELECTRON_POS_A3, ELECTRON_POS_B1, ELECTRON_POS_B2, ELECTRON_POS_B3);
+ return xCorr;
case -11:// Particle is positron
- xCorr = positionCorrection(xCl, rawEnergy, POSITRON_POS_A1, POSITRON_POS_A2, POSITRON_POS_B1, POSITRON_POS_B2, POSITRON_POS_B3);
- return xCorr * 10.0;
+ xCorr = positionCorrection(xPos, rawEnergy, POSITRON_POS_A1, POSITRON_POS_A2, POSITRON_POS_A3, POSITRON_POS_B1, POSITRON_POS_B2, POSITRON_POS_B3);
+ return xCorr;
case 22: // Particle is photon
- xCorr = positionCorrection(xCl, rawEnergy, PHOTON_POS_A1, PHOTON_POS_A2, PHOTON_POS_B1, PHOTON_POS_B2, PHOTON_POS_B3);
- return xCorr * 10.0;
+ xCorr = positionCorrection(xPos, rawEnergy, PHOTON_POS_A1, PHOTON_POS_A2, PHOTON_POS_A3, PHOTON_POS_B1, PHOTON_POS_B2, PHOTON_POS_B3);
+ return xCorr;
default: //Unknown
- xCorr = xCl;
- return xCorr * 10.0;
+ xCorr = xPos;
+ return xCorr;
}
}
/**
* Calculates the position correction in cm using the raw energy and variables associated with the fit
- * of the particle as described in
+ * of the particle. Prodecure described in
* <a href="https://misportal.jlab.org/mis/physics/hps_notes/index.cfm?note_year=2014">HPS Note 2014-001</a>
* @param xCl
* @param rawEnergy
* @param varA1
* @param varA2
+ * @param varA3
* @param varB1
* @param varB2
* @param varB3
* @return
*/
- private static double positionCorrection(double xCl, double rawEnergy, double varA1, double varA2, double varB1, double varB2, double varB3) {
- return ((xCl - (varB1 * rawEnergy + varB2 / Math.sqrt(rawEnergy) + varB3))/(varA1 / Math.sqrt(rawEnergy) + varA2 + 1));
+ private static double positionCorrection(double xCl, double rawEnergy, double varA1, double varA2, double varA3, double varB1, double varB2, double varB3) {
+ //return ((xCl - (varB1 * rawEnergy + varB2 / Math.sqrt(rawEnergy) + varB3))/(varA1 / Math.sqrt(rawEnergy) + varA2 + 1));
+ return ((xCl - (varB1 * rawEnergy + varB2 / Math.sqrt(rawEnergy) + varB3))/(varA1 * rawEnergy + varA2 / Math.sqrt(rawEnergy) + varA3 + 1));
}
}
|