Commit in lcsim/src/org/lcsim/contrib/uiowa/structural on MAIN
TestFragmentIdentifier.java+95-161.3 -> 1.4
More plots

lcsim/src/org/lcsim/contrib/uiowa/structural
TestFragmentIdentifier.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- TestFragmentIdentifier.java	6 Jan 2006 01:02:06 -0000	1.3
+++ TestFragmentIdentifier.java	6 Jan 2006 22:58:51 -0000	1.4
@@ -19,7 +19,7 @@
  * Test the performance of a FragmentIdentifier by
  * comparing it to another, cheating FragmentIdentifier.
  *
- * @version $Id: TestFragmentIdentifier.java,v 1.3 2006/01/06 01:02:06 mcharles Exp $
+ * @version $Id: TestFragmentIdentifier.java,v 1.4 2006/01/06 22:58:51 mcharles Exp $
  */
 
 public class TestFragmentIdentifier implements FragmentIdentifier 
@@ -32,23 +32,45 @@
 	try {
             m_tree = af.createTreeFactory().create("FragmentID.aida","xml",false,true); 
 	    m_histoFactory = af.createHistogramFactory(m_tree); 
-	    m_hcorrectID = m_histoFactory.createHistogram1D("correctID", 2, -0.5, 1.5);
-	    m_hnumHitsWhenFragFrag = m_histoFactory.createCloud1D("numHitsWhenCorrect (test=frag, cheat=frag)");
-	    m_hnumHitsWhenFragNon  = m_histoFactory.createCloud1D("numHitsWhenWrong (test=frag, cheat=nonfrag)");
-	    m_hnumHitsWhenNonFrag  = m_histoFactory.createCloud1D("numHitsWhenWrong (test=nonfrag, cheat=frag)");
-	    m_hnumHitsWhenNonNon   = m_histoFactory.createCloud1D("numHitsWhenCorrect (test=nonfrag, cheat=nonfrag)");
-	    m_hdocaWhenFragFrag = m_histoFactory.createCloud1D("docaWhenCorrect (test=frag, cheat=frag)");
-	    m_hdocaWhenFragNon  = m_histoFactory.createCloud1D("docaWhenWrong (test=frag, cheat=nonfrag)");
-	    m_hdocaWhenNonFrag  = m_histoFactory.createCloud1D("docaWhenWrong (test=nonfrag, cheat=frag)");
-	    m_hdocaWhenNonNon   = m_histoFactory.createCloud1D("docaWhenCorrect (test=nonfrag, cheat=nonfrag)");
+
+	    // All calorimeters combined
+	    m_hcorrectID                 = m_histoFactory.createHistogram1D("correctID", 2, -0.5, 1.5);
+	    m_hnumHitsWhenFragFrag       = m_histoFactory.createCloud1D("numHitsWhenCorrect (test=frag, cheat=frag)");
+	    m_hnumHitsWhenFragNon        = m_histoFactory.createCloud1D("numHitsWhenWrong (test=frag, cheat=nonfrag)");
+	    m_hnumHitsWhenNonFrag        = m_histoFactory.createCloud1D("numHitsWhenWrong (test=nonfrag, cheat=frag)");
+	    m_hnumHitsWhenNonNon         = m_histoFactory.createCloud1D("numHitsWhenCorrect (test=nonfrag, cheat=nonfrag)");
+	    m_hdocaWhenFragFrag          = m_histoFactory.createCloud1D("docaWhenCorrect (test=frag, cheat=frag)");
+	    m_hdocaWhenFragNon           = m_histoFactory.createCloud1D("docaWhenWrong (test=frag, cheat=nonfrag)");
+	    m_hdocaWhenNonFrag           = m_histoFactory.createCloud1D("docaWhenWrong (test=nonfrag, cheat=frag)");
+	    m_hdocaWhenNonNon            = m_histoFactory.createCloud1D("docaWhenCorrect (test=nonfrag, cheat=nonfrag)");
 	    m_hnumHitsVsDocaWhenFragFrag = m_histoFactory.createCloud2D("numHitsVsDocaWhenCorrect (test=frag, cheat=frag)");
 	    m_hnumHitsVsDocaWhenFragNon  = m_histoFactory.createCloud2D("numHitsVsDocaWhenWrong (test=frag, cheat=nonfrag)");
 	    m_hnumHitsVsDocaWhenNonFrag  = m_histoFactory.createCloud2D("numHitsVsDocaWhenWrong (test=nonfrag, cheat=frag)");
 	    m_hnumHitsVsDocaWhenNonNon   = m_histoFactory.createCloud2D("numHitsVsDocaWhenCorrect (test=nonfrag, cheat=nonfrag)");
-            m_hdocaToParentWhenFragFrag = m_histoFactory.createCloud1D("docaToParentWhenCorrect (test=frag, cheat=frag)");
-            m_hdocaToParentWhenNonFrag = m_histoFactory.createCloud1D("docaToParentWhenWrong (test=nonfrag, cheat=frag)");
-            m_hdistToParentWhenFragFrag = m_histoFactory.createCloud1D("distToParentWhenCorrect (test=frag, cheat=frag)");
-            m_hdistToParentWhenNonFrag = m_histoFactory.createCloud1D("distToParentWhenWrong (test=nonfrag, cheat=frag)");
+            m_hdocaToParentWhenFragFrag  = m_histoFactory.createCloud1D("docaToParentWhenCorrect (test=frag, cheat=frag)");
+            m_hdocaToParentWhenNonFrag   = m_histoFactory.createCloud1D("docaToParentWhenWrong (test=nonfrag, cheat=frag)");
+            m_hdistToParentWhenFragFrag  = m_histoFactory.createCloud1D("distToParentWhenCorrect (test=frag, cheat=frag)");
+            m_hdistToParentWhenNonFrag   = m_histoFactory.createCloud1D("distToParentWhenWrong (test=nonfrag, cheat=frag)");
+
+	    // HCAL
+	    m_HCAL_hcorrectID                 = m_histoFactory.createHistogram1D("correctID HCAL", 2, -0.5, 1.5);
+	    m_HCAL_hnumHitsWhenFragFrag       = m_histoFactory.createCloud1D("numHitsWhenCorrect (test=frag, cheat=frag) HCAL");
+	    m_HCAL_hnumHitsWhenFragNon        = m_histoFactory.createCloud1D("numHitsWhenWrong (test=frag, cheat=nonfrag) HCAL");
+	    m_HCAL_hnumHitsWhenNonFrag        = m_histoFactory.createCloud1D("numHitsWhenWrong (test=nonfrag, cheat=frag) HCAL");
+	    m_HCAL_hnumHitsWhenNonNon         = m_histoFactory.createCloud1D("numHitsWhenCorrect (test=nonfrag, cheat=nonfrag) HCAL");
+	    m_HCAL_hdocaWhenFragFrag          = m_histoFactory.createCloud1D("docaWhenCorrect (test=frag, cheat=frag) HCAL");
+	    m_HCAL_hdocaWhenFragNon           = m_histoFactory.createCloud1D("docaWhenWrong (test=frag, cheat=nonfrag) HCAL");
+	    m_HCAL_hdocaWhenNonFrag           = m_histoFactory.createCloud1D("docaWhenWrong (test=nonfrag, cheat=frag) HCAL");
+	    m_HCAL_hdocaWhenNonNon            = m_histoFactory.createCloud1D("docaWhenCorrect (test=nonfrag, cheat=nonfrag) HCAL");
+	    m_HCAL_hnumHitsVsDocaWhenFragFrag = m_histoFactory.createCloud2D("numHitsVsDocaWhenCorrect (test=frag, cheat=frag) HCAL");
+	    m_HCAL_hnumHitsVsDocaWhenFragNon  = m_histoFactory.createCloud2D("numHitsVsDocaWhenWrong (test=frag, cheat=nonfrag) HCAL");
+	    m_HCAL_hnumHitsVsDocaWhenNonFrag  = m_histoFactory.createCloud2D("numHitsVsDocaWhenWrong (test=nonfrag, cheat=frag) HCAL");
+	    m_HCAL_hnumHitsVsDocaWhenNonNon   = m_histoFactory.createCloud2D("numHitsVsDocaWhenCorrect (test=nonfrag, cheat=nonfrag) HCAL");
+            m_HCAL_hdocaToParentWhenFragFrag  = m_histoFactory.createCloud1D("docaToParentWhenCorrect (test=frag, cheat=frag) HCAL");
+            m_HCAL_hdocaToParentWhenNonFrag   = m_histoFactory.createCloud1D("docaToParentWhenWrong (test=nonfrag, cheat=frag) HCAL");
+            m_HCAL_hdistToParentWhenFragFrag  = m_histoFactory.createCloud1D("distToParentWhenCorrect (test=frag, cheat=frag) HCAL");
+            m_HCAL_hdistToParentWhenNonFrag   = m_histoFactory.createCloud1D("distToParentWhenWrong (test=nonfrag, cheat=frag) HCAL");
+
 
 	} catch (IOException ioe1) {
             ioe1.printStackTrace(); 
@@ -66,12 +88,16 @@
 	boolean  test_isFragment =  m_testID.isFragment(clus, event);
 	boolean cheat_isFragment = m_cheatID.isFragment(clus, event);
 
+	boolean hcal = isHCAL(clus);
+
 	String debugString = new String("DEBUG: Fragment ID ");
 	if (test_isFragment == cheat_isFragment) {
 	    m_hcorrectID.fill(1);
+	    if (hcal) { m_HCAL_hcorrectID.fill(1); }
 	    debugString += "correct";
 	} else {
 	    m_hcorrectID.fill(0);
+	    if (hcal) { m_HCAL_hcorrectID.fill(0); }
 	    debugString += "wrong";
 	}
 	debugString += ": ";
@@ -93,15 +119,31 @@
 	if (test_isFragment && cheat_isFragment) {
 	    m_hnumHitsWhenFragFrag.fill(numHits);
 	    if (numHits>=4) { m_hdocaWhenFragFrag.fill(doca); m_hnumHitsVsDocaWhenFragFrag.fill(numHits,doca); }
+	    if (hcal) { 
+		m_HCAL_hnumHitsWhenFragFrag.fill(numHits); 
+		if (numHits>=4) { m_HCAL_hdocaWhenFragFrag.fill(doca); m_HCAL_hnumHitsVsDocaWhenFragFrag.fill(numHits,doca); }
+	    }
 	} else if (test_isFragment && !cheat_isFragment) {
 	    m_hnumHitsWhenFragNon.fill(numHits);
 	    if (numHits>=4) { m_hdocaWhenFragNon.fill(doca); m_hnumHitsVsDocaWhenFragNon.fill(numHits,doca); }
+	    if (hcal) {
+		m_HCAL_hnumHitsWhenFragNon.fill(numHits);
+		if (numHits>=4) { m_HCAL_hdocaWhenFragNon.fill(doca); m_HCAL_hnumHitsVsDocaWhenFragNon.fill(numHits,doca); }
+	    }
 	} else if (!test_isFragment && cheat_isFragment) {
 	    m_hnumHitsWhenNonFrag.fill(numHits);
 	    if (numHits>=4) { m_hdocaWhenNonFrag.fill(doca); m_hnumHitsVsDocaWhenNonFrag.fill(numHits,doca); }
+	    if (hcal) {
+		m_HCAL_hnumHitsWhenNonFrag.fill(numHits);
+		if (numHits>=4) { m_HCAL_hdocaWhenNonFrag.fill(doca); m_HCAL_hnumHitsVsDocaWhenNonFrag.fill(numHits,doca); }
+	    }
 	} else if (!test_isFragment && !cheat_isFragment) {
 	    m_hnumHitsWhenNonNon.fill(numHits);
 	    if (numHits>=4) { m_hdocaWhenNonNon.fill(doca); m_hnumHitsVsDocaWhenNonNon.fill(numHits,doca); }
+	    if (hcal) {
+		m_HCAL_hnumHitsWhenNonNon.fill(numHits);
+		if (numHits>=4) { m_HCAL_hdocaWhenNonNon.fill(doca); m_HCAL_hnumHitsVsDocaWhenNonNon.fill(numHits,doca); }
+	    }
 	}
 
         if (cheat_isFragment) {
@@ -118,8 +160,10 @@
 			double distance = displacement.magnitude();
                         if (test_isFragment) {
                             m_hdistToParentWhenFragFrag.fill(distance);
+			    if (hcal) { m_HCAL_hdistToParentWhenFragFrag.fill(distance); }
                         } else {
                             m_hdistToParentWhenNonFrag.fill(distance);
+                            if (hcal) { m_hdistToParentWhenNonFrag.fill(distance); }
                         }
 		    }
 		}
