lcsim-cal-calib/src/org/lcsim/cal/calib
diff -u -r1.1 -r1.2
--- PandoraPfoSamplingFractionAnalysislDriver.java 10 Jun 2010 01:54:40 -0000 1.1
+++ PandoraPfoSamplingFractionAnalysislDriver.java 4 Nov 2010 00:20:12 -0000 1.2
@@ -1,7 +1,7 @@
/*
* PandoraPfoSamplingFractionAnalysislDriver
*
- * $Id: PandoraPfoSamplingFractionAnalysislDriver.java,v 1.1 2010/06/10 01:54:40 ngraf Exp $
+ * $Id: PandoraPfoSamplingFractionAnalysislDriver.java,v 1.2 2010/11/04 00:20:12 ngraf Exp $
*/
package org.lcsim.cal.calib;
@@ -60,6 +60,8 @@
double emCalInnerRadius = 0.;
double emCalInnerZ = 0.;
+ boolean _isHcalDigital = false;
+
/** Creates a new instance of SamplingFractionAnalysisDriver */
public PandoraPfoSamplingFractionAnalysislDriver()
{
@@ -84,6 +86,12 @@
_ecalLayering = _cond.getDoubleArray("ECalLayering");
_useFirstLayer = _cond.getDouble("IsFirstEmLayerSampling") == 1.;
+
+ ConditionsSet hcalProperties = mgr.getConditions("SamplingFractions/HcalBarrel");
+
+ _isHcalDigital = hcalProperties.getBoolean("digital");
+ System.out.println("HCal is "+(_isHcalDigital==true ? "" : "not")+" read out digitally");
+
System.out.println("initialized...");
_initialized = true;
@@ -146,6 +154,7 @@
// proceed only if we found a single cluster above threshold
if (clusters.size() > 0)
{
+ int nHCalHits = 0;
for (Cluster c : clusters)
{
aida.cloud1D("Highest energy cluster energy").fill(c.getEnergy());
@@ -192,12 +201,15 @@
if (detectorName.startsWith("Hcal"))
{
caltype = 3;
+ nHCalHits +=1;
}
// System.out.println("layer "+layer+" caltype "+caltype);
clusterEnergy += hit.getCorrectedEnergy();
// vals[caltype] += hit.getCorrectedEnergy();
vals[caltype] += rawEnergy;
} // end of loop over hits in cluster
+ if(_isHcalDigital == true) vals[3] = nHCalHits;
+ if(_debug) System.out.println("vals: "+vals[0]+" " +vals[1]+" "+vals[2]+" "+vals[3]);
// set up linear least squares:
// expectedEnergy = a*E1 + b*E2 +c*E3
for (int j = 0; j < 3; ++j)
@@ -259,4 +271,9 @@
// }
}
}
+
+ public void setDebug(boolean debug)
+ {
+ _debug = debug;
+ }
}