Print

Print


Commit in lcsim/src/org/lcsim/recon/cluster/util on MAIN
QNeutralHadronClusterEnergyCalculator.java+18-21.2 -> 1.3
Add ability to handle analog HCAL

lcsim/src/org/lcsim/recon/cluster/util
QNeutralHadronClusterEnergyCalculator.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- QNeutralHadronClusterEnergyCalculator.java	27 Mar 2008 18:50:49 -0000	1.2
+++ QNeutralHadronClusterEnergyCalculator.java	28 Mar 2008 18:48:14 -0000	1.3
@@ -20,6 +20,8 @@
     /** Creates a new instance of GenericClusterEnergyCalculator */
     protected double alpha;
     String calibrationFilename = "nhQcal-v2r3p10";
+    String analogCalibrationFilename = "nhQcalAnalog-v2r3p10";
+    boolean analogHcal = false;
     protected double[] sf;
     double[] Em;
     double[] Ec;
@@ -31,6 +33,16 @@
     {
         calibrationFilename = calFile;
     }
+    public QNeutralHadronClusterEnergyCalculator(boolean analog)
+    {
+        analogHcal = analog;
+        if(analog)calibrationFilename = analogCalibrationFilename;
+    }
+    public QNeutralHadronClusterEnergyCalculator(String calFile,boolean analog)
+    {
+        analogHcal = analog;
+        calibrationFilename = calFile;
+    }
     protected void init()
     {
         _mgr =  ConditionsManager.defaultInstance();
@@ -84,18 +96,22 @@
             }
             else if(detector_index == 3)
             {
+                double Ehit = 1.;
+                if(analogHcal)Ehit = hit.getRawEnergy();
                 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 += 1./(1. + alpha*(1./st - 1.))/sf[4];
+                EmeasEst += Ehit/(1. + alpha*(1./st - 1.))/sf[4];
             }
             else if(detector_index == 7)
             {
+                double Ehit = 1.;
+                if(analogHcal)Ehit = hit.getRawEnergy();
                 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 += 1./(1. + alpha*(1./st - 1.))/sf[5];
+                EmeasEst += Ehit/(1. + alpha*(1./st - 1.))/sf[5];
             }
         }
 //
CVSspam 0.2.8