Commit in lcsim/src/org/lcsim/contrib/uiowa on MAIN
SetUpDTreeForReclustering.java+74added 1.1
ExampleRunAndWriteOutPFA.java+19-101.4 -> 1.5
ExampleReadPFA.java+2-11.2 -> 1.3
+95-11
1 added + 2 modified, total 3 files
MJC: Update example PFA drivers

lcsim/src/org/lcsim/contrib/uiowa
SetUpDTreeForReclustering.java added at 1.1
diff -N SetUpDTreeForReclustering.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ SetUpDTreeForReclustering.java	16 Jan 2008 19:30:17 -0000	1.1
@@ -0,0 +1,74 @@
+package org.lcsim.contrib.uiowa;
+
+import java.util.*;
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.util.*;
+import org.lcsim.event.*;
+import org.lcsim.recon.cluster.directedtree.*;
+import org.lcsim.util.hitmap.*;
+
+public class SetUpDTreeForReclustering extends Driver
+{
+    public SetUpDTreeForReclustering() {
+	// Convert DigiSim's lists to hitmaps:
+	HitListToHitMapDriver converter1 = new HitListToHitMapDriver();
+	HitListToHitMapDriver converter2 = new HitListToHitMapDriver();
+	HitListToHitMapDriver converter3 = new HitListToHitMapDriver();
+	HitListToHitMapDriver converter4 = new HitListToHitMapDriver();
+	converter1.addInputList("EcalBarrDigiHits");
+	converter2.addInputList("EcalEndcapDigiHits");
+	converter3.addInputList("HcalBarrDigiHits");
+	converter4.addInputList("HcalEndcapDigiHits");
+	converter1.setOutput("EcalBarrDigiHitMap");
+	converter2.setOutput("EcalEndcapDigiHitMap");
+	converter3.setOutput("HcalBarrDigiHitMap");
+	converter4.setOutput("HcalEndcapDigiHitMap");
+	add(converter1);
+	add(converter2);
+	add(converter3);
+	add(converter4);
+
+	// Find photons in ECAL
+	org.lcsim.contrib.uiowa.RonPhotonFinder.RonPhotonFinderSid01 photonFinderEcalBarrel = new org.lcsim.contrib.uiowa.RonPhotonFinder.RonPhotonFinderSid01("EcalBarrDigiHitMap", "EcalBarrDigiHitMapWithoutPhotons", "EcalBarrPhotonClusters");
+	org.lcsim.contrib.uiowa.RonPhotonFinder.RonPhotonFinderSid01 photonFinderEcalEndcap = new org.lcsim.contrib.uiowa.RonPhotonFinder.RonPhotonFinderSid01("EcalEndcapDigiHitMap", "EcalEndcapDigiHitMapWithoutPhotons", "EcalEndcapPhotonClusters");
+	add(photonFinderEcalBarrel);
+	add(photonFinderEcalEndcap);
+	ListAddDriver<Cluster> mergePhotonClusters = new ListAddDriver<Cluster>(Cluster.class);
+	mergePhotonClusters.addInputList("EcalBarrPhotonClusters");
+	mergePhotonClusters.addInputList("EcalEndcapPhotonClusters");
+	mergePhotonClusters.setOutputList("PhotonClustersForDTree");
+	add(mergePhotonClusters);
+
+	// Run DTree
+	DirectedTreeDriver treeDriverEcalBarr = new DirectedTreeDriver();
+	treeDriverEcalBarr.setInputHitMap("EcalBarrDigiHitMapWithoutPhotons");
+	treeDriverEcalBarr.setOutputClusterList("EcalBarrDTrees");
+	treeDriverEcalBarr.setOutputHitMap("EcalBarrDigiHitMapAfterDTree");
+	DirectedTreeDriver treeDriverEcalEndcap = new DirectedTreeDriver();
+	treeDriverEcalEndcap.setInputHitMap("EcalEndcapDigiHitMapWithoutPhotons");
+	treeDriverEcalEndcap.setOutputClusterList("EcalEndcapDTrees");
+	treeDriverEcalEndcap.setOutputHitMap("EcalEndcapDigiHitMapAfterDTree");
+	DirectedTreeDriver treeDriverHcalBarr = new DirectedTreeDriver();
+	treeDriverHcalBarr.setInputHitMap("HcalBarrDigiHitMap");
+	treeDriverHcalBarr.setOutputClusterList("HcalBarrDTrees");
+	treeDriverHcalBarr.setOutputHitMap("HcalBarrDigiHitMapAfterDTree");
+	DirectedTreeDriver treeDriverHcalEndcap = new DirectedTreeDriver();
+	treeDriverHcalEndcap.setInputHitMap("HcalEndcapDigiHitMap");
+	treeDriverHcalEndcap.setOutputClusterList("HcalEndcapDTrees");
+	treeDriverHcalEndcap.setOutputHitMap("HcalEndcapDigiHitMapAfterDTree");
+	add(treeDriverEcalBarr);
+	add(treeDriverEcalEndcap);
+	add(treeDriverHcalBarr);
+	add(treeDriverHcalEndcap);
+	
+	// Merge & write out
+	ListAddDriver<Cluster> mergeDTreeClusters = new ListAddDriver<Cluster>(Cluster.class);
+	mergeDTreeClusters.addInputList("EcalBarrDTrees");
+	mergeDTreeClusters.addInputList("EcalEndcapDTrees");
+	mergeDTreeClusters.addInputList("HcalBarrDTrees");
+	mergeDTreeClusters.addInputList("HcalEndcapDTrees");
+	mergeDTreeClusters.setOutputList("DTreeClusters");
+	add(mergeDTreeClusters);
+    }
+}

