Print

Print


Commit in lcsim/src/org/lcsim/contrib/JanStrube on MAIN
ZvTubePlotter.py+57added 1.1
MainLoop.py+26added 1.1
+83
2 added files
Scripts to plot the gaussian parabolic tube approximation to the tracks.
Uses PAIDA for the plotting until JAIDA can plot 3D histograms (or 2D functions)

lcsim/src/org/lcsim/contrib/JanStrube
ZvTubePlotter.py added at 1.1
diff -N ZvTubePlotter.py
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ZvTubePlotter.py	1 Aug 2005 04:12:19 -0000	1.1
@@ -0,0 +1,57 @@
+from org.lcsim.util import Driver
+from org.lcsim.recon.vertexing.zvtop4 import ZvTrack
+from org.lcsim.spacegeom import CartesianPoint
+
+import sys
+// needs the latest PAIDA, because JAS3 can't plot 3D
+sys.path.append('/home/jstrube/paida-3.2.1_2.8.1')
+from paida import IAnalysisFactory
+from paida.paida_core.IFunction import IFunction, IAnnotation
+
+
+class ZvTubePlotter(Driver):
+    def __init__(self):
+        self.anaFac = IAnalysisFactory.create()
+        self.tree = self.anaFac.createTreeFactory().create()
+        self.histFac = self.anaFac.createHistogramFactory(self.tree)
+        self.funcFac = self.anaFac.createFunctionFactory(self.tree)
+        self.plotter = self.anaFac.createPlotterFactory().create()
+        self.region = self.plotter.createRegion()
+
+    def process(self, event):
+        tracks = event.getTracks()
+
+        iter = tracks.iterator()
+        while iter.hasNext():
+            iTrack = iter.next()
+            zvTrack = ZvTrack(iTrack)
+            f = ZvTube(zvTrack)
+            self.region.plot(f, "minX=-50;maxX=50;minY=-50;maxY=50;minZ=-1;maxZ=2")
+        print 'please press ENTER'
+        sys.stdin.readline()
+
+
+class ZvTube(IFunction):
+    def __init__(self, track):
+        self.track = track
+        self.title = 'ZvTube Function'
+        return
+
+    def providesGradient(self):
+        return false
+
+    def value(self, x):
+        point = CartesianPoint(x[0], x[1], 0)
+        value = self.track.getTubeProjection(point)
+#        print x, value, float(value)
+#        sys.stdin.readline()
+        return value
+
+    def dimension(self):
+        return 2
+
+    def annotation(self):
+        ann = IAnnotation()
+        ann.addItem('Title', self.title)
+        return ann
+

lcsim/src/org/lcsim/contrib/JanStrube
MainLoop.py added at 1.1
diff -N MainLoop.py
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ MainLoop.py	1 Aug 2005 04:12:19 -0000	1.1
@@ -0,0 +1,26 @@
+#! /usr/bin/env jython
+from java.io import File
+from org.lcsim.util import Driver
+from org.lcsim.util.aida import AIDA
+from org.lcsim.util.loop import LCIODriver
+from org.lcsim.util.loop import LCSimLoop
+from org.lcsim.mc.fast import MCFast
+from ZvTubePlotter import ZvTubePlotter
+from java.lang import System
+
+def main():
+    loop = LCSimLoop()
+    input = File("psiMuMu.slcio")
+    loop.setLCIORecordSource(input)
+    print "adding JasSwimTest"
+    loop.add(MCFast())
+    loop.add(ZvTubePlotter())
+#    output = File(System.getProperty("user.home"),"fastmc.slcio")
+#    loop.add(LCIODriver(output))
+    loop.loop(-1)
+    loop.dispose()
+
+#    AIDA.defaultInstance().saveAs("fastmc.aida")
+
+if __name__ == "__main__":
+    main()
CVSspam 0.2.8