@@ -131,8 +175,10 @@
 		    double docaToParent = MiscUtilities.findDOCAToPoint(linePosAndDir[0], linePosAndDir[1], parentPosAndDir[0]);
                     if (test_isFragment) {
                         m_hdocaToParentWhenFragFrag.fill(docaToParent);
+			if (hcal) { m_hdocaToParentWhenFragFrag.fill(docaToParent); }
                     } else {
                         m_hdocaToParentWhenNonFrag.fill(docaToParent);
+			if (hcal) { m_hdocaToParentWhenNonFrag.fill(docaToParent); }
                     }
                 }
             }
@@ -149,13 +195,29 @@
         }
     }
 
+    boolean isHCAL(Cluster clus)
+    {
+	// How many hits?
+	int nHits = clus.getCalorimeterHits().size();
+	// How many HCAL hits?
+	int nHitsHCAL = MiscUtilities.countHitsInClusterHCAL(null, clus);
+	
+	if (nHitsHCAL * 2 > nHits) {
+	    // More than half in HCAL
+	    return true;
+	} else {
+	    // Half or more in ECAL
+	    return false;
+	}
+    }
+
     protected FragmentIdentifier  m_testID;
     protected FragmentIdentifier m_cheatID;
 
     ITree m_tree = null;
     IHistogramFactory m_histoFactory = null;
