Print

Print


Commit in SlicDiagnostics on MAIN
src/org/lcsim/slic/diagnostics/CalorimeterHitPlotsDriver.java+45added 1.1
                              /EventSummaryPlotsDriver.java+114added 1.1
                              /GenericHitPlotsDriver.java+134added 1.1
                              /MCParticlePlotsDriver.java+55added 1.1
                              /CalorimeterHitPlots.java+4-81.1 -> 1.2
                              /GenericHitPlots.java+12-511.3 -> 1.4
                              /HitUtil.java+1-11.1 -> 1.2
                              /SlicDiagnosticsDriver.java+11-1961.3 -> 1.4
test/org/lcsim/slic/diagnostics/SlicDiagnosticsTest.java+30-111.3 -> 1.4
+406-267
4 added + 5 modified, total 9 files
Made all plot sets into standalone drivers.

SlicDiagnostics/src/org/lcsim/slic/diagnostics
CalorimeterHitPlotsDriver.java added at 1.1
diff -N CalorimeterHitPlotsDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ CalorimeterHitPlotsDriver.java	28 Jul 2005 19:20:14 -0000	1.1
@@ -0,0 +1,45 @@
+package org.lcsim.slic.diagnostics;
+
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.EventHeader.LCMetaData;
+import org.lcsim.event.SimCalorimeterHit;
+
+/**
+ *
+ * @author jeremym
+ */
+public class CalorimeterHitPlotsDriver extends Driver
+{    
+    Map<String, CalorimeterHitPlots> calorimeterHitPlots = new HashMap<String,CalorimeterHitPlots>();    
+       
+    public CalorimeterHitPlotsDriver()
+    {}
+    
+    protected void process(EventHeader event)
+    {
+        super.process(event); 
+        
+        List<List<SimCalorimeterHit>> simCalorimeterHitCollections = event.get(SimCalorimeterHit.class);
+        for ( List<SimCalorimeterHit> simCalorimeterHits : simCalorimeterHitCollections)
+        {
+            LCMetaData meta = event.getMetaData(simCalorimeterHits);          
+            CalorimeterHitPlots calPlots = getCalorimeterHitPlots(meta);
+            calPlots.fill(simCalorimeterHits);
+        }
+    }            
+
+    private CalorimeterHitPlots getCalorimeterHitPlots(LCMetaData meta)
+    {
+        if ( calorimeterHitPlots.get(meta.getName()) == null )
+        {
+            calorimeterHitPlots.put(meta.getName(), new CalorimeterHitPlots(meta) );
+        }
+        
+        return calorimeterHitPlots.get(meta.getName());
+    }            
+}
\ No newline at end of file

