Print

Print


Commit in lcsim/src/org/lcsim/recon/pfa/structural on MAIN
FuzzyQNeutralHadronClusterEnergyCalculator.java+17-121.4 -> 1.5
MJC: Fix bug with MCAL PFA calibration; put in tuned sampling fraction for MCAL Endcap

lcsim/src/org/lcsim/recon/pfa/structural
FuzzyQNeutralHadronClusterEnergyCalculator.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- FuzzyQNeutralHadronClusterEnergyCalculator.java	10 Sep 2008 17:31:09 -0000	1.4
+++ FuzzyQNeutralHadronClusterEnergyCalculator.java	22 Oct 2008 17:53:19 -0000	1.5
@@ -14,7 +14,7 @@
   * an extension of Ron's QNeutralHadronClusterEnergyCalculator
   * class.
   * 
-  * @version $Id: FuzzyQNeutralHadronClusterEnergyCalculator.java,v 1.4 2008/09/10 17:31:09 mcharles Exp $
+  * @version $Id: FuzzyQNeutralHadronClusterEnergyCalculator.java,v 1.5 2008/10/22 17:53:19 mcharles Exp $
   */
 
 public class FuzzyQNeutralHadronClusterEnergyCalculator extends QNeutralHadronClusterEnergyCalculator
@@ -136,21 +136,13 @@
                 EmeasEst += hitWeight * ((Ehit/(1. + alpha*(1./st - 1.)))/sf[5]);
 	    } else if (detector_index == 8) {
 		// Muon endcap
-		double muonSamplingFraction = 3.80; // 0.263 GeV per hit => 3.80
-		double Ehit = 1.0;
-                double[] pos = hit.getPosition();
-                double R = Math.sqrt(pos[0]*pos[0]+pos[1]*pos[1]+pos[2]*pos[2]);
-                double st = Math.abs(pos[2])/R;
-                EmeasEst += hitWeight * ((Ehit/(1. + alpha*(1./st - 1.)))/muonSamplingFraction);
-	    } else if (detector_index == 4) {
-		// Muon barrel
 		boolean skipMuonHits = true;
-		double muonSamplingFraction = Double.NaN;
+		double muonSamplingFraction = 3.80; // 0.263 GeV per hit => 3.80
 		if (m_sid01) {
-		    muonSamplingFraction = 2.53; // 0.396 GeV per hit => 2.53
+		    muonSamplingFraction = 3.80; // Um... I think perhaps 0.396 GeV per hit => 2.53
 		    skipMuonHits = false;
 		} else if (m_sid02) {
-		    muonSamplingFraction = 0.82171; // Taken from properties file for sid02
+		    muonSamplingFraction = 0.6; // Tuned to nearest 0.1 on qq500 events -- needs further tuning
 		    skipMuonHits = false;
 		}
 		if (!skipMuonHits) {
@@ -160,6 +152,19 @@
 		    double st = Math.abs(pos[2])/R;
 		    EmeasEst += hitWeight * ((Ehit/(1. + alpha*(1./st - 1.)))/muonSamplingFraction);
 		}
+	    } else if (detector_index == 4) {
+		// Muon barrel
+		boolean skipMuonHits = true;
+		double muonSamplingFraction = Double.NaN;
+		// For now, don't ever give energy to muon barrel hits.
+		if (!skipMuonHits) {
+		    double Ehit = 1.0;
+		    double[] pos = hit.getPosition();
+		    double R = Math.sqrt(pos[0]*pos[0]+pos[1]*pos[1]+pos[2]*pos[2]);
+		    double ctheta = Math.abs(pos[2])/R;
+		    double st = Math.sqrt(1.-ctheta*ctheta);
+		    EmeasEst += hitWeight * ((Ehit/(1. + alpha*(1./st - 1.)))/muonSamplingFraction);
+		}
             } else {
 		System.out.println("ERROR: Failed to recognize system id "+detector_index+" named "+hit.getSubdetector().getName());
 	    }
CVSspam 0.2.8