Print

Print


Commit in lcsim/src/org/lcsim/contrib/uiowa on MAIN
SetUpDTreeForReclustering.java+68-331.4 -> 1.5
MJC: (contrib) Sync class with main tree

lcsim/src/org/lcsim/contrib/uiowa
SetUpDTreeForReclustering.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- SetUpDTreeForReclustering.java	6 Jun 2008 00:04:56 -0000	1.4
+++ SetUpDTreeForReclustering.java	12 Aug 2008 23:46:55 -0000	1.5
@@ -12,6 +12,7 @@
 public class SetUpDTreeForReclustering extends Driver
 {
     boolean useOldRonPhotonFinder = false;
+    boolean useForwardEcal = false;
 
     public SetUpDTreeForReclustering() {
 	{
@@ -32,8 +33,26 @@
 	    add(converter2);
 	    add(converter3);
 	    add(converter4);
+	    // Convert muon lists to hitmaps:
+	    HitListToHitMapDriver converter5 = new HitListToHitMapDriver();
+	    HitListToHitMapDriver converter6 = new HitListToHitMapDriver();
+	    converter5.addInputList("MuonBarrHits");
+	    converter6.addInputList("MuonEndcapHits");
+	    converter5.setOutput("MuonBarrHitMap");
+	    converter6.setOutput("MuonEndcapHitMap");
+	    add(converter5);
+	    add(converter6);
+	    if (useForwardEcal) {
+		// Convert forward EM endcap hits:
+		HitListToHitMapDriver converter7 = new HitListToHitMapDriver();
+		converter7.addInputList("ForwardEcalEndcapDigiHits");
+		converter7.setOutput("ForwardEcalEndcapDigiHitMap");
+		add(converter7);
+	    }
 	}
 
+
+
 	// Find photons in ECAL
 	if (useOldRonPhotonFinder) {
 	    // Make photons in barrel & endcap separately
@@ -52,6 +71,9 @@
 	    HitMapAddDriver combineEcal = new HitMapAddDriver();
 	    combineEcal.addInputHitMap("EcalBarrDigiHitMap");
 	    combineEcal.addInputHitMap("EcalEndcapDigiHitMap");
+	    if (useForwardEcal) {
+		combineEcal.addInputHitMap("ForwardEcalEndcapDigiHitMap"); // Include forward endcap
+	    }
 	    combineEcal.setOutputHitMap("EcalDigiHitMap");
 	    add(combineEcal);
 	    // Make photons in barrel & endcap together
@@ -69,6 +91,12 @@
 	    add(separateEcal2);
 	    add(separateEcal3);
 	    add(separateEcal4);
+	    if (useForwardEcal) {
+		HitMapSubtractDriver separateEcal5 = new HitMapSubtractDriver("ForwardEcalEndcapDigiHitMap", "EcalDigiHitMapWithoutPhotons", "ForwardEcalEndcap_photonHits");
+		HitMapSubtractDriver separateEcal6 = new HitMapSubtractDriver("ForwardEcalEndcapDigiHitMap", "ForwardEcalEndcap_photonHits", "ForwardEcalEndcapDigiHitMapWithoutPhotons");
+		add(separateEcal5);
+		add(separateEcal6);
+	    }
 	}
 
 	// Run DTree
@@ -95,6 +123,29 @@
 	    add(treeDriverHcalEndcap);
 	}
 
+	// Run DTree on MUCAL -- this is currently rather tricky.
+	{
+	    org.lcsim.recon.cluster.mst.MSTClusterDriver mstMcalBarrel = new org.lcsim.recon.cluster.mst.MSTClusterDriver("MuonBarrHitMapAfterDTree", "MuonBarrDTrees");
+	    org.lcsim.recon.cluster.mst.MSTClusterDriver mstMcalEndcap = new org.lcsim.recon.cluster.mst.MSTClusterDriver("MuonEndcapHitMapAfterDTree", "MuonEndcapDTrees");
+	    mstMcalBarrel.addInputHitMap("MuonBarrHitMap");
+	    mstMcalEndcap.addInputHitMap("MuonEndcapHitMap");
+	    mstMcalBarrel.setThreshold(1500.0); // 3x3cm segmentation transversely, 6.5cm longitudinally
+	    mstMcalEndcap.setThreshold(1500.0); // 3x3cm segmentation transversely, 6.5cm longitudinally
+	    mstMcalBarrel.registerMetrics(new org.lcsim.recon.cluster.mst.MinimumHitToHitDistance());
+	    mstMcalEndcap.registerMetrics(new org.lcsim.recon.cluster.mst.MinimumHitToHitDistance());
+	    add(mstMcalBarrel);
+	    add(mstMcalEndcap);
+	}
+
+	// Run DTree on FCAL -- this is currently rather tricky.
+	if (useForwardEcal) {
+	    org.lcsim.recon.cluster.mst.MSTClusterDriver mstFcalEndcap = new org.lcsim.recon.cluster.mst.MSTClusterDriver("ForwardEcalEndcapDigiHitMapAfterDTree", "ForwardEcalEndcapDTrees");
+	    mstFcalEndcap.addInputHitMap("ForwardEcalEndcapDigiHitMap");
+	    mstFcalEndcap.setThreshold(12.5); // 3.5x3.5cm segmentation transversely, 3.7mm longitudinally
+	    mstFcalEndcap.registerMetrics(new org.lcsim.recon.cluster.mst.MinimumHitToHitDistance());
+	    add(mstFcalEndcap);
+	}
+
 	// Merge & write out
 	{
 	    ListAddDriver<Cluster> mergeDTreeClustersECAL = new ListAddDriver<Cluster>(Cluster.class);
@@ -109,44 +160,28 @@
 	    mergeDTreeClustersHCAL.setOutputList("DTreeClustersHCAL");
 	    add(mergeDTreeClustersHCAL);
 
+	    ListAddDriver<Cluster> mergeDTreeClustersMCAL = new ListAddDriver<Cluster>(Cluster.class);
+	    //mergeDTreeClustersMCAL.addInputList("MuonBarrDTrees");
+	    mergeDTreeClustersMCAL.addInputList("MuonEndcapDTrees");
+	    mergeDTreeClustersMCAL.setOutputList("DTreeClustersMCAL");
+	    add(mergeDTreeClustersMCAL);
+
+	    if (useForwardEcal) {
+		ListAddDriver<Cluster> mergeDTreeClustersFCAL = new ListAddDriver<Cluster>(Cluster.class);
+		mergeDTreeClustersFCAL.addInputList("ForwardEcalEndcapDTrees");
+		mergeDTreeClustersFCAL.setOutputList("DTreeClustersFCAL");
+		add(mergeDTreeClustersFCAL);
+	    }
+
 	    ListAddDriver<Cluster> mergeDTreeClusters = new ListAddDriver<Cluster>(Cluster.class);
 	    mergeDTreeClusters.addInputList("DTreeClustersECAL");
 	    mergeDTreeClusters.addInputList("DTreeClustersHCAL");
+	    mergeDTreeClusters.addInputList("DTreeClustersMCAL");
+	    if (useForwardEcal) {
+		mergeDTreeClusters.addInputList("DTreeClustersFCAL");
+	    }
 	    mergeDTreeClusters.setOutputList("DTreeClusters");
 	    add(mergeDTreeClusters);
 	}
-
-	// Now find hits at small times (t < 10 ns) and redo clustering:
-	{
-	    CalorimeterHitTimeCutDecision timeCut = new CalorimeterHitTimeCutDecision(10.0);
-	    HitMapFilter timeFilter = new HitMapFilter();
-	    timeFilter.setDecisionOnHit(timeCut);
-	    HitMapFilterDriver timeFilterDriverBarrel = new HitMapFilterDriver("HcalBarrDigiHitMap", "HcalBarrDigiHitMapTimeCut", timeFilter);
-	    HitMapFilterDriver timeFilterDriverEndcap = new HitMapFilterDriver("HcalEndcapDigiHitMap", "HcalEndcapDigiHitMapTimeCut", timeFilter);
-	    add(timeFilterDriverBarrel);
-	    add(timeFilterDriverEndcap);
-	}
-
-	{
-	    DirectedTreeDriver treeDriverHcalBarrTimeCut = new DirectedTreeDriver();
-	    treeDriverHcalBarrTimeCut.setInputHitMap("HcalBarrDigiHitMapTimeCut");
-	    treeDriverHcalBarrTimeCut.setOutputClusterList("HcalBarrDTreesTimeCut");
-	    treeDriverHcalBarrTimeCut.setOutputHitMap("HcalBarrDigiHitMapAfterDTreeTimeCut");
-	    DirectedTreeDriver treeDriverHcalEndcapTimeCut = new DirectedTreeDriver();
-	    treeDriverHcalEndcapTimeCut.setInputHitMap("HcalEndcapDigiHitMapTimeCut");
-	    treeDriverHcalEndcapTimeCut.setOutputClusterList("HcalEndcapDTreesTimeCut");
-	    treeDriverHcalEndcapTimeCut.setOutputHitMap("HcalEndcapDigiHitMapAfterDTreeTimeCut");
-	    add(treeDriverHcalBarrTimeCut);
-	    add(treeDriverHcalEndcapTimeCut);
-	}
-
-	{
-	    ListAddDriver<Cluster> mergeDTreeClustersTimeCut = new ListAddDriver<Cluster>(Cluster.class);
-	    mergeDTreeClustersTimeCut.addInputList("HcalBarrDTreesTimeCut");
-	    mergeDTreeClustersTimeCut.addInputList("HcalEndcapDTreesTimeCut");
-	    mergeDTreeClustersTimeCut.setOutputList("HcalDTreeClustersTimeCut");
-	    add(mergeDTreeClustersTimeCut);
-	}
-
     }
 }
CVSspam 0.2.8