SlicDiagnostics/src/org/lcsim/slic/diagnostics
EventSummaryPlotsDriver.java added at 1.1
diff -N EventSummaryPlotsDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ EventSummaryPlotsDriver.java	28 Jul 2005 19:20:14 -0000	1.1
@@ -0,0 +1,114 @@
+/*
+ * SlicDiagnosticsDriver.java
+ *
+ * Created on July 25, 2005, 4:04 PM
+ */
+
+package org.lcsim.slic.diagnostics;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.io.File;
+
+import org.freehep.application.Application;
+import org.freehep.application.studio.Studio;
+import org.freehep.record.loop.SequentialRecordLoop;
+import org.freehep.record.source.SequentialRecordSource;
+
+import org.lcsim.util.aida.AIDA;
+import hep.aida.ICloud1D;
+import hep.aida.ITree;
+
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.EventHeader.LCMetaData;
+import org.lcsim.event.SimTrackerHit;
+import org.lcsim.event.SimCalorimeterHit;
+import org.lcsim.event.MCParticle;
+import org.lcsim.geometry.IDDecoder;
+import org.lcsim.event.EventHeader.LCMetaData;
+
+/**
+ *
+ * @author jeremym
+ */
+public class EventSummaryPlotsDriver extends Driver
+{
+    AIDA aida = AIDA.defaultInstance();
+    ITree tree = aida.tree();    
+    
+    ICloud1D eventTotalEnergy;
+    ICloud1D eventHits;
+    ICloud1D eventTrackerHits;
+    ICloud1D eventCalorimeterHits;
+    ICloud1D eventTrackerEnergy;
+    ICloud1D eventCalorimeterEnergy;
+    
+    double trackerTotalEnergy = 0;
+    double calorimeterTotalEnergy = 0;
+    int trackerHitCount = 0;
+    int calorimeterHitCount = 0;
+    
+    EventSummaryPlotsDriver()
+    {
+        definePlots();
+    }
+    
+    private final void definePlots()
+    {
+        eventTotalEnergy = aida.cloud1D("eventEnergy");
+        eventHits = aida.cloud1D("eventHits");
+        eventTrackerHits = aida.cloud1D("eventTrackerHits");
+        eventCalorimeterHits = aida.cloud1D("eventCalorimeterHits");
+        eventTrackerEnergy = aida.cloud1D("eventTrackerEnergy");
+        eventCalorimeterEnergy = aida.cloud1D("eventCalorimeterEnergy");
+    }
+    
+    protected void process(EventHeader event)
+    {
+        super.process(event);
+        
+        trackerTotalEnergy = calorimeterTotalEnergy = 0;
+        trackerHitCount = calorimeterHitCount = 0;
+        
+        /* cal hits */
+        List<List<SimCalorimeterHit>> cals = event.get(SimCalorimeterHit.class);
+        for ( List<SimCalorimeterHit> simCalHits : cals )
+        {
+            for( SimCalorimeterHit hit : simCalHits )
+            {
+                calorimeterHitCount += 1;
+                calorimeterTotalEnergy += hit.getEnergy();
+            }
+        }
+        
+        /* trk hits */
+        List<List<SimTrackerHit>> trks = event.get(SimTrackerHit.class);
+        for ( List<SimTrackerHit> simTrkHits : trks )
+        {
+            for( SimTrackerHit hit : simTrkHits )
+            {
+                trackerHitCount += 1;
+                trackerTotalEnergy += hit.getdEdx();
+            }
+        }
+        
+        /* fill the plots */
+        fill();
+    }
+        
+    public void fill()
+    {
+        /* event energy */
+        eventTotalEnergy.fill(trackerTotalEnergy + calorimeterTotalEnergy);
+        eventCalorimeterEnergy.fill(calorimeterTotalEnergy);
+        eventTrackerEnergy.fill(trackerTotalEnergy);
+        
+        /* event hit counts */
+        eventTrackerHits.fill(trackerHitCount);
+        eventCalorimeterHits.fill(calorimeterHitCount);
+        eventHits.fill(trackerHitCount + calorimeterHitCount);                
+    }
+}
\ No newline at end of file

