lcsim/src/org/lcsim/contrib/timb/util/lcio
diff -N AbstractBlockHandler.java
--- AbstractBlockHandler.java 26 May 2006 07:21:42 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
-package org.lcsim.util.lcio;
-
-import hep.lcd.io.sio.SIOBlock;
-import hep.lcd.io.sio.SIOInputStream;
-import hep.lcd.io.sio.SIOOutputStream;
-import hep.lcd.io.sio.SIOWriter;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import org.lcsim.event.EventHeader.LCMetaData;
-import org.lcsim.event.ReconstructedParticle;
-
-/**
- *
- * @author tonyj
- */
-abstract class AbstractBlockHandler implements LCIOBlockHandler
-{
- public void readBlock(LCIOEvent event, SIOBlock block) throws IOException
- {
- int major = block.getMajorVersion();
- int minor = block.getMinorVersion();
- int version = major*1000 + minor;
- if (version < 8)
- throw new IOException("Sorry: files created with versions older than v00-08" + " are no longer supported !");
-
- SIOInputStream in = block.getData();
-
- int flags = in.readInt();
-
- SIOLCParameters colParameters = version > 1001 ? new SIOLCParameters(in) : new SIOLCParameters();
- int n = in.readInt();
- LCIOCollection collection = new LCIOCollection(getClassForType(), flags, n, colParameters);
- event.put(block.getBlockName(),collection);
- addCollectionElements(event,collection,in,n,version);
- }
- abstract void addCollectionElements(LCIOEvent event, LCIOCollection collection, SIOInputStream in, int n, int version) throws IOException;
-
- public void writeBlock(SIOWriter writer, List collection, LCMetaData md) throws IOException
- {
- SIOOutputStream out = writer.createBlock(md.getName(), LCIOConstants.MAJORVERSION, LCIOConstants.MINORVERSION);
- int flags = md.getFlags();
- out.writeInt(flags);
- Map<String,int[]> intMap = md.getIntegerParameters();
- Map<String,float[]> floatMap = md.getFloatParameters();
- Map<String,String[]> stringMap = md.getStringParameters();
- SIOLCParameters colParameters = null;
- SIOLCParameters.write(intMap,floatMap,stringMap,out);
- out.writeInt(collection.size());
- // System.out.println(" AbstractBlockHandler out= "+out+" flags= "+flags+" collection.size()= "+collection.size());
- for (Object element : collection)
- {
- // if(md.getName().equals("MCFastReconstructedParticles")) System.out.println(" AbstractBlockHandler ((ReconstructedParticle)element).getCharge()= "+((ReconstructedParticle)element).getCharge()+" getEnergy()= "+((ReconstructedParticle)element).getEnergy());
- writeCollectionElement(element,out,flags);
- }
- out.close();
- }
- abstract void writeCollectionElement(Object element, SIOOutputStream out, int flags) throws IOException;
-}
lcsim/src/org/lcsim/contrib/timb/util/lcio
diff -N LCIOWriter.java
--- LCIOWriter.java 26 May 2006 07:21:43 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,170 +0,0 @@
-package org.lcsim.util.lcio;
-
-import hep.lcd.io.sio.SIOOutputStream;
-import hep.lcd.io.sio.SIOWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Logger;
-import org.lcsim.event.EventHeader;
-import org.lcsim.event.EventHeader.LCMetaData;
-
-
-/**
- *
- * @author Tony Johnson
- */
-public class LCIOWriter
-{
- private Logger log = Logger.getLogger(LCIOWriter.class.getName());
- private SIOWriter writer;
- private HandlerManager manager = HandlerManager.instance();
- private int lastRunNumber = -1;
- private String lastDetectorName = "";
- private List<String> listIgnore = new ArrayList<String>();
-
- public LCIOWriter(File file) throws IOException
- {
- writer = new SIOWriter(new FileOutputStream(file));
- }
- public LCIOWriter(String file) throws IOException
- {
- writer = new SIOWriter(new FileOutputStream(file));
- }
- public LCIOWriter(File file, List<String> listIgnore) throws IOException
- {
- this(file);
- this.listIgnore = listIgnore;
- }
- public LCIOWriter(String file, List<String> listIgnore) throws IOException
- {
- this(file);
- this.listIgnore = listIgnore;
- }
- public void close() throws IOException
- {
- writer.close();
- }
-
- private void writeData(EventHeader event, boolean headerOnly) throws IOException
- {
- if (headerOnly)
- {
- SIOOutputStream out = writer.createBlock(LCIOConstants.eventHeaderBlockName, LCIOConstants.MAJORVERSION, LCIOConstants.MINORVERSION);
- out.writeInt(event.getRunNumber());
- out.writeInt(event.getEventNumber());
- out.writeLong(event.getTimeStamp());
- out.writeString(event.getDetectorName());
-
- Map<String,String> blocks = new HashMap<String,String>();
- List<List<Object>> collections = event.get(Object.class);
- for (List<Object> collection : collections)
- {
- LCMetaData md = event.getMetaData(collection);
- Class type = md.getType();
- // System.out.println(" LCIOWriter headerOnly md.getName()= "+md.getName()+" type.getName()= "+type.getName());
- LCIOBlockHandler bh = manager.handlerForClass(type);
- if (bh == null) log.warning("No handler found for block "+md.getName()+" of class "+type.getName());
- else if(!listIgnore.contains(md.getName())) blocks.put(md.getName(),bh.getType());
- }
-
- out.writeInt(blocks.size());
- for (Map.Entry<String,String> entry : blocks.entrySet() )
- {
- // System.out.println(" LCIOWriter entry.getKey()= "+entry.getKey()+" entry.getValue()= "+entry.getValue());
- if(!listIgnore.contains(entry.getKey())) {
- out.writeString(entry.getKey());
- out.writeString(entry.getValue());
- }
- }
- out.writeInt(0);
- out.writeInt(0);
- out.writeInt(0);
- out.close();
- }
- else
- {
- List<List<Object>> collections = event.get(Object.class);
- for (List<Object> collection : collections)
- {
- LCMetaData md = event.getMetaData(collection);
- Class type = md.getType();
- // System.out.println(" LCIOWriter md.getName()= "+md.getName()+" type.getName()= "+type.getName());
- if(!listIgnore.contains(md.getName())) {
- LCIOBlockHandler bh = manager.handlerForClass(type);
- // System.out.println(" LCIOWriter bh= "+bh);
- if (bh != null) bh.writeBlock(writer,collection,md);
- }
- }
- }
- }
- private void writeData(LCIORunHeader header) throws IOException
- {
- SIOOutputStream out = writer.createBlock(LCIOConstants.runBlockName, LCIOConstants.MAJORVERSION, LCIOConstants.MINORVERSION);
- out.writeInt(header.getRunNumber());
- out.writeString(header.getDetectorName());
- out.writeString(header.getDescription());
- String[] active = header.getActiveSubdetectors();
- out.writeInt(active.length);
- for (int i=0; i<active.length; i++) out.writeString(active[i]);
- out.writeInt(0);
- out.writeInt(0);
- out.writeInt(0);
- out.close();
- }
- public void write(EventHeader event) throws IOException
- {
- if (event.getRunNumber() != lastRunNumber || !lastDetectorName.equals(event.getDetectorName()))
- {
- lastRunNumber = event.getRunNumber();
- lastDetectorName = event.getDetectorName();
- if (lastDetectorName == null) lastDetectorName = "";
- write(new DefaultRunHeader(lastRunNumber,lastDetectorName));
- }
- writer.createRecord(LCIOConstants.eventHeaderRecordName,true);
- writeData(event,true);
- writer.createRecord(LCIOConstants.eventRecordName,true);
- writeData(event,false);
- }
- public void write(LCIORunHeader header) throws IOException
- {
- writer.createRecord(LCIOConstants.runRecordName,true);
- writeData(header);
- }
- private static class DefaultRunHeader implements LCIORunHeader
- {
- private int run;
- private String name;
- private final static String[] noDetectors = new String[0];
- DefaultRunHeader(int run, String name)
- {
- this.run = run;
- this.name = name;
- }
-
- public String[] getActiveSubdetectors()
- {
- return noDetectors;
- }
-
- public String getDescription()
- {
- return "";
- }
-
- public String getDetectorName()
- {
- return name;
- }
-
- public int getRunNumber()
- {
- return run;
- }
-
- }
-}
lcsim/src/org/lcsim/contrib/timb/util/loop
diff -N LCSimLoop.java
--- LCSimLoop.java 26 May 2006 07:21:45 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,67 +0,0 @@
-package org.lcsim.util.loop;
-
-import java.util.List;
-import java.io.File;
-import java.io.IOException;
-import java.util.TooManyListenersException;
-
-import org.freehep.record.loop.SequentialRecordLoopImpl;
-import org.lcsim.util.Driver;
-import org.lcsim.util.DriverAdapter;
-import org.lcsim.util.event.LCSimEventGenerator;
-
-/**
- *
- * @author Tony Johnson
- */
-public class LCSimLoop extends SequentialRecordLoopImpl
-{
- private Driver top = new Driver();
-
- public LCSimLoop()
- {
- this(0);
- }
-
- public LCSimLoop(long nskip)
- {
- try
- {
- super.addRecordListener(new DriverAdapter(top, nskip));
- }
- catch (TooManyListenersException x)
- {
- throw new RuntimeException("Can't happen!",x);
- }
- }
-
- public void add(Driver driver)
- {
- top.add(driver);
- }
-
- public void remove(Driver driver)
- {
- top.remove(driver);
- }
-
- public void setLCIORecordSource(File file) throws IOException
- {
- super.setRecordSource(new LCIOEventSource(file));
- }
-
- public void setLCIORecordSource(LCIOEventSource src) throws IOException
- {
- super.setRecordSource(src);
- }
-
- public void setStdhepRecordSource(File file, String detectorName) throws IOException
- {
- super.setRecordSource(new StdhepEventSource(file, detectorName));
- }
-
- public void setRecordSource(LCSimEventGenerator gen)
- {
- super.setRecordSource(new EventGeneratorRecordSource(gen, "generator"));
- }
-}