Commit in lcsim/src/org/lcsim/contrib/uiowa on MAIN
ReclusterDTreeDriver.java+59-31.42 -> 1.43
MJC: (contrib) Reduce output volume by flagging some collections as transient; ensure that likelihood selectors have per-event info to avoid dependency on NonTrivialPFA

lcsim/src/org/lcsim/contrib/uiowa
ReclusterDTreeDriver.java 1.42 -> 1.43
diff -u -r1.42 -r1.43
--- ReclusterDTreeDriver.java	15 Aug 2008 17:56:47 -0000	1.42
+++ ReclusterDTreeDriver.java	15 Aug 2008 22:16:19 -0000	1.43
@@ -34,7 +34,7 @@
   * in this package, which uses the implementation in
   * org.lcsim.recon.cluster.directedtree developed by NIU).
   *
-  * @version $Id: ReclusterDTreeDriver.java,v 1.42 2008/08/15 17:56:47 mcharles Exp $
+  * @version $Id: ReclusterDTreeDriver.java,v 1.43 2008/08/15 22:16:19 mcharles Exp $
   * @author Mat Charles <[log in to unmask]>
   */
 
@@ -117,6 +117,11 @@
 	add(new ListFilterDriver(dec, "HcalBarrDigiHits", "HcalBarrDigiHitsNearBoundary", CalorimeterHit.class));
 	add(new ListFilterDriver(dec, "EcalEndcapDigiHits", "EcalEndcapDigiHitsNearBoundary", CalorimeterHit.class));
 	add(new ListFilterDriver(dec, "HcalEndcapDigiHits", "HcalEndcapDigiHitsNearBoundary", CalorimeterHit.class));
+	add(new TransientFlagDriver("EcalBarrDigiHitsNearBoundary"));
+	add(new TransientFlagDriver("HcalBarrDigiHitsNearBoundary"));
+	add(new TransientFlagDriver("EcalEndcapDigiHitsNearBoundary"));
+	add(new TransientFlagDriver("HcalEndcapDigiHitsNearBoundary"));
+	
 	// Set up driver to look for structure inside clusters:
 	FindSubClusters clusDriverECAL = new FindSubClusters("DTreeClustersECAL", m_newMipFinderRadiusECAL, m_minHitsToBeTreatedAsClusterECAL, m_removePoorQualityMips, "OldMipsInsideTreesECAL", "NewMipsInsideTreesECAL", "ClumpsInsideTreesECAL", "BlocksInsideTreesECAL", "LeftoverHitsInsideTreesECAL", "MapTreeToTargetsECAL", "MapSharedToTreeECAL");
 	FindSubClusters clusDriverHCAL = new FindSubClusters("DTreeClustersHCAL", m_newMipFinderRadiusHCAL, m_minHitsToBeTreatedAsClusterHCAL, m_removePoorQualityMips, "OldMipsInsideTreesHCAL", "NewMipsInsideTreesHCAL", "ClumpsInsideTreesHCAL", "BlocksInsideTreesHCAL", "LeftoverHitsInsideTreesHCAL", "MapTreeToTargetsHCAL", "MapSharedToTreeHCAL");
@@ -134,11 +139,33 @@
 	}
 	add(clusDriverECAL);
 	add(clusDriverHCAL);
+	// Avoid too much output:
+	add(new TransientFlagDriver("OldMipsInsideTreesECAL"));
+	add(new TransientFlagDriver("NewMipsInsideTreesECAL"));
+	add(new TransientFlagDriver("ClumpsInsideTreesECAL"));
+	add(new TransientFlagDriver("BlocksInsideTreesECAL"));
+	add(new TransientFlagDriver("LeftoverHitsInsideTreesECAL"));
+	add(new TransientFlagDriver("OldMipsInsideTreesHCAL"));
+	add(new TransientFlagDriver("NewMipsInsideTreesHCAL"));
+	add(new TransientFlagDriver("ClumpsInsideTreesHCAL"));
+	add(new TransientFlagDriver("BlocksInsideTreesHCAL"));
+	add(new TransientFlagDriver("LeftoverHitsInsideTreesHCAL"));
+	// Write out mucal, fcal if needed:
 	if (m_useMucal) {
 	    add(clusDriverMCAL);
+	    add(new TransientFlagDriver("OldMipsInsideTreesMCAL"));
+	    add(new TransientFlagDriver("NewMipsInsideTreesMCAL"));
+	    add(new TransientFlagDriver("ClumpsInsideTreesMCAL"));
+	    add(new TransientFlagDriver("BlocksInsideTreesMCAL"));
+	    add(new TransientFlagDriver("LeftoverHitsInsideTreesMCAL"));
 	}
 	if (m_useFcal) {
 	    add(clusDriverFCAL);
+	    add(new TransientFlagDriver("OldMipsInsideTreesFCAL"));
+	    add(new TransientFlagDriver("NewMipsInsideTreesFCAL"));
+	    add(new TransientFlagDriver("ClumpsInsideTreesFCAL"));
+	    add(new TransientFlagDriver("BlocksInsideTreesFCAL"));
+	    add(new TransientFlagDriver("LeftoverHitsInsideTreesFCAL"));
 	}
     }
 
@@ -146,6 +173,9 @@
 	super.debugProcess(event);
 	m_event = event;
 