SlicDiagnostics/src/org/lcsim/slic/diagnostics
GenericHitPlotsDriver.java added at 1.1
diff -N GenericHitPlotsDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ GenericHitPlotsDriver.java	28 Jul 2005 19:20:14 -0000	1.1
@@ -0,0 +1,134 @@
+package org.lcsim.slic.diagnostics;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+
+import org.lcsim.util.aida.AIDA;
+import hep.aida.ITree;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.EventHeader.LCMetaData;
+import org.lcsim.util.Driver;
+import org.lcsim.event.SimCalorimeterHit;
+import org.lcsim.event.SimTrackerHit;
+import org.lcsim.geometry.IDDecoder;
+
+/**
+ *
+ * @author jeremym
+ */
+class GenericHitPlotsDriver extends Driver
+{
+    Map<String, GenericHitPlots> genericHitPlots = new HashMap<String,GenericHitPlots>();
+    
+    AIDA aida = org.lcsim.util.aida.AIDA.defaultInstance();
+    ITree tree = aida.tree();
+    
+    double trackerHitCount;
+    
+    /** Creates a new instance of SingleHitCollectionPlots */
+    public GenericHitPlotsDriver()
+    {
+        /* set ref to AIDA tree */
+        tree = aida.tree();
+    }
+    
+    protected void process(EventHeader event)
+    {      
+        /* proc tracker colls */
+        processTrackerCollections(event);
+        
+        /* proc cal colls */
+        processCalorimeterCollections(event);        
+    }
+       
+    private GenericHitPlots getGenericHitPlots(LCMetaData meta)
+    {
+        if ( genericHitPlots.get(meta.getName()) == null )
+        {
+            genericHitPlots.put(meta.getName(), new GenericHitPlots(meta) );
+        }
+        
+        return genericHitPlots.get(meta.getName());
+    }    
+    
+    private void processTrackerCollections(EventHeader event)
+    {        
+        List<List<SimTrackerHit>> simTrackerHitCollections = event.get(SimTrackerHit.class);
+        for ( List<SimTrackerHit> simTrackerHits : simTrackerHitCollections )
+        {            
+            LCMetaData meta = event.getMetaData(simTrackerHits);
+            GenericHitPlots plots = getGenericHitPlots(meta);
+            List<GenericHit> hits = makeTrackerHits(simTrackerHits, meta);
+            plots.fill(hits);            
+        }
+    }
+    
+    private void processCalorimeterCollections(EventHeader event)
+    {
+        List<List<SimCalorimeterHit>> simCalorimeterHitCollections = event.get(SimCalorimeterHit.class);
+        for ( List<SimCalorimeterHit> simCalorimeterHits : simCalorimeterHitCollections)
+        {            
+            LCMetaData meta = event.getMetaData(simCalorimeterHits);
+            GenericHitPlots plots = getGenericHitPlots(meta);
+            List<GenericHit> hits = makeCalorimeterHits(simCalorimeterHits, meta);
+            plots.fill(hits);            
+        }
+    }
+    
+    private static List<GenericHit> makeTrackerHits(List<SimTrackerHit> trackerHits, LCMetaData meta)
+    {
+        List<GenericHit> genericHits = new ArrayList<GenericHit>();
+        for (SimTrackerHit trackerHit : trackerHits)
+        {
+            GenericHit genericHit = makeTrackerHit(trackerHit, meta);
+            genericHits.add(genericHit);
+        }
+        return genericHits;
+    }
+    
+    private static List<GenericHit> makeCalorimeterHits(List<SimCalorimeterHit> calHits, LCMetaData meta)
+    {
+        List<GenericHit> genericHits = new ArrayList<GenericHit>();
+        for (SimCalorimeterHit calHit : calHits)
+        {
+            GenericHit genericHit = makeCalorimeterHit(calHit, meta);
+            genericHits.add(genericHit);
+        }
+        return genericHits;
+    }
+    
+    private static GenericHit makeCalorimeterHit(SimCalorimeterHit calorimeterHit, LCMetaData meta)
+    {
+        IDDecoder decoder = meta.getIDDecoder();
+        decoder.setID(calorimeterHit.getCellID() );
+        int layer = decoder.getLayer();
+        
+        return new GenericHit(
+                GenericHit.HitType.CALORIMETER,
+                meta.getName(),
+                calorimeterHit.getEnergy(),
+                calorimeterHit.getPosition(),
+                layer,
+                calorimeterHit.getTime()
+                );
+    }
+    
+    private static GenericHit makeTrackerHit(SimTrackerHit trackerHit, LCMetaData meta)
+    {
+        IDDecoder decoder = meta.getIDDecoder();
+        decoder.setID(trackerHit.getCellID() );
+        int layer = decoder.getLayer();
+        
+        return new GenericHit(
+                GenericHit.HitType.TRACKER,
+                meta.getName(),
+                trackerHit.getdEdx(),
+                trackerHit.getPoint(),
+                layer,
+                trackerHit.getTime()
+                );
+    }
+}