lcsim/src/org/lcsim/contrib/uiowa
ExampleRunAndWriteOutPFA.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- ExampleRunAndWriteOutPFA.java	26 Nov 2007 00:11:16 -0000	1.4
+++ ExampleRunAndWriteOutPFA.java	16 Jan 2008 19:30:17 -0000	1.5
@@ -23,20 +23,29 @@
     /** Constructor sets up daughter drivers. */
     public ExampleRunAndWriteOutPFA()
     {
-        add(new org.lcsim.contrib.uiowa.NonTrivialPFA(false)); // Run the PFA, output is a List<ReconstructedParticle> named "PFAReconstructedParticles"
-	add(new org.lcsim.contrib.uiowa.ReclusterDriver("ReconFSParticles", "FSReconTracks", "muonParticles", "photonClustersWithoutFragments", "skeletons", "MSTClustersLinkedWithFewerThanTenHits", "structuralUnusedHits", "MSTClustersLinkedWithTenOrMoreHits", "mips", "clumps", "splitSkeletons", new LikelihoodEvaluatorWrapper()));
-	add(new FlushReconstructedParticlesDriver("ReclusteredParticles", "FlushedReclusteredParticles", "FlushedReclusteredClusters"));
+	// Prep
+        add(new org.lcsim.contrib.uiowa.NonTrivialPFA());
+	add(new org.lcsim.contrib.uiowa.SetUpDTreeForReclustering());
+	// Run the PFA
+	add(new org.lcsim.contrib.uiowa.ReclusterDTreeDriver("DTreeClusters", "FSReconTracks", "ReconFSParticles"));
+	// Output
+	add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles", "FlushedDTreeReclusteredParticles", "FlushedDTreeReclusteredClusters"));
+	add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_withEoverPveto", "FlushedDTreeReclusteredParticles_withEoverPveto", "FlushedDTreeReclusteredClusters_withEoverPveto"));
+        add(new org.lcsim.util.loop.LCIODriver("full.slcio")); // Write out to an LCIO file
+	// Some mass plots
 	add(new org.lcsim.contrib.uiowa.MassPlots("PFAReconstructedParticles", "output-write.aida")); // Make some histograms and write them to a file
-	add(new org.lcsim.contrib.uiowa.MassPlots("ReclusteredParticles", "output-write-reclustered.aida")); // Make some histograms and write them to a file
-        add(new org.lcsim.util.loop.LCIODriver("test.slcio")); // Write out to an LCIO file
+	add(new org.lcsim.contrib.uiowa.MassPlots("DTreeReclusteredParticles", "output-write-reclustered-dtree.aida")); // Make some histograms and write them to a file
+	add(new org.lcsim.contrib.uiowa.MassPlots("DTreeReclusteredParticles_withEoverPveto", "output-write-reclustered-dtree-veto.aida")); // Make some histograms and write them to a file
+	// Test & validate performance
+	validate("PFAReconstructedParticles");
+	validate("DTreeReclusteredParticles");
+    }
 
+    protected void validate(String particleList) {
         String CheatReconRname = "ReconPerfectReconParticles";
         String CheatReconFSname = "ReconFSParticles";
         String CheatReconFSTrackedname = "TrackedReconFSParticles";
-        org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForNonTrivialPFA = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"PFAReconstructedParticles",true);
-        org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForReclusterer = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"ReclusteredParticles", true);
-        add(testRonDriverForNonTrivialPFA);
-        add(testRonDriverForReclusterer);
-
+        org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriver = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,particleList,true);
+        add(testRonDriver);
     }
 }

lcsim/src/org/lcsim/contrib/uiowa
ExampleReadPFA.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- ExampleReadPFA.java	21 Nov 2007 23:08:06 -0000	1.2
+++ ExampleReadPFA.java	16 Jan 2008 19:30:17 -0000	1.3
@@ -16,6 +16,7 @@
 {
     public ExampleReadPFA() {
 	add(new MassPlots("PFAReconstructedParticles", "output-read.aida"));
-	add(new MassPlots("ReclusteredParticles", "output-read-reclustered.aida"));
+	add(new MassPlots("DTreeReclusteredParticles", "output-read-reclustered-dtree.aida"));
+	add(new MassPlots("DTreeReclusteredParticles_withEoverPveto", "output-read-reclustered-dtree-veto.aida"));
     }
 }
CVSspam 0.2.8