Print

Print


Commit in lcsim/src/org/lcsim/contrib/uiowa on MAIN
MinimalRunPFA.java+14-31.8 -> 1.9
ReclusterDTreeDriver.java+13-41.58 -> 1.59
+27-7
2 modified files
MJC: (contrib) Filter Muon system hits to (a) exclude > 100 ns, and (b) remove outer slice within each layer

lcsim/src/org/lcsim/contrib/uiowa
MinimalRunPFA.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- MinimalRunPFA.java	16 Oct 2008 18:32:23 -0000	1.8
+++ MinimalRunPFA.java	21 Oct 2008 23:05:48 -0000	1.9
@@ -27,6 +27,17 @@
     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)
@@ -35,10 +46,10 @@
 	recoHitLists.add("EcalEndcapDigiHits");
 	recoHitLists.add("HcalBarrDigiHits");
 	recoHitLists.add("HcalEndcapDigiHits");
-	recoHitLists.add("MuonEndcapDigiHits");
+	recoHitLists.add("CorrMuonEndcapDigiHits");
 	allHitLists.addAll(recoHitLists);
-	allHitLists.add("MuonBarrDigiHits");
-	mstHitLists.add("MuonEndcapDigiHits");
+	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);

lcsim/src/org/lcsim/contrib/uiowa
ReclusterDTreeDriver.java 1.58 -> 1.59
diff -u -r1.58 -r1.59
--- ReclusterDTreeDriver.java	16 Oct 2008 00:32:22 -0000	1.58
+++ ReclusterDTreeDriver.java	21 Oct 2008 23:05:48 -0000	1.59
@@ -35,7 +35,7 @@
   * in this package, which uses the implementation in
   * org.lcsim.recon.cluster.directedtree developed by NIU).
   *
-  * @version $Id: ReclusterDTreeDriver.java,v 1.58 2008/10/16 00:32:22 mcharles Exp $
+  * @version $Id: ReclusterDTreeDriver.java,v 1.59 2008/10/21 23:05:48 mcharles Exp $
   * @author Mat Charles <[log in to unmask]>
   */
 
@@ -163,10 +163,10 @@
 	List<CalorimeterHit> allHitsMcalEndcap = null;
 	List<CalorimeterHit> allHitsFcalEndcap = null;
 	if (m_useMucalBarrel) {
-	    allHitsMcalBarrel = m_event.get(CalorimeterHit.class, "MuonBarrDigiHits");
+	    allHitsMcalBarrel = m_event.get(CalorimeterHit.class, "CorrMuonBarrDigiHits");
 	}
 	if (m_useMucalEndcap) {
-	    allHitsMcalEndcap = m_event.get(CalorimeterHit.class, "MuonEndcapDigiHits");
+	    allHitsMcalEndcap = m_event.get(CalorimeterHit.class, "CorrMuonEndcapDigiHits");
 	}
 	if (m_useFcal) {
 	    allHitsFcalEndcap = m_event.get(CalorimeterHit.class, "ForwardEcalEndcapDigiHits");
@@ -1321,7 +1321,7 @@
 			} else if (hitFCAL && m_useFcal) {
 			    leftoverHitClustersToShareFCAL.add(tmpClus);
 			} else {
-			    throw new AssertionError("Unknown subdetector");
+			    throw new AssertionError("Unknown subdetector: "+hit.getSubdetector().getName());
 			}
 		    }
 		} else {
@@ -1613,6 +1613,7 @@
 	allParticles.addAll(neutralHadronParticles);
 	allParticles.addAll(photonParticles);
 	allParticles.addAll(missedChargedParticles);
+	checkForDuplicateHitsInParticles(allParticles);
 	m_event.put(m_outputParticleListName, allParticles);
 
 	m_event = null;
@@ -4884,6 +4885,14 @@
 	}
     }
 
+    void checkForDuplicateHitsInParticles(Collection<ReconstructedParticle> particles) {
+	List<Cluster> clusters = new Vector<Cluster>();
+	for (ReconstructedParticle part : particles) {
+	    clusters.addAll(part.getClusters());
+	}
+	checkForDuplicateHitsInClusters(clusters);
+    }
+
     void checkForDuplicateHitsInClusters(Collection<Cluster> clusters) {
 	Set<CalorimeterHit> allUsedHits = new HashSet<CalorimeterHit>();
 	List<CalorimeterHit> allUsedHitsList = new Vector<CalorimeterHit>();
CVSspam 0.2.8