SlicDiagnostics/src/org/lcsim/slic/diagnostics
MCParticlePlotsDriver.java added at 1.1
diff -N MCParticlePlotsDriver.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ MCParticlePlotsDriver.java	28 Jul 2005 19:20:14 -0000	1.1
@@ -0,0 +1,55 @@
+package org.lcsim.slic.diagnostics;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.io.File;
+
+import org.freehep.application.Application;
+import org.freehep.application.studio.Studio;
+import org.freehep.record.loop.SequentialRecordLoop;
+import org.freehep.record.source.SequentialRecordSource;
+
+import org.lcsim.util.aida.AIDA;
+import hep.aida.ICloud1D;
+import org.lcsim.util.Driver;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.EventHeader.LCMetaData;
+import org.lcsim.event.SimTrackerHit;
+import org.lcsim.event.SimCalorimeterHit;
+import org.lcsim.event.MCParticle;
+import org.lcsim.geometry.IDDecoder;
+import org.lcsim.event.EventHeader.LCMetaData;
+
+/**
+ *
+ * @author jeremym
+ */
+public class MCParticlePlotsDriver extends Driver
+{
+    private AIDA aida = AIDA.defaultInstance();
+    
+    MCParticlePlots mcpPlots = new MCParticlePlots();        
+            
+    public MCParticlePlotsDriver()
+    {}
+    
+    protected void process(EventHeader event)
+    {
+        super.process(event);
+        
+        /* proc MCParticles coll */
+        processMCParticleCollection(event);        
+    }
+    
+    private void processMCParticleCollection(EventHeader event )
+    {
+        List<List<MCParticle>> mcpCollections = event.get(MCParticle.class);
+        
+        for ( List<MCParticle> mcp : mcpCollections )
+        {
+            mcpPlots.fill(mcp);
+        }
+    }        
+}

SlicDiagnostics/src/org/lcsim/slic/diagnostics
CalorimeterHitPlots.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- CalorimeterHitPlots.java	27 Jul 2005 23:21:36 -0000	1.1
+++ CalorimeterHitPlots.java	28 Jul 2005 19:20:14 -0000	1.2
@@ -3,7 +3,6 @@
  *
  * Created on July 27, 2005, 11:56 AM
  */
-
 package org.lcsim.slic.diagnostics;
 
 import java.util.List;
