Commit in lcsim/sandbox on MAIN
CalHitStepPosTest.java+103added 1.1
simple code for testing cal cell positions

lcsim/sandbox
CalHitStepPosTest.java added at 1.1
diff -N CalHitStepPosTest.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ CalHitStepPosTest.java	12 Jan 2012 00:15:27 -0000	1.1
@@ -0,0 +1,103 @@
+package org.lcsim;
+
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
+import hep.physics.vec.VecOp;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.freehep.record.loop.LoopException;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.SimCalorimeterHit;
+import org.lcsim.geometry.IDDecoder;
+import org.lcsim.job.EventMarkerDriver;
+import org.lcsim.util.Driver;
+import org.lcsim.util.loop.LCSimLoop;
+
+public class CalHitStepPosTest extends TestCase
+{
+    //String fileName = "/u1/projects/SimDist/HEAD/panpyqqbar-0-1000_SLIC-v2r10p7_geant4-v9r4p2_QGSP_BERT_caltest.slcio";    
+    String fileName = "/u1/projects/lcsim/HEAD/muons500_Theta4-176_1-10GeV_SLIC-v2r11p2_geant4-v9r4p2_QGSP_BERT_sidloi3.slcio";
+    
+    public void testIt()
+    {
+        //System.out.println("testIt...");
+        File file = new File(fileName);
+        LCSimLoop loop = new LCSimLoop();
+        loop.add(new EventMarkerDriver());
+        //loop.add(new StepPosCheckDriver());
+        loop.add(new CellPlotDriver());
+        try 
+        {
+            loop.setLCIORecordSource(file);
+        }
+        catch (IOException x)
+        {
+            throw new RuntimeException(x);
+        }
+        try
+        {
+            loop.loop(-1, null);
+        }
+        catch (LoopException x)
+        {
+            throw new RuntimeException(x);
+        }
+        catch (IOException x)
+        {
+            throw new RuntimeException(x);
+        }
+        System.out.println("ran over " + loop.getTotalSupplied() + " records");
+        loop.dispose();
+    }   
+         
+    /*
+    static class StepPosCheckDriver extends Driver
+    {               
+        public void process(EventHeader event)
+        {            
+            System.out.println("proc event = " + event.getEventNumber());
+            List<List<SimCalorimeterHit>> hitCollections = 
+                event.get(SimCalorimeterHit.class);
+            for (List<SimCalorimeterHit> hits : hitCollections)
+            {
+                System.out.println("collection = " + event.getMetaData(hits).getName());
+                for (SimCalorimeterHit hit : hits)
+                {
+                    int ncontrib = hit.getMCParticleCount();
+                    for (int i=0; i<ncontrib; i++)
+                    {
+                        float steppos[] = hit.getStepPosition(i);
+                        System.out.println("steppos = { " + ", " + steppos[0] + ", " + steppos[1] + ", " + steppos[2] + " }");
+                    }
+                }
+            }
+        }        
+    }
+    */
+    
+    static class CellPlotDriver extends Driver
+    {
+    	public void process(EventHeader event)
+    	{
+    		List<SimCalorimeterHit> hits = event.get(SimCalorimeterHit.class, "HcalBarrelHits");
+    		IDDecoder decoder = event.getMetaData(hits).getIDDecoder();
+    		for (SimCalorimeterHit hit : hits)
+    		{
+    			decoder.setID(hit.getCellID());
+    			Hep3Vector cellPos = decoder.getPositionVector();
+    			int ncontribs = hit.getMCParticleCount();
+    			for (int i=0; i<ncontribs; i++)
+    			{    				
+    				float stepPos[] = hit.getStepPosition(i);
+    				Hep3Vector stepVec = new BasicHep3Vector(stepPos[0], stepPos[1], stepPos[2]);
+    				System.out.println("cell pos = " + VecOp.sub(stepVec, cellPos));
+    			}
+    		}
+    	}
+    }
+}
CVSspam 0.2.12


Use REPLY-ALL to reply to list

To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1