lcsim/src/org/lcsim/contrib/uiowa
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
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
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"));
}
}