Commit in lcsim/src/org/lcsim/contrib/SteveMagill on MAIN
PFASelect.java-1701.1 removed
PFATemplate.java-3631.8 removed
-533
2 removed files


lcsim/src/org/lcsim/contrib/SteveMagill
PFASelect.java removed after 1.1
diff -N PFASelect.java
--- PFASelect.java	18 May 2007 19:59:11 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,170 +0,0 @@
-package org.lcsim.contrib.SteveMagill;
-
-import java.util.List;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.MCParticle;
-import org.lcsim.event.util.JetDriver;
-import org.lcsim.util.Driver;
-import hep.physics.vec.Hep3Vector;
-import org.lcsim.event.ReconstructedParticle;
-import org.lcsim.util.aida.AIDA;
-import hep.physics.jet.*;
-
-/*
- * PFASelect includes fiducial cut to select region for PFA analysis
- */
-
-public class PFASelect extends Driver
-{
-    
-    private AIDA aida = AIDA.defaultInstance();
-
-    public PFASelect()
-    {
-        add(new PFATemplate());
-        
-       //  now find jets with real Reco Particles
-       JetDriver PFAjet = new JetDriver();
-       PFAjet.setInputCollectionName("AllRecoParticles");
-       PFAjet.setOutputCollectionName("PFAJets");
-       JetFinder tworealjets = new FixNumberOfJetsFinder(2);
-       PFAjet.setFinder(tworealjets);
-       //  for Durham jet, ycut = 0.25 at ZPole, 0.01 at 500 GeV ZZ
-//       JetFinder rktjet = new DurhamJetFinder(0.0005);
-//       PFAjet.setFinder(rktjet);
-       add(PFAjet);
-       
-       // make perfect jets out of perfect particles
-       JetDriver j = new JetDriver();
-       j.setInputCollectionName("PerfectRecoParticles");
-       j.setOutputCollectionName("PerfectJets");
-       JetFinder twojet = new FixNumberOfJetsFinder(2);
-       j.setFinder(twojet);
-       //  for Durham jet, ycut = 0.25 at ZPole, 0.01 at 500 GeV ZZ
-//       JetFinder ktjet = new DurhamJetFinder(0.0005);
-//       j.setFinder(ktjet);
-       add(j);
-       
-       //  make plots etc. from results
-       PPFAPlotDriver ppfaplots = new PPFAPlotDriver();
-       ppfaplots.setMCPartName("CheatReconstructedParticles");
-       ppfaplots.setPerfJetName("PerfectJets");
-       ppfaplots.setPFAJetName("PFAJets");
-       ppfaplots.setPerfPartName("PerfectRecoParticles");
-       ppfaplots.setPFAPartName("AllRecoParticles");
-       add(ppfaplots);
-    }
-    
-    protected void process(EventHeader event)
-    {
-        //   Only process events with both jets costheta < costhetaMAX
-
-        List<MCParticle> mcl = event.get(MCParticle.class,"MCParticle");
-        boolean keepit = true;
-        double Zmass = 0.;
-        int ievt = 0;
-        double costmax = 0.8;
-        for(MCParticle p:mcl)
-        {
-           int id = Math.abs(p.getPDGID());
-           if( (id == 1 )||(id == 2 )||(id == 3 ) )
-           {
-              if(p.getParents().get(0).getPDGID() == 23 )
-              {
-                 Zmass = p.getParents().get(0).getMass();
-//                 System.out.println("Z Mass " + Zmass);
-                 Hep3Vector pp = p.getMomentum();
-                 double cost = Math.abs(pp.z()/pp.magnitude());
-                 if(cost > costmax)
-                 {
-                    keepit = false;
-                    continue;
-                 }
-              }
-           }
-        }
-        
-        if(!keepit)
-        {
-           ievt++;
-           return;
-        }
-        super.process(event);
-        //  add some plots here - get jet stuff
-        List<ReconstructedParticle> perfjets = event.get(ReconstructedParticle.class,"PerfectJets");
-        List<ReconstructedParticle> pfajets = event.get(ReconstructedParticle.class,"PFAJets");
-
-        //  here's some jet stuff for perfect jets
-        double jESum = 0;
-        double jPXSum = 0;
-        double jPYSum = 0;
-        double jPZSum = 0;
-        double djm = 0;
-        double[] jpz = new double[2];
-        double[] jp = new double[2];
-        int j = 0;
-        aida.cloud1D("Number of Perfect Jets").fill(perfjets.size());
-        if (perfjets.size() == 2)
-        {
-            //  calculate dijet mass - don't we have something that does this?
-            for (ReconstructedParticle perfjet : perfjets)
-            {   
-                aida.cloud1D("Perfect Jet Energy").fill(perfjet.getEnergy());
-                aida.cloud1D("Perfect Jet Mass").fill(perfjet.getMass());
-//                jESum += perfjet.getEnergy();
-                Hep3Vector j3v = perfjet.getMomentum();
-                jPXSum += j3v.x();
-                jPYSum += j3v.y();
-                jPZSum += j3v.z();
-                jp[j] = Math.sqrt(j3v.x()*j3v.x()+j3v.y()*j3v.y()+j3v.z()*j3v.z());
-                // force jet mass 0
-                jESum += jp[j];
-                aida.cloud1D("Perfect Jet Energy zero mass").fill(jp[j]);
-                jpz[j] = j3v.z();
-                 j++;
-            }    
-            double jE2 = jESum*jESum;
-            double jP2 = jPXSum*jPXSum+jPYSum*jPYSum+jPZSum*jPZSum;
-            djm += Math.sqrt(jE2-jP2);
-            aida.cloud1D("Perfect Dijet Mass").fill(djm);
-            aida.cloud1D("Diff Perfect Dijet Mass").fill((djm-Zmass)/Math.sqrt(Zmass)); 
-        }
-      
-        //  now real PFA jets
-        double rjESum = 0;
-        double rjPXSum = 0;
-        double rjPYSum = 0;
-        double rjPZSum = 0;
-        double rdjm = 0;
-        double[] jrpz = new double[2];
-        double[] jrp = new double[2];
-        int k = 0;
-        aida.cloud1D("Number of PFA Jets").fill(pfajets.size());
-        if (pfajets.size() == 2)
-        {
-            //  calculate dijet mass - don't we have something that does this?
-            for (ReconstructedParticle pfajet : pfajets)
-            {
-                aida.cloud1D("PFA Jet Energy").fill(pfajet.getEnergy());
-                aida.cloud1D("PFA Jet Mass").fill(pfajet.getMass());
-//                rjESum += pfajet.getEnergy();
-                Hep3Vector rj3v = pfajet.getMomentum();
-                rjPXSum += rj3v.x();
-                rjPYSum += rj3v.y();
-                rjPZSum += rj3v.z();
-                jrp[k] = Math.sqrt(rj3v.x()*rj3v.x()+rj3v.y()*rj3v.y()+rj3v.z()*rj3v.z());
-                // force jet mass 0
-                rjESum += jrp[k];
-                aida.cloud1D("PFA Jet Energy zero mass").fill(jrp[k]);
-                jrpz[k] = rj3v.z();
-                k++;
-            }
-            double rjE2 = rjESum*rjESum;
-            double rjP2 = rjPXSum*rjPXSum+rjPYSum*rjPYSum+rjPZSum*rjPZSum;
-            rdjm += Math.sqrt(rjE2-rjP2);
-            aida.cloud1D("PFA Dijet Mass").fill(rdjm);
-            aida.cloud1D("Diff PFA Dijet Mass").fill((rdjm-Zmass)/Math.sqrt(Zmass));
-            aida.cloud1D("Difference PFAJet and PerfJet DiJet Mass").fill(rdjm-djm);
-        }
-    }
-}

