Author: [log in to unmask]
Date: Sun Dec 6 14:38:59 2015
New Revision: 4012
Log:
updated cluster position correction parameterizations
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 Sun Dec 6 14:38:59 2015
@@ -12,30 +12,29 @@
* @author Jeremy McCormick <[log in to unmask]>
*/
public final class ClusterPositionCorrection {
-
+ //Parameterizations tested in MC using v3-fieldmap
+ //Nov 2015
+
// Variables for electron position corrections.
- 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;
+ static final double ELECTRON_POS_A1 = 0.004483;
+ static final double ELECTRON_POS_A2 = -0.02884;
+ static final double ELECTRON_POS_B1 = 0.6197;
+ static final double ELECTRON_POS_B2 = -2.279;
+ static final double ELECTRON_POS_B3 = 3.66;
// Variables for positron position corrections.
- 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;
+ static final double POSITRON_POS_A1 = 0.006887;
+ static final double POSITRON_POS_A2 = -0.03207;
+ static final double POSITRON_POS_B1 = -0.8048;
+ static final double POSITRON_POS_B2 = 0.9366;
+ static final double POSITRON_POS_B3 = 2.628;
// Variables for photon position corrections.
- 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;
+ static final double PHOTON_POS_A1 = 0.005385;
+ static final double PHOTON_POS_A2 = -0.03562;
+ static final double PHOTON_POS_B1 = -0.1948;
+ static final double PHOTON_POS_B2 = -0.7991;
+ static final double PHOTON_POS_B3 = 3.797;
public static double[] calculateCorrectedPosition(Cluster cluster) {
@@ -66,13 +65,13 @@
double xCorr;
switch(pdg) {
case 11: //Particle is electron
- xCorr = positionCorrection(xPos, rawEnergy, ELECTRON_POS_A1, ELECTRON_POS_A2, ELECTRON_POS_A3, ELECTRON_POS_B1, ELECTRON_POS_B2, ELECTRON_POS_B3);
+ xCorr = positionCorrection(xPos, rawEnergy, ELECTRON_POS_A1, ELECTRON_POS_A2, ELECTRON_POS_B1, ELECTRON_POS_B2, ELECTRON_POS_B3);
return xCorr;
case -11:// Particle is positron
- xCorr = positionCorrection(xPos, rawEnergy, POSITRON_POS_A1, POSITRON_POS_A2, POSITRON_POS_A3, POSITRON_POS_B1, POSITRON_POS_B2, POSITRON_POS_B3);
+ xCorr = positionCorrection(xPos, rawEnergy, POSITRON_POS_A1, POSITRON_POS_A2, POSITRON_POS_B1, POSITRON_POS_B2, POSITRON_POS_B3);
return xCorr;
case 22: // Particle is photon
- xCorr = positionCorrection(xPos, rawEnergy, PHOTON_POS_A1, PHOTON_POS_A2, PHOTON_POS_A3, PHOTON_POS_B1, PHOTON_POS_B2, PHOTON_POS_B3);
+ xCorr = positionCorrection(xPos, rawEnergy, PHOTON_POS_A1, PHOTON_POS_A2, PHOTON_POS_B1, PHOTON_POS_B2, PHOTON_POS_B3);
return xCorr;
default: //Unknown
xCorr = xPos;
@@ -94,8 +93,8 @@
* @param varB3
* @return
*/
- private static double positionCorrection(double xCl, double rawEnergy, double varA1, double varA2, double varA3, double varB1, double varB2, double varB3) {
+ 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));
- return ((xCl - (varB1 * rawEnergy + varB2 / Math.sqrt(rawEnergy) + varB3))/(varA1 * rawEnergy + varA2 / Math.sqrt(rawEnergy) + varA3 + 1));
+ return ((xCl - (varB1 * rawEnergy + varB2 / Math.sqrt(rawEnergy) + varB3))/(varA1 / Math.sqrt(rawEnergy) + varA2 + 1));
}
-}
+}
|