Print

Print


Commit in lcsim/src/org/lcsim/contrib/Cassell/recon/Cheat on MAIN
OutputPPRRecon.java+66added 1.1
AddSmearing.java+51.1 -> 1.2
PPRParticleDriver.java+351.6 -> 1.7
+106
1 added + 2 modified, total 3 files
Updates for the PPR reconstruction

lcsim/src/org/lcsim/contrib/Cassell/recon/Cheat
OutputPPRRecon.java added at 1.1
diff -N OutputPPRRecon.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ OutputPPRRecon.java	29 Feb 2008 17:19:44 -0000	1.1
@@ -0,0 +1,66 @@
+/*
+ * OutputPPRRecon.java
+ *
+ * Created on February 5, 2008, 11:20 AM
+ *
+ * To change this template, choose Tools | Options and locate the template under
+ * the Source Creation and Management node. Right-click the template and choose
+ * Open. You can then make changes to the template in the Source Editor.
+ */
+
+package org.lcsim.contrib.Cassell.recon.Cheat;
+import org.lcsim.util.Driver;
+import java.io.File;
+import org.lcsim.util.loop.LCIODriver;
+
+/**
+ *
+ * @author cassell
+ */
+public class OutputPPRRecon extends Driver
+{
+    String[] ignore = {"EcalBarrHits","EcalBarrRawHits","EcalBarrRaw2sim",
+        "EcalEndcapHits","EcalEndcapRawHits","EcalEndcapRaw2sim",
+        "HcalBarrHits","HcalBarrRawHits","HcalBarrRaw2sim",
+        "HcalEndcapHits","HcalEndcapRawHits","HcalEndcapRaw2sim",
+        "ReconPerfectReconParticles","ReconPerfectVisReconParticles",
+        "ReconClusters","RefinedCheatClusters","EcalBarrDigiHitsCheatClusters",
+        "EcalEndcapDigiHitsCheatClusters","HcalBarrDigiHitsCheatClusters",
+        "HcalEndcapDigiHitsCheatClusters","PPRReconParticles",
+        "GenPerfectReconParticles","GenPerfectVisReconParticles"};
+    String CheatReconRname = "ReconPerfectReconParticles";
+    String PPRPflowRname = "PPRReconParticles";
+    String CheatReconFSname = "ReconFSParticles";
+    /** Creates a new instance of OutputPPRRecon */
+    public OutputPPRRecon(String location, String lciofn)
+    {
+//
+// Do the cheating reconstruction (includes Digisim)
+//
+        CheatReconDriver crd = new CheatReconDriver();
+        crd.setCheatReconstructedParticleOutputName(CheatReconRname);
+        crd.setCheatFSParticleOutputName(CheatReconFSname);
+        add(crd);
+        
+        
+        
+//
+// Make the perfect pattern recognition pflow reconstructed particles from the
+// Cheat Recon particles
+//
+        add(new PPRDriver(CheatReconRname,PPRPflowRname));
+        
+//
+// Write the events to disk
+//
+        File output = new File(location,lciofn);
+        LCIODriver driver = new LCIODriver(output);
+        for(int i=0;i<ignore.length;i++)
+        {
+            driver.getWriter().addIgnore(ignore[i]);
+        }
+        add(driver);
+        
+    }
+    
+}

lcsim/src/org/lcsim/contrib/Cassell/recon/Cheat
AddSmearing.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- AddSmearing.java	26 Nov 2007 19:40:44 -0000	1.1
+++ AddSmearing.java	29 Feb 2008 17:19:44 -0000	1.2
@@ -19,6 +19,8 @@
 import java.util.Map;
 import java.util.HashMap;
 import org.lcsim.mc.fast.tracking.ReconTrack;
+import org.lcsim.event.LCRelation;
+import org.lcsim.digisim.MyLCRelation;
 import hep.physics.vec.Hep3Vector;
 import hep.physics.vec.BasicHep3Vector;
 import org.lcsim.util.lcio.LCIOConstants;
@@ -47,6 +49,7 @@
         List<Track> inl = event.get(Track.class,inTracks);
         List<Track> sml = event.get(Track.class,smearedTracks);
         List<Track> outl = new ArrayList<Track>();