+	// Some likelihood selectors need per-event info
+	supplyEventToLikelihoodSelectors();
+
 	// Steve's pre-shower MIP-finder
 	{
 	    SteveMipWrapper tmpWrapper = new SteveMipWrapper();
@@ -446,6 +476,8 @@
 	List<Cluster> preShowerMips = new Vector<Cluster>();
 	preShowerMips.addAll(MapTrkToMIP.values());
 	event.put("ShowerFinderMips", preShowerMips);
+	event.getMetaData(preShowerMips).setTransient(true);
+
 
 	// Figure out whether tracks were uniquely matched or not:
 	Set<Track> uniquelyMatchedTracks = new HashSet<Track>();
@@ -3357,11 +3389,14 @@
 	    debugEventPrintout(trackList, clustersMatchedToTracks, tracksMatchedToClusters, mapOrigTrackToTweakedTrack, electronTracks, electronClusters, photonLikePhotons, chargedHadronLikePhotons, modifiedPhotonClusters, mips, clumps, treesWithNoStructure, newMapTrackToShowerComponents, newMapShowerComponentToTrack, seedLeftoverHitClusters, neutralClusterCoreOfCluster, allHits, allHitsEcalBarrel, allHitsEcalEndcap, allHitsHcalBarrel, allHitsHcalEndcap, allSharedClusters, smallClustersToShare, leftoverHitClustersToShare, newMapShowerComponentToJet);
 	}
 
-	// Write out
+	// Write out. Mark these collections as "transient" since they
+	// need to be flushed anyway before they can be written safely.
 	m_event.put(m_outputParticleListName, outputParticleList);
-	m_event.put(m_outputParticleListName+"_withEoverPveto", outputParticleListWithEoverPveto);
 	m_event.put(m_outputParticleListName+"_forConfusionMatrix", outputParticleListTweakedForConfusionMatrix);
+	m_event.getMetaData(outputParticleList).setTransient(true);
+	m_event.getMetaData(outputParticleListTweakedForConfusionMatrix).setTransient(true);
 	if (m_writeExtraEventOutput) {
+	    m_event.put(m_outputParticleListName+"_withEoverPveto", outputParticleListWithEoverPveto);
 	    m_event.put(m_outputParticleListName+"_jetsOnly", outputParticleListForConfusionMatrix_jetTracksWithClusters);
 	    m_event.put(m_outputParticleListName+"_unusedHits", particleOfUnusedHits);
 	    m_event.put(m_outputParticleListName+"_chargedPassingEoverPveto", outputChargedParticleListWithEoverPveto_pass);
@@ -3379,6 +3414,24 @@
 	    m_event.put(m_outputParticleListName+"_seedHadronLikePhotonClusters", seedHadronLikePhotonClusters_particles);
 	    m_event.put(m_outputParticleListName+"_nonSeedHadronLikePhotonClusters", nonSeedHadronLikePhotonClusters_particles);
 	    m_event.put(m_outputParticleListName+"_nonSeedPhotonLikePhotonClusters", nonSeedPhotonLikePhotonClusters_particles);
+	    m_event.getMetaData(outputParticleListWithEoverPveto).setTransient(true);
+	    m_event.getMetaData(outputParticleListForConfusionMatrix_jetTracksWithClusters).setTransient(true);
+	    m_event.getMetaData(particleOfUnusedHits).setTransient(true);
+	    m_event.getMetaData(outputChargedParticleListWithEoverPveto_pass).setTransient(true);
+	    m_event.getMetaData(outputChargedParticleListWithEoverPveto_fail).setTransient(true);
+	    m_event.getMetaData(outputChargedParticleListWithClusterEnergy).setTransient(true);
+	    m_event.getMetaData(outputChargedParticleListWithClusterEnergy_punchThrough).setTransient(true);
+	    m_event.getMetaData(outputChargedParticleListWithClusterEnergy_noPunchThrough).setTransient(true);
+	    m_event.getMetaData(outputChargedParticleListWithClusterEnergy_oldCalib).setTransient(true);
+	    m_event.getMetaData(outputChargedParticleListWithClusterEnergy_punchThrough_oldCalib).setTransient(true);
+	    m_event.getMetaData(outputChargedParticleListWithClusterEnergy_noPunchThrough_oldCalib).setTransient(true);
+	    m_event.getMetaData(chargedParticlesThatDontReachCalorimeter).setTransient(true);
+	    m_event.getMetaData(photonLikePhotons_particles).setTransient(true);
+	    m_event.getMetaData(chargedHadronLikePhotons_particles).setTransient(true);
+	    m_event.getMetaData(electronClusters_particles).setTransient(true);
+	    m_event.getMetaData(seedHadronLikePhotonClusters_particles).setTransient(true);
+	    m_event.getMetaData(nonSeedHadronLikePhotonClusters_particles).setTransient(true);
+	    m_event.getMetaData(nonSeedPhotonLikePhotonClusters_particles).setTransient(true);
 	}
     }
 
@@ -3927,6 +3980,9 @@
 	}
 	int flag = 1<<org.lcsim.util.lcio.LCIOConstants.CLBIT_HITS;
 	m_event.put("DebugMipsRejected", debugList, Cluster.class, flag);
+	if (!m_writeExtraEventOutput) {
+	    m_event.getMetaData(debugList).setTransient(true);
+	}
     }
 
     void handleTrackMatchingAmbiguities(Map<Cluster, List<Track>> clustersMatchedToTracks,
CVSspam 0.2.8