lcsim/src/org/lcsim/recon/pfa/structural
diff -u -r1.16 -r1.17
--- SetUpDTreeForReclustering.java 28 Sep 2010 13:35:44 -0000 1.16
+++ SetUpDTreeForReclustering.java 6 Oct 2010 21:05:23 -0000 1.17
@@ -8,9 +8,11 @@
import org.lcsim.event.EventHeader;
import org.lcsim.event.Cluster;
import org.lcsim.recon.cluster.directedtree.DirectedTreeDriver;
-import org.lcsim.recon.cluster.nn.NearestNeighborClusterDriver;
import org.lcsim.recon.cluster.mipfinder.ShowerPointFinderDriver;
+import org.lcsim.recon.cluster.mipfinder.ShowerPointFinderDriver2;
+import org.lcsim.recon.cluster.mipfinder.trackxtrap.*;
import org.lcsim.recon.cluster.muonfinder.MuonFinderWrapper;
+import org.lcsim.recon.cluster.muonfinder.MuonFinderWrapper3;
import org.lcsim.recon.cluster.util.HitNearBarrelEndcapBoundaryDecision;
import org.lcsim.recon.cluster.util.RemoveHitsFromClusters;
import org.lcsim.recon.cluster.util.VetoHitsFromClusters;
@@ -41,6 +43,7 @@
Collection<String> hitsForMST;
HelixExtrapolator findCluster;
boolean init;
+ boolean useNewInitialMipFinding = false;
public SetUpDTreeForReclustering(String inputTrackListi, Collection<String> allHitListsi, Collection<String> recoHitListsi, Collection<String> hitsForMSTi, HelixExtrapolator findClusteri) {
inputTrackList = inputTrackListi;
allHitLists = allHitListsi;
@@ -49,6 +52,7 @@
findCluster = findClusteri;
init = false;
}
+ public void setUseNewInitialMipFinding(boolean x){useNewInitialMipFinding = x;}
protected void process(EventHeader event)
{
if(!init)
@@ -92,6 +96,9 @@
}
add(combineReco);
+ // Extrapolate tracks through the calorimeters for later use
+ add(new TrackXtrapThruCalDriver(findCluster,inputTrackList,"TrackXtrapInfo"));
+
// Find photons in ECAL
{
// We have to use ALL hits for the photon-finder -- this is because it uses the
@@ -108,12 +115,21 @@
add(new HitMapSubtractDriver("AllDigiHitMap", "ElectronHitMap", "AllDigiHitMapWithoutElectrons"));
}
-
+ // Attach calorimeter hits to tracks, useful for finding/attaching mips
+ add(new AttachCalorimeterHitsDriver("TracksWithoutElectrons","RecoDigiHitMapWithoutElectrons","TrackXtrapInfo",20.));
{
// Find muons
- MuonFinderWrapper muonFinder = new MuonFinderWrapper(findCluster, "TracksWithoutElectrons", "AllDigiHitMapWithoutElectrons", "MuonTrackClusterMap", "AllDigiHitMapWithoutElectronsOrMuons", "TracksWithoutElectronsOrMuons");
+ if(useNewInitialMipFinding)
+ {
+ MuonFinderWrapper3 muonFinder3 = new MuonFinderWrapper3("TrackXtrapInfo","TracksWithoutElectrons", "AllDigiHitMapWithoutElectrons", "MuonTrackClusterMap", "AllDigiHitMapWithoutElectronsOrMuons", "TracksWithoutElectronsOrMuons");
+ add(muonFinder3);
+ }
+ else
+ {
+ MuonFinderWrapper muonFinder = new MuonFinderWrapper(findCluster, "TracksWithoutElectrons", "AllDigiHitMapWithoutElectrons", "MuonTrackClusterMap", "AllDigiHitMapWithoutElectronsOrMuons", "TracksWithoutElectronsOrMuons");
//muonFinder.skip(); // TEST
- add(muonFinder);
+ add(muonFinder);
+ }
// Identify the muon hits within useable hit block
add(new HitMapSubtractDriver("RecoDigiHitMapWithoutElectrons", "AllDigiHitMapWithoutElectronsOrMuons", "RecoDigiHitMapMuons"));
// Non-muon hits within useable hit block
@@ -121,9 +137,18 @@
}
{
- // TJ's pre-shower MIP-finder
- ShowerPointFinderDriver showerFinder = new ShowerPointFinderDriver(findCluster, "RecoDigiHitMapWithoutElectronsOrMuons", "TracksWithoutElectronsOrMuons", "ShowerFinderMapTrackToMip", "RecoDigiHitMapWithoutElectronsOrMuonsOrMips", "ShowerFinderMips");
- add(showerFinder);
+ if(useNewInitialMipFinding)
+ {
+ ShowerPointFinderDriver2 showerFinder2ForHad =
+ new ShowerPointFinderDriver2("RecoDigiHitMapWithoutElectronsOrMuons", "TracksWithoutElectronsOrMuons", "TrackXtrapInfo", "ShowerFinderMapTrackToMip", "RecoDigiHitMapWithoutElectronsOrMuonsOrMips", "ShowerFinderMips");
+ add(showerFinder2ForHad);
+ }
+ else
+ {
+ // TJ's pre-shower MIP-finder
+ ShowerPointFinderDriver showerFinder = new ShowerPointFinderDriver(findCluster, "RecoDigiHitMapWithoutElectronsOrMuons", "TracksWithoutElectronsOrMuons", "ShowerFinderMapTrackToMip", "RecoDigiHitMapWithoutElectronsOrMuonsOrMips", "ShowerFinderMips");
+ add(showerFinder);
+ }
add(new CheckDisjoint("RecoDigiHitMapWithoutElectronsOrMuonsOrMips", "ShowerFinderMips"));
// Steve's pre-shower MIP-finder
// disabled for now -- //add(new ReclusterDriver.SteveMipWrapper());
lcsim/src/org/lcsim/recon/pfa/structural
diff -u -r1.11 -r1.12
--- SetUpPFA.java 29 Apr 2010 13:47:34 -0000 1.11
+++ SetUpPFA.java 6 Oct 2010 21:05:23 -0000 1.12
@@ -33,6 +33,8 @@
public void setReclusCheckSharedHitsForPunchThrough(boolean x){ reclusTree.setCheckSharedHitsForPunchThrough(x); }
public void setReclusOutputParticleListName(String x){ reclusTree.setOutputParticleListName(x); }
private boolean init;
+ private boolean useNewInitialMipFinding = false;
+ public void setUseNewInitialMipFinding(boolean x){useNewInitialMipFinding = x;}
public SetUpPFA(){
@@ -84,7 +86,9 @@
allHitLists.addAll(recoHitLists);
allHitLists.add("CorrMuonBarrelDigiHits");
mstHitLists.add(ci.getDigiCollectionName(CalorimeterType.MUON_ENDCAP));
- add(new SetUpDTreeForReclustering("FilteredTrackList", allHitLists, recoHitLists, mstHitLists, findCluster));
+ SetUpDTreeForReclustering setup = new SetUpDTreeForReclustering("FilteredTrackList", allHitLists, recoHitLists, mstHitLists, findCluster);
+ setup.setUseNewInitialMipFinding(useNewInitialMipFinding);
+ add(setup);
}
// Set up and run PFA