lcsim/src/org/lcsim/recon/cluster/directedtree
diff -u -r1.2 -r1.3
--- LoadMyCalorimeterHit.java 9 Feb 2006 21:18:02 -0000 1.2
+++ LoadMyCalorimeterHit.java 20 Feb 2006 22:47:43 -0000 1.3
@@ -46,8 +46,9 @@
/** assign densities to every hit in the hitmap. No energy cut is
* required, but input hitmap may have hit selection requirements,
* such as energy and time thresholds.
- * @param colName collection name, used to determine neighborhood
- * @param hitmap input map used to determine cell densities
+ * @param colName - collection name, used to determine neighborhood
+ * via class RunControlParameters
+ * @param hitmap - input map used to determine cell densities
*/
public void setDensities(String colName, Map<Long,CalorimeterHit> hitmap) {
@@ -82,6 +83,8 @@
AIDA.defaultInstance().cloud1D("density (all)").fill(nNeigh);
if(nNeigh<50) AIDA.defaultInstance().cloud1D("density").fill(nNeigh);
}
+
+ _densitiesOK = true;
}
// Get hit density from a hit reference
@@ -92,6 +95,7 @@
// Get hit density from cellID
public double getDensity(long cellid) {
+ assert _densitiesOK : "LoadMyCalHit: densities have not been set!";
try {
return _densityMap.get( cellid );
}
@@ -101,6 +105,24 @@
}
}
+ /** Default method for setting densities. This is used by the
+ * directed tree algorithm, and analysis code. By default, uses
+ * digitized collections, which usually includes energy and time
+ * thresholds.
+ */
+ public void setDefaultDensities() {
+ // load hit maps
+ String[] colNames = {"EcalBarrDigiHits", "EcalEndcapDigiHits",
+ "HcalBarrDigiHits", "HcalEndcapDigiHits"};
+ CalHitMapMgr dataMgr = CalHitMapMgr.getInstance();
+
+ for(int i=0; i<colNames.length; ++i) {
+ Map<Long,CalorimeterHit> hitmap = dataMgr.getCollHitMap(colNames[i]);
+ // define densities
+ this.setDensities(colNames[i], hitmap);
+ }
+ }
+
//*** FIELDS ***
private static LoadMyCalorimeterHit _me = null;
@@ -112,4 +134,5 @@
private int _nZ;
private int _nPhi;
private Map<Long,Double> _densityMap;
+ private boolean _densitiesOK = false;
}