lcsim/src/org/lcsim/contrib/uiowa
diff -u -r1.12 -r1.13
--- NonTrivialPFA.java 20 Aug 2007 17:41:20 -0000 1.12
+++ NonTrivialPFA.java 21 Aug 2007 02:08:58 -0000 1.13
@@ -123,18 +123,20 @@
// Set up input hit lists
// ----------------------
+ String eventHitMapEcal = "inputHitMapEcal";
+ String eventHitMapHcal = "inputHitMapHcal";
{
HitListToHitMapDriver hitmapEcal = new HitListToHitMapDriver();
hitmapEcal.addInputList("EcalBarrDigiHits");
hitmapEcal.addInputList("EcalEndcapDigiHits");
- hitmapEcal.setOutput("input hit map ecal");
+ hitmapEcal.setOutput(eventHitMapEcal);
HitListToHitMapDriver hitmapHcal = new HitListToHitMapDriver();
hitmapHcal.addInputList("HcalBarrDigiHits");
hitmapHcal.addInputList("HcalEndcapDigiHits");
- hitmapHcal.setOutput("input hit map hcal");
+ hitmapHcal.setOutput(eventHitMapHcal);
add(hitmapEcal);
add(hitmapHcal);
- accountant.addListOfNamedLists( new String[] { "input hit map ecal", "input hit map hcal" } );
+ accountant.addListOfNamedLists( new String[] { eventHitMapEcal, eventHitMapHcal } );
}
// Find tracks
@@ -149,7 +151,7 @@
// Find tracks (cheating)
// Code taken from Steve Magill
- String cheatingTrackList = "Tracks (ron)";
+ String cheatingTrackList = "Tracks_by_ron";
{
// Make cheat tracks and cheat clusters
String Tname = "RefinedCheatTracks";
@@ -190,88 +192,77 @@
// Find simple clusters
// --------------------
- String largePhotonParticleList = "large photon particles (ron calib)";
+ String eventPhotonClusters = "photonClusters";
+ String largePhotonParticleList = "largePhotonParticles";
+ String eventHitMapEcalWithoutPhotons = "hitMapEcalWithoutPhotons";
{
// Photons
- String prefix = "photonfinder: ";
- String inputHitMap = "input hit map ecal";
+ String prefix = "photonfinder__";
String inputTrackList = trackList;
- String photonClusterList = "photon clusters";
- String outputHitMap = "hit map ecal without photons";
boolean cheatOnPhotons = false;
if (cheatOnPhotons) {
- addCheatingPhotonFinder(prefix, inputHitMap, inputTrackList, photonClusterList, outputHitMap, mcListName);
+ addCheatingPhotonFinder(prefix, eventHitMapEcal, inputTrackList, eventPhotonClusters, eventHitMapEcalWithoutPhotons, mcListName);
} else {
- addPhotonFinder(prefix, inputHitMap, inputTrackList, photonClusterList, outputHitMap);
+ addPhotonFinder(prefix, eventHitMapEcal, inputTrackList, eventPhotonClusters, eventHitMapEcalWithoutPhotons);
}
- prefix = "photonmaker: ";
- addPhotonParticleMaker(prefix, photonClusterList, largePhotonParticleList, ronPhotonCalib);
+ prefix = "photonmaker__";
+ addPhotonParticleMaker(prefix, eventPhotonClusters, largePhotonParticleList, ronPhotonCalib);
// Book-keeping
- accountant.addListOfNamedLists( new String[] { "hit map ecal without photons", "photon clusters", "input hit map hcal" } );
- accountant.addListOfNamedLists( new String[] { "hit map ecal without photons", largePhotonParticleList, "input hit map hcal" } );
+ accountant.addListOfNamedLists( new String[] { eventHitMapEcalWithoutPhotons, eventPhotonClusters, eventHitMapHcal } );
+ accountant.addListOfNamedLists( new String[] { eventHitMapEcalWithoutPhotons, largePhotonParticleList, eventHitMapHcal } );
}
+ String eventHitMapEcalWithoutMipsOrPhotons = "hitMapEcalWithoutMipsOrPhotons";
+ String eventHitMapHcalWithoutMips = "hitMapHcalWithoutMips";
+ String eventMipsEcal = "mipsEcal";
+ String eventMipsHcal = "mipsHcal";
+ String eventMips = "mips";
{
// MIPs
- String prefix = "mipfinder: ";
- String inputHitMapECAL = "hit map ecal without photons";
- String inputHitMapHCAL = "input hit map hcal";
- String outputHitMapECAL = "hit map ecal without mips or photons";
- String outputHitMapHCAL = "hit map hcal without mips";
- String outputMIPListECAL = "mips ecal";
- String outputMIPListHCAL = "mips hcal";
- String outputMIPList = "mips";
- addMIPFinder(prefix, inputHitMapECAL, outputMIPListECAL, outputHitMapECAL);
- addMIPFinder(prefix, inputHitMapHCAL, outputMIPListHCAL, outputHitMapHCAL);
+ String prefix = "mipfinder__";
+ addMIPFinder(prefix, eventHitMapEcalWithoutPhotons, eventMipsEcal, eventHitMapEcalWithoutMipsOrPhotons);
+ addMIPFinder(prefix, eventHitMapHcal, eventMipsHcal, eventHitMapHcalWithoutMips);
// Merge ECAL & HCAL lists
ListAddDriver<Cluster> mergeMIPs = new ListAddDriver<Cluster>(Cluster.class);
- mergeMIPs.addInputList(outputMIPListECAL);
- mergeMIPs.addInputList(outputMIPListHCAL);
- mergeMIPs.setOutputList(outputMIPList);
+ mergeMIPs.addInputList(eventMipsEcal);
+ mergeMIPs.addInputList(eventMipsHcal);
+ mergeMIPs.setOutputList(eventMips);
add(mergeMIPs);
// Book-keeping
- accountant.addListOfNamedLists( new String[] { "hit map ecal without mips or photons", "hit map hcal without mips", "photon clusters", "mips ecal", "mips hcal" } );
- accountant.addListOfNamedLists( new String[] { "hit map ecal without mips or photons", "hit map hcal without mips", "photon clusters", "mips" } );
+ accountant.addListOfNamedLists( new String[] { eventHitMapEcalWithoutMipsOrPhotons, eventHitMapHcalWithoutMips, eventPhotonClusters, eventMipsEcal, eventMipsHcal } );
+ accountant.addListOfNamedLists( new String[] { eventHitMapEcalWithoutMipsOrPhotons, eventHitMapHcalWithoutMips, eventPhotonClusters, eventMips } );
}
+ String eventHitMapEcalWithoutMipsOrPhotonsOrClumps = "hitMapEcalWithoutMipsOrPhotonsOrClumps";
+ String eventHitMapHcalWithoutMipsOrClumps = "hitMapHcalWithoutMipsOrClumps";
+ String eventClumpsEcal = "clumpsEcal";
+ String eventClumpsHcal = "clumpsHcal";
+ String eventClumps = "clumps";
{
// Find clumps
- String prefix = "clumpfinder: ";
- String inputHitMapECAL = "hit map ecal without mips or photons";
- String inputHitMapHCAL = "hit map hcal without mips";
- String outputHitMapECAL = "hit map ecal without mips or photons or clumps";
- String outputHitMapHCAL = "hit map hcal without mips or clumps";
- String outputClumpListECAL = "clumps ecal";
- String outputClumpListHCAL = "clumps hcal";
- String outputClumpList = "clumps";
- addClumpFinder(prefix, inputHitMapECAL, outputClumpListECAL, outputHitMapECAL);
- addClumpFinder(prefix, inputHitMapHCAL, outputClumpListHCAL, outputHitMapHCAL);
+ String prefix = "clumpfinder__";
+ addClumpFinder(prefix, eventHitMapEcalWithoutMipsOrPhotons, eventClumpsEcal, eventHitMapEcalWithoutMipsOrPhotonsOrClumps);
+ addClumpFinder(prefix, eventHitMapHcalWithoutMips, eventClumpsHcal, eventHitMapHcalWithoutMipsOrClumps);
// Merge ECAL & HCAL lists
ListAddDriver<Cluster> mergeClumps = new ListAddDriver<Cluster>(Cluster.class);
- mergeClumps.addInputList(outputClumpListECAL);
- mergeClumps.addInputList(outputClumpListHCAL);
- mergeClumps.setOutputList(outputClumpList);
+ mergeClumps.addInputList(eventClumpsEcal);
+ mergeClumps.addInputList(eventClumpsHcal);
+ mergeClumps.setOutputList(eventClumps);
add(mergeClumps);
// Book-keeping
- accountant.addListOfNamedLists( new String[] { "hit map ecal without mips or photons or clumps", "hit map hcal without mips or clumps", "photon clusters", "mips", "clumps ecal", "clumps hcal" } );
- accountant.addListOfNamedLists( new String[] { "hit map ecal without mips or photons or clumps", "hit map hcal without mips or clumps", "photon clusters", "mips", "clumps" } );
+ accountant.addListOfNamedLists( new String[] { eventHitMapEcalWithoutMipsOrPhotonsOrClumps, eventHitMapHcalWithoutMipsOrClumps, eventPhotonClusters, eventMips, eventClumpsEcal, eventClumpsHcal } );
+ accountant.addListOfNamedLists( new String[] { eventHitMapEcalWithoutMipsOrPhotonsOrClumps, eventHitMapHcalWithoutMipsOrClumps, eventPhotonClusters, eventMips, eventClumps } );
}
+ String eventLargeClusters = "MSTClustersLinkedWithTenOrMoreHits";
+ String eventSmallClusters = "MSTClustersLinkedWithFewerThanTenHits";
{
// Find large clusters (hadrons, muons, anything else that's around)
- String prefix = "hadronclusterfinder: ";
- String inputHitMapECAL = "hit map ecal without mips or photons or clumps";
- String inputHitMapHCAL = "hit map hcal without mips or clumps";
- String inputMIPListECAL = "mips ecal";
- String inputMIPListHCAL = "mips hcal";
- String inputClumpListECAL = "clumps ecal";
- String inputClumpListHCAL = "clumps hcal";
- String outputLargeClusters = "mst clusters linked (>=10 hits)";
- String outputSmallClusters = "mst clusters linked (<10 hits)";
- addHadronicClusterFinder(prefix, inputHitMapECAL, inputHitMapHCAL, inputMIPListECAL, inputMIPListHCAL, inputClumpListECAL, inputClumpListHCAL, outputLargeClusters, outputSmallClusters);
+ String prefix = "hadronclusterfinder__";
+ addHadronicClusterFinder(prefix, eventHitMapEcalWithoutMipsOrPhotonsOrClumps, eventHitMapHcalWithoutMipsOrClumps, eventMipsEcal, eventMipsHcal, eventClumpsEcal, eventClumpsHcal, eventLargeClusters, eventSmallClusters);
// Book-keeping
- accountant.addListOfNamedLists( new String[] { "mst clusters linked (>=10 hits)", "mst clusters linked (<10 hits)", "photon clusters" } );
+ accountant.addListOfNamedLists( new String[] { eventLargeClusters, eventSmallClusters, eventPhotonClusters } );
}
// Likelihood-based hadronic shower reconstruction
@@ -279,12 +270,9 @@
if (m_writeLikelihood) {
// Write out likelihoods for MIP-MIP, MIP-Clump, Clump-Clump combinations
- String inputClusterList = "mst clusters linked (>=10 hits)";
- String inputMIPList = "mips";
- String inputClumpList = "clumps";
String[] inputHitListsForAssociator = {"EcalBarrDigiHits", "EcalEndcapDigiHits", "HcalBarrDigiHits", "HcalEndcapDigiHits"};
- String[] inputClusterListsForAssociator = {inputMIPList,inputClumpList};
- addLikelihoodWriter("likwrite: ", inputClusterList, inputMIPList, inputClumpList, inputHitListsForAssociator, inputClusterListsForAssociator, mcListName);
+ String[] inputClusterListsForAssociator = {eventMips, eventClumps};
+ addLikelihoodWriter("likwrite__", eventLargeClusters, eventMips, eventClumps, inputHitListsForAssociator, inputClusterListsForAssociator, mcListName);
} else {
// Read in likelihood:
LikelihoodEvaluator eval = null;
@@ -308,93 +296,88 @@
eval.setDebug(false); // lots of debug printout if enabled!
// Link MIPs, clumps
- String inputLargeClusterList = "mst clusters linked (>=10 hits)";
- String smallClusterList = "mst clusters linked (<10 hits)";
- String inputMIPList = "mips";
- String inputClumpList = "clumps";
- String skeletonClusterList = "skeletons";
- String unusedHitMap1 = "structural unused hits";
- String haloClusterList = "skeletons plus halo";
- String unusedHitMap2 = "structural unused hits minus halo";
- String prefix = "linker: ";
+ String eventSkeletonClusters = "skeletons";
+ String eventUnusedHits = "structuralUnusedHits";
+ String eventHaloClusters = "skeletonsPlusHalo";
+ String eventUnusedHitsMinusHalo = "structuralUnusedHitsMinusHalo";
+ String prefix = "linker__";
String[] inputHitListsForAssociator = {"EcalBarrDigiHits", "EcalEndcapDigiHits", "HcalBarrDigiHits", "HcalEndcapDigiHits"};
- String[] inputClusterListsForAssociator = {"mips", "clumps"};
+ String[] inputClusterListsForAssociator = {eventMips, eventClumps};
boolean cheatOnLikelihood = false;
if (cheatOnLikelihood) {
- addCheatingStructuralLinker(prefix, inputLargeClusterList, inputMIPList, inputClumpList, skeletonClusterList, unusedHitMap1, inputHitListsForAssociator, inputClusterListsForAssociator, mcListName);
+ addCheatingStructuralLinker(prefix, eventLargeClusters, eventMips, eventClumps, eventSkeletonClusters, eventUnusedHits, inputHitListsForAssociator, inputClusterListsForAssociator, mcListName);
} else {
boolean makeExtraLikelihoodPlots = false;
if (makeExtraLikelihoodPlots) {
- addStructuralLinkerWithPlots(prefix, eval, inputLargeClusterList, inputMIPList, inputClumpList, skeletonClusterList, unusedHitMap1, inputHitListsForAssociator, inputClusterListsForAssociator, mcListName);
+ addStructuralLinkerWithPlots(prefix, eval, eventLargeClusters, eventMips, eventClumps, eventSkeletonClusters, eventUnusedHits, inputHitListsForAssociator, inputClusterListsForAssociator, mcListName);
} else {
- addStructuralLinker(prefix, eval, inputLargeClusterList, inputMIPList, inputClumpList, skeletonClusterList, unusedHitMap1);
+ addStructuralLinker(prefix, eval, eventLargeClusters, eventMips, eventClumps, eventSkeletonClusters, eventUnusedHits);
}
}
// Book-keeping
- accountant.addListOfNamedLists( new String[] { smallClusterList, unusedHitMap1, skeletonClusterList, "photon clusters" } );
+ accountant.addListOfNamedLists( new String[] { eventSmallClusters, eventUnusedHits, eventSkeletonClusters, eventPhotonClusters } );
// Check track matches are sensible; don't match multiple
// tracks to the same skeleton.
- String splitSkeletonClusterList = "skeletons (split)";
- add(new CheckSkeletonsForMultipleTracks(eval, trackList, skeletonClusterList, splitSkeletonClusterList, inputMIPList, inputClumpList));
+ String eventSplitSkeletonClusters = "splitSkeletons";
+ add(new CheckSkeletonsForMultipleTracks(eval, trackList, eventSkeletonClusters, eventSplitSkeletonClusters, eventMips, eventClumps));
// Add halo of nearby hits
- prefix = "halo: ";
- addHaloAssigner(prefix, splitSkeletonClusterList, unusedHitMap1, haloClusterList, unusedHitMap2);
+ prefix = "halo__";
+ addHaloAssigner(prefix, eventSplitSkeletonClusters, eventUnusedHits, eventHaloClusters, eventUnusedHitsMinusHalo);
// Book-keeping
- accountant.addListOfNamedLists( new String[] { smallClusterList, unusedHitMap2, haloClusterList, "photon clusters" } );
+ accountant.addListOfNamedLists( new String[] { eventSmallClusters, eventUnusedHitsMinusHalo, eventHaloClusters, eventPhotonClusters } );
// Match to tracks
- String tempParticleList = "charged hadron particles";
- prefix = "firstpasstrackmatcher: ";
- addTrackMatcher(prefix, trackList, inputMIPList, haloClusterList, smallClusterList, tempParticleList, false, null, false); // Check: "trackList" ?
+ String tempParticleList = "transientChargedHadronParticles";
+ prefix = "firstpasstrackmatcher__";
+ addTrackMatcher(prefix, trackList, eventMips, eventHaloClusters, eventSmallClusters, tempParticleList, false, null, false);
// Look for teeny clusters near front of ECAL (soft photons)
- prefix = "smallphotonfinder: ";
- String smallPhotonParticleList = "small photons (ron calib)";
- String haloMinusPhotonClusterList = "halo minus small photons";
- String smallClusterMinusPhotonClusterList = "mst clusters linked (<10 hits) minus small photons";
- String smallPhotonClusterList = "small photon clusters";
+ prefix = "smallphotonfinder__";
+ String eventSmallPhotonParticles = "smallPhotonParticles";
+ String eventHaloMinusPhotonClusters = "haloMinusSmallPhotons";
+ String eventSmallClustersNotPhotons = "smallClustersMinusSmallPhotons";
+ String eventSmallPhotonClusters = "smallPhotonClusters";
SimpleFragmentIdentifier fragID = new SimpleFragmentIdentifier(10, 100.0);
fragID.addParticleList(tempParticleList);
- addSmallPhotonClusterFinder(prefix, fragID, haloClusterList, smallClusterList, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, smallPhotonClusterList);
- addSmallPhotonParticleFinder(prefix+"ron: ",smallPhotonClusterList,smallPhotonParticleList,ronPhotonCalib);
+ addSmallPhotonClusterFinder(prefix, fragID, eventHaloClusters, eventSmallClusters, eventHaloMinusPhotonClusters, eventSmallClustersNotPhotons, eventSmallPhotonClusters);
+ addSmallPhotonParticleFinder(prefix+"ron__",eventSmallPhotonClusters,eventSmallPhotonParticles,ronPhotonCalib);
// Book-keeping
- accountant.addListOfNamedLists( new String[] { smallClusterMinusPhotonClusterList, unusedHitMap2, haloMinusPhotonClusterList, smallPhotonClusterList, "photon clusters" } );
- accountant.addListOfNamedLists( new String[] { smallClusterMinusPhotonClusterList, unusedHitMap2, haloMinusPhotonClusterList, smallPhotonParticleList, "photon clusters" } );
+ accountant.addListOfNamedLists( new String[] { eventSmallClustersNotPhotons, eventUnusedHitsMinusHalo, eventHaloMinusPhotonClusters, eventSmallPhotonClusters, eventPhotonClusters } );
+ accountant.addListOfNamedLists( new String[] { eventSmallClustersNotPhotons, eventUnusedHitsMinusHalo, eventHaloMinusPhotonClusters, eventSmallPhotonParticles, eventPhotonClusters } );
// Support classes to merge/handle fragments
SimpleFragmentMerger fragMerge = new SimpleFragmentMerger();
DropFragments fragNoMerge = new DropFragments();
- CheatFragmentIdentifier fragIDCheat = setUpCheatFragmentIdentifier("cheatid: ", haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, unusedHitMap2, mcListName);
+ CheatFragmentIdentifier fragIDCheat = setUpCheatFragmentIdentifier("cheatid__", eventHaloMinusPhotonClusters, eventSmallClustersNotPhotons, eventUnusedHitsMinusHalo, mcListName);
boolean cheatOnFragments = false;
+ String eventOutputParticles = "PFAReconstructedParticles";
+ String prefixHadronsMain = "merge_ron_ron__";
if (cheatOnFragments) {
- addHadronFinders("merge/ron/ron: ", "all particles (ron calib)", fragIDCheat, fragMerge, inputMIPList, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, trackList, smallPhotonParticleList, largePhotonParticleList, ronNeutralHadronCalib, ronNeutralHadronCalib, false);
+ addHadronFinders(prefixHadronsMain, eventOutputParticles, fragIDCheat, fragMerge, eventMips, eventHaloMinusPhotonClusters, eventSmallClustersNotPhotons, trackList, eventSmallPhotonParticles, largePhotonParticleList, ronNeutralHadronCalib, ronNeutralHadronCalib, false);
} else {
- addHadronFinders("merge/ron/ron: ", "all particles (ron calib)", fragID, fragMerge, inputMIPList, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, trackList, smallPhotonParticleList, largePhotonParticleList, ronNeutralHadronCalib, ronChargedHadronCalib, true);
+ addHadronFinders(prefixHadronsMain, eventOutputParticles, fragID, fragMerge, eventMips, eventHaloMinusPhotonClusters, eventSmallClustersNotPhotons, trackList, eventSmallPhotonParticles, largePhotonParticleList, ronNeutralHadronCalib, ronChargedHadronCalib, true);
}
// Optionally, other hadron finders with various calibrations etc:
- //addHadronFinders("nomerge/ron/ron: ", "all particles [no frag merge] (ron calib)", fragID, fragNoMerge, inputMIPList, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, trackList, smallPhotonParticleList, largePhotonParticleList, ronNeutralHadronCalib, ronChargedHadronCalib, false);
- //addHadronFinders("merge/ron/adhoc: ", "all particles (ron calib, adhoc calib for E/p)", fragID, fragMerge, inputMIPList, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, trackList, smallPhotonParticleList, largePhotonParticleList, ronNeutralHadronCalib, adHocCalib, false);
- //addHadronFinders("nomerge/ron/adhoc: ", "all particles [no frag merge] (ron calib, adhoc calib for E/p)", fragID, fragNoMerge, inputMIPList, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, trackList, smallPhotonParticleList, largePhotonParticleList, ronNeutralHadronCalib, adHocCalib, false);
- //addHadronFinders("merge/adhoc/adhoc: ", "all particles (adhoc calib)", fragID, fragMerge, inputMIPList, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, trackList, smallPhotonParticleList, largePhotonParticleList, adHocCalib, adHocCalib, false);
- //addHadronFinders("nomerge/adhoc/adhoc: ", "all particles [no frag merge] (adhoc calib)", fragID, fragNoMerge, inputMIPList, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, trackList, smallPhotonParticleList, largePhotonParticleList, adHocCalib, adHocCalib, false);
-
- // Make sure lists are accessible to Ron using old names.
- add(new ListFilterDriver(new DummyDecisionMakerSingle<ReconstructedParticle>(), "merge/ron/ron: neutral hadron particles", "neutral hadron particles (ron calib)", ReconstructedParticle.class));
- add(new ListFilterDriver(new DummyDecisionMakerSingle<ReconstructedParticle>(), "merge/ron/ron: charged hadron particles after fragment handling", "charged hadron particles 2", ReconstructedParticle.class));
+ //addHadronFinders("nomerge_ron_ron__", eventOutputParticles+"_noFragMerge", fragID, fragNoMerge, eventMips, eventHaloMinusPhotonClusters, eventSmallClustersNotPhotons, trackList, eventSmallPhotonParticles, largePhotonParticleList, ronNeutralHadronCalib, ronChargedHadronCalib, false);
+ //addHadronFinders("merge_ron_adhoc__", eventOutputParticles+"_adhocEoverP", fragID, fragMerge, eventMips, eventHaloMinusPhotonClusters, eventSmallClustersNotPhotons, trackList, eventSmallPhotonParticles, largePhotonParticleList, ronNeutralHadronCalib, adHocCalib, false);
+ //addHadronFinders("nomerge_ron_adhoc__", eventOutputParticles+"_noFragMerge_adhocEoverP", fragID, fragNoMerge, eventMips, eventHaloMinusPhotonClusters, eventSmallClustersNotPhotons, trackList, eventSmallPhotonParticles, largePhotonParticleList, ronNeutralHadronCalib, adHocCalib, false);
+ //addHadronFinders("merge_adhoc_adhoc__", eventOutputParticles+"_adhoc", fragID, fragMerge, eventMips, eventHaloMinusPhotonClusters, eventSmallClustersNotPhotons, trackList, eventSmallPhotonParticles, largePhotonParticleList, adHocCalib, adHocCalib, false);
+ //addHadronFinders("nomerge_adhoc_adhoc__", eventOutputParticles+"_noFragMerge_adhoc", fragID, fragNoMerge, eventMips, eventHaloMinusPhotonClusters, eventSmallClustersNotPhotons, trackList, eventSmallPhotonParticles, largePhotonParticleList, adHocCalib, adHocCalib, false);
// Now try to be a bit smarter. We can try to handle the cases where >1 track is connected to a cluster.
// Currently buggy -- not stable enough to use in production yet.
- //add(new HandleMultiTrackClusters("all particles (ron calib)", "all particles (ron calib) -- one track per cluster" ));
+ //add(new HandleMultiTrackClusters(eventOutputParticles, "all particles (ron calib) -- one track per cluster" ));
// For writing out, make sure that the final list has an LCIO-compatible name
- add(new ListFilterDriver(new DummyDecisionMakerSingle<ReconstructedParticle>(), "all particles (ron calib)", EventHeader.RECONSTRUCTEDPARTICLES, ReconstructedParticle.class));
+ add(new ListFilterDriver(new DummyDecisionMakerSingle<ReconstructedParticle>(), eventOutputParticles, EventHeader.RECONSTRUCTEDPARTICLES, ReconstructedParticle.class));
// Book-keeping
- accountant.addListOfNamedLists( new String[] { smallPhotonParticleList, largePhotonParticleList, "merge/ron/ron: neutral hadron particles", "merge/ron/ron: charged hadron particles after fragment handling" } );
+ // Need to be smarter about this bit:
+ accountant.addListOfNamedLists( new String[] { eventSmallPhotonParticles, largePhotonParticleList, "merge_ron_ron__neutralHadronParticles", "merge_ron_ron__chargedHadronParticlesAfterFragmentHandling" } );
}
// Make sure the book-keeping is OK:
@@ -439,12 +422,12 @@
{
System.out.println("WARNING: Cheating on photon finder");
// This cheats!
- add(new ListFilterDriver(new ParticlePDGDecision(22), mcListName, prefix+"MCParticles photons only"));
+ add(new ListFilterDriver(new ParticlePDGDecision(22), mcListName, prefix+"MCParticlesPhotonsOnly"));
org.lcsim.recon.cluster.cheat.PerfectClusterer myCheatPhotonFinder = new org.lcsim.recon.cluster.cheat.PerfectClusterer();
myCheatPhotonFinder.setInputHitMap(inputHitMap);
myCheatPhotonFinder.setOutputHitMap(outputHitMap);
myCheatPhotonFinder.setOutputClusterList(outputPhotonClusterList);
- myCheatPhotonFinder.setMCParticleList(prefix+"MCParticles photons only");
+ myCheatPhotonFinder.setMCParticleList(prefix+"MCParticlesPhotonsOnly");
myCheatPhotonFinder.allowHitSharing(false);
add(myCheatPhotonFinder);
}
@@ -458,7 +441,7 @@
{
// Find MIP candidates in ECAL, starting near the front:
{
- TrackClusterDriver ecalFrontSideMIPs = new TrackClusterDriver(inputHitMap, prefix+"front-side mips ecal", prefix+"hit map ecal without front-side mips");
+ TrackClusterDriver ecalFrontSideMIPs = new TrackClusterDriver(inputHitMap, prefix+"frontSideMipsEcal", prefix+"hitMapEcalWithoutFrontSideMips");
ecalFrontSideMIPs.filterOutputClusters(new ClusterFirstLayerDecision(4));
add(ecalFrontSideMIPs);
}
@@ -470,10 +453,10 @@
add(mipMatch);
mipHadID.setTrackMatcher(mipMatch);
mipHadID.setInputTrackList(inputTrackList);
- mipHadID.setOutputTrackList(prefix+"tracks left over from front-side mips");
- mipHadID.setInputMIPList(prefix+"front-side mips ecal");
- mipHadID.setOutputMIPList(prefix+"mips minus front-side mips ecal");
- mipHadID.setOutputParticleList(prefix+"front-side mip particles");
+ mipHadID.setOutputTrackList(prefix+"tracksLeftOverFromFrontSideMips");
+ mipHadID.setInputMIPList(prefix+"frontSideMipsEcal");
+ mipHadID.setOutputMIPList(prefix+"mipsMinusFrontSideMipsEcal");
+ mipHadID.setOutputParticleList(prefix+"frontSideMipParticles");
add(mipHadID);
//mipMatch.setDebug(true);
//mipHadID.setDebug(true);
@@ -483,14 +466,14 @@
{
ClusterListFilterDriver filterRemoveChargedMIPs = new ClusterListFilterDriver();
ClusterListFilterDriver filterSelectChargedMIPs = new ClusterListFilterDriver();
- VetoClustersFromParticles vetoChargedMIPs = new VetoClustersFromParticles(prefix+"front-side mip particles"); // veto MIPs
+ VetoClustersFromParticles vetoChargedMIPs = new VetoClustersFromParticles(prefix+"frontSideMipParticles"); // veto MIPs
DecisionMakerSingle<Cluster> selectChargedMIPs = new NotDecisionMakerSingle<Cluster> (vetoChargedMIPs); // invert veto to select MIPs
filterRemoveChargedMIPs.setInputDecision(vetoChargedMIPs);
filterSelectChargedMIPs.setInputDecision(selectChargedMIPs);
- filterRemoveChargedMIPs.setInputList(prefix+"front-side mips ecal");
- filterSelectChargedMIPs.setInputList(prefix+"front-side mips ecal");
- filterRemoveChargedMIPs.setOutputList(prefix+"neutral front-side mips ecal");
- filterSelectChargedMIPs.setOutputList(prefix+"charged front-side mips ecal");
+ filterRemoveChargedMIPs.setInputList(prefix+"frontSideMipsEcal");
+ filterSelectChargedMIPs.setInputList(prefix+"frontSideMipsEcal");
+ filterRemoveChargedMIPs.setOutputList(prefix+"neutralFrontSideMipsEcal");
+ filterSelectChargedMIPs.setOutputList(prefix+"chargedFrontSideMipsEcal");
add(vetoChargedMIPs);
add(filterRemoveChargedMIPs);
add(filterSelectChargedMIPs);
@@ -498,12 +481,12 @@
// Merge the non-charged "MIP" hits back in
{
- ClusterListToHitMapDriver convertFakeMIPsToHitMap = new ClusterListToHitMapDriver(prefix+"neutral front-side mips ecal", prefix+"hit map ecal of neutral front-side mips");
+ ClusterListToHitMapDriver convertFakeMIPsToHitMap = new ClusterListToHitMapDriver(prefix+"neutralFrontSideMipsEcal", prefix+"hitMapEcalOfNeutralFrontSideMips");
add(convertFakeMIPsToHitMap);
HitMapAddDriver addFakeMIPHitsBack = new HitMapAddDriver();
- addFakeMIPHitsBack.addInputHitMap(prefix+"hit map ecal of neutral front-side mips");
- addFakeMIPHitsBack.addInputHitMap(prefix+"hit map ecal without front-side mips");
- addFakeMIPHitsBack.setOutputHitMap(prefix+"hit map ecal without charged front-side mips");
+ addFakeMIPHitsBack.addInputHitMap(prefix+"hitMapEcalOfNeutralFrontSideMips");
+ addFakeMIPHitsBack.addInputHitMap(prefix+"hitMapEcalWithoutFrontSideMips");
+ addFakeMIPHitsBack.setOutputHitMap(prefix+"hitMapEcalWithoutChargedFrontSideMips");
add(addFakeMIPHitsBack);
}
@@ -516,12 +499,12 @@
photonFinder.setCoreSizeMinimum(10);
photonFinder.setFragmentSizeMaximum(6);
photonFinder.setCoreFirstLayerRange(5);
- photonFinder.setInputHitMap(prefix+"hit map ecal without charged front-side mips");
- photonFinder.setOutputHitMap(prefix+"hit map ecal without photons or charged front-side mips");
- photonFinder.setOutputClusterList(prefix+"photon clusters (unfiltered)");
+ photonFinder.setInputHitMap(prefix+"hitMapEcalWithoutChargedFrontSideMips");
+ photonFinder.setOutputHitMap(prefix+"hitMapEcalWithoutPhotonsOrChargedFrontSideMips");
+ photonFinder.setOutputClusterList(prefix+"photonClustersUnfiltered");
add(photonFinder);
//photonFinder.setDebug(true);
- //add(new DebugPrintClusterInfo(prefix+"photon clusters (unfiltered)"));
+ //add(new DebugPrintClusterInfo(prefix+"photonClustersUnfiltered"));
}
// ... except some of those "photons" are the start of charged showers,
@@ -533,39 +516,37 @@
add(clusMatch);
hadID.setTrackMatcher(clusMatch);
hadID.setInputTrackList(inputTrackList);
- hadID.setOutputTrackList(prefix+"tracks left over from front-side photon-like showers");
- hadID.setInputClusterList(prefix+"photon clusters (unfiltered)");
- hadID.setOutputParticleList(prefix+"front-side photon-like charged particles");
+ hadID.setOutputTrackList(prefix+"tracksLeftOverFromFrontSidePhotonLikeShowers");
+ hadID.setInputClusterList(prefix+"photonClustersUnfiltered");
+ hadID.setOutputParticleList(prefix+"frontSidePhotonLikeChargedParticles");
hadID.setDebug(false);
clusMatch.setDebug(false);
add(hadID);
// If so, remove them from the photon list:
ClusterListFilterDriver filterRemoveChargedClusters = new ClusterListFilterDriver();
ClusterListFilterDriver filterSelectChargedClusters = new ClusterListFilterDriver();
- VetoClustersFromParticles vetoChargedClusters = new VetoClustersFromParticles(prefix+"front-side photon-like charged particles"); // veto charged clusters
+ VetoClustersFromParticles vetoChargedClusters = new VetoClustersFromParticles(prefix+"frontSidePhotonLikeChargedParticles"); // veto charged clusters
DecisionMakerSingle<Cluster> selectChargedClusters = new NotDecisionMakerSingle<Cluster> (vetoChargedClusters); // invert veto to select charged clusters
filterRemoveChargedClusters.setInputDecision(vetoChargedClusters);
filterSelectChargedClusters.setInputDecision(selectChargedClusters);
- filterRemoveChargedClusters.setInputList(prefix+"photon clusters (unfiltered)");
- filterSelectChargedClusters.setInputList(prefix+"photon clusters (unfiltered)");
+ filterRemoveChargedClusters.setInputList(prefix+"photonClustersUnfiltered");
+ filterSelectChargedClusters.setInputList(prefix+"photonClustersUnfiltered");
filterRemoveChargedClusters.setOutputList(outputPhotonClusterList);
- filterSelectChargedClusters.setOutputList(prefix+"charged front-side photon-like clusters");
+ filterSelectChargedClusters.setOutputList(prefix+"chargedFrontSidePhotonLikeClusters");
add(vetoChargedClusters);
add(filterRemoveChargedClusters);
add(filterSelectChargedClusters);
// Add the charged "photons" back to the event, along with the charged MIPs:
- ClusterListToHitMapDriver convertChargedClustersToHitMap = new ClusterListToHitMapDriver(prefix+"charged front-side photon-like clusters", prefix+"hit map ecal of charged photon-like clusters");
- ClusterListToHitMapDriver convertRealMIPsToHitMap = new ClusterListToHitMapDriver(prefix+"charged front-side mips ecal", prefix+"hit map ecal of charged front-side mips");
+ ClusterListToHitMapDriver convertChargedClustersToHitMap = new ClusterListToHitMapDriver(prefix+"chargedFrontSidePhotonLikeClusters", prefix+"hitMapEcalOfChargedPhotonLikeClusters");
+ ClusterListToHitMapDriver convertRealMIPsToHitMap = new ClusterListToHitMapDriver(prefix+"chargedFrontSideMipsEcal", prefix+"hitMapEcalOfChargedFrontSideMips");
add(convertChargedClustersToHitMap);
add(convertRealMIPsToHitMap);
HitMapAddDriver addChargedClusterHitsBack = new HitMapAddDriver();
- addChargedClusterHitsBack.addInputHitMap(prefix+"hit map ecal of charged photon-like clusters");
- addChargedClusterHitsBack.addInputHitMap(prefix+"hit map ecal of charged front-side mips");
- addChargedClusterHitsBack.addInputHitMap(prefix+"hit map ecal without photons or charged front-side mips");
+ addChargedClusterHitsBack.addInputHitMap(prefix+"hitMapEcalOfChargedPhotonLikeClusters");
+ addChargedClusterHitsBack.addInputHitMap(prefix+"hitMapEcalOfChargedFrontSideMips");
+ addChargedClusterHitsBack.addInputHitMap(prefix+"hitMapEcalWithoutPhotonsOrChargedFrontSideMips");
addChargedClusterHitsBack.setOutputHitMap(outputHitMap);
add(addChargedClusterHitsBack);
- //add(new DebugPrintClusterInfo("photon clusters"));
- //add(new DebugPrintClusterInfo("charged front-side photon-like clusters"));
}
}
@@ -579,12 +560,12 @@
/** Find photons in the ECAL with cheating. */
protected void addCheatPhotonFinder(String prefix, String inputHitMap, String outputPhotonClusterList, String outputHitMap, String mcListName)
{
- add(new ListFilterDriver(new ParticlePDGDecision(22), mcListName, prefix+"MCParticles photons only"));
+ add(new ListFilterDriver(new ParticlePDGDecision(22), mcListName, prefix+"MCParticlesPhotonsOnly"));
PerfectClusterer myCheatPhotonFinder = new PerfectClusterer();
myCheatPhotonFinder.setInputHitMap(inputHitMap);
myCheatPhotonFinder.setOutputHitMap(outputHitMap);
myCheatPhotonFinder.setOutputClusterList(outputPhotonClusterList);
- myCheatPhotonFinder.setMCParticleList(prefix+"MCParticles photons only");
+ myCheatPhotonFinder.setMCParticleList(prefix+"MCParticlesPhotonsOnly");
myCheatPhotonFinder.allowHitSharing(false);
add(myCheatPhotonFinder);
}
@@ -615,8 +596,8 @@
protected void addHadronicClusterFinder(String prefix, String inputHitMapECAL, String inputHitMapHCAL, String inputMIPListECAL, String inputMIPListHCAL, String inputClumpListECAL, String inputClumpListHCAL, String outputLargeClusters, String outputSmallClusters)
{
// Find large-scale hadronic clusters with the MST
- MSTClusterDriver mstEcal = new MSTClusterDriver(prefix+"ecal hit map after mst", prefix+"mst clusters ecal");
- MSTClusterDriver mstHcal = new MSTClusterDriver(prefix+"hcal hit map after mst", prefix+"mst clusters hcal");
+ MSTClusterDriver mstEcal = new MSTClusterDriver(prefix+"ecalHitMapAfterMST", prefix+"mstClustersEcal");
+ MSTClusterDriver mstHcal = new MSTClusterDriver(prefix+"hcalHitMapAfterMST", prefix+"mstClustersHcal");
mstEcal.addInputHitMap(inputHitMapECAL);
mstHcal.addInputHitMap(inputHitMapHCAL);
mstEcal.addUserInputList(inputMIPListECAL);
@@ -634,16 +615,16 @@
MSTClusterDriver mstDriverLink = new MSTClusterDriver("User");
mstDriverLink.registerMetrics(new MinimumHitToHitDistance());
mstDriverLink.setThreshold(50.0); // 5cm
- mstDriverLink.addUserInputList(prefix+"mst clusters ecal");
- mstDriverLink.addUserInputList(prefix+"mst clusters hcal");
- mstDriverLink.setClusterName(prefix+"mst clusters linked");
+ mstDriverLink.addUserInputList(prefix+"mstClustersEcal");
+ mstDriverLink.addUserInputList(prefix+"mstClustersHcal");
+ mstDriverLink.setClusterName(prefix+"mstClustersLinked");
mstDriverLink.setPairDecision(new BothCalorimetersDecision());
add(mstDriverLink);
// OK. Now we are going to weed out the small (<10 hit) clusters.
ClusterListFilterDriver sizeFilterDriver = new ClusterListFilterDriver();
sizeFilterDriver.setInputDecision(new ClusterSizeDecision(10));
- sizeFilterDriver.setInputList(prefix+"mst clusters linked");
+ sizeFilterDriver.setInputList(prefix+"mstClustersLinked");
sizeFilterDriver.setOutputList(outputLargeClusters);
sizeFilterDriver.setOutputClusterListFail(outputSmallClusters);
add(sizeFilterDriver);
@@ -664,7 +645,7 @@
// Handle things that have per-event info:
makeEventInfoList(eval);
LikelihoodFindingStructuralDriver likelihoodWriter = new LikelihoodFindingStructuralDriver(eval, inputClusterList, inputMIPList, inputClumpList);
- likelihoodWriter.initializeClusterAssociator( inputHitListsForAssociator, inputClusterListsForAssociator, mcListName, prefix+"AssocInfo particles -> components", prefix+"AssocInfo components -> particles" );
+ likelihoodWriter.initializeClusterAssociator( inputHitListsForAssociator, inputClusterListsForAssociator, mcListName, prefix+"AssocInfoParticlesToComponents", prefix+"AssocInfoComponentsToParticles" );
add(likelihoodWriter);
LikelihoodEvaluatorCheckpointDriver checkpoint = new LikelihoodEvaluatorCheckpointDriver(eval, 10);
checkpoint.setDebug(true);
@@ -685,7 +666,7 @@
{
LikelihoodLinkPlotDriver plotter = new LikelihoodLinkPlotDriver(eval, 0.7, 0.7, 1.0, inputClusterList, inputMIPList, inputClumpList, outputClusterList, outputHitMap);
plotter.initPlots("likelihood.aida");
- plotter.initializeClusterAssociator( inputHitListsForAssociator, inputClusterListsForAssociator, mcListName, prefix+"AssocInfo particles -> components", prefix+"AssocInfo components -> particles" );
+ plotter.initializeClusterAssociator( inputHitListsForAssociator, inputClusterListsForAssociator, mcListName, prefix+"AssocInfoParticlesToComponents", prefix+"AssocInfoComponentsToParticles" );
plotter.setIgnoreClusterDecision(new ClusterSizeDecision(10));
plotter.setDebug(false);
add(plotter);
@@ -695,7 +676,7 @@
{
System.out.println("WARNING: Cheating on likelihood");
CheatLikelihoodLinkDriver likelihoodLinker = new CheatLikelihoodLinkDriver(inputClusterList, inputMIPList, inputClumpList, outputClusterList, outputHitMap);
- likelihoodLinker.initializeClusterAssociator( inputHitListsForAssociator, inputClusterListsForAssociator, mcListName, prefix+"AssocInfo particles -> components", prefix+"AssocInfo components -> particles" );
+ likelihoodLinker.initializeClusterAssociator( inputHitListsForAssociator, inputClusterListsForAssociator, mcListName, prefix+"AssocInfoParticlesToComponents", prefix+"AssocInfoComponentsToParticles" );
likelihoodLinker.setIgnoreClusterDecision(new ClusterSizeDecision(10));
add(likelihoodLinker);
}
@@ -713,13 +694,13 @@
add(mipMatch);
hadIDmip.setTrackMatcher(mipMatch);
hadIDmip.setInputTrackList(trackList);
- hadIDmip.setOutputTrackList(prefix+"tracks minus mip associations");
+ hadIDmip.setOutputTrackList(prefix+"tracksMinusMipAssociations");
hadIDmip.setInputMIPList(inputMIPList);
- hadIDmip.setOutputParticleList(prefix+"charged hadron particles with mip association");
- hadIDmip.setOutputMIPList(prefix+"unmatched mips");
- hadIDmip.addClusterList(inputHaloClusterList, prefix+"skeletons plus halo minus charged particles from mips");
+ hadIDmip.setOutputParticleList(prefix+"chargedHadronParticlesWithMipAssociation");
+ hadIDmip.setOutputMIPList(prefix+"unmatchedMips");
+ hadIDmip.addClusterList(inputHaloClusterList, prefix+"skeletonsPlusHaloMinusChargedParticlesFromMips");
if (inputSmallClusterList != null) {
- hadIDmip.addClusterList(inputSmallClusterList, prefix+"mst clusters linked (<10 hits) minus charged particles from mips");
+ hadIDmip.addClusterList(inputSmallClusterList, prefix+"smallLinkedClustersMinusChargedParticlesFromMips");
}
hadIDmip.setCheckEoverP(checkEoverP);
hadIDmip.setCalibration(calibration);
@@ -731,10 +712,10 @@
LocalHelixExtrapolationTrackClusterMatcher clusMatch = new LocalHelixExtrapolationTrackClusterMatcher();
add(clusMatch);
hadID.setTrackMatcher(clusMatch);
- hadID.setInputTrackList(prefix+"tracks minus mip associations");
- hadID.setOutputTrackList(prefix+"leftover tracks");
- hadID.setInputClusterList(prefix+"skeletons plus halo minus charged particles from mips");
- hadID.setOutputParticleList(prefix+"charged hadron particles with non-mip association");
+ hadID.setInputTrackList(prefix+"tracksMinusMipAssociations");
+ hadID.setOutputTrackList(prefix+"leftoverTracks");
+ hadID.setInputClusterList(prefix+"skeletonsPlusHaloMinusChargedParticlesFromMips");
+ hadID.setOutputParticleList(prefix+"chargedHadronParticlesWithNonMipAssociation");
if (checkEoverP) {
CheckEoverP check = new CheckEoverP(calibration,3.0);
check.setDebug(debug);
@@ -745,15 +726,15 @@
// Merge the two particle lists:
ListAddDriver<ReconstructedParticle> mergeParticles = new ListAddDriver<ReconstructedParticle>(ReconstructedParticle.class);
- mergeParticles.addInputList(prefix+"charged hadron particles with mip association");
- mergeParticles.addInputList(prefix+"charged hadron particles with non-mip association");
+ mergeParticles.addInputList(prefix+"chargedHadronParticlesWithMipAssociation");
+ mergeParticles.addInputList(prefix+"chargedHadronParticlesWithNonMipAssociation");
mergeParticles.setOutputList(outputParticleList);
add(mergeParticles);
}
protected void addSmallPhotonFinder(String prefix, FragmentIdentifier fragID, String haloClusterList, String smallClusterList, String smallPhotonParticleList, String haloMinusPhotonClusterList, String smallClusterMinusPhotonClusterList, ClusterEnergyCalculator calibration)
{
- String smallPhotonClusterList=prefix+"small photon cluster list";
+ String smallPhotonClusterList=prefix+"smallPhotonClusterList";
addSmallPhotonClusterFinder(prefix,fragID,haloClusterList,smallClusterList,haloMinusPhotonClusterList,smallClusterMinusPhotonClusterList,smallPhotonClusterList);
addSmallPhotonParticleFinder(prefix,smallPhotonClusterList,smallPhotonParticleList,calibration);
}
@@ -772,14 +753,14 @@
isSmallPhotonFilter2.setInputDecision(isSmallPhoton);
isSmallPhotonFilter1.setInputList(haloClusterList);
isSmallPhotonFilter2.setInputList(smallClusterList);
- isSmallPhotonFilter1.setOutputList(prefix+"small photon clusters 1");
- isSmallPhotonFilter2.setOutputList(prefix+"small photon clusters 2");
+ isSmallPhotonFilter1.setOutputList(prefix+"smallPhotonClusters1");
+ isSmallPhotonFilter2.setOutputList(prefix+"smallPhotonClusters2");
isSmallPhotonFilter1.setOutputClusterListFail(haloMinusPhotonClusterList);
isSmallPhotonFilter2.setOutputClusterListFail(smallClusterMinusPhotonClusterList);
ListAddDriver<Cluster> mergeSmallPhotonClusters = new ListAddDriver<Cluster>(Cluster.class);
- mergeSmallPhotonClusters.addInputList(prefix+"small photon clusters 1");
- mergeSmallPhotonClusters.addInputList(prefix+"small photon clusters 2");
+ mergeSmallPhotonClusters.addInputList(prefix+"smallPhotonClusters1");
+ mergeSmallPhotonClusters.addInputList(prefix+"smallPhotonClusters2");
mergeSmallPhotonClusters.setOutputList(smallPhotonClusterList);
add(isFragmentDecisionDriver);
@@ -811,16 +792,21 @@
protected CheatFragmentIdentifier setUpCheatFragmentIdentifier(String prefix, String haloMinusPhotonClusterList, String smallClusterMinusPhotonClusterList, String inputHitMap, String mcListName)
{
+ // Sometimes these lists are empty.
+ String hitMap1 = prefix+"HitMapForCheatFragmentIdentifier";
+ String hitList1 = prefix+"HitList1ForCheatFragmentIdentifier";
+ String hitMap2 = inputHitMap;
+ String hitList2 = prefix+"HitList2ForCheatFragmentIdentifier";
ClusterListToHitMapDriver clusterConverter = new ClusterListToHitMapDriver();
clusterConverter.addInputList(haloMinusPhotonClusterList);
clusterConverter.addInputList(smallClusterMinusPhotonClusterList);
- clusterConverter.setOutputHitMap(prefix+"HitMap for CheatFragmentIdentifier");
+ clusterConverter.setOutputHitMap(hitMap1);
add(clusterConverter);
- add(new HitMapToHitListDriver(prefix+"HitMap for CheatFragmentIdentifier", prefix+"HitList for CheatFragmentIdentifier"));
- add(new HitMapToHitListDriver(inputHitMap, prefix+"HitList2 for CheatFragmentIdentifier"));
- String[] hitListNames = { prefix+"HitList for CheatFragmentIdentifier", prefix+"HitList2 for CheatFragmentIdentifier" } ; // Do we need HitList2?
+ add(new HitMapToHitListDriver(hitMap1, hitList1));
+ add(new HitMapToHitListDriver(hitMap2, hitList2));
+ String[] hitListNames = { hitList2, hitList1 };
String[] clusterListNames = { haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList };
- CheatFragmentIdentifier cheatFragID = new CheatFragmentIdentifier(hitListNames, clusterListNames, mcListName, prefix+"CheatFragmentIdentifier info P->C", prefix+"CheatFragmentIdentifier info C->P");
+ CheatFragmentIdentifier cheatFragID = new CheatFragmentIdentifier(hitListNames, clusterListNames, mcListName, prefix+"CheatFragmentIdentifierInfoParticlesToComponents", prefix+"CheatFragmentIdentifierInfoComponentsToParticles");
return cheatFragID;
}
@@ -830,12 +816,12 @@
VetoClustersFromParticles vetoCharged = new VetoClustersFromParticles(chargedParticleList);
removeChargedClusters.setInputDecision(vetoCharged);
removeChargedClusters.setInputList(inputClusterList);
- removeChargedClusters.setOutputList(prefix+"neutral clusters with fragments merged");
+ removeChargedClusters.setOutputList(prefix+"neutralClustersWithFragmentsMerged");
add(vetoCharged);
add(removeChargedClusters);
SimpleNeutralParticleMaker hadID3 = new SimpleNeutralParticleMaker(130); // everything is a K0
hadID3.setCalibration(calibration);
- hadID3.setInputClusterList(prefix+"neutral clusters with fragments merged");
+ hadID3.setInputClusterList(prefix+"neutralClustersWithFragmentsMerged");
hadID3.setOutputParticleList(outputParticleList);
add(hadID3);
}
@@ -865,19 +851,19 @@
boolean trackDebug)
{
// Fragment handling
- String clusterList = prefix+"clusters after fragment handling";
- String hitMap = prefix+"hits left over after fragment handling";
- addFragmentHandling(prefix+"FragmentHandling: ", fragID, fragMerge, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, clusterList, hitMap);
+ String clusterList = prefix+"clustersAfterFragmentHandling";
+ String hitMap = prefix+"hitsLeftOverAfterFragmentHandling";
+ addFragmentHandling(prefix+"FragmentHandling__", fragID, fragMerge, haloMinusPhotonClusterList, smallClusterMinusPhotonClusterList, clusterList, hitMap);
// Repeat the hadron ID step with the revised cluster list after fragment handling
- String tempChargedParticleList = prefix+"charged hadron particles after fragment handling";
+ String tempChargedParticleList = prefix+"chargedHadronParticlesAfterFragmentHandling";
boolean applyEoverPcut = true;
- addTrackMatcher(prefix+"FindCharged: ", trackList, inputMIPList, clusterList, null, tempChargedParticleList, applyEoverPcut, calibrationForEoverP, trackDebug);
+ addTrackMatcher(prefix+"FindCharged__", trackList, inputMIPList, clusterList, null, tempChargedParticleList, applyEoverPcut, calibrationForEoverP, trackDebug);
System.out.println(prefix+": Will write out charged particles as '"+tempChargedParticleList+"'");
// ... and then any remaining clusters should be neutral
- String tempNeutralParticleList = prefix+"neutral hadron particles";
- addNeutralHadronHandler(prefix+"FindNeutral: ", tempChargedParticleList, clusterList, tempNeutralParticleList, calibration);
+ String tempNeutralParticleList = prefix+"neutralHadronParticles";
+ addNeutralHadronHandler(prefix+"FindNeutral__", tempChargedParticleList, clusterList, tempNeutralParticleList, calibration);
System.out.println(prefix+": Will write out neutral particles as '"+tempNeutralParticleList+"'");
// Make particle lists