Print

Print


Commit in lcsim-cal-calib/src/org/lcsim/cal/calib on MAIN
PandoraPfoSamplingFractionAnalysislDriver.java+18-11.1 -> 1.2
now handles digital Hcal.

lcsim-cal-calib/src/org/lcsim/cal/calib
PandoraPfoSamplingFractionAnalysislDriver.java 1.1 -> 1.2
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;
+    }
 }
CVSspam 0.2.8