lcsim/src/org/lcsim/digisim
diff -N DigiSimConditionsConverter.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ DigiSimConditionsConverter.java 23 Aug 2005 23:54:23 -0000 1.1
@@ -0,0 +1,37 @@
+package org.lcsim.digisim;
+
+import java.io.InputStream;
+import org.lcsim.conditions.ConditionsConverter;
+import org.lcsim.conditions.ConditionsManager;
+import org.lcsim.conditions.RawConditions;
+
+/**
+ * A Class to manage DigiSim configurations under possibly different
+ * run conditions.
+ * @author Guilherme Lima
+ * @version $Id: DigiSimConditionsConverter.java,v 1.1 2005/08/23 23:54:23 lima Exp $
+ */
+public class DigiSimConditionsConverter implements ConditionsConverter<DigiSimSetup>
+{
+ public DigiSimSetup getData(ConditionsManager manager, String name)
+ {
+ RawConditions conditions = manager.getRawConditions(name);
+ try
+ {
+ InputStream in = conditions.getInputStream();
+ ConfigReader reader = new ConfigReader(in);
+ DigiSimSetup conf = reader.digiSimParse();
+ return conf;
+ }
+ catch (Exception x)
+ {
+ throw new RuntimeException("Error reading DigiSim configuration "
+ +name,x);
+ }
+ }
+
+ public Class<DigiSimSetup> getType()
+ {
+ return DigiSimSetup.class;
+ }
+}
lcsim/src/org/lcsim/digisim
diff -N DigiSimSetup.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ DigiSimSetup.java 23 Aug 2005 23:54:23 -0000 1.1
@@ -0,0 +1,18 @@
+package org.lcsim.digisim;
+
+import java.util.Vector;
+import java.util.Map;
+import java.util.HashMap;
+
+public class DigiSimSetup {
+
+ public DigiSimSetup(Map<String,Vector<String>> setup) {
+ _setup = setup;
+ }
+
+ public Map<String,Vector<String>> getSections() {
+ return _setup;
+ }
+
+ Map<String,Vector<String>> _setup;
+}
lcsim/src/org/lcsim/digisim
diff -u -r1.5 -r1.6
--- ConfigReader.java 28 Jun 2005 21:56:09 -0000 1.5
+++ ConfigReader.java 23 Aug 2005 23:54:22 -0000 1.6
@@ -15,7 +15,7 @@
* interpret the Marlin steering file.
*
* @author Guilherme Lima
- * @version $Id: ConfigReader.java,v 1.5 2005/06/28 21:56:09 lima Exp $
+ * @version $Id: ConfigReader.java,v 1.6 2005/08/23 23:54:22 lima Exp $
*/
class ConfigReader {
@@ -113,7 +113,7 @@
* @return a map containing all the sections in the configuration
* file, keyed by section name.
*/
- public Map<String,Vector<String>> digiSimParse() {
+ public DigiSimSetup digiSimParse() {
Map<String,Vector<String>> sections
= new HashMap<String,Vector<String>>();
for(;;) {
@@ -123,7 +123,7 @@
}
else break;
}
- return sections;
+ return new DigiSimSetup(sections);
}
/**
lcsim/src/org/lcsim/digisim
diff -u -r1.11 -r1.12
--- DigiSimDriver.java 26 Jul 2005 23:58:41 -0000 1.11
+++ DigiSimDriver.java 23 Aug 2005 23:54:22 -0000 1.12
@@ -13,7 +13,7 @@
* both parameters and events from the framework.
*
* @author Guilherme Lima
- * @version $Id: DigiSimDriver.java,v 1.11 2005/07/26 23:58:41 lima Exp $
+ * @version $Id: DigiSimDriver.java,v 1.12 2005/08/23 23:54:22 lima Exp $
*/
public class DigiSimDriver extends Driver {
@@ -25,12 +25,14 @@
public DigiSimDriver(String name) {
_name = name;
_digitizers = new Vector<Digitizer>();
+ getConditionsManager().registerConditionsConverter(new DigiSimConditionsConverter());
}
/** Private constructor, not to be used */
public DigiSimDriver() {
_name = new String("");
_digitizers = new Vector<Digitizer>();
+ getConditionsManager().registerConditionsConverter(new DigiSimConditionsConverter());
}
/**
@@ -44,12 +46,15 @@
if(_name.equals("")) return;
// open released config file from lcsim.jar
- ConfigReader file = new ConfigReader(DigiSimDriver.class.getResourceAsStream(_name+".steer"));
+// ConfigReader file = new ConfigReader(DigiSimDriver.class.getResourceAsStream(_name+".steer"));
// use local config file
// ConfigReader file = new ConfigReader(_name+".steer");
// read config file
- Map<String,Vector<String>> sections = file.digiSimParse();
+ DigiSimSetup setup = getConditionsManager().getCachedConditions(DigiSimSetup.class,
+ "digisim/digisim.steer").getCachedData();
+
+ Map<String,Vector<String>> sections = setup.getSections();
// find digitizers to be instantiated
Vector<String> active = new Vector<String>();