@@ -24,9 +23,8 @@
  */
 public class CalorimeterHitPlots
 {
-    AIDA aida = org.lcsim.util.aida.AIDA.defaultInstance();
-    
-    ITree tree;
+    AIDA aida = org.lcsim.util.aida.AIDA.defaultInstance();    
+    ITree tree = aida.tree();;
         
     /* plots: basic MCP */
     ICloud1D mcpCountPerHit;
@@ -38,9 +36,7 @@
     /** Creates a new instance of CalorimeterHitPlots */
     public CalorimeterHitPlots(LCMetaData meta)
     {
-        collName = meta.getName();
-        tree = aida.tree();
-        
+        collName = meta.getName();        
         definePlots();
     }
     
@@ -51,7 +47,7 @@
         mcpPDG = aida.cloud1D(collName + "_MCParticlesPDGCode");
         mcpSingleContribPDG = aida.cloud1D(collName + "_MCParticlesSingleContributorPDG");
         tree.cd("..");
-    }    
+    }            
     
     public void fill(List<SimCalorimeterHit> hits)
     {

SlicDiagnostics/src/org/lcsim/slic/diagnostics
GenericHitPlots.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- GenericHitPlots.java	27 Jul 2005 23:21:36 -0000	1.3
+++ GenericHitPlots.java	28 Jul 2005 19:20:14 -0000	1.4
@@ -1,9 +1,3 @@
-/*
- * SingleHitCollectionPlots.java
- *
- * Created on July 26, 2005, 10:44 AM
- */
-
 package org.lcsim.slic.diagnostics;
 
 import java.util.List;
@@ -13,10 +7,11 @@
 import hep.aida.ICloud1D;
 import hep.aida.ICloud2D;
 import hep.aida.ITree;
+import org.lcsim.event.EventHeader;
 import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.geometry.Subdetector;
+import org.lcsim.event.SimTrackerHit;
 import org.lcsim.geometry.subdetector.SubdetectorIDDecoder;
-import org.lcsim.util.Driver;
+
 
 /**
  *
@@ -25,9 +20,9 @@
 class GenericHitPlots
 {
     AIDA aida = org.lcsim.util.aida.AIDA.defaultInstance();
+    ITree tree = aida.tree();
     
-    String collName;
-    ITree tree;
+    String collName;    
     
     /* plots */
     ICloud1D energy;
@@ -40,13 +35,10 @@
     ICloud1D hitCount;
     ICloud1D hitAvgEnergy;
     ICloud1D layerEnergy;
-    ICloud1D layerHitCount;
-    
-//    double[] layerE;
-//    int[] layerHits;
+    ICloud1D layerHitCount;    
     
     int nlayers = 0;
-    double eventTotEnergy = 0;
+    double eventTotEnergy = 0;    
     
     LCMetaData meta;
     
@@ -60,23 +52,14 @@
         this.collName = meta.getName();
         
         /* set n layers */
-        nlayers = ((SubdetectorIDDecoder)meta.getIDDecoder()).getSubdetector().getLayering().getLayerCount();
-        
-        /* define energy per layer array */
-//        layerE = new double[nlayers];
-        
-        /* define # hits per layer array */
-//        layerHits = new int[nlayers];
-        
-        /* set ref to AIDA tree */
-        tree = aida.tree();
+        nlayers = ((SubdetectorIDDecoder)meta.getIDDecoder()).getSubdetector().getLayering().getLayerCount();               
         
         /* make dir for these plots (if doesn't exist) */
         makeDir();
         
         /* define plots for this coll */
         definePlots();
-    }
+    }        
     
     private void makeDir()
     {
@@ -99,14 +82,12 @@
         time = aida.cloud1D(collName + "_hitTime");
         thetaPhi = aida.cloud2D(collName + "_hitThetaPhi");
         xy = aida.cloud2D(collName + "_hitXY");
-        rz = aida.cloud2D(collName + "_hitRZ");        
+        rz = aida.cloud2D(collName + "_hitRZ");
         layer = aida.histogram1D(collName + "_hitLayer", nlayers, 0, nlayers);
         energyEvent = aida.cloud1D(collName + "_eventEnergy");
         hitCount = aida.cloud1D(collName + "_eventNumHits");
-        //layerEnergy = aida.cloud1D("layersAvgEnergyEvent");
-        //layerHitCount = aida.cloud1D("layersAvgHitCountEvent");
         tree.cd("..");
-    }
+    }    
     
     public void fill(List<GenericHit> hits)
     {
@@ -138,13 +119,7 @@
                 
                 /* hit layer */
                 layer.fill(hit.getLayer());
-                
-//                /* layer energy */
-//                layerE[hit.getLayer()] += hit.getEnergy();
-//                
-//                /* layer # hits */
-//                layerHits[hit.getLayer()] += 1;
-                
+                               
                 /* incr tot E */
                 eventTotEnergy += hit.getEnergy();
                 
@@ -162,20 +137,6 @@
             double hitAvgE = eventTotEnergy / nhits;
             hitAvgEnergy.fill(hitAvgE);
             
-//            /* fill layer plots from arrays */
-//            for ( int i=0; i < this.nlayers; i++)
-//            {
-//                /* energy by layer */
-//                layerEnergy.fill(i, layerE[i]);
-//                
-//                /* hit count by layer*/
-//                layerHitCount.fill(i, (double)layerHits[i]);
-//            }
-//            
-//            /* reset layer arrays */
-//            layerEnergy.fill(0);
-//            layerHitCount.fill(0);
-//            
             tree.cd("..");
         }
     }

SlicDiagnostics/src/org/lcsim/slic/diagnostics
HitUtil.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- HitUtil.java	27 Jul 2005 23:21:36 -0000	1.1
+++ HitUtil.java	28 Jul 2005 19:20:14 -0000	1.2
@@ -1,5 +1,5 @@
 /*
- * Util.java
+ * HitUtil.java
  *
  * Created on July 27, 2005, 2:45 PM
  */

