lcsim/src/org/lcsim/contrib/uiowa
diff -N SetUpPFA.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ SetUpPFA.java 21 Oct 2008 23:55:26 -0000 1.1
@@ -0,0 +1,70 @@
+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.util.decision.*;
+import org.lcsim.recon.pfa.identifier.*;
+import org.lcsim.recon.cluster.util.UpperSubLayerDecision;
+
+public class SetUpPFA extends Driver {
+ public SetUpPFA(String trackList) {
+ // Filter muon system hits
+ {
+ DecisionMakerSingle<CalorimeterHit> upperLayer = new UpperSubLayerDecision();
+ DecisionMakerSingle<CalorimeterHit> lowerLayer = new NotDecisionMakerSingle(upperLayer);
+ DecisionMakerSingle<CalorimeterHit> timeCut = new CalorimeterHitTimeCutDecision(100);
+ AndDecisionMakerSingle<CalorimeterHit> lowerLayerAndTimeCut = new AndDecisionMakerSingle<CalorimeterHit>();
+ lowerLayerAndTimeCut.addDecisionMaker(lowerLayer);
+ lowerLayerAndTimeCut.addDecisionMaker(timeCut);
+ add(new ListFilterDriver(lowerLayerAndTimeCut, "MuonBarrHits", "CorrMuonBarrDigiHits", CalorimeterHit.class));
+ add(new ListFilterDriver(lowerLayerAndTimeCut, "MuonEndcapHits", "CorrMuonEndcapDigiHits", CalorimeterHit.class));
+ }
+
+ // Set up track extrapolation
+ HelixExtrapolator findCluster = new org.lcsim.recon.pfa.identifier.TrackHelixPlusHitExtrapolator();
+ add(findCluster);
+
+ // Set up input lists of calorimeter hits
+ {
+ List<String> recoHitLists = new Vector<String>(); // Hits to use in main clustering
+ List<String> allHitLists = new Vector<String>(); // All hits (used in muon-finding)
+ List<String> mstHitLists = new Vector<String>(); // Hits from subsystems where we have to use MST
+ recoHitLists.add("EcalBarrDigiHits");
+ recoHitLists.add("EcalEndcapDigiHits");
+ recoHitLists.add("HcalBarrDigiHits");
+ recoHitLists.add("HcalEndcapDigiHits");
+ recoHitLists.add("CorrMuonEndcapDigiHits");
+ allHitLists.addAll(recoHitLists);
+ allHitLists.add("CorrMuonBarrDigiHits");
+ mstHitLists.add("CorrMuonEndcapDigiHits");
+ add(new org.lcsim.contrib.uiowa.SetUpDTreeForReclustering(trackList, allHitLists, recoHitLists, mstHitLists, findCluster));
+ }
+
+ // Set up and run PFA
+ ReclusterDTreeDriver reclusTree = new ReclusterDTreeDriver("DTreeClusters", "UnmatchedTracksAfterAmbigClusterMap", "ReconFSParticles", "MuonTrackClusterMap", findCluster);
+ reclusTree.writeExtraEventOutput(false);
+ reclusTree.addInputMips("OldMipsInsideTreesECAL");
+ reclusTree.addInputMips("NewMipsInsideTreesECAL");
+ reclusTree.addInputMips("OldMipsInsideTreesHCAL");
+ reclusTree.addInputMips("NewMipsInsideTreesHCAL");
+ reclusTree.addInputMips("OldMipsInsideTreesMCAL");
+ reclusTree.addInputMips("NewMipsInsideTreesMCAL");
+ reclusTree.addInputClumps("ClumpsInsideTreesECAL");
+ reclusTree.addInputClumps("ClumpsInsideTreesHCAL");
+ reclusTree.addInputClumps("ClumpsInsideTreesMCAL");
+ reclusTree.addInputBlocks("BlocksInsideTreesECAL");
+ reclusTree.addInputBlocks("BlocksInsideTreesHCAL");
+ reclusTree.addInputBlocks("BlocksInsideTreesMCAL");
+ reclusTree.addInputLeftoverHits("LeftoverHitsInsideTreesECAL");
+ reclusTree.addInputLeftoverHits("LeftoverHitsInsideTreesHCAL");
+ reclusTree.addInputLeftoverHits("LeftoverHitsInsideTreesMCAL");
+ reclusTree.addTrackToClusterMap("MapPreShowerMipTracksToClusterSeeds");
+ reclusTree.addTrackToClusterMap("MapMipClusterTracksToClusterSeeds");
+ reclusTree.addTrackToClusterMap("MapGenClusterTracksToClusterSeeds");
+ reclusTree.addTrackToClusterMap("MapAmbigClusterTracksToClusterSeeds");
+ add(reclusTree);
+ }
+}
lcsim/src/org/lcsim/contrib/uiowa
diff -u -r1.9 -r1.10
--- MinimalRunPFA.java 21 Oct 2008 23:05:48 -0000 1.9
+++ MinimalRunPFA.java 21 Oct 2008 23:55:26 -0000 1.10
@@ -27,57 +27,9 @@
public MinimalRunPFA() {
// Prepare to run PFA: Tracks (includes DigiSim)
add(new org.lcsim.contrib.Cassell.recon.Cheat.CheatReconDriver());
- // Prepare by filtering muon system hits
- {
- DecisionMakerSingle<CalorimeterHit> upperLayer = new UpperSubLayerDecision();
- DecisionMakerSingle<CalorimeterHit> lowerLayer = new NotDecisionMakerSingle(upperLayer);
- DecisionMakerSingle<CalorimeterHit> timeCut = new CalorimeterHitTimeCutDecision(100);
- AndDecisionMakerSingle<CalorimeterHit> lowerLayerAndTimeCut = new AndDecisionMakerSingle<CalorimeterHit>();
- lowerLayerAndTimeCut.addDecisionMaker(lowerLayer);
- lowerLayerAndTimeCut.addDecisionMaker(timeCut);
- add(new ListFilterDriver(lowerLayerAndTimeCut, "MuonBarrHits", "CorrMuonBarrDigiHits", CalorimeterHit.class));
- add(new ListFilterDriver(lowerLayerAndTimeCut, "MuonEndcapHits", "CorrMuonEndcapDigiHits", CalorimeterHit.class));
- }
- // Prepare to run PFA: Photon-finding and DirectedTree
- List<String> recoHitLists = new Vector<String>(); // Hits to use in main clustering
- List<String> allHitLists = new Vector<String>(); // All hits (used in muon-finding)
- List<String> mstHitLists = new Vector<String>(); // Hits from subsystems where we have to use MST
- recoHitLists.add("EcalBarrDigiHits");
- recoHitLists.add("EcalEndcapDigiHits");
- recoHitLists.add("HcalBarrDigiHits");
- recoHitLists.add("HcalEndcapDigiHits");
- recoHitLists.add("CorrMuonEndcapDigiHits");
- allHitLists.addAll(recoHitLists);
- allHitLists.add("CorrMuonBarrDigiHits");
- mstHitLists.add("CorrMuonEndcapDigiHits");
- //HelixExtrapolator findCluster = new org.lcsim.recon.pfa.identifier.TrackHelixPlusHitExtrapolator();
- HelixExtrapolator findCluster = new org.lcsim.recon.pfa.identifier.LocalHelixExtrapolator();
- add(findCluster);
- add(new org.lcsim.contrib.uiowa.SetUpDTreeForReclustering(allHitLists, recoHitLists, mstHitLists, findCluster));
// Set up and run PFA
- ReclusterDTreeDriver reclusTree = new ReclusterDTreeDriver("DTreeClusters", "UnmatchedTracksAfterAmbigClusterMap", "ReconFSParticles", "MuonTrackClusterMap", findCluster);
- reclusTree.writeExtraEventOutput(writeExtraOutput);
- reclusTree.addInputMips("OldMipsInsideTreesECAL");
- reclusTree.addInputMips("NewMipsInsideTreesECAL");
- reclusTree.addInputMips("OldMipsInsideTreesHCAL");
- reclusTree.addInputMips("NewMipsInsideTreesHCAL");
- reclusTree.addInputMips("OldMipsInsideTreesMCAL");
- reclusTree.addInputMips("NewMipsInsideTreesMCAL");
- reclusTree.addInputClumps("ClumpsInsideTreesECAL");
- reclusTree.addInputClumps("ClumpsInsideTreesHCAL");
- reclusTree.addInputClumps("ClumpsInsideTreesMCAL");
- reclusTree.addInputBlocks("BlocksInsideTreesECAL");
- reclusTree.addInputBlocks("BlocksInsideTreesHCAL");
- reclusTree.addInputBlocks("BlocksInsideTreesMCAL");
- reclusTree.addInputLeftoverHits("LeftoverHitsInsideTreesECAL");
- reclusTree.addInputLeftoverHits("LeftoverHitsInsideTreesHCAL");
- reclusTree.addInputLeftoverHits("LeftoverHitsInsideTreesMCAL");
- reclusTree.addTrackToClusterMap("MapPreShowerMipTracksToClusterSeeds");
- reclusTree.addTrackToClusterMap("MapMipClusterTracksToClusterSeeds");
- reclusTree.addTrackToClusterMap("MapGenClusterTracksToClusterSeeds");
- reclusTree.addTrackToClusterMap("MapAmbigClusterTracksToClusterSeeds");
- add(reclusTree);
+ add(new SetUpPFA("FSReconTracks"));
// Write out, make plots
flushParticles();
lcsim/src/org/lcsim/contrib/uiowa
diff -u -r1.11 -r1.12
--- SetUpDTreeForReclustering.java 15 Oct 2008 22:10:25 -0000 1.11
+++ SetUpDTreeForReclustering.java 21 Oct 2008 23:55:26 -0000 1.12
@@ -17,7 +17,7 @@
// Dummy -- fix these
public SetUpDTreeForReclustering() {}
- public SetUpDTreeForReclustering(Collection<String> allHitLists, Collection<String> recoHitLists, Collection<String> hitsForMST, HelixExtrapolator findCluster) {
+ public SetUpDTreeForReclustering(String inputTrackList, Collection<String> allHitLists, Collection<String> recoHitLists, Collection<String> hitsForMST, HelixExtrapolator findCluster) {
// Convert DigiSim's lists to hitmaps:
Map<String,String> mapListToHitMap = new HashMap<String,String>();
for (String inputName : allHitLists) {
@@ -64,7 +64,7 @@
add(new TransientFlagDriver("PreliminaryPhotonClustersForDTree"));
// Check for electrons and set those to one side so we don't accidentally cluster them or use their tracks:
- add(new TrackToElectronMapMaker(findCluster, "PreliminaryPhotonClustersForDTree", "FSReconTracks", "MapElectronTracksToClusters", "TracksWithoutElectrons", "ElectronMapClusters"));
+ add(new TrackToElectronMapMaker(findCluster, "PreliminaryPhotonClustersForDTree", inputTrackList, "MapElectronTracksToClusters", "TracksWithoutElectrons", "ElectronMapClusters"));
add(new ListSubtractDriver("PreliminaryPhotonClustersForDTree", "ElectronMapClusters", "PreliminaryPhotonClustersForDTreeMinusElectrons"));
add(new ClusterListToHitMapDriver("ElectronMapClusters", "ElectronHitMap"));
add(new HitMapSubtractDriver("RecoDigiHitMap", "ElectronHitMap", "RecoDigiHitMapWithoutElectrons"));