+        List<LCRelation> lcrelationList = new ArrayList<LCRelation>();
         Map<MCParticle,ReconTrack> tm = new HashMap<MCParticle,ReconTrack>();
         for(Track t:sml)
         {
@@ -71,10 +74,12 @@
                 rc.setTrackType(smt.getType());
                 rc.addHits(bt.getTrackerHits());
                 outl.add(rc);
+                lcrelationList.add(new MyLCRelation((Track) rc, p));
             }
         }
         int flag = (1<<LCIOConstants.TRBIT_HITS);
         event.put(outTracks,outl,Track.class,flag);
+        event.put("CheatTracksToMCP", lcrelationList, LCRelation.class, 0);
     }
     
 }

lcsim/src/org/lcsim/contrib/Cassell/recon/Cheat
PPRParticleDriver.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- PPRParticleDriver.java	20 Nov 2007 16:34:49 -0000	1.6
+++ PPRParticleDriver.java	29 Feb 2008 17:19:44 -0000	1.7
@@ -17,9 +17,14 @@
 import java.util.HashMap;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.Track;
+import org.lcsim.event.Cluster;
+import org.lcsim.event.CalorimeterHit;
+import org.lcsim.recon.cluster.util.BasicCluster;
 import org.lcsim.event.ReconstructedParticle;
 import org.lcsim.event.base.MCReconstructedParticle;
+import org.lcsim.event.base.BaseReconstructedParticle;
 import org.lcsim.mc.fast.tracking.ReconTrack;
+import org.lcsim.util.lcio.LCIOConstants;
 
 /**
  *
@@ -62,12 +67,14 @@
 //        System.out.println("Making PPR list from "+inlist);
         List<MCReconstructedParticle> rl = event.get(MCReconstructedParticle.class,inlist);
         List<ReconstructedParticle>outrl = new ArrayList<ReconstructedParticle>();
+        List<ReconstructedParticle>outrls = new ArrayList<ReconstructedParticle>();
         List<MCParticle>outrlMC = new ArrayList<MCParticle>();
         crpc = new PPRReconParticleConstructor();
         crpc.setMinTrackerHits(minThits);
         crpc.setMinCalorimeterHits(minChits);
         Map<MCParticle,ReconTrack> rtl = null;
         List<List<Track>> all = event.get(Track.class);
+        List<Cluster> pprclusters = new ArrayList<Cluster>();
         for(List<Track> tl:all)
         {
             if(event.getMetaData(tl).getName().compareTo(fastMC) == 0)
@@ -94,12 +101,40 @@
             ReconstructedParticle rp = crpc.makeReconParticle(p.getMCParticle(),p.getClusters(),p.getTracks(),rt);
             if(rp.getEnergy() > 0.)
             {
+                BaseReconstructedParticle rps = new BaseReconstructedParticle(rp.getMass(),rp.asFourVector());
+                rps.setCharge(rp.getCharge());
+                rps.setGoodnessOfPid(rp.getGoodnessOfPID());
+                rps.setParticleIdUsed(rp.getParticleIDUsed());
+                rps.setReferencePoint(rp.getReferencePoint());
+                rps.setStartVertex(rp.getStartVertex());
+                rps.setType(rp.getType());
+                for(Track track:rp.getTracks())
+                {
+                    rps.addTrack(track);
+                }
+                BasicCluster pprc = new BasicCluster();
+                for(Cluster cl:rp.getClusters())
+                {
+                    for(CalorimeterHit h:cl.getCalorimeterHits())
+                    {
+                        pprc.addHit(h);
+                    }
+                }
+                if(pprc.getCalorimeterHits().size() > 0)
+                {
+                    rps.addCluster(pprc);
+                    pprclusters.add(pprc);
+                }
                 rp.addParticle(p);
                 outrl.add(rp);
+                outrls.add(rps);
                 outrlMC.add(p.getMCParticle());
             }
         }
         event.put(outlist,outrl,ReconstructedParticle.class,0);
+        event.put("S"+outlist,outrls,ReconstructedParticle.class,0);
+        int flag = 1<<LCIOConstants.CLBIT_HITS;
+        event.put("PPRClusters",pprclusters,Cluster.class,flag);
         if (outlistMC != null)
         {
             event.put(outlistMC,outrlMC,MCParticle.class,0);
CVSspam 0.2.8