SlicDiagnostics/src/org/lcsim/slic/diagnostics
SlicDiagnosticsDriver.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- SlicDiagnosticsDriver.java	27 Jul 2005 23:21:36 -0000	1.3
+++ SlicDiagnosticsDriver.java	28 Jul 2005 19:20:14 -0000	1.4
@@ -17,16 +17,12 @@
 import org.freehep.record.loop.SequentialRecordLoop;
 import org.freehep.record.source.SequentialRecordSource;
 
-import org.lcsim.util.aida.AIDA;
-import hep.aida.ICloud1D;
 import org.lcsim.util.Driver;
 import org.lcsim.event.EventHeader;
-import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.event.SimTrackerHit;
-import org.lcsim.event.SimCalorimeterHit;
 import org.lcsim.event.MCParticle;
 import org.lcsim.geometry.IDDecoder;
 import org.lcsim.event.EventHeader.LCMetaData;
+import org.lcsim.util.aida.AIDA;
 
 /**
  *
@@ -34,198 +30,23 @@
  */
 public class SlicDiagnosticsDriver extends Driver
 {
-    private AIDA aida = AIDA.defaultInstance();
+    AIDA aida = AIDA.defaultInstance();
     String fileName = null;
-    String defaultFileName = "slicDiagnostics.aida";
-    
-    Map<String, GenericHitPlots> genericHitPlots = new HashMap<String,GenericHitPlots>();
-    Map<String, CalorimeterHitPlots> calorimeterHitPlots = new HashMap<String,CalorimeterHitPlots>();
-    MCParticlePlots mcpPlots = new MCParticlePlots();
-    
-    int nEvents = 0;
-    
-    ICloud1D eventTotalEnergy;
-    ICloud1D eventHits;
-    ICloud1D eventTrackerHits;
-    ICloud1D eventCalorimeterHits;
-    ICloud1D eventTrackerEnergy;
-    ICloud1D eventCalorimeterEnergy;
-    
-    double eventEnergy = 0;
-    
-    double trackerTotalEnergy = 0;
-    double calorimeterTotalEnergy = 0;
+    String defaultFileName = "slicDiagnostics.aida";       
     
-    double trackerHitCount = 0;
-    double calorimeterHitCount = 0;
-    
-    /** Creates a new instance of SlicDiagnosticsDriver */
     public SlicDiagnosticsDriver()
-    {
-        eventTotalEnergy = aida.cloud1D("eventEnergy");
-        eventHits = aida.cloud1D("eventHits");
-        eventTrackerHits = aida.cloud1D("eventTrackerHits");
-        eventCalorimeterHits = aida.cloud1D("eventCalorimeterHits");
-        eventTrackerEnergy = aida.cloud1D("eventTrackerEnergy");
-        eventCalorimeterEnergy = aida.cloud1D("eventCalorimeterEnergy");
-    }
+    {}
     
+    /** Call child drivers. */
     protected void process(EventHeader event)
     {
-        /* reset hit counters */
-        trackerHitCount = calorimeterHitCount = 0;
-        
-        /* proc tracker colls */
-        processTrackerCollections(event);
-        
-        /* proc cal colls */
-        processCalorimeterCollections(event);
-        
-        /* proc MCParticles coll */
-        processMCParticleCollection(event);
-        
-        /* event total energy */
-        eventEnergy = 0;
-        for ( GenericHitPlots plots : genericHitPlots.values() )
-        {
-            eventEnergy += plots.getEventEnergy();
-        }
-        
-        /* fill event plots */
-        eventTotalEnergy.fill(eventEnergy);
-        eventTrackerHits.fill(trackerHitCount);
-        eventCalorimeterHits.fill(calorimeterHitCount);
-        eventHits.fill(trackerHitCount + calorimeterHitCount);
-        eventTrackerEnergy.fill(trackerTotalEnergy);
-        eventCalorimeterEnergy.fill(calorimeterTotalEnergy);
-        
-        /* incr tot n events */
-        ++nEvents;
-    }
-    
-    private void processMCParticleCollection(EventHeader event )
-    {
-        List<List<MCParticle>> mcpCollections = event.get(MCParticle.class);
-        
-        for ( List<MCParticle> mcp : mcpCollections )
-        {
-            mcpPlots.fill(mcp);
-        }
-    }
-    
-    private GenericHitPlots getGenericHitPlots(LCMetaData meta)
-    {
-        if ( genericHitPlots.get(meta.getName()) == null )
-        {
-            genericHitPlots.put(meta.getName(), new GenericHitPlots(meta) );
-        }
-        
-        return genericHitPlots.get(meta.getName());
-    }
-    
-    private CalorimeterHitPlots getCalorimeterHitPlots(LCMetaData meta)
-    {
-        if ( calorimeterHitPlots.get(meta.getName()) == null )
-        {
-            calorimeterHitPlots.put(meta.getName(), new CalorimeterHitPlots(meta) );
-        }
-        
-        return calorimeterHitPlots.get(meta.getName());
-    }
-    
-    private void processTrackerCollections(EventHeader event)
-    {
-        trackerTotalEnergy = 0;
-        List<List<SimTrackerHit>> simTrackerHitCollections = event.get(SimTrackerHit.class);
-        for ( List<SimTrackerHit> simTrackerHits : simTrackerHitCollections )
-        {
-            /* generic plots */
-            LCMetaData meta = event.getMetaData(simTrackerHits);
-            GenericHitPlots plots = getGenericHitPlots(meta);
-            List<GenericHit> hits = makeTrackerHits(simTrackerHits, meta);
-            plots.fill(hits);
-            
-            trackerHitCount += simTrackerHits.size();
-            trackerTotalEnergy += plots.getEventEnergy();
-        }
-    }
-    
-    private void processCalorimeterCollections(EventHeader event)
-    {
-        calorimeterTotalEnergy = 0;
-        List<List<SimCalorimeterHit>> simCalorimeterHitCollections = event.get(SimCalorimeterHit.class);
-        for ( List<SimCalorimeterHit> simCalorimeterHits : simCalorimeterHitCollections)
-        {
-            /* generic plots*/
-            LCMetaData meta = event.getMetaData(simCalorimeterHits);
-            GenericHitPlots plots = getGenericHitPlots(meta);
-            List<GenericHit> hits = makeCalorimeterHits(simCalorimeterHits, meta);
-            plots.fill(hits);
-            
-            /* cal plots */
-            CalorimeterHitPlots calPlots = getCalorimeterHitPlots(meta);
-            calPlots.fill(simCalorimeterHits);
-            
-            /* incr hit count */
-            calorimeterHitCount += simCalorimeterHits.size();
-            
-            /* add to total cal E */
-            calorimeterTotalEnergy += plots.getEventEnergy();
-        }
-    }
-    
-    private static List<GenericHit> makeTrackerHits(List<SimTrackerHit> trackerHits, LCMetaData meta)
-    {
-        List<GenericHit> genericHits = new ArrayList<GenericHit>();
-        for (SimTrackerHit trackerHit : trackerHits)
-        {
-            GenericHit genericHit = makeTrackerHit(trackerHit, meta);
-            genericHits.add(genericHit);
-        }
-        return genericHits;
-    }
-    
-    private static List<GenericHit> makeCalorimeterHits(List<SimCalorimeterHit> calHits, LCMetaData meta)
-    {
-        List<GenericHit> genericHits = new ArrayList<GenericHit>();
-        for (SimCalorimeterHit calHit : calHits)
-        {
-            GenericHit genericHit = makeCalorimeterHit(calHit, meta);
-            genericHits.add(genericHit);
-        }
-        return genericHits;
-    }
-    
-    private static GenericHit makeCalorimeterHit(SimCalorimeterHit calorimeterHit, LCMetaData meta)
-    {
-        IDDecoder decoder = meta.getIDDecoder();
-        decoder.setID(calorimeterHit.getCellID() );
-        int layer = decoder.getLayer();
-        
-        return new GenericHit(
-                GenericHit.HitType.CALORIMETER,
-                meta.getName(),
-                calorimeterHit.getEnergy(),
-                calorimeterHit.getPosition(),
-                layer,
-                calorimeterHit.getTime()
-                );
-    }
+        super.process(event);        
+    }        
     
