コード例 #1
0
ファイル: lineDistanceTest.py プロジェクト: larlight/larlite
from ROOT import geoalgo
from basictool.geoviewer import GeoViewer
import matplotlib.pyplot as plt
import random as rnd
import time
import datetime

plt.ion()

tottime = 0

# track:
viewer = GeoViewer()
viewer._use_box = False
geoAlgo = geoalgo.GeoAlgo()
line1 = geoalgo.LineSegment(105.727, -66.7871, 814.841, 105.438, -67.4666, 815.464)
line2 = geoalgo.LineSegment(105.229, -67.5519, 815.806, 108.149, -62.1392, 810.246)
pt1 = geoalgo.Vector()
pt2 = geoalgo.Vector()
d = geoAlgo.SqDist(line1,line2,pt1,pt2)
line3 = geoalgo.LineSegment(pt1,pt2)
viewer.add(line1,'ln1','b')
viewer.add(line2,'ln2','r')
viewer.add(line3,'ln3','k')
print 'distance is %.02f'%d
viewer.show()
try:
    counter = input('Hit ENTER when you are ready to close the viewer')
except:
    print "done with this example..."
コード例 #2
0
ファイル: GeoAlgoSphere.py プロジェクト: larlight/larlite
ntries = 1000
npoints = 800
#for x in xrange(ntries):
track = ertool.Track()
#viewer2._fig.clear()
#for n in xrange(npoints):
#time.sleep(0.01)
point = geoalgo.Vector(rnd.random(),rnd.random(),rnd.random())
n = 0
viewer2.add(point,'pt %i'%n,'k')
track.push_back(point)
viewer2.add(point,'pt %i'%n,'k')
track.push_back(point)
viewer2.add(point,'pt %i'%n,'k')
track.push_back(point)
viewer2.add(point,'pt %i'%n,'k')
track.push_back(point)
t = time.time()
sphere = geoAlgo.boundingSphere(track)
tdelta = time.time()-t
tottime += tdelta
#print "sphere center is: [%.02f,%.02f,%.02f]"%(sphere.Center()[0],sphere.Center()[1],sphere.Center()[2])
#print "sphere radius is: %f"%sphere.Radius()
print "Time per sphere with %i points is: %.02f [us]"%(npoints,1000000*(tottime/float(ntries)))
viewer2.add(sphere,'','r')
viewer2.show()
try:
    counter = input('Hit ENTER when you are ready to close the viewer')
except:
    print "done with this example..."
コード例 #3
0
ファイル: MichelESimpleToy.py プロジェクト: uboone/larlite
# Make a fake track and shower
# shower:
shrDir = geoalgo.Vector(0.3, 1.0, 0.5)  # direction
shrStart = geoalgo.Vector(10, -10, 30)  # start point
shower = ertool.Shower(shrStart, shrDir, 20, 5)
shower._energy = 100
shower._dedx = 2.2

# track:
track = ertool.Track()
for n in xrange(11):
    track.push_back(
        geoalgo.Vector(-45.1 + (10 + 45) * (n / 10.),
                       15.1 - (10 + 15) * (n / 10.),
                       4.1 + (30 - 4) * (n / 10.)))
track._energy = 435

plt.ion()
viewer = GeoViewer()
viewer.add(shower, 'shower', 'b')
viewer.add(track, 'track', 'r')
viewer.show()
try:
    counter = input('Hit ENTER when you are ready to close the viewer')
except:
    print "Continuing to analys..."

# are these shower and track correlated? is the shower a michel?
dist = shower.Start().Dist(track.back())
print "distance between shower start and track end is: %f" % dist
コード例 #4
0
ファイル: GeoAlgoSphere.py プロジェクト: uboone/larlite
npoints = 800
#for x in xrange(ntries):
track = ertool.Track()
#viewer2._fig.clear()
#for n in xrange(npoints):
#time.sleep(0.01)
point = geoalgo.Vector(rnd.random(), rnd.random(), rnd.random())
n = 0
viewer2.add(point, 'pt %i' % n, 'k')
track.push_back(point)
viewer2.add(point, 'pt %i' % n, 'k')
track.push_back(point)
viewer2.add(point, 'pt %i' % n, 'k')
track.push_back(point)
viewer2.add(point, 'pt %i' % n, 'k')
track.push_back(point)
t = time.time()
sphere = geoAlgo.boundingSphere(track)
tdelta = time.time() - t
tottime += tdelta
#print "sphere center is: [%.02f,%.02f,%.02f]"%(sphere.Center()[0],sphere.Center()[1],sphere.Center()[2])
#print "sphere radius is: %f"%sphere.Radius()
print "Time per sphere with %i points is: %.02f [us]" % (
    npoints, 1000000 * (tottime / float(ntries)))
viewer2.add(sphere, '', 'r')
viewer2.show()
try:
    counter = input('Hit ENTER when you are ready to close the viewer')
except:
    print "done with this example..."