Commit in lcsim/src/org/lcsim/contrib/uiowa on MAIN
NonTrivialPFA.java+20-431.27 -> 1.28
MJC: Use Ron's track list; add alternate MIP finder

lcsim/src/org/lcsim/contrib/uiowa
NonTrivialPFA.java 1.27 -> 1.28
diff -u -r1.27 -r1.28
--- NonTrivialPFA.java	20 Oct 2007 00:42:31 -0000	1.27
+++ NonTrivialPFA.java	20 Oct 2007 00:47:56 -0000	1.28
@@ -174,59 +174,24 @@
 	    // Find tracks (non-cheating)
 	    // Output: List<Track> saved as EventHeader.TRACKS
 	    add (new MCFastTracking());
-	    String nonCheatingTrackList = EventHeader.TRACKS;
+	    String fastMCTrackList = EventHeader.TRACKS;
 	    
 	    // Find tracks (really cheating)
             String cheatingTrackList = "Tracks_by_cheat";
-	    add (new ImprovisedTrackCheater(mcListName, cheatingTrackList));
+	    // THIS BREAKS SOMETHING ELSE DOWNSTREAM // add (new ImprovisedTrackCheater(mcListName, cheatingTrackList));
 
 	    // Find tracks (cheating)
-            // Code taken from Steve Magill
 	    String ronTrackList = "Tracks_by_ron";
-            {
-                // Make cheat tracks and cheat clusters
-                String Tname = "RefinedCheatTracks";
-                add(new org.lcsim.recon.tracking.cheat.CheatTrackDriver());
-                String Cname = "PerfectCheatClusters";
-                add (new org.lcsim.recon.cluster.cheat.CheatClusterDriver(eventHitCollections,Cname));
-		
-                // Make cheat reconstructed particles from cheat tracks and cheat clusters
-                String CRPname = "CheatReconstructedParticles";
-                org.lcsim.recon.particle.CheatParticleDriver cpd = new org.lcsim.recon.particle.CheatParticleDriver(Cname,Tname,mcListNameSim);
-                //  Inputs Cheated Tracks, Cheated Clusters, and MC particle list to create Cheated Particles
-                cpd.setOutputName(CRPname);
-                add(cpd);
-                
-                // Make perfect particles from cheat reconstructed particles
-                String outName = "PerfectRecoParticles";
-		String outNameMC = "PerfectRecoMCParticles";
-                int minT = 4;
-                int minC = 1;
-                org.lcsim.contrib.Cassell.recon.Cheat.PPRParticleDriver d = new org.lcsim.contrib.Cassell.recon.Cheat.PPRParticleDriver(CRPname, outName, outNameMC);
-                d.setMinTrackerHits(minT);
-                d.setMinCalorimeterHits(minC);
-                add(d);
-
-		// Make up list of tracks
-		// Don't use fast MC here since Ron has already sifted the tracks for
-		// reconstructability, and applying the fast MC will double-count inefficiency.
-		//org.lcsim.mc.fast.tracking.MCFastTracking ronFastMC = new org.lcsim.mc.fast.tracking.MCFastTracking();
-		//ronFastMC.setOutputList(ronTrackList);
-		//ronFastMC.setFSList("PerfectRecoMCParticles");
-		//add(ronFastMC);   
-		add (new ImprovisedTrackCheater("PerfectRecoMCParticles", ronTrackList));
-            }
+	    String ronMCList = "ReconFSParticles";
+	    add(new org.lcsim.contrib.Cassell.recon.Cheat.CheatReconDriver());
 	    
 	    // Choose which track list to use
 	    boolean useRonTrackList = false;
-	    boolean useCheatingTrackList = false;
 	    if (useRonTrackList) {
 		trackList = ronTrackList;
-		mcListName = "PerfectRecoMCParticles";
-	    } else if (useCheatingTrackList) {
-		trackList = cheatingTrackList;
+		mcListName = ronMCList;
 	    } else {
-		trackList = nonCheatingTrackList;
+		trackList = fastMCTrackList;
 	    }
 	}
 
@@ -279,8 +244,14 @@
 	{
 	    // MIPs
 	    String prefix = "mipfinder__";
-	    addMIPFinder(prefix, eventHitMapEcalWithoutPhotons, eventMipsEcal, eventHitMapEcalWithoutMipsOrPhotons); 
-	    addMIPFinder(prefix, eventHitMapHcalWithoutMuons, eventMipsHcal, eventHitMapHcalWithoutMips);
+	    boolean useFlexibleMIPFinder = false;
+	    if (useFlexibleMIPFinder) {
+		addFlexibleMIPFinder(prefix, eventHitMapEcalWithoutPhotons, eventMipsEcal, eventHitMapEcalWithoutMipsOrPhotons); 
+		addFlexibleMIPFinder(prefix, eventHitMapHcalWithoutMuons, eventMipsHcal, eventHitMapHcalWithoutMips);
+	    } else {
+		addMIPFinder(prefix, eventHitMapEcalWithoutPhotons, eventMipsEcal, eventHitMapEcalWithoutMipsOrPhotons); 
+		addMIPFinder(prefix, eventHitMapHcalWithoutMuons, eventMipsHcal, eventHitMapHcalWithoutMips);
+	    }
 	    // Merge ECAL & HCAL lists
 	    ListAddDriver<Cluster> mergeMIPs = new ListAddDriver<Cluster>(Cluster.class);
 	    mergeMIPs.addInputList(eventMipsEcal);
@@ -680,6 +651,12 @@
 	TrackClusterDriver findMIPs = new TrackClusterDriver(inputHitMap, outputMIPList, outputHitMap);
 	add(findMIPs);
     }
+    protected void addFlexibleMIPFinder(String prefix, String inputHitMap, String outputMIPList, String outputHitMap)
+    {
+	FlexibleMIPFinder findMIPs = new FlexibleMIPFinder(inputHitMap, outputMIPList, outputHitMap);
+	add(findMIPs);
+    }
+
 
     /** Find photons in the ECAL with cheating. */
     protected void addCheatPhotonFinder(String prefix, String inputHitMap, String outputPhotonClusterList, String outputHitMap, String mcListName)
CVSspam 0.2.8