-    private static GenericHit makeTrackerHit(SimTrackerHit trackerHit, LCMetaData meta)
+    /** Set the filename to argument basename with ".slcio" replaced by ".aida". */
+    public void setFileName(String path)
     {
-        IDDecoder decoder = meta.getIDDecoder();
-        decoder.setID(trackerHit.getCellID() );
-        int layer = decoder.getLayer();
-        
-        return new GenericHit(
-                GenericHit.HitType.TRACKER,
-                meta.getName(),
-                trackerHit.getdEdx(),
-                trackerHit.getPoint(),
-                layer,
-                trackerHit.getTime()
-                );
+        fileName = (new File(path)).getName().replace(".slcio",".aida");
     }
     
     protected void startOfData()
@@ -265,11 +86,5 @@
         {
             throw new RuntimeException("Problem committing tree.", e);
         }
-    }
-    
-    /** set filename to basename with ".slcio" replaced by ".aida" */
-    public void setFileName(String path)
-    {
-        fileName = (new File(path)).getName().replace(".slcio",".aida");
-    }
+    }    
 }

SlicDiagnostics/test/org/lcsim/slic/diagnostics
SlicDiagnosticsTest.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- SlicDiagnosticsTest.java	27 Jul 2005 23:21:37 -0000	1.3
+++ SlicDiagnosticsTest.java	28 Jul 2005 19:20:15 -0000	1.4
@@ -17,23 +17,45 @@
 public class SlicDiagnosticsTest extends TestCase
 {
     private int recordCount = 0;
+    
+    SlicDiagnosticsDriver slicDiag;
+    GenericHitPlotsDriver genericPlots;
+    MCParticlePlotsDriver mcpPlots;
+    CalorimeterHitPlotsDriver calPlots;
+    EventSummaryPlotsDriver evtPlots;
+    
+    protected void setUp() throws Exception
+    {
+        /* main driver */
+        slicDiag     = new SlicDiagnosticsDriver();
         
+        /* subdrivers */
+        genericPlots = new GenericHitPlotsDriver();        
+        mcpPlots     = new MCParticlePlotsDriver();
+        calPlots     = new CalorimeterHitPlotsDriver();
+        evtPlots     = new EventSummaryPlotsDriver();
+        
+        /* add subdrivers to main driver */
+        slicDiag.add(evtPlots);
+        slicDiag.add(genericPlots);
+        slicDiag.add(mcpPlots);
+        slicDiag.add(calPlots);
+    }
+    
     private void runTestFile(String s) throws Exception
     {
         System.out.println("Running SlicDiagnosticsTest on file: " + s);
         
+        slicDiag.setFileName(s);
+        
         URL url = new URL(s);
         FileCache cache = new FileCache();
         File file = cache.getCachedFile(url);
-        
-        recordCount = 0;
+                
         LCSimLoop loop = new LCSimLoop();
         loop.setLCIORecordSource(file);
-        SlicDiagnosticsDriver slicDiag = new SlicDiagnosticsDriver();
-        slicDiag.setFileName(s);
         loop.add(slicDiag);
-        loop.loop(-1);
-//        loop.loop(5);
+        loop.loop(-1);        
         loop.dispose();
     }
     
@@ -42,7 +64,7 @@
         runTestFile("http://www.lcsim.org/test/lcio/ZPoleUDS_50evt_SLIC_v1r9p1_sidmay05.slcio");
         //runTestFile("http://www.lcsim.org/test/lcio/muons_SLIC_v1r9p1_sidmay05.slcio");
     }
-        
+    
     public SlicDiagnosticsTest(String testName)
     {
         super(testName);
@@ -51,8 +73,5 @@
     public static Test suite()
     {
         return new TestSuite(SlicDiagnosticsTest.class);
-    }
-    
-    protected void setUp() throws Exception
-    {}    
+    }    
 }
\ No newline at end of file
CVSspam 0.2.8