Print

Print


Commit in lcsim/src/org/lcsim/recon/cluster/directedtree on MAIN
LoadMyCalorimeterHit.java+25-21.2 -> 1.3
GL: Default densities, based on digitized hits (Ecut, Tcut)

lcsim/src/org/lcsim/recon/cluster/directedtree
LoadMyCalorimeterHit.java 1.2 -> 1.3
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;
 }
CVSspam 0.2.8