lcsim/src/org/lcsim/contrib/SteveMagill
PFATemplate.java removed after 1.8
diff -N PFATemplate.java
--- PFATemplate.java	19 Sep 2007 18:49:40 -0000	1.8
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,363 +0,0 @@
-package org.lcsim.contrib.SteveMagill;
-
-import java.util.*;
-import org.lcsim.util.*;
-import org.lcsim.event.*;
-import org.lcsim.event.util.*;
-import org.lcsim.util.hitmap.*;
-
-import org.lcsim.recon.cluster.util.CalHitMapDriver;
-import org.lcsim.digisim.DigiSimDriver;
-import org.lcsim.digisim.SimCalorimeterHitsDriver;
-import org.lcsim.util.hitmap.HitListToHitMapDriver;
-import org.lcsim.util.hitmap.HitMapToHitListDriver;
-import org.lcsim.event.util.CreateFinalStateMCParticleList;
-import org.lcsim.recon.cluster.cheat.PerfectClusterer;
-import org.lcsim.recon.pfa.cheat.PerfectIdentifier;
-
-import org.lcsim.recon.cluster.cheat.CheatClusterDriver;
-import org.lcsim.recon.tracking.cheat.CheatTrackDriver;
-import org.lcsim.recon.particle.CheatParticleDriver;
-import org.lcsim.contrib.Cassell.recon.Cheat.PPRParticleDriver;
-
-import org.lcsim.recon.cluster.fixedcone.*;
-import org.lcsim.recon.cluster.nn.*;
-import org.lcsim.recon.cluster.directedtree.DirectedTreeDriver;
-
-import hep.physics.jet.*;
-
-public class PFATemplate extends Driver
-{
-   
-//   String FSname = "SimFinalStateParticles";
-//   String Tname = "RefinedCheatTracks";
-//   String Cname = "CombinedDigiCheatClusters";
-//   String defRname = "CheatReconstructedParticles";
-     boolean FullPFA = false;
-    
-   public PFATemplate()
-   {
-       
-//  use DIGISIM to get hits after timing, threshold, etc. cuts 
-//  this implementation allows individual steering file to be used
-       add(new CalHitMapDriver());
-       DigiSimDriver digi = new DigiSimDriver();
-       //  set steering file - CHANGE THIS TO YOUR DIRECTORY
-//       digi.setSteeringFile("C:\\Documents and Settings\\adminsrm\\.JAS3\\java\\WSc0005.steer");
-//       digi.setSteeringFile("C:\\Documents and Settings\\adminsrm\\.JAS3\\java\\WSc000225.steer");  
-       digi.setSteeringFile("C:\\cvsstuff\\lcsim\\src\\org\\lcsim\\contrib\\SteveMagill\\WSc000225.steer");     
-//       digi.setSteeringFile("C:\\Documents and Settings\\tonyj\\.JAS3\\java\\WSc0005.steer");
-//       digi.setSteeringFile("C:\\Documents and Settings\\adminsrm\\.JAS3\\java\\WSc000225.steer");       
-//       digi.setSteeringFile("C:\\Documents and Settings\\adminsrm\\.JAS3\\java\\WSc001.steer");
-//       digi.setSteeringFile("C:\\Documents and Settings\\adminsrm\\.JAS3\\java\\WRPCnothr.steer");
-       add(digi);
-       add(new SimCalorimeterHitsDriver());
-       //  output of DigiSim is hit collections - EcalBarrDigiHits, EcalEndcapDigiHits, HcalBarrDigiHits, HcalEndcapDigiHits
-       
-//  make subdetector hitmaps from DigiSim collections
-       HitListToHitMapDriver ebhitmap = new HitListToHitMapDriver();
-       ebhitmap.addInputList("EcalBarrDigiHits");
-       ebhitmap.setOutput("EMBarrhitmap");
-       add(ebhitmap);
-       HitListToHitMapDriver hbhitmap = new HitListToHitMapDriver();
-       hbhitmap.addInputList("HcalBarrDigiHits");
-       hbhitmap.setOutput("HADBarrhitmap");
-       add(hbhitmap);
-       HitListToHitMapDriver eehitmap = new HitListToHitMapDriver();
-       eehitmap.addInputList("EcalEndcapDigiHits");
-       eehitmap.setOutput("EMEndcaphitmap");
-       add(eehitmap);
-       HitListToHitMapDriver hehitmap = new HitListToHitMapDriver();
-       hehitmap.addInputList("HcalEndcapDigiHits");
-       hehitmap.setOutput("HADEndcaphitmap"); 
-       add(hehitmap);
-
-// make a combined hitmap for the digisim output hits - now have 5 hitmaps, 1 for each cal subdetector and 1 with all hits
-       HitListToHitMapDriver digiHitMap = new HitListToHitMapDriver();
-       digiHitMap.addInputList("EcalBarrDigiHits");
-       digiHitMap.addInputList("EcalEndcapDigiHits");
-       digiHitMap.addInputList("HcalBarrDigiHits");
-       digiHitMap.addInputList("HcalEndcapDigiHits");
-       digiHitMap.setOutput("digi hitmap");
-       add(digiHitMap);
-       
-       // Set up the MC list for perfect PFA 
-//       double rcut = 730.;  // can have 3 hits in tracker (layer 3 is at 727 for ACME 0605)
-//       double zcut = 730.;  // can have 3 hits in tracker (layer 3 is at 727 for ACME 0605)
-       double rcut = 400.;  //  Bruce said 400 mm at meeting March 13
-       double zcut = 400.;
-       CreateFinalStateMCParticleList mcListMakerGen = new CreateFinalStateMCParticleList("Gen");
-       CreateFinalStateMCParticleList mcListMakerSim = new CreateFinalStateMCParticleList("Sim");
-       mcListMakerSim.setRadiusCut(rcut);
-       mcListMakerSim.setZCut(zcut);
-//       mcListMakerSim.setKeepContinuousElectrons();
-//       mcListMakerSim.setKeepContinuousHadrons();
-//       mcListMakerSim.setKeepContinuousPhotons();
-       add(mcListMakerGen);
-       add(mcListMakerSim);
-       String mcListGen = "GenFinalStateParticles";
-       String mcListSim = "SimFinalStateParticles";
-       String mcList = mcListSim; // Can choose the Gen or Sim list here
-             
-       String Tname = "RefinedCheatTracks";
-       add(new CheatTrackDriver());
-       
-       String Cname = "PerfectCheatClusters";
-       String[] collections = {"EcalBarrDigiHits","EcalEndcapDigiHits","HcalBarrDigiHits","HcalEndcapDigiHits"};
-       add (new CheatClusterDriver(collections,Cname));
-              
-       String CRPname = "CheatReconstructedParticles";
-       CheatParticleDriver cpd = new CheatParticleDriver(Cname,Tname,mcList);
-       //  Inputs Cheated Tracks, Cheated Clusters, and MC particle list to create Cheated Particles
-       cpd.setOutputName(CRPname);
-       add(cpd);
-       
-       // now make (more realistic) cheat tracks, etc with PPR driver
-       String outName = "PerfectRecoParticles";
-       int minT = 3;
-       int minC = 2;
-       PPRParticleDriver d = new PPRParticleDriver(CRPname, outName);
-       d.setMinTrackerHits(minT);
-       d.setMinCalorimeterHits(minC);
-       add(d);
-       
-       //  this makes perfect tracks from the perfect particles
-       PerfectTrackDriver perftrk = new PerfectTrackDriver();
-//       perftrk.setParticleNames(CRPname);
-       perftrk.setParticleNames(outName);
-       perftrk.setTrackNames("PerfectTracks");
-       add(perftrk);
-
-       //  when ready, add real tracks here
-       
-//  TRACK-MIP ASSOCIATION driver - this is an example of a PFA algorithm running on collections
-//  hitmaps are modified by the algorithm - mip hits are removed from hitmaps
-       double dminE = 0.005;
-       double dminH = 3*dminE;
-       double dminTrC = 0.0075;  // original default is 0.0075, .008
-       double mincd = 2.5;  // min density to make mip
-       TrackMipClusterDriver TMdriver = new TrackMipClusterDriver(dminE, dminH, dminTrC, mincd);
-       String[] tmcollnames = {"EcalBarrDigiHits","HcalBarrDigiHits","EcalEndcapDigiHits","HcalEndcapDigiHits"};
-       TMdriver.setCollectionNames(tmcollnames);
-       TMdriver.setClusterNameExtension("TMClusters");
-       add(TMdriver);
-       
-       //  Convert modified hitmap to hit list for clustering after mips removed
-       HitMapToHitListDriver embconverter = new HitMapToHitListDriver();
-       embconverter.setInputHitMap("EMBarrhitmap");
-       embconverter.setOutputList("EBTMHits");
-       add(embconverter);
-       HitMapToHitListDriver emeconverter = new HitMapToHitListDriver();
-       emeconverter.setInputHitMap("EMEndcaphitmap");
-       emeconverter.setOutputList("EECTMHits");
-       add(emeconverter);
-       HitMapToHitListDriver hadbconverter = new HitMapToHitListDriver();
-       hadbconverter.setInputHitMap("HADBarrhitmap");
-       hadbconverter.setOutputList("HBTMHits");
-       add(hadbconverter);
-       HitMapToHitListDriver hadeconverter = new HitMapToHitListDriver();
-       hadeconverter.setInputHitMap("HADEndcaphitmap");
-       hadeconverter.setOutputList("HECTMHits");
-       add(hadeconverter);
-              
-//  PHOTON FINDER
-       //  Fixed Cone (use for photons now until DT is fixed)
-       double radius = 0.025;
-       double seed = 0.;
-       double minE = 0.0;
-       FixedConeClusterDriver FCdriver = new FixedConeClusterDriver(radius, seed, minE);
-       //  for now, use digihits, but will use EMBarrTMHits and EMEndcapTMHits eventually
-       String[] fchitcollnames = {"EBTMHits","EECTMHits","HBTMHits","HECTMHits"};
-       FCdriver.setCollectionNames(fchitcollnames);
-       FCdriver.setClusterNameExtension("FCClus");
-       add(FCdriver);
-       
-       // to select EM clusters for photon finding, first need to eliminate those EM clusters
-       // that match with a HAD cluster.  Pick a clusterer with good purity - don't want to
-       // make clusters from too many different particles.
-       // first for barrel
-//       CombinedClusterDriver CCBdriver = new CombinedClusterDriver();
-//       String embclusname = ("EBTMHitsFCClus");
-//       String hadbclusname = ("HBTMHitsFCClus");
-//       String EBclname = ("EBOnlyClusters");
-//       CCBdriver.setInputEClusterName(embclusname);
-//       CCBdriver.setInputHClusterName(hadbclusname);
-//       CCBdriver.setOutputClusterName(EBclname);
-//       add(CCBdriver);
-       // for endcap
-//       CombinedClusterDriver CCECdriver = new CombinedClusterDriver();
-//       String emecclusname = ("EECTMHitsFCClus");
-//       String hadecclusname = ("HECTMHitsFCClus");
-//       String EECclname = ("EECOnlyClusters");
-//       CCECdriver.setInputEClusterName(emecclusname);
-//       CCECdriver.setInputHClusterName(hadecclusname);
-//       CCECdriver.setOutputClusterName(EECclname);
-//       add(CCECdriver);
-
-       //  Use Directed Tree clusterer first to set up photon finding
-       //  this is setup differently than NN - no choice in hit collections - does all hits
-//       DirectedTreeDriver DTBdriver = new DirectedTreeDriver();
-//       DTBdriver.setInputHitMap("EMBarrhitmap");
-//       DTBdriver.setOutputClusterList("EBTMHitsFCClus");
-//       add(DTBdriver);
-       
-//       DirectedTreeDriver DTECdriver = new DirectedTreeDriver();
-//       DTECdriver.setInputHitMap("EMEndcaphitmap");
-//       DTECdriver.setOutputClusterList("EECTMHitsFCClus");
-//       add(DTECdriver);
-
-       // add photon finder here - takes above DT (or fixed cone) clusters as input,
-       // runs NN 11110 on the cluster hits and applies HMatrix
-       // output is photon clusters  had mincells=40?, cluster must be more than dTrcl from track
-       int mincells = 20;
-       double dTrcl = 0.05;  // Graham says photons are 0.06 wide 
-       PhotonFinderDriver Phdriver = new PhotonFinderDriver(mincells,dTrcl);
-       String EBclname = ("EBTMHitsFCClus");
-       String EECclname = ("EECTMHitsFCClus");
-       Phdriver.setBInputClusterName(EBclname);
-       Phdriver.setECInputClusterName(EECclname);
-//       Phdriver.setClusterNameExtension("PhoClus");
-       add(Phdriver);
-       
-       //  Now, modify hitmap taking out hits in Photons, then make collectons for hadron shower clustering
-       //  barrel
-       ClusterListToHitMapDriver BPhotoHitDriver = new ClusterListToHitMapDriver();
-       BPhotoHitDriver.addInputList("PhotonBClusters");
-       BPhotoHitDriver.setOutputHitMap("BPHitMap");
-       add(BPhotoHitDriver);
-       HitMapSubtractDriver TMBPhodriver = new HitMapSubtractDriver();
-       TMBPhodriver.setFirstHitMap("EMBarrhitmap");
-       TMBPhodriver.setSecondHitMap("BPHitMap");
-       TMBPhodriver.setOutputHitMap("EBTMPhitmap");
-       add(TMBPhodriver);
-       HitMapToHitListDriver btmphoconverter = new HitMapToHitListDriver();
-       btmphoconverter.setInputHitMap("EBTMPhitmap");
-       btmphoconverter.setOutputList("EBTMPHits");
-       add(btmphoconverter);
-       //  endcap
-       ClusterListToHitMapDriver ECPhotoHitDriver = new ClusterListToHitMapDriver();
-       ECPhotoHitDriver.addInputList("PhotonECClusters");
-       ECPhotoHitDriver.setOutputHitMap("ECPHitMap");
-       add(ECPhotoHitDriver);
-       HitMapSubtractDriver TMECPhodriver = new HitMapSubtractDriver();
-       TMECPhodriver.setFirstHitMap("EMEndcaphitmap");
-       TMECPhodriver.setSecondHitMap("ECPHitMap");
-       TMECPhodriver.setOutputHitMap("EECTMPhitmap");
-       add(TMECPhodriver);
-       HitMapToHitListDriver ectmphoconverter = new HitMapToHitListDriver();
-       ectmphoconverter.setInputHitMap("EECTMPhitmap");
-       ectmphoconverter.setOutputList("EECTMPHits");
-       add(ectmphoconverter);
-       
-       //  make a combined hitmap for hits left after mip, photon finding
-       HitListToHitMapDriver newHitMap = new HitListToHitMapDriver();
-       newHitMap.addInputList("EBTMPHits");
-       newHitMap.addInputList("EECTMPHits");
-       newHitMap.addInputList("HBTMHits");
-       newHitMap.addInputList("HECTMHits");
-       newHitMap.setOutput("PreTrShowerhitmap");
-       add(newHitMap);
-       
-       // make a collection to display
-       HitMapToHitListDriver prTrShconverter = new HitMapToHitListDriver();
-       prTrShconverter.setInputHitMap("PreTrShowerhitmap");
-       prTrShconverter.setOutputList("PreTrShowHits");
-       add(prTrShconverter);
-       
-//  TRACK - CLUSTER MATCHING Algorithm here
-       // cluster remaining hits in ECAL, HCAL for track matching - 
-       // use loose NN clusterer 10,10,10,10?
-       int hdU = 3;
-       int hdV = 3;
-       int hdLayer = 3;
-       int hncells = 2;
-       double hthresh = 0;
-       NearestNeighborClusterDriver NNHdriver = new NearestNeighborClusterDriver(hdU, hdV, hdLayer, hncells, hthresh);
-       String[] nnhhitcollnames = {"HBTMHits","HECTMHits"};
-       NNHdriver.setCollectionNames(nnhhitcollnames);
-       NNHdriver.setClusterNameExtension("NNHClus");
-       add(NNHdriver);
-              
-       // now do EM also - use NN here
-       int dU = 1;
-       int dV = 1;
-       int dLayer = 3;
-       int ncells = 2;
-       double thresh = 0;
-       NearestNeighborClusterDriver NNEdriver = new NearestNeighborClusterDriver(dU, dV, dLayer, ncells, thresh);
-       String[] nnehitcollnames = {"EBTMPHits","EECTMPHits"};
-       NNEdriver.setCollectionNames(nnehitcollnames);
-       NNEdriver.setClusterNameExtension("NNEClus");
-       add(NNEdriver);
-       
-//       DirectedTreeDriver DTHECdriver = new DirectedTreeDriver();
-//       DTHECdriver.setInputHitMap("HADEndcaphitmap");
-//       DTHECdriver.setOutputClusterList("HECDTClus");
-//       add(DTHECdriver);
-
-//       DirectedTreeDriver DTEBdriver = new DirectedTreeDriver();
-//       DTEBdriver.setInputHitMap("EBTMPhitmap");
-//       DTEBdriver.setOutputClusterList("EBDTClus");
-//       add(DTEBdriver);
-       
-//       DirectedTreeDriver DTEECdriver = new DirectedTreeDriver();
-//       DTEECdriver.setInputHitMap("EECTMPhitmap");
-//       DTEECdriver.setOutputClusterList("EECDTClus");
-//       add(DTEECdriver);
-       
-       //  add matching driver here
-       double minsep = 0.015;
-       int nloop = 4;
-       double minEp = 0.65;
-       TrackShowerClusterDriver TrShdriver = new TrackShowerClusterDriver(minsep, nloop, minEp);
-//       String[] shclnames = {"EBTMPHitsNNEClus","EECTMPHitsNNEClus","HBDTClus","HECDTClus"}; // EM NN, HAD DT
-       String[] shclnames = {"EBTMPHitsNNEClus","EECTMPHitsNNEClus","HBTMHitsNNHClus","HECTMHitsNNHClus"}; // EM NN, HAD NN
-//       String[] shclnames = {"EBDTClus","EECDTClus","HBDTClus","HECDTClus"}; // EM DT, HAD DT
-       TrShdriver.setClusterNames(shclnames);
-       add(TrShdriver);
-       
-       ClusterListToHitMapDriver TrShowerHitDriver = new ClusterListToHitMapDriver();
-       TrShowerHitDriver.addInputList("TrackShowerClusters");
-       TrShowerHitDriver.setOutputHitMap("TSHitMap");
-       add(TrShowerHitDriver);
-       HitMapSubtractDriver TSsubdriver = new HitMapSubtractDriver();
-       TSsubdriver.setFirstHitMap("PreTrShowerhitmap");
-       TSsubdriver.setSecondHitMap("TSHitMap");
-       TSsubdriver.setOutputHitMap("LeftOverhitmap");
-       add(TSsubdriver);
-       
-       HitMapToHitListDriver LOconverter = new HitMapToHitListDriver();
-       LOconverter.setInputHitMap("LeftOverhitmap");
-       LOconverter.setOutputList("TMPTrHits");
-       add(LOconverter);
-
-       //  try DT here with fewer hits
-       DirectedTreeDriver DTNHdriver = new DirectedTreeDriver();
-       DTNHdriver.setInputHitMap("LeftOverhitmap");
-       DTNHdriver.setOutputClusterList("NHCandClusters");
-       add(DTNHdriver);
-       
-       // add neutral hadron finder here
-//       NeutralHadronClusterDriver NHCldriver = new NeutralHadronClusterDriver();
-       int ncell = 12;  // minimum number of cal cells in a NH cluster
-       double Enmin = 0.250;  // minimum cluster energy
-       double ccdistance = 0.125;  // distance in dthdphi to merge clusters
-       NHCandClusterDriver NHCldriver = new NHCandClusterDriver(ncell,Enmin,ccdistance);       
-//       String[] shclnames = {"EBTMPHitsNNEClus","EECTMPHitsNNEClus","HBDTClus","HECDTClus"}; // EM NN, HAD DT
-//       String nhclname = {"NHCandClusters"};
-//       String[] shclnames = {"EBDTClus","EECDTClus","HBDTClus","HECDTClus"}; // EM DT, HAD DT
-       NHCldriver.setInputClusterName("NHCandClusters");
-       NHCldriver.setOutputClusterName("NeutralHadronClusters");
-       add(NHCldriver);
-
-       //  Make Reconstructed Particle List from tracks, clusters
-       ClusterToReconstructedParticleDriver ClRPdriver = new ClusterToReconstructedParticleDriver();
-       ClRPdriver.setTrackNames("PerfectTracks");
-       String[] phnames = {"PhotonBClusters","PhotonECClusters"};
-       ClRPdriver.setPhotonNames(phnames);
-       ClRPdriver.setNeutralHadNames("NeutralHadronClusters");
-       ClRPdriver.setRecoParticleName("AllRecoParticles");
-       add(ClRPdriver);
-
-   }
-}
CVSspam 0.2.8