1 added + 1 removed + 12 modified, total 14 files
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -N AbstractPlots.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ AbstractPlots.java 24 Aug 2005 07:42:04 -0000 1.1
@@ -0,0 +1,130 @@
+/*
+ * AbstractPlots.java
+ *
+ * Created on July 28, 2005, 6:59 PM
+ */
+package org.lcsim.slic.diagnostics;
+
+import hep.aida.IPlotter;
+import org.lcsim.util.aida.AIDA;
+import hep.aida.ITree;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.EventHeader.LCMetaData;
+
+/**
+ *
+ * @author jeremym
+ */
+abstract class AbstractPlots
+{
+ protected static AIDA aida = org.lcsim.util.aida.AIDA.defaultInstance();
+ protected static ITree tree = aida.tree();
+ protected EventHeader eventHeader;
+
+ String name;
+ String dir;
+
+ public AbstractPlots(LCMetaData meta)
+ {
+ this.name = meta.getName();
+ setupAidaDir();
+ }
+
+ public AbstractPlots(String name)
+ {
+ this.name = name;
+ setupAidaDir();
+ }
+
+ public void setEventHeader(EventHeader eventHeader)
+ {
+ this.eventHeader = eventHeader;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ protected String getDir()
+ {
+ return dir;
+ }
+
+ protected void cd()
+ {
+ tree.cd(this.getDir());
+ }
+
+ static AIDA aida()
+ {
+ return aida;
+ }
+
+ static IPlotter plotter()
+ {
+ return aida().analysisFactory().createPlotterFactory().create();
+ }
+
+ protected void definePlots()
+ {
+ cd();
+ }
+
+ protected String makePlotName(String plotName)
+ {
+ return getName() + ": " + plotName;
+ }
+
+ protected void setupAidaDir()
+ {
+ setupAidaDir(name);
+ }
+
+ /* Create new folder from root. */
+ private final void setupAidaDir(String dir)
+ {
+ tree.cd("/");
+
+ /* Create if not exists. */
+ try
+ {
+ tree.mkdirs(dir);
+ }
+ catch (Exception e)
+ {
+ System.err.println(e.getMessage());
+ }
+
+ /* Now it should exist... */
+ try
+ {
+ tree.cd(dir);
+ }
+ /* Otherwise, something bad happened. */
+ catch (Exception e)
+ {
+ throw new RuntimeException("Could not setup AIDA dir: " + dir);
+ }
+
+ this.dir = "/" + dir;
+
+ tree.cd("/");
+ }
+
+ protected void beginEvents()
+ {
+ /* no op */
+ }
+
+ protected void endEvents(int nevents)
+ {
+ /* no op */
+ }
+
+ protected void fill(EventHeader event)
+ {
+ this.cd();
+ setEventHeader(event);
+ }
+}
\ No newline at end of file
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.11 -r1.12
--- CalorimeterHitPlots.java 23 Aug 2005 00:03:36 -0000 1.11
+++ CalorimeterHitPlots.java 24 Aug 2005 07:42:03 -0000 1.12
@@ -6,7 +6,7 @@
package org.lcsim.slic.diagnostics;
import java.util.List;
-
+import java.util.Map;
import hep.aida.ICloud1D;
import hep.aida.ICloud2D;
import org.lcsim.event.EventHeader;
@@ -18,29 +18,34 @@
import org.lcsim.geometry.segmentation.ProjectiveZPlane;
import org.lcsim.geometry.segmentation.NonprojectiveCylinder;
import org.lcsim.geometry.IDDecoder;
+import org.lcsim.recon.cluster.cheat.CheatClusterer;
+import org.lcsim.recon.cluster.cheat.CheatCluster;
/**
*
* @author jeremym
*/
-class CalorimeterHitPlots extends PlotsBase
+class CalorimeterHitPlots extends AbstractPlots
{
- /* cal plots: basic MCP stats */
+ /* plots */
ICloud1D mcpCountPerHit;
ICloud1D mcpPDG;
ICloud1D mcpSingleContribPDG;
ICloud1D hitCorrectedEnergy;
ICloud2D hitRawVsCorrectedEnergy;
ICloud1D mcpMissing;
+ ICloud2D mcpCluster;
String collName;
+ static CheatClusterer clusterer = new CheatClusterer();
+ int clusterCount = 0;
public CalorimeterHitPlots(LCMetaData meta)
{
- super(meta.getName());
+ super(meta);
definePlots();
}
-
+
protected void definePlots()
{
super.definePlots();
@@ -51,6 +56,7 @@
hitCorrectedEnergy = aida.cloud1D(makePlotName("Hit Corrected Energy"));
hitRawVsCorrectedEnergy = aida.cloud2D(makePlotName("Hit Raw vs Corrected Energy"));
mcpMissing = aida.cloud1D(makePlotName("Missing MCParticle Contribution"));
+ mcpCluster = aida.cloud2D(makePlotName("Particle Kinetic Energy vs CheatCluster Energy"));
}
protected void fill(EventHeader event)
@@ -63,13 +69,11 @@
{
if ( hits.size() > 0 )
{
- EventHeader.LCMetaData metadata = eventHeader.getMetaData(hits);
- IDDecoder decoder = metadata.getIDDecoder();
- SegmentationBase segmentation = (SegmentationBase)decoder;
+ SegmentationBase segmentation = (SegmentationBase)eventHeader.getMetaData(hits).getIDDecoder();
int mcpMissingCount = 0;
for ( SimCalorimeterHit hit : hits)
{
- decoder.setID(hit.getCellID());
+ segmentation.setID(hit.getCellID());
/* missing mcp? */
if ( hit.getMCParticleCount() == 0 )
@@ -83,22 +87,22 @@
segmentation instanceof ProjectiveZPlane )
{
aida.cloud2D(makePlotName("Phi vs Phi Bin")).fill(
- decoder.getPhi(),
- (double)decoder.getValue("phi")
+ segmentation.getPhi(),
+ (double)segmentation.getValue("phi")
);
if ( segmentation instanceof ProjectiveCylinder ||
segmentation instanceof ProjectiveZPlane)
{
aida.cloud2D(makePlotName("Theta vs Theta Bin")).fill(
- decoder.getTheta(),
- (double)decoder.getValue("theta"));
+ segmentation.getTheta(),
+ (double)segmentation.getValue("theta"));
}
else if ( segmentation instanceof NonprojectiveCylinder)
{
aida.cloud2D(makePlotName("Z vs Z Bin")).fill(
- decoder.getZ(),
- (double)decoder.getValue("z")
+ segmentation.getZ(),
+ (double)segmentation.getValue("z")
);
}
}
@@ -131,6 +135,19 @@
/* missing MCP */
mcpMissing.fill(mcpMissingCount);
+
+ /* cheated clusters */
+ if (clusterCount < 9000)
+ {
+ Map<MCParticle, CheatCluster> cheatClusters = clusterer.findClusters(hits);
+ for( MCParticle particle : cheatClusters.keySet() )
+ {
+ CheatCluster cluster = cheatClusters.get(particle);
+ double kE = particle.getEnergy() - particle.getMass();
+ mcpCluster.fill(kE, cluster.getEnergy());
+ clusterCount += 1;
+ }
+ }
}
}
}
\ No newline at end of file
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.5 -r1.6
--- CalorimeterHitPlotsDriver.java 23 Aug 2005 00:03:36 -0000 1.5
+++ CalorimeterHitPlotsDriver.java 24 Aug 2005 07:42:03 -0000 1.6
@@ -1,22 +1,18 @@
package org.lcsim.slic.diagnostics;
+import hep.aida.ICloud2D;
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;
+import org.lcsim.util.aida.AIDA;
/**
*
* @author jeremym
*/
-public class CalorimeterHitPlotsDriver extends Driver
+public class CalorimeterHitPlotsDriver extends PlotsDriver
{
- Map<String, CalorimeterHitPlots> calorimeterHitPlots = new HashMap<String,CalorimeterHitPlots>();
-
protected void process(EventHeader event)
{
super.process(event);
@@ -33,10 +29,10 @@
private CalorimeterHitPlots getCalorimeterHitPlots(LCMetaData meta)
{
String name = meta.getName();
- if ( calorimeterHitPlots.get(name) == null )
+ if ( plots.get(name) == null )
{
- calorimeterHitPlots.put(name, new CalorimeterHitPlots(meta) );
+ plots.put(name, new CalorimeterHitPlots(meta) );
}
- return calorimeterHitPlots.get(name);
+ return (CalorimeterHitPlots)plots.get(name);
}
}
\ No newline at end of file
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.6 -r1.7
--- EventSummaryPlots.java 23 Aug 2005 00:03:36 -0000 1.6
+++ EventSummaryPlots.java 24 Aug 2005 07:42:03 -0000 1.7
@@ -9,11 +9,9 @@
import java.util.List;
import java.util.Map;
import java.util.HashMap;
-
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.SimTrackerHit;
@@ -23,7 +21,7 @@
*
* @author jeremym
*/
-class EventSummaryPlots extends PlotsBase
+class EventSummaryPlots extends AbstractPlots
{
ICloud1D eventTotalEnergy;
ICloud1D eventHits;
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.5 -r1.6
--- EventSummaryPlotsDriver.java 23 Aug 2005 00:03:36 -0000 1.5
+++ EventSummaryPlotsDriver.java 24 Aug 2005 07:42:03 -0000 1.6
@@ -9,11 +9,9 @@
import java.util.List;
import java.util.Map;
import java.util.HashMap;
-
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.SimTrackerHit;
@@ -23,13 +21,16 @@
*
* @author jeremym
*/
-public class EventSummaryPlotsDriver extends Driver
+public class EventSummaryPlotsDriver extends PlotsDriver
{
- EventSummaryPlots plots = new EventSummaryPlots();
-
+ EventSummaryPlotsDriver()
+ {
+ plots.put("",new EventSummaryPlots());
+ }
+
protected void process(EventHeader event)
{
super.process(event);
- plots.fill(event);
+ plots.get("").fill(event);
}
}
\ No newline at end of file
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.12 -r1.13
--- GenericHitPlots.java 23 Aug 2005 01:03:42 -0000 1.12
+++ GenericHitPlots.java 24 Aug 2005 07:42:03 -0000 1.13
@@ -10,8 +10,9 @@
import org.lcsim.event.EventHeader;
import org.lcsim.event.EventHeader.LCMetaData;
import org.lcsim.geometry.subdetector.SubdetectorIDDecoder;
+import org.lcsim.util.aida.AIDA;
-class GenericHitPlots extends PlotsBase
+class GenericHitPlots extends AbstractPlots
{
/* plots */
ICloud1D energy;
@@ -43,16 +44,15 @@
/** Creates a new instance of SingleHitCollectionPlots */
public GenericHitPlots(LCMetaData meta)
{
- super(meta.getName());
+ super(meta);
/* set n layers */
nlayers = ((SubdetectorIDDecoder)meta.getIDDecoder()).getSubdetector().getLayering().getLayerCount();
- /* make layer info for each layer */
+ /* make a LayerInfo for each layer */
makeLayers();
- /* define plots for this coll */
- this.definePlots();
+ definePlots();
}
private void makeLayers()
@@ -71,9 +71,9 @@
energy = aida.cloud1D(makePlotName("Hit Energies"));
hitAvgEnergy = aida.cloud1D(makePlotName("Hit Average Energy by Event"));
time = aida.histogram1D(makePlotName("Hit Time"), 100, 0, 50);
- thetaPhi = aida.cloud2D(makePlotName("Hit Theta vs. Phi"));
- xy = aida.cloud2D(makePlotName("Hit X vs. Y"));
- rz = aida.cloud2D(makePlotName("Hit R vs. Z"));
+ thetaPhi = aida.cloud2D(makePlotName("Hit Theta vs Phi"));
+ xy = aida.cloud2D(makePlotName("Hit X vs Y"));
+ rz = aida.cloud2D(makePlotName("Hit R vs Z"));
layer = aida.histogram1D(makePlotName("Hit Layer"), nlayers, 0, nlayers);
layerEnergy = aida.histogram1D(makePlotName("Layer Energy"), nlayers, 0, nlayers);
energyEvent = aida.cloud1D(makePlotName("Event Total Energy"));
@@ -87,7 +87,8 @@
// layerAvgEventE = aida.histogram2D(makePlotName("Average Event Energy"), nlayers, 0, nlayers);
// layerAvgEventNHits = aida.histogram2D(makePlotName("Average Event Hit Count"), nlayers, 0, nlayers);
}
-
+
+ /* GenericHitPlotsDriver sets hit list for these plots. */
public void setGenericHitList(List<GenericHit> hits)
{
this.hits = hits;
@@ -97,7 +98,6 @@
{
super.fill(event);
- /* GenericHitPlotsDriver sets hit list for these plots. */
fill(this.hits);
}
@@ -195,7 +195,7 @@
/* set and fill percent hit count */
layerInfo.setPercentNHits(nhits);
- layerPercentHits.fill(layerInfo.getLayerNumber(), layerInfo.getPercentNHits());
+ layerPercentHits.fill(layerInfo.getLayerNumber(), layerInfo.getPercentNHits());
}
/* reset layers */
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.5 -r1.6
--- GenericHitPlotsDriver.java 23 Aug 2005 00:03:36 -0000 1.5
+++ GenericHitPlotsDriver.java 24 Aug 2005 07:42:03 -0000 1.6
@@ -1,27 +1,24 @@
package org.lcsim.slic.diagnostics;
+import hep.aida.ICloud2D;
import java.util.List;
import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-
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;
+import org.lcsim.util.aida.AIDA;
+import hep.aida.IPlotter;
/**
*
* @author jeremym
*/
-public class GenericHitPlotsDriver extends Driver
-{
- Map<String, GenericHitPlots> genericHitPlots = new HashMap<String,GenericHitPlots>();
-
+public class GenericHitPlotsDriver extends PlotsDriver
+{
double trackerHitCount;
-
+
protected void process(EventHeader event)
{
super.process(event);
@@ -30,30 +27,30 @@
processTrackerCollections(event);
/* proc cal colls */
- processCalorimeterCollections(event);
+ processCalorimeterCollections(event);
}
-
+
private GenericHitPlots getGenericHitPlots(LCMetaData meta)
{
String name = meta.getName();
- if ( genericHitPlots.get(name) == null )
+ if ( plots.get(name) == null )
{
- genericHitPlots.put(name, new GenericHitPlots(meta) );
+ plots.put(name, new GenericHitPlots(meta) );
}
- return genericHitPlots.get(name);
- }
+ return (GenericHitPlots)plots.get(name);
+ }
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.setGenericHitList(hits);
- plots.fill(event);
+ plots.fill(event);
}
}
@@ -61,12 +58,12 @@
{
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.setGenericHitList(hits);
- plots.fill(event);
+ plots.fill(event);
}
}
@@ -123,4 +120,18 @@
trackerHit.getTime()
);
}
+// protected void endOfData()
+// {
+// AIDA a = PlotsBase.aida();
+// IPlotter plotter = PlotsBase.plotter();
+// for ( PlotsBase p : plots.values() )
+// {
+// p.cd();
+// ICloud2D rz = a.cloud2D("Hit R vs Z");
+// if ( rz == null )
+// {
+// throw new RuntimeException("Hit R vs Z not found for <" + p.getName() + ">.");
+// }
+// }
+// }
}
\ No newline at end of file
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.10 -r1.11
--- MCParticlePlots.java 23 Aug 2005 00:03:36 -0000 1.10
+++ MCParticlePlots.java 24 Aug 2005 07:42:03 -0000 1.11
@@ -11,7 +11,6 @@
import java.util.Map;
import java.util.HashMap;
import static java.lang.Math.sqrt;
-
import hep.aida.ICloud1D;
import hep.aida.IHistogram1D;
import hep.aida.IHistogram2D;
@@ -26,9 +25,10 @@
*
* @author jeremym
*/
-class MCParticlePlots extends PlotsBase
+class MCParticlePlots extends AbstractPlots
{
- ParticlePropertyProvider mcpLkp = ParticlePropertyManager.getParticlePropertyProvider();
+ static ParticlePropertyProvider mcpLkp
+ = ParticlePropertyManager.getParticlePropertyProvider();
/* double values for sim status plot */
public static final double SIMULATION = 1.0;
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.5 -r1.6
--- MCParticlePlotsDriver.java 23 Aug 2005 00:03:36 -0000 1.5
+++ MCParticlePlotsDriver.java 24 Aug 2005 07:42:03 -0000 1.6
@@ -3,7 +3,6 @@
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;
@@ -13,13 +12,16 @@
*
* @author jeremym
*/
-public class MCParticlePlotsDriver extends Driver
-{
- MCParticlePlots mcpPlots = new MCParticlePlots();
-
+public class MCParticlePlotsDriver extends PlotsDriver
+{
+ MCParticlePlotsDriver()
+ {
+ plots.put("", new MCParticlePlots());
+ }
+
protected void process(EventHeader event)
{
super.process(event);
- mcpPlots.fill(event);
+ plots.get("").fill(event);
}
}
\ No newline at end of file
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.1 -r1.2
--- PlotsDriver.java 23 Aug 2005 00:03:37 -0000 1.1
+++ PlotsDriver.java 24 Aug 2005 07:42:04 -0000 1.2
@@ -16,28 +16,24 @@
*
* @author jeremym
*/
-class PlotsDriver extends Driver
+abstract class PlotsDriver extends Driver
{
- Map<String, PlotsBase> plots = new HashMap<String, PlotsBase>();
+ protected Map<String, AbstractPlots> plots = new HashMap<String, AbstractPlots>();
+ protected int nevents = 0;
- int nevents = 0;
- String name;
-
- public PlotsDriver(String name)
- {
- this.name=name;
- }
+ public PlotsDriver()
+ {}
protected void process(EventHeader event)
{
super.process(event);
++nevents;
- /* Sub-classes are responsible for setting-up and filling their plots. */
+ /* Sub-classes are responsible for setting-up and filling their own plots. */
}
protected void endOfData()
{
- for ( PlotsBase p : plots.values() )
+ for ( AbstractPlots p : plots.values() )
{
p.endEvents(nevents);
}
@@ -45,7 +41,7 @@
protected void startOfData()
{
- for ( PlotsBase p : plots.values() )
+ for ( AbstractPlots p : plots.values() )
{
p.beginEvents();
}
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.9 -r1.10
--- SlicDiagnosticsDriver.java 20 Aug 2005 20:38:46 -0000 1.9
+++ SlicDiagnosticsDriver.java 24 Aug 2005 07:42:04 -0000 1.10
@@ -6,12 +6,10 @@
package org.lcsim.slic.diagnostics;
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.Driver;
import org.lcsim.event.EventHeader;
import org.lcsim.event.EventHeader.LCMetaData;
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.4 -r1.5
--- TrackerHitPlots.java 23 Aug 2005 00:03:36 -0000 1.4
+++ TrackerHitPlots.java 24 Aug 2005 07:42:04 -0000 1.5
@@ -6,7 +6,6 @@
package org.lcsim.slic.diagnostics;
import java.util.List;
-
import hep.aida.ICloud1D;
import org.lcsim.event.EventHeader;
import org.lcsim.event.EventHeader.LCMetaData;
@@ -16,7 +15,7 @@
*
* @author jeremym
*/
-class TrackerHitPlots extends PlotsBase
+class TrackerHitPlots extends AbstractPlots
{
String collName;
@@ -24,7 +23,7 @@
public TrackerHitPlots(LCMetaData meta)
{
- super(meta.getName());
+ super(meta);
definePlots();
}
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -u -r1.2 -r1.3
--- TrackerHitPlotsDriver.java 23 Aug 2005 00:03:36 -0000 1.2
+++ TrackerHitPlotsDriver.java 24 Aug 2005 07:42:04 -0000 1.3
@@ -3,7 +3,6 @@
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;
@@ -13,10 +12,8 @@
*
* @author jeremym
*/
-public class TrackerHitPlotsDriver extends Driver
-{
- Map<String, TrackerHitPlots> TrackerHitPlots = new HashMap<String,TrackerHitPlots>();
-
+public class TrackerHitPlotsDriver extends PlotsDriver
+{
protected void process(EventHeader event)
{
super.process(event);
@@ -33,10 +30,10 @@
private TrackerHitPlots getTrackerHitPlots(LCMetaData meta)
{
String name = meta.getName();
- if ( TrackerHitPlots.get(name) == null )
+ if ( plots.get(name) == null )
{
- TrackerHitPlots.put(name, new TrackerHitPlots(meta) );
+ plots.put(name, new TrackerHitPlots(meta) );
}
- return TrackerHitPlots.get(name);
+ return (TrackerHitPlots)plots.get(name);
}
}
\ No newline at end of file
SlicDiagnostics/src/org/lcsim/slic/diagnostics
diff -N PlotsBase.java
--- PlotsBase.java 23 Aug 2005 00:03:36 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,113 +0,0 @@
-/*
- * PlotsBase.java
- *
- * Created on July 28, 2005, 6:59 PM
- */
-
-package org.lcsim.slic.diagnostics;
-
-import org.lcsim.util.aida.AIDA;
-import hep.aida.ITree;
-import org.lcsim.event.EventHeader;
-
-/**
- *
- * @author jeremym
- */
-abstract class PlotsBase
-{
- protected static AIDA aida = org.lcsim.util.aida.AIDA.defaultInstance();
- protected static ITree tree = aida.tree();
- protected EventHeader eventHeader;
-
- String name;
- String dir;
-
- public PlotsBase(String name)
- {
- this.name = name;
- setupAidaDir();
- }
-
- public void setEventHeader(EventHeader eventHeader)
- {
- this.eventHeader = eventHeader;
- }
-
- public String getName()
- {
- return name;
- }
-
- protected String getDir()
- {
- return dir;
- }
-
- protected void cd()
- {
- tree.cd(this.getDir());
- }
-
- protected void definePlots()
- {
- cd();
- }
-
- protected String makePlotName(String plotName)
- {
- return getName() + ": " + plotName;
- }
-
- protected void setupAidaDir()
- {
- setupAidaDir(name);
- }
-
- /* Create new folder from root. */
- private final void setupAidaDir(String dir)
- {
- tree.cd("/");
-
- /* Create if not exists. */
- try
- {
- tree.mkdirs(dir);
- }
- catch (Exception e)
- {
- System.err.println(e.getMessage());
- }
-
- /* Now it should exist... */
- try
- {
- tree.cd(dir);
- }
- /* Otherwise, something bad happened. */
- catch (Exception e)
- {
- throw new RuntimeException("Could not setup AIDA dir: " + dir);
- }
-
- this.dir = "/" + dir;
-
- tree.cd("/");
- }
-
- protected void beginEvents()
- {
- /* no op */
- }
-
- protected void endEvents(int nevents)
- {
- /* no op */
- }
-
- protected void fill(EventHeader event)
- {
- this.cd();
- setEventHeader(event);
- }
-}
\ No newline at end of file
CVSspam 0.2.8