Commit in projects/lcsim/trunk/cal-calib/src/main/java/org/lcsim/cal/calib on MAIN | |||
SamplingFractionAnalysisPolyCalDriver.java | +37 | -20 | 3303 -> 3304 |
rework layering calculation
--- projects/lcsim/trunk/cal-calib/src/main/java/org/lcsim/cal/calib/SamplingFractionAnalysisPolyCalDriver.java 2014-09-03 23:34:43 UTC (rev 3303) +++ projects/lcsim/trunk/cal-calib/src/main/java/org/lcsim/cal/calib/SamplingFractionAnalysisPolyCalDriver.java 2014-09-04 05:23:13 UTC (rev 3304) @@ -57,8 +57,8 @@
private boolean _debug = false; // TODO fix this dependence on EM calorimeter geometry boolean skipFirstLayer = false;
- int firstEmStartLayer = 0; - int secondEmStartLayer = 20;
+// int firstEmStartLayer = 0; +// int secondEmStartLayer = 20;
private double[] _ecalLayering; boolean _useFirstLayer;
@@ -114,7 +114,7 @@
_ecalLayering = _cond.getDoubleArray("ECalLayering"); _useFirstLayer = _cond.getDouble("IsFirstEmLayerSampling") == 1.;
-
+ skipFirstLayer = !_useFirstLayer;
ConditionsSet hcalProperties = mgr.getConditions("SamplingFractions/HcalBarrel"); _isHcalDigital = hcalProperties.getBoolean("digital");
@@ -122,11 +122,11 @@
AbstractPolyhedraCalorimeter calsubBarrel = (AbstractPolyhedraCalorimeter) event.getDetector().getSubdetectors().get(det[0]); // TODO remove this hardcoded dependence on the first layer
- if (calsubBarrel.getLayering().getLayer(0).getSlices().get(0).isSensitive()) { - skipFirstLayer = true; - firstEmStartLayer += 1; - secondEmStartLayer += 1; - }
+// if (calsubBarrel.getLayering().getLayer(0).getSlices().get(0).isSensitive()) { +// skipFirstLayer = true; +// firstEmStartLayer += 1; +// secondEmStartLayer += 1; +// }
// Layering layering = calsubBarrel.getLayering(); // for(int i=0; i<layering.size(); ++i) // {
@@ -274,7 +274,8 @@
// 2.) next 10 EM layers // 3.) Had layers List<CalorimeterHit> hits = c.getCalorimeterHits();
- double[] vals = new double[3];
+ double[] vals = new double[4];
+ int nHcalHits = 0;
double clusterRawEnergy = 0.; for (CalorimeterHit hit : hits) { long id = hit.getCellID();
@@ -286,11 +287,11 @@
int caltype = 0; // FIXME Hard-coded name. if (detectorName.toUpperCase().startsWith("ECAL")) {
- if (layer >= firstEmStartLayer && layer < secondEmStartLayer) { - type = 0; - } else { - type = 1; - }
+// if (layer >= firstEmStartLayer && layer < secondEmStartLayer) { +// type = 0; +// } else { +// type = 1; +// }
for (int i = 1; i < _ecalLayering.length + 1; ++i) { if (layer >= _ecalLayering[i - 1]) { caltype = i - 1;
@@ -303,18 +304,29 @@
caltype = 3; nHCalHits += 1; }
+ if(_debug) + { + System.out.println(detectorName+" layer: "+layer+" type: "+type+" caltype: "+caltype+" raw"); + }
clusterRawEnergy += hit.getRawEnergy();
- vals[type] += hit.getRawEnergy(); - if (_isHcalDigital == true) { - vals[2] = nHCalHits;
+ vals[caltype] += hit.getRawEnergy(); +// if (_isHcalDigital == true) { +// nHcalHits += nHCalHits; +// } + } // end of loop over hits in cluster + if (_isHcalDigital == true) { + vals[3] = nHCalHits;
}
- } // end of loop over hits in cluster
// set up linear least squares: // expectedEnergy = a*E1 + b*E2 +c*E3 for (int j = 0; j < 3; ++j) {
- _vec[j] += vals[j];
+ if(_debug) + { + System.out.println("clusterRawEnergy= "+clusterRawEnergy+" vals["+j+"]= "+vals[j]); + } + _vec[j] += expectedEnergy*vals[j+1];
for (int k = 0; k < 3; ++k) {
- _acc[j][k] += (vals[j] * vals[k]) / expectedEnergy;
+ _acc[j][k] += vals[j+1] * vals[k+1] ;
} } } // end of single cluster cut
@@ -362,4 +374,9 @@
} } }
+ + public void setDebug(boolean debug) + { + _debug = debug; + }
}
Use REPLY-ALL to reply to list
To unsubscribe from the LCDET-SVN list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCDET-SVN&A=1