lcsim/src/org/lcsim/recon/cluster/util
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];
}
}
//