-    IHistogram1D m_hcorrectID;
 
+    IHistogram1D m_hcorrectID;
     ICloud1D m_hnumHitsWhenFragFrag;
     ICloud1D m_hnumHitsWhenFragNon ;
     ICloud1D m_hnumHitsWhenNonFrag ;
@@ -168,11 +230,28 @@
     ICloud2D m_hnumHitsVsDocaWhenFragNon ;
     ICloud2D m_hnumHitsVsDocaWhenNonFrag ;
     ICloud2D m_hnumHitsVsDocaWhenNonNon  ;
-
     ICloud1D m_hdocaToParentWhenFragFrag;
     ICloud1D m_hdocaToParentWhenNonFrag;
     ICloud1D m_hdistToParentWhenFragFrag;
     ICloud1D m_hdistToParentWhenNonFrag;
 
+    IHistogram1D m_HCAL_hcorrectID;
+    ICloud1D m_HCAL_hnumHitsWhenFragFrag;
+    ICloud1D m_HCAL_hnumHitsWhenFragNon ;
+    ICloud1D m_HCAL_hnumHitsWhenNonFrag ;
+    ICloud1D m_HCAL_hnumHitsWhenNonNon  ;
+    ICloud1D m_HCAL_hdocaWhenFragFrag;
+    ICloud1D m_HCAL_hdocaWhenFragNon ;
+    ICloud1D m_HCAL_hdocaWhenNonFrag ;
+    ICloud1D m_HCAL_hdocaWhenNonNon  ;
+    ICloud2D m_HCAL_hnumHitsVsDocaWhenFragFrag;
+    ICloud2D m_HCAL_hnumHitsVsDocaWhenFragNon ;
+    ICloud2D m_HCAL_hnumHitsVsDocaWhenNonFrag ;
+    ICloud2D m_HCAL_hnumHitsVsDocaWhenNonNon  ;
+    ICloud1D m_HCAL_hdocaToParentWhenFragFrag;
+    ICloud1D m_HCAL_hdocaToParentWhenNonFrag;
+    ICloud1D m_HCAL_hdistToParentWhenFragFrag;
+    ICloud1D m_HCAL_hdistToParentWhenNonFrag;
+
 
 }
CVSspam 0.2.8