lcsim/src/org/lcsim/contrib/uiowa
diff -u -r1.3 -r1.4
--- MinimalRunPFA.java 31 May 2008 02:04:13 -0000 1.3
+++ MinimalRunPFA.java 15 Aug 2008 22:18:21 -0000 1.4
@@ -2,7 +2,6 @@
import java.util.*;
import org.lcsim.util.Driver;
-import org.lcsim.contrib.uiowa.NonTrivialPFA;
import org.lcsim.event.EventHeader;
import org.lcsim.util.loop.LCIODriver;
import org.lcsim.util.*;
@@ -15,314 +14,154 @@
import org.lcsim.event.util.*;
import org.lcsim.digisim.*;
import org.lcsim.mc.fast.tracking.*;
+import org.lcsim.util.decision.*;
public class MinimalRunPFA extends Driver
{
- boolean requireAcceptance = true;
+ boolean requireAcceptance = false;
+ boolean flipAcceptanceCheck = false;
boolean useOldRonPhotonFinder = false;
+ boolean writeExtraOutput = false;
public MinimalRunPFA() {
- //substituteSetup(); requireAcceptance = false;
- add(new org.lcsim.contrib.uiowa.NonTrivialPFA()); // Run the PFA, output is a List<ReconstructedParticle> named "PFAReconstructedParticles"
+ // Prepare to run PFA: Tracks (includes DigiSim)
+ add(new org.lcsim.contrib.Cassell.recon.Cheat.CheatReconDriver());
+ // Prepare to run PFA: Photon-finding and DirectedTree
add(new org.lcsim.contrib.uiowa.SetUpDTreeForReclustering());
+
+ // Set up and run PFA
ReclusterDTreeDriver reclusTree = new ReclusterDTreeDriver("DTreeClusters", "FSReconTracks", "ReconFSParticles");
+ reclusTree.writeExtraEventOutput(writeExtraOutput);
add(reclusTree);
- //reclusTree.setDebug(true);
- ReclusterDTreeDriverTimeCut testTimeCutDriver = new ReclusterDTreeDriverTimeCut("DTreeClusters", "FSReconTracks", "ReconFSParticles");
- add(testTimeCutDriver);
+
+ // Write out, make plots
+ flushParticles();
writeOutMini();
checkPerf();
}
- void writeOutMini() {
+ void flushParticles() {
// Flush things for output
- add(new FlushReconstructedParticlesDriver("UnflushedPFAReconstructedParticles", "PFAReconstructedParticles", "flushedClusters"));
add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles", "Flushed_DTreeReclusteredParticles", "FlushedClusters_DTreeReclusteredParticles"));
add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_forConfusionMatrix", "Flushed_DTreeReclusteredParticles_forConfusionMatrix", "FlushedClusters_DTreeReclusteredParticles_forConfusionMatrix"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_jetsOnly", "Flushed_DTreeReclusteredParticles_jetsOnly", "FlushedClusters_DTreeReclusteredParticles_jetsOnly"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_unusedHits", "Flushed_DTreeReclusteredParticles_unusedHits", "FlushedClusters_DTreeReclusteredParticles_unusedHits"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_chargedPassingEoverPveto", "Flushed_DTreeReclusteredParticles_chargedPassingEoverPveto", "FlushedClusters_DTreeReclusteredParticles_chargedPassingEoverPveto"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_chargedFailingEoverPveto", "Flushed_DTreeReclusteredParticles_chargedFailingEoverPveto", "FlushedClusters_DTreeReclusteredParticles_chargedFailingEoverPveto"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP", "Flushed_DTreeReclusteredParticles_debugEoverP", "FlushedClusters_DTreeReclusteredParticles_debugEoverP"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_punchThrough", "Flushed_DTreeReclusteredParticles_debugEoverP_punchThrough", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_punchThrough"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_noPunchThrough", "Flushed_DTreeReclusteredParticles_debugEoverP_noPunchThrough", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_noPunchThrough"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_oldCalib", "Flushed_DTreeReclusteredParticles_debugEoverP_oldCalib", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_oldCalib"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_punchThrough_oldCalib", "Flushed_DTreeReclusteredParticles_debugEoverP_punchThrough_oldCalib", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_punchThrough_oldCalib"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_noPunchThrough_oldCalib", "Flushed_DTreeReclusteredParticles_debugEoverP_noPunchThrough_oldCalib", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_noPunchThrough_oldCalib"));
-
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_photonLikePhotons", "Flushed_DTreeReclusteredParticles_photonLikePhotons", "FlushedClusters_DTreeReclusteredParticles_photonLikePhotons"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_chargedHadronLikePhotons", "Flushed_DTreeReclusteredParticles_chargedHadronLikePhotons", "FlushedClusters_DTreeReclusteredParticles_chargedHadronLikePhotons"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_electronClusters", "Flushed_DTreeReclusteredParticles_electronClusters", "FlushedClusters_DTreeReclusteredParticles_electronClusters"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_seedHadronLikePhotonClusters", "Flushed_DTreeReclusteredParticles_seedHadronLikePhotonClusters", "FlushedClusters_DTreeReclusteredParticles_seedHadronLikePhotonClusters"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_nonSeedHadronLikePhotonClusters", "Flushed_DTreeReclusteredParticles_nonSeedHadronLikePhotonClusters", "FlushedClusters_DTreeReclusteredParticles_nonSeedHadronLikePhotonClusters"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_nonSeedPhotonLikePhotonClusters", "Flushed_DTreeReclusteredParticles_nonSeedPhotonLikePhotonClusters", "FlushedClusters_DTreeReclusteredParticles_nonSeedPhotonLikePhotonClusters"));
-
- // New -- test
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredTimeCutParticles", "Flushed_DTreeReclusteredTimeCutParticles", "FlushedClusters_DTreeReclusteredTimeCutParticles"));
- add(new FlushReconstructedParticlesDriver("DTreeReclusteredTimeCutParticles_forConfusionMatrix", "Flushed_DTreeReclusteredTimeCutParticles_forConfusionMatrix", "FlushedClusters_DTreeReclusteredTimeCutParticles_forConfusionMatrix"));
+ if (writeExtraOutput) {
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_jetsOnly", "Flushed_DTreeReclusteredParticles_jetsOnly", "FlushedClusters_DTreeReclusteredParticles_jetsOnly"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_unusedHits", "Flushed_DTreeReclusteredParticles_unusedHits", "FlushedClusters_DTreeReclusteredParticles_unusedHits"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_chargedPassingEoverPveto", "Flushed_DTreeReclusteredParticles_chargedPassingEoverPveto", "FlushedClusters_DTreeReclusteredParticles_chargedPassingEoverPveto"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_chargedFailingEoverPveto", "Flushed_DTreeReclusteredParticles_chargedFailingEoverPveto", "FlushedClusters_DTreeReclusteredParticles_chargedFailingEoverPveto"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP", "Flushed_DTreeReclusteredParticles_debugEoverP", "FlushedClusters_DTreeReclusteredParticles_debugEoverP"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_punchThrough", "Flushed_DTreeReclusteredParticles_debugEoverP_punchThrough", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_punchThrough"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_noPunchThrough", "Flushed_DTreeReclusteredParticles_debugEoverP_noPunchThrough", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_noPunchThrough"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_oldCalib", "Flushed_DTreeReclusteredParticles_debugEoverP_oldCalib", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_oldCalib"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_punchThrough_oldCalib", "Flushed_DTreeReclusteredParticles_debugEoverP_punchThrough_oldCalib", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_punchThrough_oldCalib"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_debugEoverP_noPunchThrough_oldCalib", "Flushed_DTreeReclusteredParticles_debugEoverP_noPunchThrough_oldCalib", "FlushedClusters_DTreeReclusteredParticles_debugEoverP_noPunchThrough_oldCalib"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_photonLikePhotons", "Flushed_DTreeReclusteredParticles_photonLikePhotons", "FlushedClusters_DTreeReclusteredParticles_photonLikePhotons"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_chargedHadronLikePhotons", "Flushed_DTreeReclusteredParticles_chargedHadronLikePhotons", "FlushedClusters_DTreeReclusteredParticles_chargedHadronLikePhotons"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_electronClusters", "Flushed_DTreeReclusteredParticles_electronClusters", "FlushedClusters_DTreeReclusteredParticles_electronClusters"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_seedHadronLikePhotonClusters", "Flushed_DTreeReclusteredParticles_seedHadronLikePhotonClusters", "FlushedClusters_DTreeReclusteredParticles_seedHadronLikePhotonClusters"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_nonSeedHadronLikePhotonClusters", "Flushed_DTreeReclusteredParticles_nonSeedHadronLikePhotonClusters", "FlushedClusters_DTreeReclusteredParticles_nonSeedHadronLikePhotonClusters"));
+ add(new FlushReconstructedParticlesDriver("DTreeReclusteredParticles_nonSeedPhotonLikePhotonClusters", "Flushed_DTreeReclusteredParticles_nonSeedPhotonLikePhotonClusters", "FlushedClusters_DTreeReclusteredParticles_nonSeedPhotonLikePhotonClusters"));
+ }
+ }
+ void writeOutMini() {
+
+ // Avoid writing out a lot of things that were not in the original event and
+ // a) were generated and used by us internally, and will not be needed; or
+ // b) were generated by someone else.
- //
Vector<String> v = new Vector<String>();
- v.add("TkrEndcapHits");
- v.add("EcalEndcapDigiHitsCheatClusters");
- v.add("smallphotonfinder__smallPhotonClusters2");
- //v.add("MSTClustersLinkedWithTenOrMoreHits");
- v.add("VtxBarrHits");
- v.add("HcalBarrRaw2sim");
- v.add("merge_ron_ron__clustersAfterFragmentHandling");
- //v.add("HcalEndcapHits");
- v.add("hadronclusterfinder__mstClustersHcal");
- v.add("VtxEndcapHits");
- v.add("haloMinusSmallPhotons");
- v.add("MCParticleEndPointEnergy");
- v.add("firstpasstrackmatcher__smallLinkedClustersMinusChargedParticlesFromMips");
- v.add("hadronclusterfinder__mstClustersLinked");
- v.add("transientChargedHadronParticles");
- //v.add("smallPhotonClusters");
- v.add("TracksToMCP");
- v.add("TkrForwardHits");
- v.add("LuminosityMonitorHits");
- v.add("jetOutput__PFAReconstructedParticles");
- //v.add("EcalEndcapHits");
- v.add("TkrForwardHitsCheatTrackerHits");
- //v.add("skeletonsPlusHalo");
- //v.add("splitSkeletons");
- v.add("TkrBarrHitsCheatTrackerHits");
- v.add("HcalEndcapRaw2sim");
- v.add("firstpasstrackmatcher__skeletonsPlusHaloMinusChargedParticlesFromMips");
- v.add("EcalEndcapRaw2sim");
- v.add("firstpasstrackmatcher__leftoverTracks");
- v.add("firstpasstrackmatcher__unmatchedMips");
- //v.add("MuonBarrHits");
- v.add("clumpsHcal");
- v.add("mipsEcal");
- //v.add("smallPhotonParticles");
- //v.add("Tracks_by_ron");
- //v.add("PerfectRecoParticles");
- v.add("merge_ron_ron__FindCharged__inputClusterList");
- v.add("smallphotonfinder__smallPhotonClusters1");
- v.add("TkrBarrHitsCheatTracks");
- v.add("clumpsEcal");
- //v.add("HcalBarrHits");
- //TEST//v.add("HcalEndcapDigiHits");
- //v.add("smallClustersMinusSmallPhotons");
- v.add("VtxEndcapHitsCheatTracks");
- //v.add("clumps");
- //v.add("MSTClustersLinkedWithFewerThanTenHits");
- v.add("TkrForwardHitsCheatTracks");
- v.add("merge_ron_ron__neutralHadronParticles");
- v.add("TkrEndcapHitsCheatTracks");
- v.add("EcalBarrDigiHitsCheatClusters");
- v.add("EcalBarrRawHits");
- //v.add("mips");
+ // Particles
v.add("CheatReconstructedParticles");
+ v.add("TempCheatParticles");
+ v.add("GenPerfectReconParticles");
+ v.add("GenPerfectReconParticles");
+ v.add("ReconPerfectReconParticles");
+ v.add("GenPerfectVisReconParticles");
+ v.add("ReconPerfectVisReconParticles");
+ // Tracks & track hits
v.add("TkrEndcapHitsCheatTrackerHits");
v.add("VtxEndcapHitsCheatTrackerHits");
- v.add("TkrBarrHits");
- v.add("UnflushedPFAReconstructedParticles");
- //v.add("PerfectCheatClusters");
- v.add("HcalBarrDigiHitsCheatClusters");
- //v.add("EcalBarrHits");
- //TEST//v.add("EcalBarrDigiHits");
- v.add("HcalEndcapDigiHitsCheatClusters");
- v.add("EcalEndcapRawHits");
v.add("VtxBarrHitsCheatTrackerHits");
- //v.add("flushedClusters");
- v.add("merge_ron_ron__chargedHadronParticlesAfterFragmentHandling");
- //TEST//v.add("HcalBarrDigiHits");
- v.add("firstpasstrackmatcher__chargedHadronParticlesWithMipAssociation");
- //v.add("RefinedCheatTracks");
- //v.add("Tracks");
- v.add("firstpasstrackmatcher__tracksMinusMipAssociations");
- v.add("EcalBarrRaw2sim");
- //v.add("PFAReconstructedParticles");
- v.add("merge_ron_ron__FindCharged__leftoverTracks");
- //v.add("skeletons");
- v.add("cheatid__HitList1ForCheatFragmentIdentifier");
- v.add("hadronclusterfinder__mstClustersEcal");
- v.add("mipsHcal");
- v.add("merge_ron_ron__FindNeutral__neutralClustersWithFragmentsMerged");
- //v.add("MCParticle");
- //v.add("ForwardEcalEndcapHits");
- v.add("HcalBarrRawHits");
+ v.add("TkrForwardHitsCheatTrackerHits");
+ v.add("TkrBarrHitsCheatTrackerHits");
+ v.add("VtxEndcapHitsCheatTracks");
v.add("VtxBarrHitsCheatTracks");
- //v.add("photonClusters");
- v.add("firstpasstrackmatcher__chargedHadronParticlesWithNonMipAssociation");
- //TEST//v.add("EcalEndcapDigiHits");
- v.add("largePhotonParticles");
- //v.add("HcalEndcapRawHits");
- //v.add("MuonEndcapHits");
-
-
- //TEST//v.add("EcalBarrDTrees");
- //TEST//v.add("EcalEndcapDTrees");
- //TEST//v.add("HcalBarrDTrees");
- //TEST//v.add("HcalEndcapDTrees");
- //TEST//v.add("EcalBarrPhotonClusters");
- //TEST//v.add("EcalEndcapPhotonClusters");
+ v.add("TkrBarrHitsCheatTracks");
+ v.add("TkrForwardHitsCheatTracks");
+ v.add("TkrEndcapHitsCheatTracks");
v.add("TempCheatTracks");
- v.add("TempCheatParticles");
- v.add("HadronParticles");
- v.add("photonClustersWithoutFragments");
- v.add("merge_ron_ron__FindCharged__unmatchedMips");
-
- v.add("merge_ron_ron__FindCharged__chargedHadronParticlesWithMipAssociation");
- v.add("merge_ron_ron__FindCharged__chargedHadronParticlesWithNonMipAssociation");
- v.add("merge_ron_ron__FindCharged__skeletonsPlusHaloMinusChargedParticlesFromMips");
- v.add("merge_ron_ron__FindCharged__tracksMinusMipAssociations");
- v.add("merge_ron_ron__FindCharged__unmatchedMips");
- v.add("smallClustersMinusSmallPhotons");
- v.add("NonFSReconClusters");
- //v.add("ReconPerfectVisReconParticles");
- //v.add("ReconPerfectReconParticles");
+ v.add("PerfectTracks");
+ v.add("RefinedCheatTracks");
+ // CalorimeterHits
+ v.add("EcalBarrRawHits");
+ v.add("ForwardEcalEndcapRawHits");
+ v.add("EcalEndcapRawHits");
+ v.add("HcalBarrRawHits");
v.add("HcalEndcapRawHits");
- //v.add("GenPerfectVisReconParticles");
- //v.add("GenPerfectReconParticles");
-
- //add(new org.lcsim.util.loop.LCIODriver("test-mini.slcio", v));
- add(new org.lcsim.util.loop.LCIODriver("test-mini.slcio", v));
- }
+ // Clusters
+ v.add("EcalEndcapDigiHitsCheatClusters");
+ v.add("EcalBarrDigiHitsCheatClusters");
+ v.add("HcalBarrDigiHitsCheatClusters");
+ v.add("HcalEndcapDigiHitsCheatClusters");
+ v.add("ReDTEcalClusters");
+ v.add("HcalEndcapDigiHitsDTreeClusters");
+ v.add("HcalBarrDigiHitsDTreeClusters");
+ v.add("NonFSReconClusters");
+ v.add("ReconClusters");
+ v.add("EcalBarrDigiHitsDTreeClusters");
+ v.add("EcalEndcapDigiHitsDTreeClusters");
+ v.add("RefinedCheatClusters");
+ v.add("DTEcalClusters");
+ v.add("TMClusters");
+ // Maps
+ v.add("EcalEndcapRaw2sim");
+ v.add("HcalBarrRaw2sim");
+ v.add("HcalEndcapRaw2sim");
+ v.add("EcalBarrRaw2sim");
+ v.add("ForwardEcalEndcapRaw2sim");
+ v.add("TracksToMCP");
+ v.add("CheatTracksToMCP");
+ // Misc
+ v.add("MCParticleEndPointEnergy");
- void setupDTree() {
- // Convert DigiSim's lists to hitmaps:
- HitListToHitMapDriver converter1 = new HitListToHitMapDriver();
- HitListToHitMapDriver converter2 = new HitListToHitMapDriver();
- HitListToHitMapDriver converter3 = new HitListToHitMapDriver();
- HitListToHitMapDriver converter4 = new HitListToHitMapDriver();
- converter1.addInputList("EcalBarrDigiHits");
- converter2.addInputList("EcalEndcapDigiHits");
- converter3.addInputList("HcalBarrDigiHits");
- converter4.addInputList("HcalEndcapDigiHits");
- converter1.setOutput("EcalBarrDigiHitMap");
- converter2.setOutput("EcalEndcapDigiHitMap");
- converter3.setOutput("HcalBarrDigiHitMap");
- converter4.setOutput("HcalEndcapDigiHitMap");
- add(converter1);
- add(converter2);
- add(converter3);
- add(converter4);
-
- // DTree (TESTING!)
- DirectedTreeDriver TESTING_treeDriverEcalBarr = new DirectedTreeDriver();
- TESTING_treeDriverEcalBarr.setInputHitMap("EcalBarrDigiHitMap");
- TESTING_treeDriverEcalBarr.setOutputClusterList("EcalBarrDTrees_WITHPHOTONS");
- TESTING_treeDriverEcalBarr.setOutputHitMap("EcalBarrDigiHitMapAfterDTree_WITHPHOTONS");
- DirectedTreeDriver TESTING_treeDriverEcalEndcap = new DirectedTreeDriver();
- TESTING_treeDriverEcalEndcap.setInputHitMap("EcalEndcapDigiHitMap");
- TESTING_treeDriverEcalEndcap.setOutputClusterList("EcalEndcapDTrees_WITHPHOTONS");
- TESTING_treeDriverEcalEndcap.setOutputHitMap("EcalEndcapDigiHitMapAfterDTree_WITHPHOTONS");
- add(TESTING_treeDriverEcalBarr);
- add(TESTING_treeDriverEcalEndcap);
-
- // Find photons in ECAL
- if (useOldRonPhotonFinder) {
- // Make photons in barrel & endcap separately
- org.lcsim.contrib.uiowa.RonPhotonFinder.RonPhotonFinderSid01 photonFinderEcalBarrel = new org.lcsim.contrib.uiowa.RonPhotonFinder.RonPhotonFinderSid01("EcalBarrDigiHitMap", "EcalBarrDigiHitMapWithoutPhotons", "EcalBarrPhotonClusters");
- org.lcsim.contrib.uiowa.RonPhotonFinder.RonPhotonFinderSid01 photonFinderEcalEndcap = new org.lcsim.contrib.uiowa.RonPhotonFinder.RonPhotonFinderSid01("EcalEndcapDigiHitMap", "EcalEndcapDigiHitMapWithoutPhotons", "EcalEndcapPhotonClusters");
- add(photonFinderEcalBarrel);
- add(photonFinderEcalEndcap);
- // Merge to a single list of photons
- ListAddDriver<Cluster> mergePhotonClusters = new ListAddDriver<Cluster>(Cluster.class);
- mergePhotonClusters.addInputList("EcalBarrPhotonClusters");
- mergePhotonClusters.addInputList("EcalEndcapPhotonClusters");
- mergePhotonClusters.setOutputList("PhotonClustersForDTree");
- add(mergePhotonClusters);
+ if (writeExtraOutput) {
+ add(new org.lcsim.util.loop.LCIODriver("test-mini.slcio"));
} else {
- // Merge barrel & endcap hits
- HitMapAddDriver combineEcal = new HitMapAddDriver();
- combineEcal.addInputHitMap("EcalBarrDigiHitMap");
- combineEcal.addInputHitMap("EcalEndcapDigiHitMap");
- combineEcal.setOutputHitMap("EcalDigiHitMap");
- add(combineEcal);
- // Make photons in barrel & endcap together
- org.lcsim.contrib.Cassell.recon.DTPhotons.RonDTPhotonFinderSid01 photonFinder = new org.lcsim.contrib.Cassell.recon.DTPhotons.RonDTPhotonFinderSid01("EcalDigiHitMap", "EcalDigiHitMapWithoutPhotons", "PhotonClustersForDTree");
- add(photonFinder);
- // Split back into barrel & endcap
- // This is a little fiddly -- need to do one subtraction to
- // identify the photon hits, then a second to remove the photon
- // hits from the previous hitmaps.
- HitMapSubtractDriver separateEcal1 = new HitMapSubtractDriver("EcalBarrDigiHitMap", "EcalDigiHitMapWithoutPhotons", "EcalBarrel_photonHits");
- HitMapSubtractDriver separateEcal2 = new HitMapSubtractDriver("EcalEndcapDigiHitMap", "EcalDigiHitMapWithoutPhotons", "EcalEndcap_photonHits");
- HitMapSubtractDriver separateEcal3 = new HitMapSubtractDriver("EcalBarrDigiHitMap", "EcalBarrel_photonHits", "EcalBarrDigiHitMapWithoutPhotons");
- HitMapSubtractDriver separateEcal4 = new HitMapSubtractDriver("EcalEndcapDigiHitMap", "EcalEndcap_photonHits", "EcalEndcapDigiHitMapWithoutPhotons");
- add(separateEcal1);
- add(separateEcal2);
- add(separateEcal3);
- add(separateEcal4);
+ add(new org.lcsim.util.loop.LCIODriver("test-mini.slcio", v));
}
-
- // DTree
- DirectedTreeDriver treeDriverEcalBarr = new DirectedTreeDriver();
- treeDriverEcalBarr.setInputHitMap("EcalBarrDigiHitMapWithoutPhotons");
- treeDriverEcalBarr.setOutputClusterList("EcalBarrDTrees");
- treeDriverEcalBarr.setOutputHitMap("EcalBarrDigiHitMapAfterDTree");
- DirectedTreeDriver treeDriverEcalEndcap = new DirectedTreeDriver();
- treeDriverEcalEndcap.setInputHitMap("EcalEndcapDigiHitMapWithoutPhotons");
- treeDriverEcalEndcap.setOutputClusterList("EcalEndcapDTrees");
- treeDriverEcalEndcap.setOutputHitMap("EcalEndcapDigiHitMapAfterDTree");
- DirectedTreeDriver treeDriverHcalBarr = new DirectedTreeDriver();
- treeDriverHcalBarr.setInputHitMap("HcalBarrDigiHitMap");
- treeDriverHcalBarr.setOutputClusterList("HcalBarrDTrees");
- treeDriverHcalBarr.setOutputHitMap("HcalBarrDigiHitMapAfterDTree");
- DirectedTreeDriver treeDriverHcalEndcap = new DirectedTreeDriver();
- treeDriverHcalEndcap.setInputHitMap("HcalEndcapDigiHitMap");
- treeDriverHcalEndcap.setOutputClusterList("HcalEndcapDTrees");
- treeDriverHcalEndcap.setOutputHitMap("HcalEndcapDigiHitMapAfterDTree");
- add(treeDriverEcalBarr);
- add(treeDriverEcalEndcap);
- add(treeDriverHcalBarr);
- add(treeDriverHcalEndcap);
-
- ListAddDriver<Cluster> mergeDTreeClusters = new ListAddDriver<Cluster>(Cluster.class);
- mergeDTreeClusters.addInputList("EcalBarrDTrees");
- mergeDTreeClusters.addInputList("EcalEndcapDTrees");
- mergeDTreeClusters.addInputList("HcalBarrDTrees");
- mergeDTreeClusters.addInputList("HcalEndcapDTrees");
- mergeDTreeClusters.setOutputList("DTreeClusters");
- add(mergeDTreeClusters);
}
void checkPerf() {
if (requireAcceptance) {
- add(new org.lcsim.contrib.uiowa.MassPlots("PFAReconstructedParticles", "output-write.aida")); // Make some histograms and write them to a file
- add(new org.lcsim.contrib.uiowa.MassPlots("DTreeReclusteredParticles", "output-write-dtree-reclustered.aida")); // Make some histograms and write them to a file
- add(new org.lcsim.contrib.uiowa.MassPlots("DTreeReclusteredParticles_withEoverPveto", "output-write-dtree-reclustered-veto.aida")); // Make some histograms and write them to a file
- // New -- test
- add(new org.lcsim.contrib.uiowa.MassPlots("DTreeReclusteredTimeCutParticles", "output-write-dtree-reclustered-timecut.aida")); // Make some histograms and write them to a file
- add(new org.lcsim.contrib.uiowa.MassPlots("DTreeReclusteredTimeCutParticles_withEoverPveto", "output-write-dtree-reclustered-timecut-veto.aida")); // Make some histograms and write them to a file
- } else {
- add(new EnergySumPlotter("DTreeReclusteredParticles", "dtree-energysum.aida"));
- add(new EnergySumPlotter("DTreeReclusteredParticles_withEoverPveto", "dtree-veto-energysum.aida"));
+ add(new org.lcsim.contrib.uiowa.MassPlots("DTreeReclusteredParticles", "output-write-dtree-reclustered.aida")); // Make some histograms and write them to a file
}
+ add(new EnergySumPlotter("DTreeReclusteredParticles", "dtree-energysum.aida"));
String CheatReconRname = "ReconPerfectReconParticles";
String CheatReconFSname = "ReconFSParticles";
String CheatReconFSTrackedname = "TrackedReconFSParticles";
- org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForNonTrivialPFA = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"PFAReconstructedParticles",true);
org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles", true);
org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer2 = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles_forConfusionMatrix", true);
- org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer3 = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles_jetsOnly", true);
- org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer4 = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles_unusedHits", true);
- org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer5 = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles_chargedPassingEoverPveto", true);
- org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer6 = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles_chargedFailingEoverPveto", true);
- add(testRonDriverForNonTrivialPFA);
add(testRonDriverForDTreeReclusterer);
- add(testRonDriverForDTreeReclusterer2);
- add(testRonDriverForDTreeReclusterer3);
- add(testRonDriverForDTreeReclusterer4);
- add(testRonDriverForDTreeReclusterer5);
- add(testRonDriverForDTreeReclusterer6);
-
- // Photon tests
- //add(new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"TestOrigPhotonList",true));
- //add(new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"TestModifiedPhotonList",true));
- //add(new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"TestSeedPhotonList",true));
+ add(testRonDriverForDTreeReclusterer2);
+
+ if (writeExtraOutput) {
+ org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer3 = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles_jetsOnly", true);
+ org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer4 = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles_unusedHits", true);
+ org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer5 = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles_chargedPassingEoverPveto", true);
+ org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies testRonDriverForDTreeReclusterer6 = new org.lcsim.contrib.Cassell.recon.analysis.ReconstructedParticleCollectionEnergies(CheatReconFSname,CheatReconFSTrackedname,"DTreeReclusteredParticles_chargedFailingEoverPveto", true);
+ add(testRonDriverForDTreeReclusterer3);
+ add(testRonDriverForDTreeReclusterer4);
+ add(testRonDriverForDTreeReclusterer5);
+ add(testRonDriverForDTreeReclusterer6);
+ }
}
int count = 0;
public void process(EventHeader event) {
System.out.println("DEBUG: Looking at event "+count); count++;
+ //if (count != 326) { return; }
boolean passesTruthAcceptanceCut = false;
MCParticle partZTovv = null;
MCParticle partZToqq = null;
@@ -351,84 +190,21 @@
}
}
}
- if (partZTovv == null) {
- //System.out.println("ERROR: no Z -> vv cand");
- }
if (partZToqq == null) {
if (requireAcceptance) {
System.out.println("ERROR: no Z -> qq cand");
}
} else {
- //System.out.println("DEBUG: Mass of Z -> qq = "+partZToqq.getMass());
passesTruthAcceptanceCut = true;
for (MCParticle dau : partZToqq_daughters) {
double cosTheta = Math.abs(dau.getMomentum().z() / dau.getMomentum().magnitude());
if (cosTheta>0.8) { passesTruthAcceptanceCut = false; }
}
+ if (flipAcceptanceCheck) { passesTruthAcceptanceCut = !passesTruthAcceptanceCut; }
}
}
if (passesTruthAcceptanceCut || !requireAcceptance) {
super.process(event);
}
}
-
- void substituteSetup() {
- CreateFinalStateMCParticleList mcListMakerGen = new CreateFinalStateMCParticleList("Gen");
- CreateFinalStateMCParticleList mcListMakerSim = new CreateFinalStateMCParticleList("Sim");
- double rcut = 300.; // Bruce said 400 mm at meeting March 13
- double zcut = 300.;
- mcListMakerSim.setRadiusCut(rcut);
- mcListMakerSim.setZCut(zcut);
- add(mcListMakerGen);
- add(mcListMakerSim);
- String mcListNameGen = "GenFinalStateParticles";
- String mcListNameSim = "SimFinalStateParticles";
- String mcListName = mcListNameGen;
-
- // CalHitMapDriver is needed by DigiSim
- add(new CalHitMapDriver());
- // DigiSim: SimCalHits -> RawCalHits
- DigiSimDriver digi = new org.lcsim.digisim.DigiSimDriver();
- add(digi);
- // RawCalHits -> SimCalorimeterHits
- add( new SimCalorimeterHitsDriver() );
-
- String eventHitMapEcal = "inputHitMapEcal";
- String eventHitMapHcal = "inputHitMapHcal";
- String[] eventHitCollections = {"EcalBarrDigiHits","EcalEndcapDigiHits","HcalBarrDigiHits","HcalEndcapDigiHits"};
- {
- HitListToHitMapDriver hitmapEcal = new HitListToHitMapDriver();
- hitmapEcal.addInputList("EcalBarrDigiHits");
- hitmapEcal.addInputList("EcalEndcapDigiHits");
- hitmapEcal.setOutput(eventHitMapEcal);
- HitListToHitMapDriver hitmapHcal = new HitListToHitMapDriver();
- hitmapHcal.addInputList("HcalBarrDigiHits");
- hitmapHcal.addInputList("HcalEndcapDigiHits");
- hitmapHcal.setOutput(eventHitMapHcal);
- add(hitmapEcal);
- add(hitmapHcal);
- }
-
- String trackList;
- {
- // Find tracks (non-cheating)
- // Output: List<Track> saved as EventHeader.TRACKS
- add (new MCFastTracking());
- String fastMCTrackList = EventHeader.TRACKS;
-
- // Find tracks (cheating)
- String ronTrackList = "FSReconTracks";
- String ronMCList = "ReconFSParticles";
- add(new org.lcsim.contrib.Cassell.recon.Cheat.CheatReconDriver());
-
- // Choose which track list to use
- boolean useRonTrackList = true;
- if (useRonTrackList) {
- trackList = ronTrackList;
- mcListName = ronMCList;
- } else {
- trackList = fastMCTrackList;
- }
- }
- }
}